aboutsummaryrefslogtreecommitdiffstats
path: root/src/Xpl2PhStatus.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Xpl2PhStatus.h')
-rw-r--r--src/Xpl2PhStatus.h155
1 files changed, 155 insertions, 0 deletions
diff --git a/src/Xpl2PhStatus.h b/src/Xpl2PhStatus.h
new file mode 100644
index 0000000..75a04a0
--- /dev/null
+++ b/src/Xpl2PhStatus.h
@@ -0,0 +1,155 @@
+/**
+ * @file Xpl2PhStatus.h
+ * @brief Structured PH status message (EV_STATUS_MSG_PH, Appendix B).
+ */
+#pragma once
+
+#include <QObject>
+#include <QString>
+
+class Xpl2PhStatus
+{
+ Q_GADGET
+
+ Q_PROPERTY (int controllerId MEMBER controllerId)
+ Q_PROPERTY (int statusLevel MEMBER statusLevel)
+ Q_PROPERTY (int printheadId MEMBER printheadId)
+
+ /* Level 1 fields (4-31) */
+ Q_PROPERTY (float temperature MEMBER temperature)
+ Q_PROPERTY (float humidity MEMBER humidity)
+ Q_PROPERTY (float mcuTemperature MEMBER mcuTemperature)
+ Q_PROPERTY (float pdsVoltage MEMBER pdsVoltage)
+ Q_PROPERTY (float mdsVoltage MEMBER mdsVoltage)
+ Q_PROPERTY (float systemVoltage MEMBER systemVoltage)
+ Q_PROPERTY (float eFuseCurrent MEMBER eFuseCurrent)
+ Q_PROPERTY (float nozzleCurrent MEMBER nozzleCurrent)
+ Q_PROPERTY (float vdd MEMBER vdd)
+ Q_PROPERTY (bool temperatureTrip MEMBER temperatureTrip)
+ Q_PROPERTY (bool pdsOverVoltageTrip MEMBER pdsOverVoltageTrip)
+ Q_PROPERTY (bool pdsUnderVoltageTrip MEMBER pdsUnderVoltageTrip)
+ Q_PROPERTY (bool pdsSupplyErrorTrip MEMBER pdsSupplyErrorTrip)
+ Q_PROPERTY (bool mdsOverVoltageTrip MEMBER mdsOverVoltageTrip)
+ Q_PROPERTY (bool mdsUnderVoltageTrip MEMBER mdsUnderVoltageTrip)
+ Q_PROPERTY (bool supplyOverVoltageTrip MEMBER supplyOverVoltageTrip)
+ Q_PROPERTY (bool supplyUnderVoltageTrip MEMBER supplyUnderVoltageTrip)
+ Q_PROPERTY (bool eFuseOverCurrentTrip MEMBER eFuseOverCurrentTrip)
+ Q_PROPERTY (
+ bool eFuseInputVoltageErrorTrip MEMBER eFuseInputVoltageErrorTrip)
+ Q_PROPERTY (bool eFuseFaultTrip MEMBER eFuseFaultTrip)
+ Q_PROPERTY (bool flashFaultyTrip MEMBER flashFaultyTrip)
+ Q_PROPERTY (bool flashChecksumErrorTrip MEMBER flashChecksumErrorTrip)
+ Q_PROPERTY (float dutyCycle MEMBER dutyCycle)
+ Q_PROPERTY (float pwmFrequency MEMBER pwmFrequency)
+ Q_PROPERTY (int drive MEMBER drive)
+ Q_PROPERTY (float nozzleDriveFrequency MEMBER nozzleDriveFrequency)
+ Q_PROPERTY (float nozzleDriveDutyCycle MEMBER nozzleDriveDutyCycle)
+ Q_PROPERTY (int onTimeSeconds MEMBER onTimeSeconds)
+
+ /* Level 2 fields (32-62) */
+ Q_PROPERTY (int accelerometerId MEMBER accelerometerId)
+ Q_PROPERTY (QString mcuId MEMBER mcuId)
+ Q_PROPERTY (QString flashMemoryId MEMBER flashMemoryId)
+ Q_PROPERTY (
+ int temperatureSensorSerialNumber MEMBER temperatureSensorSerialNumber)
+ Q_PROPERTY (QString mcuHardwareVersion MEMBER mcuHardwareVersion)
+ Q_PROPERTY (QString mcuFirmwareVersion MEMBER mcuFirmwareVersion)
+ Q_PROPERTY (QString mcuFirmwareVariant MEMBER mcuFirmwareVariant)
+ Q_PROPERTY (QString fpgaHardwareVersion MEMBER fpgaHardwareVersion)
+ Q_PROPERTY (QString fpgaFirmwareVersion MEMBER fpgaFirmwareVersion)
+ Q_PROPERTY (QString bootloaderVersion MEMBER bootloaderVersion)
+ Q_PROPERTY (float maxAllowedTemperature MEMBER maxAllowedTemperature)
+ Q_PROPERTY (float pdsVoltageMax MEMBER pdsVoltageMax)
+ Q_PROPERTY (float pdsVoltageMin MEMBER pdsVoltageMin)
+ Q_PROPERTY (float pdsVoltageSetting MEMBER pdsVoltageSetting)
+ Q_PROPERTY (float mdsVoltageMax MEMBER mdsVoltageMax)
+ Q_PROPERTY (float mdsVoltageMin MEMBER mdsVoltageMin)
+ Q_PROPERTY (float eFuseCurrentMax MEMBER eFuseCurrentMax)
+ Q_PROPERTY (QString measuredHardwareVersion MEMBER measuredHardwareVersion)
+ Q_PROPERTY (int gyroX MEMBER gyroX)
+ Q_PROPERTY (int gyroY MEMBER gyroY)
+ Q_PROPERTY (int gyroZ MEMBER gyroZ)
+ Q_PROPERTY (int accelerationX MEMBER accelerationX)
+ Q_PROPERTY (int accelerationY MEMBER accelerationY)
+ Q_PROPERTY (int accelerationZ MEMBER accelerationZ)
+ Q_PROPERTY (int purge MEMBER purge)
+ Q_PROPERTY (int purgeState MEMBER purgeState)
+ Q_PROPERTY (int purgeDelay MEMBER purgeDelay)
+ Q_PROPERTY (int purgeCounter MEMBER purgeCounter)
+ Q_PROPERTY (int cleaningStartPeriod MEMBER cleaningStartPeriod)
+ Q_PROPERTY (int cleaningEndPeriod MEMBER cleaningEndPeriod)
+ Q_PROPERTY (int cleaningStepPeriod MEMBER cleaningStepPeriod)
+ Q_PROPERTY (int cleaningPeriod MEMBER cleaningPeriod)
+
+public:
+ int controllerId = 0;
+ int statusLevel = 0;
+ int printheadId = 0;
+
+ /* Level 1 */
+ float temperature = 0;
+ float humidity = 0;
+ float mcuTemperature = 0;
+ float pdsVoltage = 0;
+ float mdsVoltage = 0;
+ float systemVoltage = 0;
+ float eFuseCurrent = 0;
+ float nozzleCurrent = 0;
+ float vdd = 0;
+ bool temperatureTrip = false;
+ bool pdsOverVoltageTrip = false;
+ bool pdsUnderVoltageTrip = false;
+ bool pdsSupplyErrorTrip = false;
+ bool mdsOverVoltageTrip = false;
+ bool mdsUnderVoltageTrip = false;
+ bool supplyOverVoltageTrip = false;
+ bool supplyUnderVoltageTrip = false;
+ bool eFuseOverCurrentTrip = false;
+ bool eFuseInputVoltageErrorTrip = false;
+ bool eFuseFaultTrip = false;
+ bool flashFaultyTrip = false;
+ bool flashChecksumErrorTrip = false;
+ float dutyCycle = 0;
+ float pwmFrequency = 0;
+ int drive = 0;
+ float nozzleDriveFrequency = 0;
+ float nozzleDriveDutyCycle = 0;
+ int onTimeSeconds = 0;
+
+ /* Level 2 */
+ int accelerometerId = 0;
+ QString mcuId;
+ QString flashMemoryId;
+ int temperatureSensorSerialNumber = 0;
+ QString mcuHardwareVersion;
+ QString mcuFirmwareVersion;
+ QString mcuFirmwareVariant;
+ QString fpgaHardwareVersion;
+ QString fpgaFirmwareVersion;
+ QString bootloaderVersion;
+ float maxAllowedTemperature = 0;
+ float pdsVoltageMax = 0;
+ float pdsVoltageMin = 0;
+ float pdsVoltageSetting = 0;
+ float mdsVoltageMax = 0;
+ float mdsVoltageMin = 0;
+ float eFuseCurrentMax = 0;
+ QString measuredHardwareVersion;
+ int gyroX = 0;
+ int gyroY = 0;
+ int gyroZ = 0;
+ int accelerationX = 0;
+ int accelerationY = 0;
+ int accelerationZ = 0;
+ int purge = 0;
+ int purgeState = 0;
+ int purgeDelay = 0;
+ int purgeCounter = 0;
+ int cleaningStartPeriod = 0;
+ int cleaningEndPeriod = 0;
+ int cleaningStepPeriod = 0;
+ int cleaningPeriod = 0;
+
+ /** Parse from EV_STATUS_MSG_PH params (after command token). */
+ static Xpl2PhStatus fromParams (const QVariantList &params);
+};