Crate modbus_mapping
source ·Expand description
A high-level API for Modbus Register Maps based on tokio-modbus.
§Traits
The library defines
core::InputRegisterMap
andcore::HoldingRegisterMap
traits to read from (and write to) the Modbus registers in batch, and- [
simulator::InputRegisterModel
] and [simulator::HoldingRegisterModel
] traits to simulate a Modbus device
§Derive macro
For convenience it provides derive macros to implement the traits automatically. The derive macros depends on modbus
field attribute.
The modbus
attributes can be added to struct fields to link them with modbus register mapping entries.
Then, the field modbus
must contain the following key-values pairs:
addr
- input or holding register start address,u16
integer,ty
- modbus data type, one of"i16"
,"i32"
,"i64"
,"u16"
,"u32"
,"u64"
,"f16"
,"f32"
or"raw(size)"
,ord
- word order, either"be"
for big-endian or"le"
for little-endian,x
- scale factor; multiply the stored value by it to get the actual valueunit
- measurement unit of the actual value (i.e. actual value = stored value x scale factor)
The struct modbus
attribute is optional and provides configuration for InputRegisterMap
and HoldingRegisterMap
traits when reading registers.
It can only contain these key-value pairs:
max_cnt_per_request
- maximum number of registers to read in a single Modbus request; default value is123
which is the maximumum allowed valueallow_register_gaps
- an optimization flag to allow Modbus client to read longer register blocks which possibly contain unrequested (or undefined) registers in between the required ones. Iftrue
, the client makes less requests but read more data. Otherwise, iffalse
, the client makes more requests but read only the necessary data.
The modbus_doc
attribute is to create documentation (by adding doc attribute) from modbus
field attributes information.
Modules§
- Utilities for encoding from and decoding to Modbus registers
- Core traits to read from and write to Modbus registers
Attribute Macros§
- Re-export.
Derive Macros§
- Re-export. Derive macro to implement
modbus_mapping::core::HoldingRegisterMap
- Re-export. Derive macro to implement
modbus_mapping::core::HoldingRegisterModel
- Re-export. Derive macro to implement
modbus_mapping::core::InputRegisterMap
- Re-export. Derive macro to implement
modbus_mapping::core::InputRegisterModel