Modbus cpp 0.1
|
Enumerations | |
enum | MBErrorCode : uint8_t { IllegalFunction = 0x01 , IllegalDataAddress = 0x02 , IllegalDataValue = 0x03 , SlaveDeviceFailure = 0x04 , Acknowledge = 0x05 , SlaveDeviceBusy = 0x06 , NegativeAcknowledge = 0x07 , MemoryParityError = 0x08 , GatewayPathUnavailable = 0x10 , GatewayTargetDeviceFailedToRespond = 0x11 , ErrorCodeCRCError = 0b0111111 , InvalidCRC = 0b01111110 , InvalidByteOrder = 0b01111101 , InvalidMessageID = 0b01111100 , ProtocolError = 0b01111011 , ConnectionClosed = 0b01111010 , Timeout = 0b01111001 } |
enum | MBFunctionCode : uint8_t { ReadDiscreteOutputCoils = 0x01 , ReadDiscreteInputContacts = 0x02 , ReadAnalogOutputHoldingRegisters = 0x03 , ReadAnalogInputRegisters = 0x04 , WriteSingleDiscreteOutputCoil = 0x05 , WriteSingleAnalogOutputRegister = 0x06 , WriteMultipleDiscreteOutputCoils = 0x0F , WriteMultipleAnalogOutputHoldingRegisters = 0x10 , Undefined = 0x00 } |
All modbus standard function codes + Undefined one. | |
enum | MBFunctionType { Read , WriteSingle , WriteMultiple } |
Simplified function types. | |
enum | MBFunctionRegisters { OutputCoils , InputContacts , HoldingRegisters , InputRegisters } |
Simplified register types. | |
Functions | |
bool | isStandardErrorCode (MBErrorCode code) |
Checks if error code is modbus standard error code. | |
std::string | mbErrorCodeToStr (MBErrorCode code) noexcept |
Converts Modbus error code to it's string representation. | |
MBFunctionType | functionType (const MBFunctionCode code) |
Checks "Function type", according to MBFunctionType. | |
MBFunctionRegisters | functionRegister (const MBFunctionCode code) |
Get register type based on function code. | |
std::string | mbFunctionToStr (MBFunctionCode code) noexcept |
Converts modbus function code to its string represenatiton. | |
uint16_t | bigEndianConv (const uint8_t *buf) |
Create uint16_t from buffer of two bytes, ex. { 0x01, 0x02 } => 0x0102. | |
uint16_t | calculateCRC (const uint8_t *buff, size_t len) |
uint16_t | calculateCRC (const std::vector< uint8_t > &buffer) |
std::pair< uint8_t, uint8_t > | splitUint16 (const uint16_t val) |
void | pushUint16 (std::vector< uint8_t > &buffer, const uint16_t val) |
Insert uint16_t into buffer of uint8_t's. Preserve big endianess. | |
Namespace that contains many useful utility functions and enums that are used in the whole project.
enum MB::utils::MBErrorCode : uint8_t |
All possible modbus error codes
|
inline |
MB::CRC
|
inline |
MB::CRC
|
inline |
Split uint16_t to two uint8_t in big endian form
Example usage: auto [highByte, lowByte] = utils::splitUint16(val);