Index: AlarmMapping.csv =================================================================== diff -u -rfd1b031dd0c66addaa751f5d69dfef46bdfc6b7a -r9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30 --- AlarmMapping.csv (.../AlarmMapping.csv) (revision fd1b031dd0c66addaa751f5d69dfef46bdfc6b7a) +++ AlarmMapping.csv (.../AlarmMapping.csv) (revision 9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30) @@ -115,10 +115,10 @@ 114,"HD venous air bubble detector self-test failure." 115,"DG temperature sensor out of range." 116,"DG temperature sensor ADC out of range." - 117,"DG primary heater internal temperature out of range." - 118,"DG primary heater cold junction temperature out of range." - 119,"DG trimmer heater internal temperature out of range." - 120,"DG trimmer heater cold junction temperature out of range." + 117,"This alarm ID is available for use." + 118,"This alarm ID is available for use." + 119,"This alarm ID is available for use." + 120,"This alarm ID is available for use." 121,"DG main primary heater voltage out of range." 122,"DG small primary heater voltage out of range." 123,"DG trimmer heater voltage out of range." @@ -159,8 +159,8 @@ 158,"This alarm ID is available for use." 159,"Dialysate inlet pump failed flow vs motor speed check." 160,"Blood pump rotor speed too high." - 161,"Blood flow sensor signal strength too low." - 162,"Dialysate flow sensor signal strength too low." + 161,"This alarm ID is available for use." + 162,"This alarm ID is available for use." 163,"HD sees primary load cell for reservoir 1 change too much too fast." 164,"HD sees primary load cell for reservoir 2 change too much too fast." 165,"HD in treatment rinseback operation timeout." Index: denali.pro =================================================================== diff -u -r6a4027856dfbe2ff3a4d44a2140ce78bd9bcfc2e -r9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30 --- denali.pro (.../denali.pro) (revision 6a4027856dfbe2ff3a4d44a2140ce78bd9bcfc2e) +++ denali.pro (.../denali.pro) (revision 9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30) @@ -264,6 +264,7 @@ sources/view/VEventSpy.h \ sources/view/VView.h \ sources/view/VPowerOff.h \ + sources/view/VGeneralEvent.h \ sources/device/DeviceView.h \ \ # ---------- Views - POST sources/view/dg/data/post/VDGPOSTData.h \ @@ -518,6 +519,7 @@ sources/view/VTreatmentCreate.cpp \ sources/view/VEventSpy.cpp \ sources/view/VPowerOff.cpp \ + sources/view/VGeneralEvent.cpp \ sources/device/DeviceView.cpp \ \ # ---------- Views - POST sources/view/dg/data/post/VDGPOSTData.cpp \ Index: denali.pro.user =================================================================== diff -u -rfd1b031dd0c66addaa751f5d69dfef46bdfc6b7a -r9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30 --- denali.pro.user (.../denali.pro.user) (revision fd1b031dd0c66addaa751f5d69dfef46bdfc6b7a) +++ denali.pro.user (.../denali.pro.user) (revision 9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30) @@ -1,6 +1,6 @@ - + EnvironmentId Index: sources/AlarmGenerator.cpp =================================================================== diff -u -r27cc308ff5113a9386899d3c8f8b29962a8498e1 -r9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30 --- sources/AlarmGenerator.cpp (.../AlarmGenerator.cpp) (revision 27cc308ff5113a9386899d3c8f8b29962a8498e1) +++ sources/AlarmGenerator.cpp (.../AlarmGenerator.cpp) (revision 9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30) @@ -23,8 +23,8 @@ GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_NO_RESUME , \ GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_NO_RINSEBACK , \ GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_NO_END_TREATMENT, \ - GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_NO_NEW_TREATMENT, \ } + // GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_NO_NEW_TREATMENT, \ // TODO : recently removed. 3/7/22 // namespace using namespace Gui; Index: sources/gui/GuiGlobals.cpp =================================================================== diff -u -r301c0a2101eb9374145ae274c8d91460fc9a6a62 -r9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30 --- sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision 301c0a2101eb9374145ae274c8d91460fc9a6a62) +++ sources/gui/GuiGlobals.cpp (.../GuiGlobals.cpp) (revision 9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30) @@ -21,6 +21,7 @@ #include "Logger.h" #include "GuiView.h" #include "VEventSpy.h" +#include "VGeneralEvent.h" // POST #include "VHDPOSTData.h" Index: sources/gui/qml/components/DebugDataColumn.qml =================================================================== diff -u -r27cc308ff5113a9386899d3c8f8b29962a8498e1 -r9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30 --- sources/gui/qml/components/DebugDataColumn.qml (.../DebugDataColumn.qml) (revision 27cc308ff5113a9386899d3c8f8b29962a8498e1) +++ sources/gui/qml/components/DebugDataColumn.qml (.../DebugDataColumn.qml) (revision 9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30) @@ -32,7 +32,7 @@ property string textObjectName: "_DebugDataColumn" width : 150 - spacing : -14 + spacing : -15 Text { id: _title text : _root.title @@ -41,6 +41,7 @@ color: Colors.textMain font.pixelSize: fontPixelSizeTitle font.underline: true + bottomPadding: 5 } Repeater { id: _repeater model: _root.model Index: sources/gui/qml/dialogs/DiagnosticsDialog.qml =================================================================== diff -u -r301c0a2101eb9374145ae274c8d91460fc9a6a62 -r9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30 --- sources/gui/qml/dialogs/DiagnosticsDialog.qml (.../DiagnosticsDialog.qml) (revision 301c0a2101eb9374145ae274c8d91460fc9a6a62) +++ sources/gui/qml/dialogs/DiagnosticsDialog.qml (.../DiagnosticsDialog.qml) (revision 9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30) @@ -59,9 +59,10 @@ } DebugDataColumn { id: _DGROPumpColumn + textObjectName :"_DGROPumpData" + title : qsTr(" ROP ") x: col(0) y: row(0) - title: qsTr(" ROP ") model: [ vDGROPump.pressure .toFixed(2) , vDGROPump.flowRate .toFixed(2) , @@ -73,13 +74,13 @@ "Flow", "PWM", "stt"] - textObjectName: "_DGROPumpData" } DebugDataColumn { id: _DGDrainPumpColumn + textObjectName :"_DGDrainPumpData" + title : qsTr(" DRP ") x: col(1) y: row(0) - title: qsTr(" DRP ") model: [ vDGDrainPump.rpmi , vDGDrainPump.dac , @@ -92,13 +93,13 @@ "stt", "Spd", ] - textObjectName: "_DGDrainPumpData" } DebugDataColumn { id: _DGPressuresColumn + textObjectName :"_DGPressuresData" + title : qsTr(" Prssr ") x: col(2) y: row(0) - title: qsTr(" Prssr ") model: [ vDGPressures.roInletPSI .toFixed(2) , vDGPressures.roOutletPSI .toFixed(2) , @@ -111,13 +112,13 @@ "PRd", "PDr", ] - textObjectName: "_DGPressuresData" } DebugDataColumn { id: _DGReservoirColumn + textObjectName :"_DGReservoirData" + title : qsTr(" Rsrvr ") x: col(3) y: row(0) - title: qsTr(" Rsrvr ") model: [ vDGReservoir.activeReservoir , vDGReservoir.fillToVol , @@ -128,13 +129,13 @@ "Fil", "Drn", ] - textObjectName: "_DGReservoirData" } DebugDataColumn { id: _DGHeatersColumn + textObjectName :"_DGHeatersData" + title : qsTr(" Heatrs ") x: col(4) y: row(0) - title: qsTr(" Heatrs ") model: [ vDGHeaters.mainPrimaryDC .toFixed(2), vDGHeaters.smallPrimaryDC .toFixed(2), @@ -145,13 +146,13 @@ "HP2", "HR", ] - textObjectName: "_DGHeatersData" } DebugDataColumn { id: _LoadCellReadingsColumn + textObjectName :"_DGLoadCellReadingsData" + title : qsTr(" LoadCl ") x: col(5) y: row(0) - title: qsTr(" LoadCl ") model: [ vDGLoadCellReadings.reservoir1Prim .toFixed(2) , vDGLoadCellReadings.reservoir1Bkup .toFixed(2) , @@ -164,13 +165,13 @@ "B1", "B2", ] - textObjectName: "_DGLoadCellReadingsData" } DebugDataColumn { id: _DGTemperaturesColumn + textObjectName :"_DGTemperaturesData" + title : qsTr(" Tmprtr ") x: col(6) y: row(0) - title: qsTr(" Tmprtr ") model: [ vDGTemperatures.inletPrimaryHeater .toFixed(2) , vDGTemperatures.outletPrimaryHeater .toFixed(2) , @@ -199,13 +200,13 @@ "HP.Int", "HR.Int", ] - textObjectName: "_DGTemperaturesData" } DebugDataColumn { id: _DGConductivityColumn - x: col(3.8) - y: row(3.5) - title: qsTr(" Conduct ") + textObjectName :"_DGConductivityData" + title : qsTr(" Conduct ") + x: col(3.7) + y: row(3.0) model: [ vDGConductivity.RORejectionRatio .toFixed(3), vDGConductivity.CPi .toFixed(1), @@ -220,14 +221,13 @@ "CD1" , "CD2" , ] - - textObjectName: "_DGConductivityData" } DebugDataColumn { id: _HDAirColumn + textObjectName :"_HDAirData" + title : qsTr(" Air Status ") x: col(6) y: row(4.1) - title: qsTr(" Air Status ") model: [ vHDAirBubble .venousAirBubbleStatus , vHDAirTrap .airTrapLowerLevel , @@ -238,22 +238,23 @@ "ATll", "ATul", ] - textObjectName: "_HDAirData" } DebugDataColumn { id: _DGOperationModeColumn + textObjectName :"_DGOperationModeData" + title : qsTr(" DG Mode ") x: col(2.5) - y: row(2) - title: qsTr(" DG Mode ") + y: row(1.7) model: [ vDGOperationMode.text ] - textObjectName: "_DGOperationModeData" + fontPixelSizeText: 30 } // --- HD --- DebugDataColumn { id: _HDBloodFlowColumn + textObjectName :"_HDBloodFlowData" + title : qsTr(" BP ") x: col(0) - y: row(2.8) - title: qsTr(" BP ") + y: row(2.4) model: [ vTreatmentBloodFlow.bloodFlow_FlowSetPoint , vTreatmentBloodFlow.bloodFlow_MeasuredFlow .toFixed(2) , @@ -274,13 +275,13 @@ "PWM", "Rtr.Cnt", ] - textObjectName: "_HDBloodFlowData" } DebugDataColumn { id: _HDDialysateInletFlowColumn + textObjectName :"_HDInletFlowData" + title : qsTr(" DPi ") x: col(1.2) - y: row(2.8) - title: qsTr(" DPi ") + y: row(2.4) model: [ vTreatmentDialysateFlow.dialysateFlow_FlowSetPoint .toFixed(2) , vTreatmentDialysateFlow.dialysateFlow_MeasuredFlow .toFixed(2) , @@ -299,13 +300,13 @@ "MC.Cur", "PWM", ] - textObjectName: "_HDInletFlowData" } DebugDataColumn { id: _HDDialysateOutletFlowColumn + textObjectName :"_HDOutletFlowData" + title : qsTr(" UF/DPo ") x: col(2.4) - y: row(2.8) - title: qsTr(" UF/DPo ") + y: row(2.4) model: [ vTreatmentUltrafiltration.ultrafiltration_RefUFVol .toFixed(3) , vTreatmentUltrafiltration.ultrafiltration_MeasUFVol .toFixed(3) , @@ -324,13 +325,13 @@ "MC.Cur", "PWM", ] - textObjectName: "_HDOutletFlowData" } DebugDataColumn { id: _HDPressureOcclusionColumn + textObjectName :"_PressureOcclusionData" + title : qsTr(" Prsr Oc ") x: col(3.7) - y: row(2) - title: qsTr(" Prsr Oc ") + y: row(1.7) model: [ vTreatmentPressureOcclusion.arterialPressure .toFixed(2) , vTreatmentPressureOcclusion.venousPressure .toFixed(2) , @@ -341,14 +342,13 @@ "PBo" , "OB" , ] - - textObjectName: "_PressureOcclusionData" } DebugDataColumn { id: _HDSyringePumpColumn + textObjectName :"_HDSyringePumpData" + title : qsTr(" Syringe ") x: col(4.6) - y: row(2) - title: qsTr(" Syringe ") + y: row(1.7) model: [ vHDSyringePump.syringePumpState , vHDSyringePump.heparinState , @@ -376,32 +376,22 @@ "status", ] - textObjectName: "_HDSyringePumpColumn" } DebugDataColumn { id: _HDOperationModeColumn + textObjectName :"_HDOperationModeData" x: col(0.5) - y: row(2) - title: qsTr(" HD Mode ") + y: row(1.7) + title : qsTr(" HD Mode ") model: [ vHDOperationMode.text ] - textObjectName: "_HDOperationModeData" + fontPixelSizeText: 30 } - Text { id : _canbusFaultCountText - x: col(0) - y: row(6.8) - property int count: 0 - visible: true - text: qsTr("CAN Faults: %1").arg(count) - horizontalAlignment: Text.AlignLeft - color: Colors.textMain - font.pixelSize: 38 - } - DebugDataColumn { id: _DGValvesStatesColumn + textObjectName :"_DGValvesStatesData" + title : qsTr(" DG Valves ") x: col(7) y: row(0) - title: qsTr(" DG Valves ") model: [ vDGValvesStates.valveStates_01, vDGValvesStates.valveStates_02, @@ -432,14 +422,13 @@ "VR2", "VRD", ] - - textObjectName: "_DGValveData" } DebugDataColumn { id: _HDBloodLeakColumn + textObjectName :"_HDBloodLeakData" + title : qsTr(" BLD ") x: col(7) - y: row(4.4) - title: qsTr(" BLD ") + y: row(4.5) model: [ vHDBloodLeak.bloodLeakDetectSetPoint , vHDBloodLeak.bloodLeakZeroedStatus , @@ -453,102 +442,127 @@ "DtLvl" , ] - - textObjectName: "_DGConductivityData" } - TouchRect { - x : col(6.6) - y : row(5.8) - width : 150 - height : 35 - text.text : "Get Version" - onClicked : vAdjustmentVersions.doAdjustment() + // TODO: Should be unnecessary since the first communication message with UI/HD is the version. + // TouchRect { + // x : col(6.6) + // y : row(5.8) + // width : 150 + // height : 35 + // text.text : "Get Version" + // onClicked : vAdjustmentVersions.doAdjustment() + // } + + DebugDataColumn { id: _HDAlarmTopColumn + textObjectName :"_HDAlarmTopData" + title : qsTr(" Alarms ") + x: col(6) + y: row(5.5) + model: [ _alarmItem.alarm_AlarmID ] + label: [ "Top" ] } DebugDataColumn { id: _HDVersionsColumn + textObjectName :"_HDVersionsData" + title : "" x: col(6.8) y: row(6) fontPixelSizeText: 30 - title: "" - model: [ "HD: v%1.%2.%3-%4 %5 v%6.%7 %8 CRev: %9" + model: [ "DG: v%1.%2.%3-%4 v%5.%6.%7-%8 c%9" .arg(vAdjustmentVersions.hdVerMajor) .arg(vAdjustmentVersions.hdVerMinor) .arg(vAdjustmentVersions.hdVerMicro) .arg(vAdjustmentVersions.hdVerBuild) - .arg(vAdjustmentVersions.hdVerFPGAId) .arg(vAdjustmentVersions.hdVerFPGAMajor) .arg(vAdjustmentVersions.hdVerFPGAMinor) .arg(vAdjustmentVersions.hdVerFPGALab) + .arg(vAdjustmentVersions.hdVerFPGAId) .arg(vAdjustmentVersions.hdVerCompatibilityRev) ] - textObjectName: "_HDVersions" } + DebugDataColumn { id: _DGVersionsColumn + textObjectName :"_DGVersionsData" + title : "" x: col(6.8) y: row(6.5) fontPixelSizeText: 30 - title: "" - model: [ "DG: v%1.%2.%3-%4 %5 v%6.%7 %8 CRev: %9" + model: [ "DG: v%1.%2.%3-%4 v%5.%6.%7-%8 c%9" .arg(vAdjustmentVersions.dgVerMajor) .arg(vAdjustmentVersions.dgVerMinor) .arg(vAdjustmentVersions.dgVerMicro) .arg(vAdjustmentVersions.dgVerBuild) - .arg(vAdjustmentVersions.dgVerFPGAId) .arg(vAdjustmentVersions.dgVerFPGAMajor) .arg(vAdjustmentVersions.dgVerFPGAMinor) .arg(vAdjustmentVersions.dgVerFPGALab) + .arg(vAdjustmentVersions.dgVerFPGAId) .arg(vAdjustmentVersions.dgVerCompatibilityRev) ] - textObjectName: "_DGVersions" } + DebugDataColumn { id: _PreTreatmentStatesColumn + textObjectName :"_PreTreatmentStatesData" + title : qsTr(" PreTx States ") + x: col(0.7) + y: row(5.5) + model: [ "%1,%2,%3,%4,%5,%6,%7,%8" + .arg(vPreTreatmentStates.subMode ) + .arg(vPreTreatmentStates.waterSampleState ) + .arg(vPreTreatmentStates.selfTestNoCartridgeState) + .arg(vPreTreatmentStates.installationState ) + .arg(vPreTreatmentStates.selfTestDryState ) + .arg(vPreTreatmentStates.primeState ) + .arg(vPreTreatmentStates.recirculateState ) + .arg(vPreTreatmentStates.patientConnectionState ) + ] + } Text { id : _mouseEventCountText - x: col(2) - y: row(6.8) + x: col(0.3) + y: row(6.4) visible: true - text: String("Touch Count: %1,%2") + text: String("Touch: %1,%2") .arg(GuiEventSpy.touchCount /*.toString().padStart(4,'0')*/ ) .arg(GuiEventSpy.touchPoints /*.toString().padStart(4,'0')*/ ) horizontalAlignment: Text.AlignLeft color: Colors.textMain - font.pixelSize: 38 + font.pixelSize: 30 MouseArea { anchors.fill: _mouseEventCountText onClicked: GuiEventSpy.doTouchReset() } } - DebugDataColumn { id: _PreTreatmentStates - x: col(1.5) - y: row(6) - title: qsTr(" PreTx States ") - model: [ "%1, %2, %3, %4, %5, %6, %7, %8" - .arg(vPreTreatmentStates.subMode ) - .arg(vPreTreatmentStates.waterSampleState ) - .arg(vPreTreatmentStates.selfTestNoCartridgeState) - .arg(vPreTreatmentStates.installationState ) - .arg(vPreTreatmentStates.selfTestDryState ) - .arg(vPreTreatmentStates.primeState ) - .arg(vPreTreatmentStates.recirculateState ) - .arg(vPreTreatmentStates.patientConnectionState ) - ] - textObjectName: "_PreTreatmentStates" + Text { id : _canbusFaultCountText + text: qsTr("CANerr: %1").arg(count) + x: col(0.2) + y: row(6.8) + property int count: 0 + visible: true + horizontalAlignment: Text.AlignLeft + color: Colors.textMain + font.pixelSize: 30 } - DebugDataColumn { id: _HDAlarmTop - x: col(3) - y: row(6) - title: qsTr(" Alarms ") - model: [ - _alarmItem.alarm_AlarmID, - ] - label: [ - "Top" , - ] + Text { id : _hdResetInformation + x: col(2.0) + y: row(6.4) + visible: true + text: "HDrst:" + vGeneralEvent.hdReset + horizontalAlignment: Text.AlignLeft + color: Colors.textMain + font.pixelSize: 30 + } - textObjectName: "_HDAlarmTopData" + Text { id : _dgResetInformation + x: col(2.0) + y: row(6.8) + visible: true + text: "DGrst:" + vGeneralEvent.dgReset + horizontalAlignment: Text.AlignLeft + color: Colors.textMain + font.pixelSize: 30 } Connections { target: _GuiView Index: sources/gui/qml/main.qml =================================================================== diff -u -r301c0a2101eb9374145ae274c8d91460fc9a6a62 -r9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30 --- sources/gui/qml/main.qml (.../main.qml) (revision 301c0a2101eb9374145ae274c8d91460fc9a6a62) +++ sources/gui/qml/main.qml (.../main.qml) (revision 9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30) @@ -22,6 +22,7 @@ import Gui.Actions 0.1 // View classes +import VGeneralEvent 0.1 import VHDAccelerometer 0.1 import VHDSyringePump 0.1 import VHDBloodLeak 0.1 @@ -151,6 +152,13 @@ } + VGeneralEvent { id: vGeneralEvent } + VHDAccelerometer { id: vHDAccelerometer } + VHDSyringePump { id: vHDSyringePump } + VHDAirBubble { id: vHDAirBubble } + VHDBloodLeak { id: vHDBloodLeak } + VHDAirTrap { id: vHDAirTrap } + VTreatmentDialysateFlow { id: vTreatmentDialysateFlow } VTreatmentPressureOcclusion { id: vTreatmentPressureOcclusion } VTreatmentUltrafiltration { id: vTreatmentUltrafiltration } @@ -159,11 +167,6 @@ VTreatmentRinseback { id: vTreatmentRinseback } VTreatmentRecirculate { id: vTreatmentRecirculate } VTreatmentStop { id: vTreatmentStop } - VHDAccelerometer { id: vHDAccelerometer } - VHDSyringePump { id: vHDSyringePump } - VHDAirBubble { id: vHDAirBubble } - VHDBloodLeak { id: vHDBloodLeak } - VHDAirTrap { id: vHDAirTrap } // ---- DG VDGDrainPump { id: vDGDrainPump } VDGHeaters { id: vDGHeaters } Index: sources/view/VGeneralEvent.cpp =================================================================== diff -u --- sources/view/VGeneralEvent.cpp (revision 0) +++ sources/view/VGeneralEvent.cpp (revision 9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30) @@ -0,0 +1,101 @@ +/*! + * + * Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file VGeneralEvent.cpp + * \author (last) Behrouz NematiPour + * \date (last) 07-Mar-2022 + * \author (original) Behrouz NematiPour + * \date (original) 07-Mar-2022 + * + */ +#include "VGeneralEvent.h" + +// Qt +#include + +// Project +#include "GuiController.h" + +#define GET_VALUE(vVALUE) \ + Gui::GuiAlarmDataTypes fieldType; \ + fieldType = static_cast(vData.mFieldDescriptor1); \ + switch(fieldType) { \ + case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_NONE : vVALUE( 0 ); break; \ + case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_U32 : vVALUE( vData.mDataFieldU1 ); break; \ + case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_S32 : vVALUE( vData.mDataFieldS1 ); break; \ + case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_F32 : vVALUE( vData.mDataFieldF1 ); break; \ + case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_BOOL : vVALUE( vData.mDataFieldB1 ); break; \ + default : vVALUE( 0 ); break; \ + } + + +VIEW_DEF_CLASS(VGeneralEvent) + +void View::VGeneralEvent::initConnections() { + ACTION_VIEW_CONNECTION( HDGeneralEventData ); + ACTION_VIEW_CONNECTION( DGGeneralEventData ); +} + +/*! + * \brief View::VGeneralEvent::onActionReceive + * \details received response model data handler + * \param vData - model data + */ +void View::VGeneralEvent::onActionReceive(const HDGeneralEventData &vData) +{ + QDateTime dateTime = QDateTime::currentDateTime(); + + hdEventID ( vData.mEventID ); + hdFieldDescriptor1 ( vData.mFieldDescriptor1 ); + hdDataFieldU1 ( vData.mDataFieldU1 ); + hdDataFieldS1 ( vData.mDataFieldS1 ); + hdDataFieldF1 ( vData.mDataFieldF1 ); + hdDataFieldB1 ( vData.mDataFieldB1 ); + hdFieldDescriptor2 ( vData.mFieldDescriptor2 ); + hdDataFieldU2 ( vData.mDataFieldU2 ); + hdDataFieldS2 ( vData.mDataFieldS2 ); + hdDataFieldF2 ( vData.mDataFieldF2 ); + hdDataFieldB2 ( vData.mDataFieldB2 ); + + GET_VALUE(hdValue) + + if( vData.mEventID == eReset ) + hdReset(QString("%1,%2") + .arg(dateTime.toString(_resetFormat)) + .arg(_hdValue.toString()) + ); +} + +/*! + * \brief View::VGeneralEvent::onActionReceive + * \details received response model data handler + * \param vData - model data + */ +void View::VGeneralEvent::onActionReceive(const DGGeneralEventData &vData) +{ + QDateTime dateTime = QDateTime::currentDateTime(); + + dgEventID ( vData.mEventID ); + dgFieldDescriptor1 ( vData.mFieldDescriptor1 ); + dgDataFieldU1 ( vData.mDataFieldU1 ); + dgDataFieldS1 ( vData.mDataFieldS1 ); + dgDataFieldF1 ( vData.mDataFieldF1 ); + dgDataFieldB1 ( vData.mDataFieldB1 ); + dgFieldDescriptor2 ( vData.mFieldDescriptor2 ); + dgDataFieldU2 ( vData.mDataFieldU2 ); + dgDataFieldS2 ( vData.mDataFieldS2 ); + dgDataFieldF2 ( vData.mDataFieldF2 ); + dgDataFieldB2 ( vData.mDataFieldB2 ); + + GET_VALUE(dgValue) + + if( vData.mEventID == eReset ) + dgReset(QString("%1,%2") + .arg(dateTime.toString(_resetFormat)) + .arg(_dgValue.toString()) + ); +} Index: sources/view/VGeneralEvent.h =================================================================== diff -u --- sources/view/VGeneralEvent.h (revision 0) +++ sources/view/VGeneralEvent.h (revision 9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30) @@ -0,0 +1,84 @@ +/*! + * + * Copyright (c) 2020-2022 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file VGeneralEvent.h + * \author (last) Behrouz NematiPour + * \date (last) 07-Mar-2022 + * \author (original) Behrouz NematiPour + * \date (original) 07-Mar-2022 + * + */ +#pragma once + +// Qt +#include + +// Project +#include "main.h" // Doxygen : do not remove +#include "VView.h" +#include "MHDGeneralEvent.h" +#include "MDGGeneralEvent.h" + +// namespace +namespace View { + +/*! + * \brief The VTreatmentRanges class + * \details View for Model's data representation. + * + * \sa Model::MTreatmentRanges + * + */ +class VGeneralEvent : public QObject +{ + Q_OBJECT + + const char *_resetFormat = "MMddyy,HHmmss"; + enum { zero = 0 }; + + enum Even_ID_Enum { + eReset = 0, + }; + + // void hdValue(const HDGeneralEventData &vHDGeneralEventData); + // void hdValue(const DGGeneralEventData &vDGGeneralEventData); + + PROPERTY( quint32 , hdEventID , 0) + PROPERTY( quint32 , hdFieldDescriptor1 , 0) + PROPERTY( quint32 , hdDataFieldU1 , 0) + PROPERTY( qint32 , hdDataFieldS1 , 0) + PROPERTY( float , hdDataFieldF1 , 0) + PROPERTY( bool , hdDataFieldB1 , 0) + PROPERTY( quint32 , hdFieldDescriptor2 , 0) + PROPERTY( quint32 , hdDataFieldU2 , 0) + PROPERTY( qint32 , hdDataFieldS2 , 0) + PROPERTY( float , hdDataFieldF2 , 0) + PROPERTY( bool , hdDataFieldB2 , 0) + PROPERTY( QVariant , hdValue , 0) + + PROPERTY( quint32 , dgEventID , 0) + PROPERTY( quint32 , dgFieldDescriptor1 , 0) + PROPERTY( quint32 , dgDataFieldU1 , 0) + PROPERTY( qint32 , dgDataFieldS1 , 0) + PROPERTY( float , dgDataFieldF1 , 0) + PROPERTY( bool , dgDataFieldB1 , 0) + PROPERTY( quint32 , dgFieldDescriptor2 , 0) + PROPERTY( quint32 , dgDataFieldU2 , 0) + PROPERTY( qint32 , dgDataFieldS2 , 0) + PROPERTY( float , dgDataFieldF2 , 0) + PROPERTY( bool , dgDataFieldB2 , 0) + PROPERTY( QVariant , dgValue , 0) + + + PROPERTY( QString , hdReset ,"") + PROPERTY( QString , dgReset ,"") + + VIEW_DEC_CLASS(VGeneralEvent ) + VIEW_DEC_SLOT (HDGeneralEventData ) + VIEW_DEC_SLOT (DGGeneralEventData ) +}; +} Index: sources/view/VView.h =================================================================== diff -u -r301c0a2101eb9374145ae274c8d91460fc9a6a62 -r9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30 --- sources/view/VView.h (.../VView.h) (revision 301c0a2101eb9374145ae274c8d91460fc9a6a62) +++ sources/view/VView.h (.../VView.h) (revision 9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30) @@ -101,6 +101,7 @@ //--------------------------------------------------------------------------------// #define REGISTER_VIEW_TYPES \ using namespace View; \ + REGISTER_TYPE( VGeneralEvent ) \ /* POST */ \ REGISTER_TYPE( VHDPOSTData ) \ REGISTER_TYPE( VDGPOSTData ) \ Index: sources/view/hd/alarm/VAlarmStatus.cpp =================================================================== diff -u -r27cc308ff5113a9386899d3c8f8b29962a8498e1 -r9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30 --- sources/view/hd/alarm/VAlarmStatus.cpp (.../VAlarmStatus.cpp) (revision 27cc308ff5113a9386899d3c8f8b29962a8498e1) +++ sources/view/hd/alarm/VAlarmStatus.cpp (.../VAlarmStatus.cpp) (revision 9abc1790bb39fb52bf5a2bd113bc8957e4a1fc30) @@ -133,7 +133,7 @@ alarm_Flag_noResume (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_NO_RESUME )); alarm_Flag_noRinseback (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_NO_RINSEBACK )); alarm_Flag_noEndTreatment (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_NO_END_TREATMENT )); - alarm_Flag_noNewTreatment (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_NO_NEW_TREATMENT )); + // alarm_Flag_noNewTreatment (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_NO_NEW_TREATMENT )); // TODO : recently removed. 3/7/22 alarm_Flag_UserMustAck (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_USER_MUST_ACK )); alarm_Flag_alarmsToEscalate (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_ALARMS_TO_ESCALATE )); alarm_Flag_alarmsLampOn (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_LAMP_ON ));