23#ifdef MODBUS_ENABLE_HOLDINGS
46 *(pHoldRegs) = WriteVal;
72 *Exception = Exception_tmp;
107 for (i = 0; i<modbus_msg->
Qnt; i++)
109 modbus_msg->
MbData[i] = *(pHoldRegs++);
129 *(pHoldRegs) = modbus_msg->
Qnt;
154 for (
int i = 0; i<modbus_msg->
Qnt; i++)
156 *(pHoldRegs++) = modbus_msg->
MbData[i];
uint8_t MB_Process_Write_Single_Reg(RS_MsgTypeDef *modbus_msg)
Обработать функцию Write Single Register (06 - 0x06).
MB_ExceptionTypeDef MB_DefineRegistersAddress(uint16_t **pRegs, uint16_t Addr, uint16_t Qnt, uint8_t RegisterType)
Define Address Origin for Input/Holding Registers.
uint8_t MB_Process_Write_Miltuple_Regs(RS_MsgTypeDef *modbus_msg)
Обработать функцию Write Multiple Registers (16 - 0x10).
uint8_t MB_Process_Read_Hold_Regs(RS_MsgTypeDef *modbus_msg)
Обработать функцию Read Holding Registers (03 - 0x03).
uint16_t MB_Holding_Read_Global(uint16_t Addr, MB_ExceptionTypeDef *Exception)
Считать регистр хранения по глобальному адресу.
MB_ExceptionTypeDef MB_Holding_Write_Global(uint16_t Addr, uint16_t WriteVal)
Записать регистр хранения по глобальному адресу.
MB_ExceptionTypeDef
Enum for modbus exception codes.
Structure for modbus messsage.
uint16_t Qnt
Quantity of modbus data.
MB_ExceptionTypeDef Except_Code
Exception Code for the command.
uint8_t ByteCnt
Quantity of bytes of data in message to transmit/receive.
uint16_t MbData[DATA_SIZE]
Modbus Data.
uint16_t Addr
Modbus Address of data.