12#include "modbusUtils.hpp"
43 bool CRC =
false)
noexcept;
49 : _slaveId(slaveId), _validSlave(
true), _errorCode(errorCode),
50 _functionCode(functionCode) {}
57 static bool exist(
const std::vector<uint8_t> &inputData)
noexcept {
58 if (inputData.size() < 2)
61 return inputData[1] & 0b10000000;
68 [[nodiscard]] uint8_t slaveID() const noexcept {
return _slaveId; }
71 [[nodiscard]]
bool isSlaveValid() const noexcept {
return _validSlave; }
86 [[nodiscard]]
const char *
what() const noexcept
override {
88 char *str =
new char[og.size()];
89 stpcpy(str, og.c_str());
94 [[nodiscard]] std::string
toString() const noexcept;
96 [[nodiscard]] std::vector<uint8_t>
toRaw() const noexcept;
98 [[nodiscard]] utils::MBFunctionCode functionCode() const noexcept {
103 _functionCode = functionCode;
Definition modbusException.hpp:23
const char * what() const noexcept override
Definition modbusException.hpp:86
std::string toString() const noexcept
Returns string representation of object.
Definition modbusException.cpp:36
ModbusException(utils::MBErrorCode errorCode, uint8_t slaveId=0xFF, utils::MBFunctionCode functionCode=utils::Undefined) noexcept
Constructs Exception based on error code, function code and slaveId.
Definition modbusException.hpp:46
bool isSlaveValid() const noexcept
Checks if SlaveID is specified.
Definition modbusException.hpp:71
void setSlaveID(uint8_t slaveId) noexcept
Sets SlaveID.
Definition modbusException.hpp:74
std::vector< uint8_t > toRaw() const noexcept
Converts object to modbus byte representation.
Definition modbusException.cpp:53
utils::MBErrorCode getErrorCode() const noexcept
Returns detected error code.
Definition modbusException.hpp:80
MBErrorCode
Definition modbusUtils.hpp:25
MBFunctionCode
All modbus standard function codes + Undefined one.
Definition modbusUtils.hpp:117