15#ifndef MYRIOTA_MODBUS_H
16#define MYRIOTA_MODBUS_H
31 MODBUS_ERROR_EXCEPTION_ILLEGAL_FUNCTION = 0x01,
32 MODBUS_ERROR_EXCEPTION_ILLEGAL_DATA_ADDRESS = 0x02,
33 MODBUS_ERROR_EXCEPTION_ILLEGAL_DATA_VALUE = 0x03,
34 MODBUS_ERROR_EXCEPTION_SLAVE_DEVICE_FAILURE = 0x04,
35 MODBUS_ERROR_EXCEPTION_ACKNOWLEDGE = 0x05,
36 MODBUS_ERROR_EXCEPTION_SLAVE_DEVICE_BUSY = 0x06,
37 MODBUS_ERROR_EXCEPTION_NEGATIVE_ACKNOWLEDGMENT = 0x07,
38 MODBUS_ERROR_EXCEPTION_MEMORY_PARITY_ERROR = 0x08,
39 MODBUS_ERROR_EXCEPTION_GATEWAY_PATH_UNAVAILABLE = 0x0A,
40 MODBUS_ERROR_EXCEPTION_GATEWAY_TARGET_DEVICE_FAILED_TO_RESPOND = 0x0B,
41 MODBUS_ERROR_INVALID_HANDLE,
42 MODBUS_ERROR_INVALID_CRC16,
43 MODBUS_ERROR_MALFORMED_RESPONSE,
44 MODBUS_ERROR_RESPONSE_FROM_WRONG_SLAVE_ADDRESS,
45 MODBUS_ERROR_IO_FAILURE,
46 MODBUS_ERROR_BAD_STATE,
47 MODBUS_ERROR_OVERFLOW,
95 const uint8_t *
const buffer,
const size_t count);
194 const uint8_t bit_index,
bool *
const value);
209 uint8_t *
const bytes);
224 uint8_t *
const bytes);
239 uint8_t *
const bytes);
254 uint8_t *
const bytes);
268 const uint16_t word);
281 const uint16_t word);
296 const uint8_t *
const bytes);
311 const uint8_t *
const bytes);
uint8_t MYRIOTA_ModbusHandle
Definition modbus.h:51
int MYRIOTA_ModbusReadDiscreteInputs(const MYRIOTA_ModbusHandle handle, const MYRIOTA_ModbusDeviceAddress slave, const MYRIOTA_ModbusDataAddress addr, const size_t count, uint8_t *const bytes)
int MYRIOTA_ModbusReadHoldingRegisters(const MYRIOTA_ModbusHandle handle, const MYRIOTA_ModbusDeviceAddress slave, const MYRIOTA_ModbusDataAddress addr, const size_t count, uint8_t *const bytes)
uint16_t MYRIOTA_ModbusDataAddress
Definition modbus.h:57
int(* MYRIOTA_ModbusSerialInterfaceInitFn_t)(void *const ctx)
Definition modbus.h:65
ssize_t(* MYRIOTA_ModbusSerialInterfaceWriteFn_t)(void *const ctx, const uint8_t *const buffer, const size_t count)
Definition modbus.h:94
int MYRIOTA_ModbusReadCoils(const MYRIOTA_ModbusHandle handle, const MYRIOTA_ModbusDeviceAddress slave, const MYRIOTA_ModbusDataAddress addr, const size_t count, uint8_t *const bytes)
int MYRIOTA_ModbusWriteHoldingRegisters(const MYRIOTA_ModbusHandle handle, const MYRIOTA_ModbusDeviceAddress slave, const MYRIOTA_ModbusDataAddress addr, const size_t count, const uint8_t *const bytes)
void MYRIOTA_ModbusBytesSetBit(uint8_t *const bytes, const size_t count, const uint8_t bit_index, const bool value)
void MYRIOTA_ModbusDeinit(const MYRIOTA_ModbusHandle handle)
void(* MYRIOTA_ModbusSerialInterfaceDeinitFn_t)(void *const ctx)
Definition modbus.h:73
uint8_t MYRIOTA_ModbusDeviceAddress
Definition modbus.h:54
int MYRIOTA_ModbusWriteHoldingRegister(const MYRIOTA_ModbusHandle handle, const MYRIOTA_ModbusDeviceAddress slave, const MYRIOTA_ModbusDataAddress addr, const uint16_t word)
void MYRIOTA_ModbusBytesGetBit(const uint8_t *const bytes, const size_t count, const uint8_t bit_index, bool *const value)
ssize_t(* MYRIOTA_ModbusSerialInterfaceReadFn_t)(void *const ctx, uint8_t *const buffer, const size_t count)
Definition modbus.h:83
int MYRIOTA_ModbusReadInputRegisters(const MYRIOTA_ModbusHandle handle, const MYRIOTA_ModbusDeviceAddress slave, const MYRIOTA_ModbusDataAddress addr, const size_t count, uint8_t *const bytes)
int MYRIOTA_ModbusDisable(const MYRIOTA_ModbusHandle handle)
int MYRIOTA_ModbusWriteCoil(const MYRIOTA_ModbusHandle handle, const MYRIOTA_ModbusDeviceAddress slave, const MYRIOTA_ModbusDataAddress addr, const uint16_t word)
int MYRIOTA_ModbusEnable(const MYRIOTA_ModbusHandle handle)
int MYRIOTA_ModbusWriteCoils(const MYRIOTA_ModbusHandle handle, const MYRIOTA_ModbusDeviceAddress slave, const MYRIOTA_ModbusDataAddress addr, const size_t count, const uint8_t *const bytes)
MYRIOTA_ModbusErrors
Definition modbus.h:29
MYRIOTA_ModbusHandle MYRIOTA_ModbusInit(const MYRIOTA_ModbusInitOptions options)
MYRIOTA_ModbusFramingMode
Definition modbus.h:116
@ MODBUS_FRAMING_MODE_RTU
Definition modbus.h:118
MYRIOTA_ModbusFramingMode framing_mode
Definition modbus.h:124
MYRIOTA_ModbusSerialInterface serial_interface
Definition modbus.h:126
MYRIOTA_ModbusSerialInterfaceDeinitFn_t deinit
Definition modbus.h:104
MYRIOTA_ModbusSerialInterfaceReadFn_t read
Definition modbus.h:106
MYRIOTA_ModbusSerialInterfaceWriteFn_t write
Definition modbus.h:108
MYRIOTA_ModbusSerialInterfaceInitFn_t init
Definition modbus.h:102
void * ctx
Definition modbus.h:100