Sming Framework API
()
Toggle main menu visibility
Sming
Libraries
IOControl
include
IO
Modbus
ADU.h
Go to the documentation of this file.
1
20
#pragma once
21
22
#include "
PDU.h
"
23
#include "../Error.h"
24
25
namespace
IO::Modbus
26
{
27
// Buffer to construct RTU requests and process responses
28
struct
ADU
{
29
static
constexpr
uint8_t
BROADCAST_ADDRESS
{0x00};
30
static
constexpr
size_t
MinSize
{4};
31
static
constexpr
size_t
MaxSize
{256};
32
33
union
{
34
struct
{
35
uint8_t
slaveAddress
;
36
PDU
pdu
;
37
};
38
uint8_t
buffer
[
MaxSize
];
39
};
40
47
size_t
prepareRequest
();
48
size_t
prepareResponse
();
57
ErrorCode
parseRequest
(
size_t
receivedSize);
58
ErrorCode
parseResponse
(
size_t
receivedSize);
61
private
:
62
size_t
preparePacket(
size_t
pduSize);
63
ErrorCode
parsePacket(
size_t
receivedSize,
size_t
pduSize);
64
};
65
66
static_assert(offsetof(ADU, pdu) == 1,
"ADU alignment error"
);
67
68
}
// namespace IO::Modbus
IO::Modbus::ADU
Definition:
ADU.h:28
IO::ErrorCode
int16_t ErrorCode
Definition:
Libraries/IOControl/include/IO/Error.h:27
IO::Modbus::PDU
Protocol Data Unit.
Definition:
PDU.h:45
IO::Modbus::ADU::pdu
PDU pdu
Definition:
ADU.h:36
uint8_t
IO::Modbus::ADU::MaxSize
static constexpr size_t MaxSize
Definition:
ADU.h:31
IO::Modbus::ADU::slaveAddress
uint8_t slaveAddress
Definition:
ADU.h:35
IO::Modbus::ADU::MinSize
static constexpr size_t MinSize
Definition:
ADU.h:30
IO::Modbus::ADU::buffer
uint8_t buffer[MaxSize]
Definition:
ADU.h:38
IO::Modbus::ADU::prepareRequest
size_t prepareRequest()
IO::Modbus::ADU::parseRequest
ErrorCode parseRequest(size_t receivedSize)
IO::Modbus::ADU::parseResponse
ErrorCode parseResponse(size_t receivedSize)
IO::Modbus::ADU::BROADCAST_ADDRESS
static constexpr uint8_t BROADCAST_ADDRESS
Definition:
ADU.h:29
IO::Modbus::ADU::prepareResponse
size_t prepareResponse()
PDU.h
IO::Modbus
Definition:
ADU.h:25
Generated by
1.8.17