Nix (Dev)
3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
enums.hpp
Go to the documentation of this file.
1
#ifndef IV_SRC_COMMS_MODBUS_ENUMS_HPP_
2
#define IV_SRC_COMMS_MODBUS_ENUMS_HPP_
3
4
#include "
core/assert.hpp
"
5
#include "
core/enums.hpp
"
6
7
namespace
iv::comms::modbus
8
{
9
10
enum class
eExceptionCode
11
{
12
IllegalFunction
= 0x01,
// Function Code not Supported
13
IllegalAddress
= 0x02,
// Output Address not exists
14
IllegalValue
= 0x03,
// Output Value not in Range
15
ServerFailure
= 0x04,
// Slave Deive Fails to process request
16
Acknowledge
= 0x05,
// Service Need Long Time to Execute
17
ServerBusy
= 0x06,
// Server Was Unable to Accept MB Request PDU
18
GatewayProblemPath
= 0x0A,
// Gateway Path not Available
19
GatewayProblemFailed
= 0x0B,
// Target Device Failed to Response
20
};
21
22
enum class
eFunctionCode
: uint16_t
23
{
24
ReadCoils
= 0x01,
25
ReadDiscreteInputs
= 0x02,
26
ReadHoldingRegisters
= 0x03,
27
ReadInputRegisters
= 0x04,
28
WriteSingleCoil
= 0x05,
29
WriteSingleRegister
= 0x06,
30
WriteCoils
= 0x0F,
31
WriteRegisters
= 0x10
32
};
33
34
inline
iv::comms::modbus::eRegisterType
35
functionCodeFromRegisterType
(
const
iv::comms::modbus::eFunctionCode
functionCode)
36
{
37
iv::comms::modbus::eRegisterType
registerType {};
38
39
switch
(functionCode)
40
{
41
case
iv::comms::modbus::eFunctionCode::ReadCoils
:
42
case
iv::comms::modbus::eFunctionCode::WriteSingleCoil
:
43
case
iv::comms::modbus::eFunctionCode::WriteCoils
:
44
registerType =
iv::comms::modbus::eRegisterType::CoilStatus
;
45
break
;
46
47
case
iv::comms::modbus::eFunctionCode::ReadDiscreteInputs
:
48
registerType =
iv::comms::modbus::eRegisterType::InputStatus
;
49
break
;
50
51
case
iv::comms::modbus::eFunctionCode::ReadInputRegisters
:
52
registerType =
iv::comms::modbus::eRegisterType::InputRegister
;
53
break
;
54
55
case
iv::comms::modbus::eFunctionCode::ReadHoldingRegisters
:
56
case
iv::comms::modbus::eFunctionCode::WriteSingleRegister
:
57
case
iv::comms::modbus::eFunctionCode::WriteRegisters
:
58
registerType =
iv::comms::modbus::eRegisterType::HoldingRegister
;
59
break
;
60
61
default
:
62
IV_ASSERT_UNREACHABLE
();
63
break
;
64
}
65
66
return
registerType;
67
}
68
69
enum class
eType
70
{
71
Rtu
,
72
Tcp
,
73
Udp
74
};
75
76
}
// namespace iv::comms::modbus
77
78
#endif
//IV_SRC_COMMS_MODBUS_ENUMS_HPP_
assert.hpp
IV_ASSERT_UNREACHABLE
#define IV_ASSERT_UNREACHABLE()
Definition
assert.hpp:146
enums.hpp
iv::comms::modbus
Definition
AbstractModbusCommunicationProtocol.cpp:8
iv::comms::modbus::eType
eType
Definition
enums.hpp:70
iv::comms::modbus::eType::Tcp
@ Tcp
iv::comms::modbus::eType::Udp
@ Udp
iv::comms::modbus::eType::Rtu
@ Rtu
iv::comms::modbus::eFunctionCode
eFunctionCode
Definition
enums.hpp:23
iv::comms::modbus::eFunctionCode::WriteCoils
@ WriteCoils
iv::comms::modbus::eFunctionCode::ReadHoldingRegisters
@ ReadHoldingRegisters
iv::comms::modbus::eFunctionCode::WriteSingleRegister
@ WriteSingleRegister
iv::comms::modbus::eFunctionCode::WriteSingleCoil
@ WriteSingleCoil
iv::comms::modbus::eFunctionCode::ReadDiscreteInputs
@ ReadDiscreteInputs
iv::comms::modbus::eFunctionCode::ReadCoils
@ ReadCoils
iv::comms::modbus::eFunctionCode::WriteRegisters
@ WriteRegisters
iv::comms::modbus::eFunctionCode::ReadInputRegisters
@ ReadInputRegisters
iv::comms::modbus::eExceptionCode
eExceptionCode
Definition
enums.hpp:11
iv::comms::modbus::eExceptionCode::GatewayProblemPath
@ GatewayProblemPath
iv::comms::modbus::eExceptionCode::IllegalValue
@ IllegalValue
iv::comms::modbus::eExceptionCode::IllegalFunction
@ IllegalFunction
iv::comms::modbus::eExceptionCode::ServerBusy
@ ServerBusy
iv::comms::modbus::eExceptionCode::GatewayProblemFailed
@ GatewayProblemFailed
iv::comms::modbus::eExceptionCode::ServerFailure
@ ServerFailure
iv::comms::modbus::eExceptionCode::IllegalAddress
@ IllegalAddress
iv::comms::modbus::eExceptionCode::Acknowledge
@ Acknowledge
iv::comms::modbus::functionCodeFromRegisterType
iv::comms::modbus::eRegisterType functionCodeFromRegisterType(const iv::comms::modbus::eFunctionCode functionCode)
Definition
enums.hpp:35
iv::comms::modbus::eRegisterType
eRegisterType
Definition
enums.hpp:315
iv::comms::modbus::eRegisterType::CoilStatus
@ CoilStatus
iv::comms::modbus::eRegisterType::HoldingRegister
@ HoldingRegister
iv::comms::modbus::eRegisterType::InputStatus
@ InputStatus
iv::comms::modbus::eRegisterType::InputRegister
@ InputRegister
src
comms
modbus
enums.hpp
Generated by
1.12.0