Skip to content

Commit ae4064d

Browse files
committed
Developing new log view
1 parent 48a6a27 commit ae4064d

1 file changed

Lines changed: 134 additions & 0 deletions

File tree

omodsim/modbusfunction.h

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
#ifndef MODBUSFUNCTION_H
2+
#define MODBUSFUNCTION_H
3+
4+
#include <QModbusPdu>
5+
6+
///
7+
/// \brief The ModbusFunction class
8+
///
9+
class ModbusFunction
10+
{
11+
public:
12+
explicit ModbusFunction(QModbusPdu::FunctionCode code)
13+
:_code(code)
14+
{
15+
}
16+
17+
static QVector<QModbusPdu::FunctionCode> validCodes() {
18+
static const QVector<QModbusPdu::FunctionCode> codes = {
19+
QModbusPdu::ReadCoils, QModbusPdu::ReadDiscreteInputs, QModbusPdu::ReadHoldingRegisters, QModbusPdu::ReadInputRegisters,
20+
QModbusPdu::WriteSingleCoil, QModbusPdu::WriteSingleRegister, QModbusPdu::ReadExceptionStatus, QModbusPdu::Diagnostics,
21+
QModbusPdu::GetCommEventCounter, QModbusPdu::GetCommEventLog, QModbusPdu::WriteMultipleCoils, QModbusPdu::WriteMultipleRegisters,
22+
QModbusPdu::ReportServerId, QModbusPdu::ReadFileRecord, QModbusPdu::WriteFileRecord, QModbusPdu::MaskWriteRegister,
23+
QModbusPdu::ReadWriteMultipleRegisters, QModbusPdu::ReadFifoQueue, QModbusPdu::EncapsulatedInterfaceTransport
24+
};
25+
return codes;
26+
}
27+
28+
bool isValid() const
29+
{
30+
return validCodes().contains(_code);
31+
}
32+
33+
bool isException() const
34+
{
35+
return _code & QModbusPdu::ExceptionByte;
36+
}
37+
38+
operator int() const
39+
{
40+
return _code;
41+
}
42+
43+
operator QString() const
44+
{
45+
QString name;
46+
switch(_code & ~QModbusPdu::ExceptionByte)
47+
{
48+
case QModbusPdu::ReadCoils:
49+
name = "READ COILS";
50+
break;
51+
52+
case QModbusPdu::ReadDiscreteInputs:
53+
name = "READ INPUTS";
54+
break;
55+
56+
case QModbusPdu::ReadHoldingRegisters:
57+
name = "READ HOLDING REGS";
58+
break;
59+
60+
case QModbusPdu::ReadInputRegisters:
61+
name = "READ INPUT REGS";
62+
break;
63+
64+
case QModbusPdu::WriteSingleCoil:
65+
name = "WRITE SINGLE COIL";
66+
break;
67+
68+
case QModbusPdu::WriteSingleRegister:
69+
name = "WRITE SINGLE REG";
70+
break;
71+
72+
case QModbusPdu::ReadExceptionStatus:
73+
name = "READ EXCEPTION STAT";
74+
break;
75+
76+
case QModbusPdu::Diagnostics:
77+
name = "DIAGNOSTICS";
78+
break;
79+
80+
case QModbusPdu::GetCommEventCounter:
81+
name = "GET COMM EVENT CNT";
82+
break;
83+
84+
case QModbusPdu::GetCommEventLog:
85+
name = "GET COMM EVENT LOG";
86+
break;
87+
88+
case QModbusPdu::WriteMultipleCoils:
89+
name = "WRITE MULT COILS";
90+
break;
91+
92+
case QModbusPdu::WriteMultipleRegisters:
93+
name = "WRITE MULT REGS";
94+
break;
95+
96+
case QModbusPdu::ReportServerId:
97+
name = "REPORT SLAVE ID";
98+
break;
99+
100+
case QModbusPdu::ReadFileRecord:
101+
name = "READ FILE RECORD";
102+
break;
103+
104+
case QModbusPdu::WriteFileRecord:
105+
name = "WRITE FILE RECORD";
106+
break;
107+
108+
case QModbusPdu::MaskWriteRegister:
109+
name = "MASK WRITE REG";
110+
break;
111+
112+
case QModbusPdu::ReadWriteMultipleRegisters:
113+
name = "READ WRITE MULT REGS";
114+
break;
115+
116+
case QModbusPdu::ReadFifoQueue:
117+
name ="READ FIFO QUEUE";
118+
break;
119+
120+
case QModbusPdu::EncapsulatedInterfaceTransport:
121+
name = "ENC IFACE TRANSPORT";
122+
break;
123+
124+
default:
125+
break;
126+
}
127+
return name;
128+
}
129+
130+
private:
131+
QModbusPdu::FunctionCode _code;
132+
};
133+
134+
#endif // MODBUSFUNCTION_H

0 commit comments

Comments
 (0)