From fa095de6cc8ec5a5b5c14091f2b3179ad7071876 Mon Sep 17 00:00:00 2001 From: Thomas Vanbesien Date: Mon, 16 Mar 2026 16:19:49 +0100 Subject: EV_ events with Q_GADGET status types, mock periodic emission, tabbed demo UI --- src/Xpl2PhStatus.h | 155 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 src/Xpl2PhStatus.h (limited to 'src/Xpl2PhStatus.h') 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 +#include + +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 ¶ms); +}; -- cgit v1.2.3