30 static_assert(
sizeof(
modbus_header) == 8,
"modbus_header size is not 8 bytes");
Definition: ModbusLayer.h:35
void setTransactionId(uint16_t transactionId)
set the MODBUS transaction id
ModbusFunctionCode getFunctionCode() const
size_t getHeaderLen() const override
Get the length of the MODBUS header.
Definition: ModbusLayer.h:140
static bool isModbusPort(uint16_t port)
Check if a port is a valid MODBUS port.
Definition: ModbusLayer.h:99
ModbusLayer(uint16_t transactionId, uint8_t unitId)
void computeCalculateFields() override
Does nothing for this layer.
Definition: ModbusLayer.h:146
OsiModelLayer getOsiModelLayer() const override
Definition: ModbusLayer.h:154
void setUnitId(uint8_t unitId)
set the MODBUS header unit id
ModbusLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: ModbusLayer.h:86
uint8_t getUnitId() const
void setFunctionCode(ModbusFunctionCode functionCode)
set the MODBUS header function code
ModbusFunctionCode
Enum class representing Modbus function codes. This enumeration defines the standard Modbus function ...
Definition: ModbusLayer.h:41
@ WriteSingleHoldingRegister
Write a single holding register (0x06)
@ WriteMultipleHoldingRegisters
Write multiple holding registers (0x10)
@ UnknownFunction
Unknown or unsupported function code (0xFF)
@ ReadSlaveId
Report slave ID (0x11)
@ ReadHoldingRegisters
Read holding registers (0x03)
@ WriteSingleCoil
Write a single coil (0x05)
@ ReadDiscreteInputs
Read discrete input status (0x02)
@ ReadCoils
Read coil status (0x01)
@ ReadInputRegisters
Read input registers (0x04)
@ WriteMultipleCoils
Write multiple coils (0x0F)
uint16_t getTransactionId() const
void parseNextLayer() override
Does nothing for this layer (ModbusLayer is always last)
Definition: ModbusLayer.h:135
uint16_t getLength() const
uint16_t getProtocolId() const
std::string toString() const override
const ProtocolType Modbus
Modbus protocol.
Definition: ProtocolType.h:252
The main namespace for the PcapPlusPlus lib.
Definition: AssertionUtils.h:19
OsiModelLayer
An enum representing OSI model layers.
Definition: ProtocolType.h:261
@ OsiModelApplicationLayer
Application layer (layer 7)
Definition: ProtocolType.h:275