|
Modbus Vault v1.0
|
Slicer for Modbus. More...
Go to the source code of this file.
Data Structures | |
| struct | modbus_slicer_frame_t |
| Modbus slicer frame structure. More... | |
| struct | modbus_slicer_config_t |
| Modbus slicer configuration structure. More... | |
| struct | modbus_slicer_t |
| Modbus slicer type structure. More... | |
Enumerations | |
| enum | modbus_slicer_error_t { MODBUS_SLICER_OK = 0 , MODBUS_SLICER_ERROR_CRC , MODBUS_SLICER_ERROR_OVERFLOW , MODBUS_SLICER_ERROR_NO_MEM } |
| Modbus slicer error enum. More... | |
| enum | modbus_slicer_state_t { MODBUS_SLICER_STATE_IDLE , MODBUS_SLICER_STATE_RECEIVING } |
| Modbus slicer state enum. More... | |
Functions | |
| void | modbus_slicer_init (modbus_slicer_t *slicer_ptr, modbus_slicer_config_t *config_ptr) |
| Initialize slicer. | |
| void | modbus_slicer_feed (modbus_slicer_t *slicer_ptr, const uint8_t *data_ptr, size_t length, int64_t timestamp_us) |
| Feed data to slicer state-machine. | |
| void | modbus_slicer_timeout (modbus_slicer_t *slicer_ptr) |
| Signal frame timeout. | |
| void | modbus_slicer_check_timeout (modbus_slicer_t *slicer_ptr) |
| Check for frame timeout. | |
Slicer for Modbus.
Provides bytes slicing according to Modbus framing rule of 3.5 characters interframe silent duration
| void modbus_slicer_check_timeout | ( | modbus_slicer_t * | slicer_ptr | ) |
Check for frame timeout.
Check for frame timeout by comparing last received byte to current time and timeout if it exceeds 3.5 characters time
| slicer_ptr | Pointer to slicer structure |
| void modbus_slicer_feed | ( | modbus_slicer_t * | slicer_ptr, |
| const uint8_t * | data_ptr, | ||
| size_t | length, | ||
| int64_t | timestamp_us | ||
| ) |
Feed data to slicer state-machine.
| slicer_ptr | Pointer to slicer structure |
| data_ptr | Pointer to data buffer |
| length | Data buffer length |
| timestamp_us | Data timestamp |
| void modbus_slicer_init | ( | modbus_slicer_t * | slicer_ptr, |
| modbus_slicer_config_t * | config_ptr | ||
| ) |
Initialize slicer.
Initialize slicer by calculating 3.5 characters time using standard frame length 11-bits and baud rate used by rs485 driver
| slicer_ptr | Pointer to slicer structure |
| config_ptr | Pointer to slicer configuration structure |
| void modbus_slicer_timeout | ( | modbus_slicer_t * | slicer_ptr | ) |
Signal frame timeout.
Slice the frame since 3.5 characters time has passed and call registered callback function
| slicer_ptr | Pointer to slicer structure |