blob: 8413db4c2b401b794ed5ca412f237050880b8668 (
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
/**
* @file Xpl2PhStatus.cpp
* @brief Structured PH status message (EV_STATUS_MSG_PH, Appendix B).
*/
#include "Xpl2PhStatus.h"
#include <QVariant>
Xpl2PhStatus
Xpl2PhStatus::fromParams (const QVariantList ¶ms)
{
Xpl2PhStatus s;
int n = params.size ();
if (n < 3)
return s;
s.controllerId = params[0].toInt ();
s.statusLevel = params[1].toInt ();
s.printheadId = params[2].toInt ();
/* Level 1: fields at indices 3-30 */
if (n > 3)
s.temperature = params[3].toFloat ();
if (n > 4)
s.humidity = params[4].toFloat ();
if (n > 5)
s.mcuTemperature = params[5].toFloat ();
if (n > 6)
s.pdsVoltage = params[6].toFloat ();
if (n > 7)
s.mdsVoltage = params[7].toFloat ();
if (n > 8)
s.systemVoltage = params[8].toFloat ();
if (n > 9)
s.eFuseCurrent = params[9].toFloat ();
if (n > 10)
s.nozzleCurrent = params[10].toFloat ();
if (n > 11)
s.vdd = params[11].toFloat ();
if (n > 12)
s.temperatureTrip = params[12].toInt () != 0;
if (n > 13)
s.pdsOverVoltageTrip = params[13].toInt () != 0;
if (n > 14)
s.pdsUnderVoltageTrip = params[14].toInt () != 0;
if (n > 15)
s.pdsSupplyErrorTrip = params[15].toInt () != 0;
if (n > 16)
s.mdsOverVoltageTrip = params[16].toInt () != 0;
if (n > 17)
s.mdsUnderVoltageTrip = params[17].toInt () != 0;
if (n > 18)
s.supplyOverVoltageTrip = params[18].toInt () != 0;
if (n > 19)
s.supplyUnderVoltageTrip = params[19].toInt () != 0;
if (n > 20)
s.eFuseOverCurrentTrip = params[20].toInt () != 0;
if (n > 21)
s.eFuseInputVoltageErrorTrip = params[21].toInt () != 0;
if (n > 22)
s.eFuseFaultTrip = params[22].toInt () != 0;
if (n > 23)
s.flashFaultyTrip = params[23].toInt () != 0;
if (n > 24)
s.flashChecksumErrorTrip = params[24].toInt () != 0;
if (n > 25)
s.dutyCycle = params[25].toFloat ();
if (n > 26)
s.pwmFrequency = params[26].toFloat ();
if (n > 27)
s.drive = params[27].toInt ();
if (n > 28)
s.nozzleDriveFrequency = params[28].toFloat ();
if (n > 29)
s.nozzleDriveDutyCycle = params[29].toFloat ();
if (n > 30)
s.onTimeSeconds = params[30].toInt ();
/* Level 2: fields at indices 31-61 */
if (s.statusLevel < 2 || n <= 31)
return s;
if (n > 31)
s.accelerometerId = params[31].toInt ();
if (n > 32)
s.mcuId = params[32].toString ();
if (n > 33)
s.flashMemoryId = params[33].toString ();
if (n > 34)
s.temperatureSensorSerialNumber = params[34].toInt ();
if (n > 35)
s.mcuHardwareVersion = params[35].toString ();
if (n > 36)
s.mcuFirmwareVersion = params[36].toString ();
if (n > 37)
s.mcuFirmwareVariant = params[37].toString ();
if (n > 38)
s.fpgaHardwareVersion = params[38].toString ();
if (n > 39)
s.fpgaFirmwareVersion = params[39].toString ();
if (n > 40)
s.bootloaderVersion = params[40].toString ();
if (n > 41)
s.maxAllowedTemperature = params[41].toFloat ();
if (n > 42)
s.pdsVoltageMax = params[42].toFloat ();
if (n > 43)
s.pdsVoltageMin = params[43].toFloat ();
if (n > 44)
s.pdsVoltageSetting = params[44].toFloat ();
if (n > 45)
s.mdsVoltageMax = params[45].toFloat ();
if (n > 46)
s.mdsVoltageMin = params[46].toFloat ();
if (n > 47)
s.eFuseCurrentMax = params[47].toFloat ();
if (n > 48)
s.measuredHardwareVersion = params[48].toString ();
if (n > 49)
s.gyroX = params[49].toInt ();
if (n > 50)
s.gyroY = params[50].toInt ();
if (n > 51)
s.gyroZ = params[51].toInt ();
if (n > 52)
s.accelerationX = params[52].toInt ();
if (n > 53)
s.accelerationY = params[53].toInt ();
if (n > 54)
s.accelerationZ = params[54].toInt ();
if (n > 55)
s.purge = params[55].toInt ();
if (n > 56)
s.purgeState = params[56].toInt ();
if (n > 57)
s.purgeDelay = params[57].toInt ();
if (n > 58)
s.purgeCounter = params[58].toInt ();
if (n > 59)
s.cleaningStartPeriod = params[59].toInt ();
if (n > 60)
s.cleaningEndPeriod = params[60].toInt ();
if (n > 61)
s.cleaningStepPeriod = params[61].toInt ();
if (n > 62)
s.cleaningPeriod = params[62].toInt ();
return s;
}
|