1#ifndef IV_SRC_COMMS_MODBUS_MODBUSMESSAGE_HPP
2#define IV_SRC_COMMS_MODBUS_MODBUSMESSAGE_HPP
15 [[nodiscard]] std::vector<std::byte>
serialize()
const override = 0;
16 [[nodiscard]]
bool deserialize(
const std::vector<std::byte> &data)
override = 0;
33 const uint16_t numberOfRegisters_,
const std::vector<ModbusChannelBinding> &channelBindings_)
38 this->firstAddress = firstAddress_;
39 this->numberOfRegisters = numberOfRegisters_;
40 this->channelBindings = channelBindings_;
43 [[nodiscard]] std::vector<std::byte>
serializeTCP()
const;
44 [[nodiscard]] std::vector<std::byte>
serializeRTU()
const;
47 [[nodiscard]] std::vector<std::byte>
serialize()
const override;
48 [[nodiscard]]
bool deserialize(
const std::vector<std::byte> &data)
override
67 [[nodiscard]] std::vector<std::byte>
serialize()
const override
71 [[nodiscard]]
bool deserialize(
const std::vector<std::byte> &data)
override;
Definition IMessageComm.hpp:11
Definition AbstractModbusCommunicationProtocol.cpp:8
eFunctionCode
Definition enums.hpp:23
uint16_t modbusAddress
Definition defines.hpp:37
uint8_t slaveId
Definition types.hpp:49
Definition ModbusMessage.hpp:13
~AbstractModbusMessage() override=default
iv::types::modbus::slaveId slaveId
Definition ModbusMessage.hpp:18
bool deserialize(const std::vector< std::byte > &data) override=0
iv::comms::modbus::eFunctionCode functionCode
Definition ModbusMessage.hpp:19
std::vector< std::byte > serialize() const override=0
uint16_t transactionId
Definition ModbusMessage.hpp:20
Definition ModbusMessage.hpp:24
std::vector< std::byte > serializeTCP() const
Definition ModbusMessage.cpp:12
bool deserialize(const std::vector< std::byte > &data) override
Definition ModbusMessage.hpp:48
ModbusQueryMessage(const iv::types::modbus::slaveId slaveId_, const iv::comms::modbus::eFunctionCode functionCode_, const uint16_t transactionId_, const iv::types::comms::modbus::modbusAddress firstAddress_, const uint16_t numberOfRegisters_, const std::vector< ModbusChannelBinding > &channelBindings_)
Definition ModbusMessage.hpp:31
std::vector< std::byte > serializeRTU() const
Definition ModbusMessage.cpp:29
uint16_t numberOfRegisters
Definition ModbusMessage.hpp:26
std::vector< std::byte > serialize() const override
Definition ModbusMessage.cpp:41
ModbusQueryMessage()=default
iv::types::comms::modbus::modbusAddress firstAddress
Definition ModbusMessage.hpp:25
std::vector< ModbusChannelBinding > channelBindings
Definition ModbusMessage.hpp:27
Definition ModbusMessage.hpp:55
std::vector< uint16_t > registerValues
Definition ModbusMessage.hpp:61
uint16_t crc
Definition ModbusMessage.hpp:58
bool deserializeRTU(const std::vector< std::byte > &data)
Definition ModbusMessage.cpp:179
bool deserializeTCP(const std::vector< std::byte > &data)
Definition ModbusMessage.cpp:159
std::vector< std::byte > serialize() const override
Definition ModbusMessage.hpp:67
uint8_t byteCount
Definition ModbusMessage.hpp:57
std::vector< bool > coilValues
Definition ModbusMessage.hpp:60
bool deserialize(const std::vector< std::byte > &data) override
Definition ModbusMessage.cpp:204
std::optional< iv::comms::modbus::eExceptionCode > exceptionCode
Definition ModbusMessage.hpp:56