blob: b800eb9af3515ee3222dabebc2f0fcf9fe6c846d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
/**
* @file Xpl2JcStatus.cpp
* @brief Structured JC status message (EV_STATUS_MSG_JC, Appendix A).
*/
#include "Xpl2JcStatus.h"
#include <QVariant>
Xpl2JcStatus
Xpl2JcStatus::fromParams (const QVariantList ¶ms)
{
Xpl2JcStatus s;
int n = params.size ();
if (n < 2)
return s;
s.controllerId = params[0].toInt ();
s.statusLevel = params[1].toInt ();
/* Level 1: fields at indices 2-8 */
if (n > 2)
s.cpuPercentageBusy = params[2].toFloat ();
if (n > 3)
s.rail5V = params[3].toFloat ();
if (n > 4)
s.railCanBus8V = params[4].toFloat ();
if (n > 5)
s.temperature = params[5].toFloat ();
if (n > 6)
s.humidity = params[6].toFloat ();
if (n > 7)
s.busCurrent = params[7].toFloat ();
if (n > 8)
s.onTimeSeconds = params[8].toInt ();
/* Level 2: fields at indices 9-22 */
if (s.statusLevel < 2 || n <= 9)
return s;
if (n > 9)
s.ipAddress = params[9].toString ();
if (n > 10)
s.eFuseVoltage = params[10].toFloat ();
if (n > 11)
s.eFuseBusEnabled = params[11].toInt () != 0;
if (n > 12)
s.busPowerEnabled = params[12].toInt () != 0;
if (n > 13)
s.busPowerOk = params[13].toInt () != 0;
if (n > 14)
s.switchValue = params[14].toInt ();
if (n > 15)
s.firmwareVersion = params[15].toString ();
if (n > 16)
s.hardwareVersion = params[16].toString ();
if (n > 17)
s.indicator0 = params[17].toInt () != 0;
if (n > 18)
s.indicator1 = params[18].toInt () != 0;
if (n > 19)
s.indicator2 = params[19].toInt () != 0;
if (n > 20)
s.indicator3 = params[20].toInt () != 0;
if (n > 21)
s.indicator4 = params[21].toInt () != 0;
if (n > 22)
s.indicator5 = params[22].toInt () != 0;
return s;
}
|