/** * @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); };