Index: denali.pro.user =================================================================== diff -u -rb3eb8bc9696c4db9867ad1cf13b47c455a94e0fe -r6816b783f50e08267aa016d64350bc020080d901 --- denali.pro.user (.../denali.pro.user) (revision b3eb8bc9696c4db9867ad1cf13b47c455a94e0fe) +++ denali.pro.user (.../denali.pro.user) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -1,6 +1,6 @@ - + EnvironmentId Index: en_US.udic =================================================================== diff -u -rb3eb8bc9696c4db9867ad1cf13b47c455a94e0fe -r6816b783f50e08267aa016d64350bc020080d901 --- en_US.udic (.../en_US.udic) (revision b3eb8bc9696c4db9867ad1cf13b47c455a94e0fe) +++ en_US.udic (.../en_US.udic) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -115,3 +115,7 @@ BUSFault ACKBACK ActionID +MDGOperation +VDGOperation +csv +Sys Index: main.cpp =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -r6816b783f50e08267aa016d64350bc020080d901 --- main.cpp (.../main.cpp) (revision 7077e38c74db9cccb5496ffefcf8936c0916de76) +++ main.cpp (.../main.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -308,10 +308,9 @@ _Logger.enableConsoleOut(gConsoleoutLogs); } - LOG_EVENT("UI," + QObject::tr("Application %1 Started,%2") - .arg(app.applicationName ()) - .arg(app.applicationVersion()) - ); + LOG_DEBUG("UI," + QString("Application %1 Started") + .arg(app.applicationName())); + LOG_EVENT(app.applicationVersion()); if (gFakeInterval) { QString msg = " ~~ !!!!! APPLICATION RUNNING IN THE TEST MODE !!!!! ~~ "; Index: resources/settings/Instructions/Acid line connect v2.png =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -r6816b783f50e08267aa016d64350bc020080d901 Binary files differ Index: resources/settings/Instructions/Bicarb line connect v2.png =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -r6816b783f50e08267aa016d64350bc020080d901 Binary files differ Index: resources/settings/Instructions/Dialysate lines to DG Y v4-01.png =================================================================== diff -u Binary files differ Index: resources/settings/Instructions/Dialysate lines to DG v2.png =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -r6816b783f50e08267aa016d64350bc020080d901 Binary files differ Fisheye: Tag 6816b783f50e08267aa016d64350bc020080d901 refers to a dead (removed) revision in file `resources/settings/Instructions/Instructions.conf'. Fisheye: No comparison available. Pass `N' to diff? Index: resources/settings/Instructions/Remove_patient connection temp.png =================================================================== diff -u Binary files differ Index: resources/settings/Instructions/Twist shunt_temp.png =================================================================== diff -u Binary files differ Index: resources/settings/Instructions/cassette clamp release v1.png =================================================================== diff -u Binary files differ Index: resources/settings/Instructions/cassette load_v1.png =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -r6816b783f50e08267aa016d64350bc020080d901 Binary files differ Index: resources/settings/Instructions/connect Bicarbonate Line-v1-01.png =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -r6816b783f50e08267aa016d64350bc020080d901 Binary files differ Index: resources/settings/Instructions/connect acid line v2-01.png =================================================================== diff -u Binary files differ Index: resources/settings/Instructions/connect bicarb ine-v2-01.png =================================================================== diff -u Binary files differ Index: resources/settings/Instructions/insert cassette v2-01-01.png =================================================================== diff -u Binary files differ Index: resources/settings/Instructions/install lower cap v1-01.png =================================================================== diff -u Binary files differ Index: resources/settings/Instructions/install top cap v1-01.png =================================================================== diff -u Binary files differ Index: resources/settings/Instructions/instructions.conf =================================================================== diff -u --- resources/settings/Instructions/instructions.conf (revision 0) +++ resources/settings/Instructions/instructions.conf (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -0,0 +1,80 @@ +[Sample^Water Sample] +Place cup in the water sampling pocket. Press and hold the "Water Sample" button. = water sampling_v2.png + +[Sample^Water Sample Result] +Test the water sample per your clinic's instructions and enter the result. = temp_water_test.png + +[Sample^Water Sample Result Failed] +Water sample result failed. = logo.png + +[Consumables^Consumables Installation] +Open the DG concentrate door. = concentrate door open-v1.png +Remove the bottom acid/bicarbonate cap. = remove Acid_Bicab cap-v2.png +Connect the acid concentrate to the acid port. = connect acid line v2-01.png +Connect the bicarbonate concentrate to the bicarbonate port. = connect bicarb ine-v2-01 + +[Disposables^Cartridge Installation] +Open the front panel door. = door up v2.png +Unlock the pump track by moving the lever to its upward position. = cassette clamp release v1.png +Install the cartridge using the alignment pins. = insert cassette v2-01-01.png +Lock the pump track by moving the lever to its downward position. = cassette clamp lock v2-01.png + +[Disposables^Cartridge Connection] +Connect the cartridge blood and dialysis fluid lines to the the dialyzer. = filter connect_72.png +Insert dialyzer into the clamps. = filter load_72.png +Connect the cartridge tubing line to the air vent port. = PBo connect_72.png +Remove the top dialysis fluid cap DG system. = remove top cap v2-01.png +Connect the cartridge dialysis fluid lines to the DG fluid ports. = Dialysate lines to DG Y v4-01.png + +[Disposables^Heparin Syringe] +Fill a syringe with heparin and connect the cartridge heparin tubing line. = syringe connect_72.png +Insert syringe into infusion pump housing. = syringe connected insert v2.png + +[Disposables^Saline Bag] +Hang the saline bag on the left side hook. Spike a saline bag and connect it to the cartridge saline line. = saline connect_72.png + +[Connection^Patient Connection] +Wash your hands and establish vascular access per your clinic's instructions. = logo.png +Pinch arterial clamp and venous clamp on located on the cartridge patient lines. = pinch paient lines v2.png +Remove arterial and venous shunt. = untwist stunt_72.png +Connect arterial and venous cartridge lines to your patient access lines. = alt connect fistula_72.png + +[Connection^Start Treatment] +Unpinch arterial clamp and venous clamp located on the cartridge patient lines. = unclamp_patient_lines_temp + + +[^Rinseback Setup] +Pinch arterial line and saline bag line. = logo.png +Connect arterial line to the saline bag. = arterial to saline_v1.png +Unpinch arterial line and saline back line. = logo.png + + +[^Rinseback Complete] +Pinch arterial and venous line after rinseback is complete. = pinch paient lines v2.png + +[Disconnection^Patient Disconnection] +Pinch arterial clamp and venous clamp on located on the cartridge patient lines and access lines. = pinch paient lines v2.png +Disconnect arterial and venous cartridge lines from your patient access lines. = Remove_patient connection temp.png + +[Disposables^Disposables Removal] +Shunt the arterial and venous lines on the cartridge. = Twist shunt_temp.png +Disconnect the cartridge tubing line connected to the air vent port. = pbo release v1.png +Remove heparin syringe from the infusion pump housing. = syringe removal v1.png +Disconnect cartridge dialysate lines and connect ends together. Install top dialysis fluid cap. = install top cap v1-01.png +Disconnect acid and bicarbonate concentrates. Install bottom concentrate fluid cap. = install lower cap v1-01.png +Unlock the pump track by moving the lever to its upward position. = cassette clamp release v1.png +Remove cartridge and dialyzer from the HD device. = logo.png + + +[^Recirculate] +Recirculate 0 =logo.png +Recirculate 1 =logo.png +Recirculate 2 =logo.png + +[Disinfection^Disinfection] +Disinfection1=logo.png +Disinfection2=logo.png +Disinfection3=logo.png + +[Chemical Disinfect^Chemical Disinfect] +Disinfection1=logo.png \ No newline at end of file Index: resources/settings/Instructions/pbo release v1.png =================================================================== diff -u Binary files differ Index: resources/settings/Instructions/pump track lock_v1.png =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -r6816b783f50e08267aa016d64350bc020080d901 Binary files differ Index: resources/settings/Instructions/remove top cap v1.png =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -r6816b783f50e08267aa016d64350bc020080d901 Binary files differ Index: resources/settings/Instructions/remove top cap v2-01.png =================================================================== diff -u Binary files differ Index: resources/settings/Instructions/syringe connected insert v2.png =================================================================== diff -u Binary files differ Index: resources/settings/Instructions/syringe load_72.png =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -r6816b783f50e08267aa016d64350bc020080d901 Binary files differ Index: resources/settings/Instructions/syringe removal v1.png =================================================================== diff -u Binary files differ Index: resources/settings/Instructions/unclamp_patient_lines_temp.png =================================================================== diff -u Binary files differ Index: sources/ApplicationController.cpp =================================================================== diff -u -r2216ac6ac7f77437a7c29ac8b4043be01bc4609e -r6816b783f50e08267aa016d64350bc020080d901 --- sources/ApplicationController.cpp (.../ApplicationController.cpp) (revision 2216ac6ac7f77437a7c29ac8b4043be01bc4609e) +++ sources/ApplicationController.cpp (.../ApplicationController.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -51,7 +51,7 @@ // coco begin validated: The class ApplicationPost has not been implemented Yet. if (!_applicationPost->init()) return false; // coco end - LOG_EVENT("UI," + tr("%1 Initialized").arg(metaObject()->className())); + LOG_DEBUG("UI," + tr("%1 Initialized").arg(metaObject()->className())); return true; } Index: sources/MainTimer.cpp =================================================================== diff -u -r583d1953c783940c93f22c37b23daadb1ff3a09c -r6816b783f50e08267aa016d64350bc020080d901 --- sources/MainTimer.cpp (.../MainTimer.cpp) (revision 583d1953c783940c93f22c37b23daadb1ff3a09c) +++ sources/MainTimer.cpp (.../MainTimer.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -46,7 +46,7 @@ else { startTimer(_interval); } - LOG_EVENT("UI," + tr("Main Timer Initialized")); + LOG_DEBUG("UI," + tr("Main Timer Initialized")); return true; } Index: sources/canbus/CanInterface.cpp =================================================================== diff -u -r64d87d540594252e8039ab2595016d98f1e3cc28 -r6816b783f50e08267aa016d64350bc020080d901 --- sources/canbus/CanInterface.cpp (.../CanInterface.cpp) (revision 64d87d540594252e8039ab2595016d98f1e3cc28) +++ sources/canbus/CanInterface.cpp (.../CanInterface.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -58,7 +58,7 @@ QString logMessage = QString("UI,%1,%2") .arg(tr("%1 Initialized").arg(metaObject()->className())) .arg(status()); - LOG_EVENT(logMessage); + LOG_DEBUG(logMessage); return true; } Index: sources/canbus/FrameInterface.cpp =================================================================== diff -u -rcc1e9d6d55c816f3fcd626dc6948cca24da283b3 -r6816b783f50e08267aa016d64350bc020080d901 --- sources/canbus/FrameInterface.cpp (.../FrameInterface.cpp) (revision cc1e9d6d55c816f3fcd626dc6948cca24da283b3) +++ sources/canbus/FrameInterface.cpp (.../FrameInterface.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -47,7 +47,7 @@ startTimer(1, Qt::PreciseTimer); - LOG_EVENT("UI," + tr("%1 Initialized").arg(metaObject()->className())); + LOG_DEBUG("UI," + tr("%1 Initialized").arg(metaObject()->className())); return true; } Index: sources/canbus/MessageDispatcher.cpp =================================================================== diff -u -rb3eb8bc9696c4db9867ad1cf13b47c455a94e0fe -r6816b783f50e08267aa016d64350bc020080d901 --- sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision b3eb8bc9696c4db9867ad1cf13b47c455a94e0fe) +++ sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -48,7 +48,7 @@ // runs in DriveWatcher thread initConnections(); - LOG_EVENT("UI," + tr("%1 Initialized").arg(metaObject()->className())); + LOG_DEBUG("UI," + tr("%1 Initialized").arg(metaObject()->className())); return true; } Index: sources/canbus/MessageGlobals.h =================================================================== diff -u -rb3eb8bc9696c4db9867ad1cf13b47c455a94e0fe -r6816b783f50e08267aa016d64350bc020080d901 --- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision b3eb8bc9696c4db9867ad1cf13b47c455a94e0fe) +++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -74,7 +74,7 @@ {Gui::GuiActionType::ID_DGROPumpData , 4 * 4 }, // 4 parameters each 4bytes {Gui::GuiActionType::ID_DGPressuresData , 4 * 4 }, // 4 parameters each 4bytes {Gui::GuiActionType::ID_DGDrainPumpData , 4 * 4 }, // 4 parameters each 4bytes - {Gui::GuiActionType::ID_DGOperationModeData , 1 * 4 }, // 1 parameter each 4bytes + {Gui::GuiActionType::ID_DGOperationModeData , 2 * 4 }, // 2 parameter each 4bytes {Gui::GuiActionType::ID_DGReservoirData , 3 * 4 }, // 3 parameters each 4bytes {Gui::GuiActionType::ID_DGValvesStatesData , 1 * 2 }, // 1 parameters each 2bytes {Gui::GuiActionType::ID_DGHeatersData , 3 * 4 }, // 3 parameters each 4bytes Index: sources/gui/GuiController.cpp =================================================================== diff -u -re159592e3a99658e661ab83fffef43322dc075f3 -r6816b783f50e08267aa016d64350bc020080d901 --- sources/gui/GuiController.cpp (.../GuiController.cpp) (revision e159592e3a99658e661ab83fffef43322dc075f3) +++ sources/gui/GuiController.cpp (.../GuiController.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -146,7 +146,7 @@ initConnections(); - LOG_EVENT("UI," + tr("%1 Initialized").arg(metaObject()->className())); + LOG_DEBUG("UI," + tr("%1 Initialized").arg(metaObject()->className())); return true; } Index: sources/model/dg/data/MDGOperationModeData.cpp =================================================================== diff -u -r6cad9b004e904200b71de7431c745795256080df -r6816b783f50e08267aa016d64350bc020080d901 --- sources/model/dg/data/MDGOperationModeData.cpp (.../MDGOperationModeData.cpp) (revision 6cad9b004e904200b71de7431c745795256080df) +++ sources/model/dg/data/MDGOperationModeData.cpp (.../MDGOperationModeData.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -5,11 +5,11 @@ * 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 MDGOperationModeData.cpp - * \author (last) Behrouz NematiPour - * \date (last) 16-Oct-2020 - * \author (original) Behrouz NemaiPour - * \date (original) 02-Jul-2020 + * \file MDGOperationModeData.cpp + * \author (last) Behrouz NematiPour + * \date (last) 17-May-2021 + * \author (original) Behrouz NematiPour + * \date (original) 02-Jul-2020 * */ #include "MDGOperationModeData.h" @@ -18,15 +18,18 @@ QVariantList MDGOperationMode::parameters() const { return { - _data.mOpMode.value + _data.mOpMode .value, + _data.mSubMode .value }; } bool MDGOperationMode::fromByteArray(const QByteArray &vByteArray, int *vIndex) { int index = 0; // message data start position - if (GetValue(vByteArray, index, _data.mOpMode )) + if (GetValue(vByteArray, index, _data.mOpMode )) + if (GetValue(vByteArray, index, _data.mSubMode )) return true ; else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } } /*! @@ -36,6 +39,7 @@ */ MDGOperationMode::Data MDGOperationMode::data() const { Data data; - data.mOpMode = _data.mOpMode.value; + data.mOpMode = _data.mOpMode .value; + data.mSubMode = _data.mSubMode .value; return data; } Index: sources/model/dg/data/MDGOperationModeData.h =================================================================== diff -u -r6cad9b004e904200b71de7431c745795256080df -r6816b783f50e08267aa016d64350bc020080d901 --- sources/model/dg/data/MDGOperationModeData.h (.../MDGOperationModeData.h) (revision 6cad9b004e904200b71de7431c745795256080df) +++ sources/model/dg/data/MDGOperationModeData.h (.../MDGOperationModeData.h) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -5,11 +5,11 @@ * 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 MDGOperationModeData.h - * \author (last) Behrouz NematiPour - * \date (last) 16-Oct-2020 - * \author (original) Behrouz NemaiPour - * \date (original) 02-Jul-2020 + * \file MDGOperationModeData.h + * \author (last) Behrouz NematiPour + * \date (last) 17-May-2021 + * \author (original) Behrouz NematiPour + * \date (original) 02-Jul-2020 * */ #pragma once @@ -30,34 +30,35 @@ * \brief The MDGOperationMode class * \details The DG operation mode data model * - * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | - * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | - * |0x2700| 0x080 | 8 | 1 Hz | N | DG | All | DG Operation Mode Data | + * | MSG | CAN ID | Type | Ack | Src | Dst | Description | + * |:----:|:------:|:------:|:---:|:---:|:---:|:-----------:| + * |0x2700| 0x080 | 1 Hz | N | DG | All | DG Operation Mode Data | * * | Payload || * | || - * | #1:(U32) | \ref Data::mOpMode | + * | #1:(U32) | \ref Data::mOpMode | + * | #2:(U32) | \ref Data::mSubMode | * * \sa Data * *

Logging info

- * | || - * | || - * | typeText | Datum | - * | unitText | DG | - * | infoText | OpMode | + * | || + * | || + * | typeText | Datum | + * | unitText | DG | + * | infoText | OpMode | * */ class MDGOperationMode : public MAbstract { // friends friend class ::tst_models; - // DG Operation Mode (U32) DG Op Mode QVariantList parameters() const override; struct { - Types::U32 mOpMode ; + Types::U32 mOpMode ; + Types::U32 mSubMode ; } _data; public: @@ -67,7 +68,8 @@ QString infoText () const override { return QString("OpMode"); } struct Data { - quint32 mOpMode = 0; ///< DG operation + quint32 mOpMode = 0; ///< DG operation + quint32 mSubMode = 0; ///< DG Sub-Mode }; MDGOperationMode () {} Index: sources/model/hd/alarm/MAlarmStatusData.h =================================================================== diff -u -r45ce6e781782be5de1480a1e7acecd1d272bcc84 -r6816b783f50e08267aa016d64350bc020080d901 --- sources/model/hd/alarm/MAlarmStatusData.h (.../MAlarmStatusData.h) (revision 45ce6e781782be5de1480a1e7acecd1d272bcc84) +++ sources/model/hd/alarm/MAlarmStatusData.h (.../MAlarmStatusData.h) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -7,7 +7,7 @@ * * \file MAlarmStatusData.h * \author (last) Behrouz NematiPour - * \date (last) 16-Oct-2020 + * \date (last) 17-May-2021 * \author (original) Behrouz NematiPour * \date (original) 02-Dec-2020 * @@ -46,11 +46,11 @@ * \sa Data * *

Logging info

- * | || - * | || - * | typeText | Datum | - * | unitText | HD | - * | infoText | Alarm Status | + * | || + * | || + * | typeText | Datum | + * | unitText | HD | + * | infoText | Alarm Status | * */ class MAlarmStatus : public MAbstract { @@ -70,7 +70,7 @@ public: - Type_Enum typeText () const override { return Type_Enum::eEvent ; } + Type_Enum typeText () const override { return Type_Enum::eDatum ; } Unit_Enum unitText () const override { return Unit_Enum::eHD ; } QString infoText () const override { return QString("AlarmStatus") ; } Index: sources/model/hd/data/MHDOperationModeData.h =================================================================== diff -u -r4afc91856c00e01dfb5d84bc54d2d92faefec0db -r6816b783f50e08267aa016d64350bc020080d901 --- sources/model/hd/data/MHDOperationModeData.h (.../MHDOperationModeData.h) (revision 4afc91856c00e01dfb5d84bc54d2d92faefec0db) +++ sources/model/hd/data/MHDOperationModeData.h (.../MHDOperationModeData.h) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -5,11 +5,11 @@ * 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 MHDOperationModeData.h - * \author (last) Behrouz NematiPour - * \date (last) 16-Oct-2020 - * \author (original) Behrouz NemaiPour - * \date (original) 02-Jul-2020 + * \file MHDOperationModeData.h + * \author (last) Behrouz NematiPour + * \date (last) 16-Oct-2020 + * \author (original) Behrouz NematiPour + * \date (original) 02-Jul-2020 * */ #pragma once @@ -30,9 +30,9 @@ * \brief The MHDOperationMode class * \details The HD operation mode data model * - * | MSG | CAN ID | Box | Type | Ack | Src | Dst | Description | - * |:----:|:------:|:---:|:------:|:---:|:---:|:---:|:-----------: | - * |0x2500| 0x040 | 7 | 1 Hz | N | HD | All | HD Operation Mode Data | + * | MSG | CAN ID | Type | Ack | Src | Dst | Description | + * |:----:|:------:|:------:|:---:|:---:|:---:|:-----------: | + * |0x2500| 0x040 | 1 Hz | N | HD | All | HD Operation Mode Data | * * | Payload || * | || @@ -42,11 +42,11 @@ * \sa Data * *

Logging info

- * | || - * | || - * | typeText | Datum | - * | unitText | HD | - * | infoText | OpMode | + * | || + * | || + * | typeText | Datum | + * | unitText | HD | + * | infoText | OpMode | * */ class MHDOperationMode : public MAbstract { Index: sources/model/hd/data/treatmentlog/MTreatmentLogAlarmData.cpp =================================================================== diff -u -ra5be04172757fa469d85fb83a6998a4404214f19 -r6816b783f50e08267aa016d64350bc020080d901 --- sources/model/hd/data/treatmentlog/MTreatmentLogAlarmData.cpp (.../MTreatmentLogAlarmData.cpp) (revision a5be04172757fa469d85fb83a6998a4404214f19) +++ sources/model/hd/data/treatmentlog/MTreatmentLogAlarmData.cpp (.../MTreatmentLogAlarmData.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -21,6 +21,7 @@ _data.mTimeStamp.value, _data.mAlarmID .value, _data.mParam1 .value, + _data.mParam2 .value, }; } @@ -29,10 +30,12 @@ if (GetValue(vByteArray, index, _data.mTimeStamp)) if (GetValue(vByteArray, index, _data.mAlarmID )) if (GetValue(vByteArray, index, _data.mParam1 )) + if (GetValue(vByteArray, index, _data.mParam2 )) return true ; else { if(vIndex) *vIndex = index; return false; } else { if(vIndex) *vIndex = index; return false; } else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } } /*! @@ -45,5 +48,6 @@ data.mTimeStamp = _data.mTimeStamp .value; data.mAlarmID = _data.mAlarmID .value; data.mParam1 = _data.mParam1 .value; + data.mParam2 = _data.mParam2 .value; return data; } Index: sources/model/hd/data/treatmentlog/MTreatmentLogAlarmData.h =================================================================== diff -u -rb3eb8bc9696c4db9867ad1cf13b47c455a94e0fe -r6816b783f50e08267aa016d64350bc020080d901 --- sources/model/hd/data/treatmentlog/MTreatmentLogAlarmData.h (.../MTreatmentLogAlarmData.h) (revision b3eb8bc9696c4db9867ad1cf13b47c455a94e0fe) +++ sources/model/hd/data/treatmentlog/MTreatmentLogAlarmData.h (.../MTreatmentLogAlarmData.h) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -63,6 +63,7 @@ Types::U32 mTimeStamp ; ///< TimeStamp in epoch Types::U32 mAlarmID ; ///< Alarm ID Types::U32 mParam1 ; ///< Alarm Parameter 1 // may need more than 1 parameter but defined one so it would be easier to add more later. + Types::U32 mParam2 ; ///< Alarm Parameter 2 // may need more than 1 parameter but defined one so it would be easier to add more later. } _data; public: @@ -75,6 +76,7 @@ quint32 mTimeStamp ; ///< TimeStamp in epoch quint32 mAlarmID ; ///< Alarm ID quint32 mParam1 ; ///< Alarm Parameter 1 + quint32 mParam2 ; ///< Alarm Parameter 2 }; MTreatmentLogAlarmData() { } Index: sources/model/hd/data/treatmentlog/MTreatmentLogAvrgeData.h =================================================================== diff -u -rb3eb8bc9696c4db9867ad1cf13b47c455a94e0fe -r6816b783f50e08267aa016d64350bc020080d901 --- sources/model/hd/data/treatmentlog/MTreatmentLogAvrgeData.h (.../MTreatmentLogAvrgeData.h) (revision b3eb8bc9696c4db9867ad1cf13b47c455a94e0fe) +++ sources/model/hd/data/treatmentlog/MTreatmentLogAvrgeData.h (.../MTreatmentLogAvrgeData.h) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -84,9 +84,9 @@ float mUFRate ; ///< 4 - (F32) Ultrafiltration Rate (mmHg) float mArterialPressure ; ///< 5 - (F32) Arterial Pressure (mmHg) float mVenousPressure ; ///< 6 - (F32) Venous Pressure (mmHg) - quint32 mSystolic ; ///< Systolic Blood Pressure - This value is not coming from FW and will be get from UI and User. - quint32 mDiastolic ; ///< Diastolic Blood Pressure - This value is not coming from FW and will be get from UI and User. - quint32 mHeartRate ; ///< Heart Rate - This value is not coming from FW and will be get from UI and User. + quint32 mSystolic = 0; ///< Systolic Blood Pressure - This value is not coming from FW and will be get from UI and User. + quint32 mDiastolic = 0; ///< Diastolic Blood Pressure - This value is not coming from FW and will be get from UI and User. + quint32 mHeartRate = 0; ///< Heart Rate - This value is not coming from FW and will be get from UI and User. }; MTreatmentLogAvrgeData() { } Index: sources/storage/DriveWatcher.cpp =================================================================== diff -u -ra64c31ec79b3af203691f70397cc31f5727f47f4 -r6816b783f50e08267aa016d64350bc020080d901 --- sources/storage/DriveWatcher.cpp (.../DriveWatcher.cpp) (revision a64c31ec79b3af203691f70397cc31f5727f47f4) +++ sources/storage/DriveWatcher.cpp (.../DriveWatcher.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -264,7 +264,7 @@ quint8 mPercent = mCTotal ? ((100 * mCAvailable) / mCTotal) : 0; if (mPercent < _minRequiredAvailableSpacePercent) { - LOG_EVENT(QString("SD-CARD space lower than %1%").arg(_minRequiredAvailableSpacePercent)); + LOG_DEBUG(QString("SD-CARD space lower than %1%").arg(_minRequiredAvailableSpacePercent)); emit didSDCardSpaceChange(mCIsReady, mCTotal, mCAvailable, mPercent); emit didSDCardSpaceTooLow(_minRequiredAvailableSpacePercent); } Index: sources/storage/Logger.cpp =================================================================== diff -u -r2216ac6ac7f77437a7c29ac8b4043be01bc4609e -r6816b783f50e08267aa016d64350bc020080d901 --- sources/storage/Logger.cpp (.../Logger.cpp) (revision 2216ac6ac7f77437a7c29ac8b4043be01bc4609e) +++ sources/storage/Logger.cpp (.../Logger.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -57,8 +57,8 @@ checkLogPath(); initConnections(); - LOG_EVENT("--------------------------------------------------\n" - "UI," + tr("%1 Initialized").arg(metaObject()->className())); + ADD_EVENT_HEADER; + LOG_DEBUG("UI," + tr("%1 Initialized").arg(metaObject()->className())); return true; } @@ -105,8 +105,8 @@ connect(&_exportLogsWatcher, SIGNAL(finished ()), this , SLOT(onExportLogs())); - connect(this, SIGNAL(didLog(QString,LogType)), - this, SLOT( onLog(QString,LogType))); + connect(this, SIGNAL(didLog(QString,LogType,bool)), + this, SLOT( onLog(QString,LogType,bool))); connect(&_MainTimer, SIGNAL( didDateChange ()), this , SLOT( concurrentRemoveLogs())); @@ -154,9 +154,9 @@ } // coco end -void Logger::onLog(const QString &vContent, LogType vLogType) +void Logger::onLog(const QString &vContent, LogType vLogType, bool vTimestamp) { - log(vContent,vLogType); + log(vContent, vLogType, vTimestamp); } /*! @@ -231,6 +231,7 @@ break; } ok = FileHandler::makeFolder(_logPathNames[vLogType]); + if ( ok ) emit didLogPathSet(vLogType, _logPathNames[vLogType]); return ok; } @@ -242,9 +243,17 @@ * \note This method is not thread-safe so is private and needs to be called by concurrentLog * Which uses QtConcurrent::run to run in thread and thread-safe. */ -void Logger::log(const QString &vContent, LogType vLogType) +void Logger::log(const QString &vContent, LogType vLogType, bool vTimestamp) { - QString date = QDate::currentDate().toString(_dateFormat); + static QString date; + QString currentDate = QDate::currentDate().toString(_dateFormat); + if (date != currentDate) { + if (!date.isEmpty()) { + ADD_EVENT_HEADER; + } + date = currentDate; + } + QString fileName = date + _dateSeparator + _logFileNamePrefix; switch (vLogType) { case LogType::eLogEvent: @@ -259,10 +268,12 @@ LOG_DEBUG(QString("Incorrect type of logging %1").arg(vLogType)); } - QString mContent = QTime::currentTime().toString(_timeFormat) + _separator; + QString mContent; + if ( vTimestamp ) + mContent = QTime::currentTime().toString(_timeFormat) + _separator; QString logPrefix = _logPrefix[vLogType]; - if ( ! logPrefix.isEmpty()) { + if (vTimestamp && ! logPrefix.isEmpty()) { mContent += logPrefix; mContent += _separator; } @@ -469,4 +480,9 @@ LOG_DEBUG("Console out Logging disabled"); } } + +const QString &Logger::logPath(Logger::LogType vLogType) +{ + return _logPathNames[vLogType]; +} // coco end Index: sources/storage/Logger.h =================================================================== diff -u -r8a5dbf556a66524fbe4b60ac1573182a0bd27617 -r6816b783f50e08267aa016d64350bc020080d901 --- sources/storage/Logger.h (.../Logger.h) (revision 8a5dbf556a66524fbe4b60ac1573182a0bd27617) +++ sources/storage/Logger.h (.../Logger.h) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -28,10 +28,11 @@ #define LOG_EXPORT _Logger.concurrentExportLogs() -#define LOG_DEBUG(vCONTENT) emit Storage::Logger::I().didLog(vCONTENT, Storage::Logger::LogType::eLogDebug) +#define LOG_DEBUG(vCONTENT) emit Storage::Logger::I().didLog(vCONTENT, Storage::Logger::LogType::eLogDebug, true ) -#define LOG_EVENT(vCONTENT) emit Storage::Logger::I().didLog(vCONTENT, Storage::Logger::LogType::eLogEvent) -#define LOG_DATUM(vCONTENT) emit Storage::Logger::I().didLog(vCONTENT, Storage::Logger::LogType::eLogDatum) +#define ADD_EVENT_HEADER emit Storage::Logger::I().didLog(_headerE, Storage::Logger::LogType::eLogEvent, false) +#define LOG_EVENT(vCONTENT) emit Storage::Logger::I().didLog(vCONTENT, Storage::Logger::LogType::eLogEvent, true ) +#define LOG_DATUM(vCONTENT) emit Storage::Logger::I().didLog(vCONTENT, Storage::Logger::LogType::eLogDatum, true ) #define MIXED_EVENT_DATUM @@ -88,8 +89,10 @@ eLogType_Count, }; + Q_ENUM(LogType) private: + const char *_headerE = "TimeStamp,Type,SubSys,Name,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\r\n"; QDir _dir; QString _logFileNamePrefix; QHash _logPathNames; @@ -155,10 +158,14 @@ public: void enableConsoleOut(bool vEnabled); +signals: + void didLogPathSet(Logger::LogType vLogType, const QString &vLogPath); + public slots: bool init(); bool init(QThread &vThread); + private slots: void quit(); @@ -174,6 +181,8 @@ void setLogBasePath (bool vUseApplicationDirPath = false); bool setLogPath (); bool setLogPath (LogType vLogType); +public: + const QString &logPath(Logger::LogType vLogType); // ----- Export structure private : @@ -206,9 +215,9 @@ // ----- logging structure private slots: - void onLog (const QString &vContent, LogType vLogType); + void onLog (const QString &vContent, LogType vLogType, bool vTimestamp); private: - void log (const QString &vContent, LogType vLogType); + void log (const QString &vContent, LogType vLogType, bool vTimestamp); signals: /*! @@ -217,6 +226,6 @@ * \param vContent - content as type of string to be logged * \param vLogType - the type of logging of type Storage::Logger::LogType */ - void didLog (const QString &vContent, LogType vLogType); + void didLog (const QString &vContent, LogType vLogType, bool vTimestamp); }; } Index: sources/storage/TreatmentLog.cpp =================================================================== diff -u -rb3eb8bc9696c4db9867ad1cf13b47c455a94e0fe -r6816b783f50e08267aa016d64350bc020080d901 --- sources/storage/TreatmentLog.cpp (.../TreatmentLog.cpp) (revision b3eb8bc9696c4db9867ad1cf13b47c455a94e0fe) +++ sources/storage/TreatmentLog.cpp (.../TreatmentLog.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -25,6 +25,8 @@ using namespace Storage; +#define NONE "N/A" +#define FLOAT3 0,'f',3 #define ADDTITLE(vTITLE) logContent += QString("[%1]\n").arg(vTITLE) #define ADDALINE(vTEXT ) logContent += QString("%1\n" ).arg(vTEXT ) #define ADDTOLOG(vINDEX) index = vINDEX; logContent += _titles[index] + sep + _values[index] + sep + _units[index] + "\n"; @@ -36,20 +38,21 @@ */ TreatmentLog::TreatmentLog(QObject *parent) : QObject(parent) { initConnections(); - _treatmentLogPath = QString("%1%2") - .arg(Storage::SDCard_Base_Path_Name) - .arg(Storage::Treatment_Log_Folder ); + logPath(Logger::eLogTrtmt, _Logger.logPath(Logger::eLogTrtmt)); } /*! \brief Connection Initializer \details All the class signal/slot connections are defined here. */ void TreatmentLog::initConnections() { - connect(&_exportWatcher, SIGNAL(finished()), - this , SLOT(onExport())); + connect(&_Logger , SIGNAL(didLogPathSet(Logger::LogType, const QString &)), + this , SLOT( onLogPathSet(Logger::LogType, const QString &))); - connect(&_saveWatcher , SIGNAL(finished()), - this , SLOT(onSave ())); + connect(&_exportWatcher , SIGNAL(finished()), + this , SLOT(onExport())); + + connect(&_saveWatcher , SIGNAL(finished()), + this , SLOT(onSave ())); } /*! @@ -96,27 +99,27 @@ _values[eCalciumConcentration ] = mStrText.arg(vData.mCalciumConcentration ); _values[eBicarbonateConcentration ] = mStrText.arg(vData.mBicarbonateConcentration ); _values[eSodiumConcentration ] = mStrText.arg(vData.mSodiumConcentration ); - _values[eDialysateTemperature ] = mStrText.arg(vData.mDialysateTemperature ,0,'f',3); + _values[eDialysateTemperature ] = mStrText.arg(vData.mDialysateTemperature ,FLOAT3 ); _values[eDialyzerType ] = mDialyzerType ; _values[eHeparinType ] = mHeparinType ; _values[eHeparinConcentration ] = mStrText.arg(mHeparinConcentration ); // Decided to be removed, but has to be here until it is actually removed from the message - _values[eHeparinBolusVolume ] = mStrText.arg(vData.mHeparinBolusVolume ,0,'f',3); - _values[eHeparinDispenseRate ] = mStrText.arg(vData.mHeparinDispenseRate ,0,'f',3); + _values[eHeparinBolusVolume ] = mStrText.arg(vData.mHeparinBolusVolume ,FLOAT3 ); + _values[eHeparinDispenseRate ] = mStrText.arg(vData.mHeparinDispenseRate ,FLOAT3 ); _values[eHeparinStop ] = mStrText.arg(vData.mHeparinStop ); - _values[eHeparinDeliveredVolume ] = mStrText.arg(vData.mHeparinDeliveredVolume ,0,'f',3); + _values[eHeparinDeliveredVolume ] = mStrText.arg(vData.mHeparinDeliveredVolume ,FLOAT3 ); _values[eTreatmentDateTime ] = mTreatmentDateTime ; _values[eWaterSampleTestResult ] = mWaterSampleTestResult ; - _values[eDialysateVolumeUsed ] = mStrText.arg(vData.mDialysateVolumeUsed ,0,'f',3); - _values[eTargetUFVolume ] = mStrText.arg(vData.mTargetUFVolume ,0,'f',3); - _values[eActualUFVolume ] = mStrText.arg(vData.mActualUFVolume ,0,'f',3); - _values[eTargetUFRate ] = mStrText.arg(vData.mTargetUFRate ,0,'f',3); - _values[eActualUFRate ] = mStrText.arg(vData.mActualUFRate ,0,'f',3); + _values[eDialysateVolumeUsed ] = mStrText.arg(vData.mDialysateVolumeUsed ,FLOAT3 ); + _values[eTargetUFVolume ] = mStrText.arg(vData.mTargetUFVolume ,FLOAT3 ); + _values[eActualUFVolume ] = mStrText.arg(vData.mActualUFVolume ,FLOAT3 ); + _values[eTargetUFRate ] = mStrText.arg(vData.mTargetUFRate ,FLOAT3 ); + _values[eActualUFRate ] = mStrText.arg(vData.mActualUFRate ,FLOAT3 ); _values[eSalineBolusVolume ] = mStrText.arg(vData.mSalineBolusVolume ); - _values[eAverageBloodFlow ] = mStrText.arg(vData.mAverageBloodFlow ,0,'f',3); - _values[eAverageDialysateFlow ] = mStrText.arg(vData.mAverageDialysateFlow ,0,'f',3); - _values[eAverageDialysateTemp ] = mStrText.arg(vData.mAverageDialysateTemp ,0,'f',3); - _values[eAverageArterialPressure ] = mStrText.arg(vData.mAverageArterialPressure ,0,'f',3); - _values[eAverageVenousPressure ] = mStrText.arg(vData.mAverageVenousPressure ,0,'f',3); + _values[eAverageBloodFlow ] = mStrText.arg(vData.mAverageBloodFlow ,FLOAT3 ); + _values[eAverageDialysateFlow ] = mStrText.arg(vData.mAverageDialysateFlow ,FLOAT3 ); + _values[eAverageDialysateTemp ] = mStrText.arg(vData.mAverageDialysateTemp ,FLOAT3 ); + _values[eAverageArterialPressure ] = mStrText.arg(vData.mAverageArterialPressure ,FLOAT3 ); + _values[eAverageVenousPressure ] = mStrText.arg(vData.mAverageVenousPressure ,FLOAT3 ); _values[eEndTreatmentEarlyAlarm ] = mStrText.arg(vData.mEndTreatmentEarlyAlarm ); } @@ -128,6 +131,41 @@ void TreatmentLog::append(const TreatmentLogAlarmData &vData) { _treatmentLogAlarmData.append(vData); } void TreatmentLog::append(const TreatmentLogEventData &vData) { _treatmentLogEventData.append(vData); } +/*! + * \brief TreatmentLog::onLogPathSet + * \details sets the logging path + * \param vLogType - The log type which in this should be eLogTrtmt + * \param vLogPath - The full treatment log path + */ +void TreatmentLog::onLogPathSet(Logger::LogType vLogType, const QString &vLogPath) +{ + logPath(vLogType, vLogPath); +} + +/*! + * \brief TreatmentLog::logPath + * \details sets the treatment log path if the given type is treatment log, with the path, vLogPath. + * If the given vLogPath is empty, the defaults in Storage will be used. + * \sa Storage::SDCard_Base_Path_Name + * \sa Storage::Treatment_Log_Folder + * \param vLogType - The Log type of type Logger::LogType + * \param vLogPath - the path to be set and used. + */ +void TreatmentLog::logPath(Logger::LogType vLogType, QString vLogPath) +{ + if (vLogType == Logger::eLogTrtmt) { + if ( vLogPath.trimmed().isEmpty() ) { + _treatmentLogPath = QString("%1%2") + .arg(Storage::SDCard_Base_Path_Name) + .arg(Storage::Treatment_Log_Folder ); + } + else { + _treatmentLogPath = vLogPath; + } + LOG_DEBUG(QString("Treatment log folder has been set to %1.").arg(_treatmentLogPath)); + } +} + // ----- Save /*! * \brief TreatmentLog::doSave @@ -146,7 +184,7 @@ */ void TreatmentLog::saveLogConcurrent() { - LOG_EVENT("Save Treatment Log Started"); + LOG_DEBUG("Save Treatment Log Started"); QFuture mFuture = QtConcurrent::run(this, &TreatmentLog::saveLog); _saveWatcher.setFuture(mFuture); } @@ -162,14 +200,15 @@ if (!ok) return false; - QString logContent; - QString sep = ","; - QString csv = "%1" + sep; - uint index = 0; - const char *NONE = "N/A"; + QString logContent ; + QString sep = "," ; + QString csv = "%1" + sep; + QString end = "%1" ; + uint index = 0 ; + ADDTITLE("Title"); - ADDALINE(csv.arg(tr("Patient Name")) + NONE ); - ADDALINE(csv.arg(tr("Patient ID" )) + NONE ); + ADDALINE(csv.arg(tr("Patient Name")) + NONE); + ADDALINE(csv.arg(tr("Patient ID" )) + NONE); ADDTOLOG( eTreatmentDateTime ); ADDTOLOG( eDeviceID ); @@ -192,8 +231,8 @@ ADDTOLOG( eHeparinStop ); ADDTITLE("Treatment Parameters" ); - ADDTITLE(csv.arg(tr("Start Time")) + NONE ); - ADDTITLE(csv.arg(tr("End Time" )) + NONE ); + ADDALINE(csv.arg(tr("Start Time")) + NONE); + ADDALINE(csv.arg(tr("End Time" )) + NONE); ADDTOLOG( eTreatmentDuration ); ADDTITLE("Post-Treatment Data" ); @@ -217,37 +256,39 @@ ADDTITLE("Treatment Data" ); for ( const TreatmentLogAvrgeData &item : _treatmentLogAvrgeData ) { QString line; - line += csv.arg(item.mTimeStamp); - line += csv.arg(NONE); - line += csv.arg(item.mBloodFlowRate); - line += csv.arg(item.mDialysateFlowRate); - line += csv.arg(item.mUFRate); - line += csv.arg(item.mArterialPressure); - line += csv.arg(item.mVenousPressure); - line += csv.arg(item.mSystolic); - line += csv.arg(item.mDiastolic); - line += csv.arg(item.mHeartRate); + line += csv.arg(item.mTimeStamp ); + line += csv.arg(NONE ); + line += csv.arg(item.mBloodFlowRate ); + line += csv.arg(item.mDialysateFlowRate ); + line += csv.arg(item.mUFRate ,FLOAT3 ); + line += csv.arg(item.mArterialPressure ,FLOAT3 ); + line += csv.arg(item.mVenousPressure ,FLOAT3 ); + line += csv.arg(item.mSystolic ); + line += csv.arg(item.mDiastolic ); + line += end.arg(item.mHeartRate ); ADDALINE(line); } ADDTITLE("Treatment Alarms" ); for ( const TreatmentLogAlarmData &item : _treatmentLogAlarmData ) { QString line; - line += csv.arg(item.mTimeStamp); - line += csv.arg(item.mAlarmID); - line += csv.arg(item.mParam1); + line += csv.arg(item.mTimeStamp ); + line += csv.arg(item.mAlarmID ); + line += csv.arg(item.mParam1 ); + line += end.arg(item.mParam2 ); ADDALINE(line); } ADDTITLE("Treatment Events" ); for ( const TreatmentLogEventData &item : _treatmentLogEventData ) { QString line; - line += csv.arg(item.mTimeStamp); - line += csv.arg(item.mEventID); - line += csv.arg(item.mOldValue); - line += csv.arg(item.mNewValue); + line += csv.arg(item.mTimeStamp ); + line += csv.arg(item.mEventID ); + line += csv.arg(item.mOldValue ,FLOAT3 ); + line += end.arg(item.mNewValue ,FLOAT3 ); ADDALINE(line); } + ADDALINE(""); QString mDateTime = _values[eTreatmentDateTime]; mDateTime.replace("/", "" ); // remove date separator @@ -258,9 +299,14 @@ QString mFileName = QString("%1_%2.log") .arg(mDateTime) .arg(mDeviceID); - Storage::FileHandler::makeFolder(_treatmentLogPath); - ok = Storage::FileHandler::write(_treatmentLogPath + mFileName, logContent, false); + ok = Storage::FileHandler::makeFolder(_treatmentLogPath); + if ( ! ok ) { LOG_DEBUG(QString("Cannot create folder %1").arg(_treatmentLogPath)); return ok; } + ok = Storage::FileHandler::write(mFileName.prepend(_treatmentLogPath), logContent, false); + if ( ! ok ) { LOG_DEBUG(QString("Cannot write to file %1").arg(mFileName )); return ok; } + _treatmentLogAvrgeData.clear(); + _treatmentLogAlarmData.clear(); + _treatmentLogEventData.clear(); return ok; } @@ -270,7 +316,7 @@ */ void TreatmentLog::onSave() { - LOG_EVENT(QString("Save Treatment Log Ended: %1").arg(_saveWatcher.result())); + LOG_DEBUG(QString("Save Treatment Log Ended: %1").arg(_saveWatcher.result())); isIdle(true); } @@ -292,7 +338,7 @@ */ void TreatmentLog::exportLogConcurrent() { - LOG_EVENT("Export Treatment Log Started"); + LOG_DEBUG("Export Treatment Log Started"); QFuture mFuture = QtConcurrent::run(this, &TreatmentLog::exportLog); _exportWatcher.setFuture(mFuture); } @@ -317,6 +363,6 @@ */ void TreatmentLog::onExport() { - LOG_EVENT(QString("Export Treatment Log Ended: %1").arg(_exportWatcher.result())); + LOG_DEBUG(QString("Export Treatment Log Ended: %1").arg(_exportWatcher.result())); isIdle(true); } Index: sources/storage/TreatmentLog.h =================================================================== diff -u -rb3eb8bc9696c4db9867ad1cf13b47c455a94e0fe -r6816b783f50e08267aa016d64350bc020080d901 --- sources/storage/TreatmentLog.h (.../TreatmentLog.h) (revision b3eb8bc9696c4db9867ad1cf13b47c455a94e0fe) +++ sources/storage/TreatmentLog.h (.../TreatmentLog.h) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -169,6 +169,7 @@ void initConnections(); + void logPath (Logger::LogType vLogType = Logger::eLogTrtmt, QString vLogPath = ""); bool saveLog (); void saveLogConcurrent (); bool exportLog (); @@ -189,6 +190,7 @@ void append(const TreatmentLogEventData &vData); private slots: + void onLogPathSet(Logger::LogType vLogType, const QString &vLogPath); void onSave (); void onExport (); Index: sources/view/VTreatmentCreate.cpp =================================================================== diff -u -r9327fae7b109203ca698d361b113a81d139a0cf9 -r6816b783f50e08267aa016d64350bc020080d901 --- sources/view/VTreatmentCreate.cpp (.../VTreatmentCreate.cpp) (revision 9327fae7b109203ca698d361b113a81d139a0cf9) +++ sources/view/VTreatmentCreate.cpp (.../VTreatmentCreate.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -97,7 +97,7 @@ if (!validate(treatmentData)) { - LOG_EVENT("Local create treatment validation failed."); + LOG_DEBUG("Local create treatment validation failed."); return; } Index: sources/view/dg/data/VDGOperationModeData.cpp =================================================================== diff -u -rf688ed9f1c64a2603a6d10fbb090b257a43e1f6f -r6816b783f50e08267aa016d64350bc020080d901 --- sources/view/dg/data/VDGOperationModeData.cpp (.../VDGOperationModeData.cpp) (revision f688ed9f1c64a2603a6d10fbb090b257a43e1f6f) +++ sources/view/dg/data/VDGOperationModeData.cpp (.../VDGOperationModeData.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -5,11 +5,11 @@ * 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 VDGOperationModeData.cpp - * \author (last) Behrouz NematiPour - * \date (last) 16-Oct-2020 - * \author (original) Behrouz NemaiPour - * \date (original) 02-Jul-2020 + * \file VDGOperationModeData.cpp + * \author (last) Behrouz NematiPour + * \date (last) 17-May-2021 + * \author (original) Behrouz NematiPour + * \date (original) 02-Jul-2020 * */ #include "VDGOperationModeData.h" @@ -21,7 +21,8 @@ void VDGOperationMode::onActionReceive(const DGOperationModeData &vData) { - opMode ( vData.mOpMode ); + opMode ( vData.mOpMode ); + subMode( vData.mSubMode ); } QString View::VDGOperationMode::text() Index: sources/view/dg/data/VDGOperationModeData.h =================================================================== diff -u -rf688ed9f1c64a2603a6d10fbb090b257a43e1f6f -r6816b783f50e08267aa016d64350bc020080d901 --- sources/view/dg/data/VDGOperationModeData.h (.../VDGOperationModeData.h) (revision f688ed9f1c64a2603a6d10fbb090b257a43e1f6f) +++ sources/view/dg/data/VDGOperationModeData.h (.../VDGOperationModeData.h) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -5,11 +5,11 @@ * 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 VDGOperationModeData.h - * \author (last) Behrouz NematiPour - * \date (last) 16-Oct-2020 - * \author (original) Behrouz NemaiPour - * \date (original) 02-Jul-2020 + * \file VDGOperationModeData.h + * \author (last) Behrouz NematiPour + * \date (last) 17-May-2021 + * \author (original) Behrouz NematiPour + * \date (original) 02-Jul-2020 * */ #pragma once @@ -38,7 +38,8 @@ { Q_OBJECT - PROPERTY( quint32 , opMode , 0) + PROPERTY( quint32 , opMode , 0 ) + PROPERTY( quint32 , subMode , 0 ) Q_PROPERTY(QString text READ text NOTIFY opModeChanged) Index: sources/view/hd/alarm/VAlarmStatus.cpp =================================================================== diff -u -r99a56ec30f1ca4f401e744766bde4f6fac291752 -r6816b783f50e08267aa016d64350bc020080d901 --- sources/view/hd/alarm/VAlarmStatus.cpp (.../VAlarmStatus.cpp) (revision 99a56ec30f1ca4f401e744766bde4f6fac291752) +++ sources/view/hd/alarm/VAlarmStatus.cpp (.../VAlarmStatus.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -110,7 +110,7 @@ // coco begin validated: the gDisableTimeout has meant to only being used for debugging purposes. // has been manually tested during debugging which works fine as expected. if (alarmID == GuiAlarmID::ALARM_ID_HD_COMM_TIMEOUT && gDisableTimeout) { - LOG_EVENT(tr("Suppressing HD communication timeout.")); + LOG_DEBUG(tr("Suppressing HD communication timeout.")); return; } // coco end Index: sources/view/settings/VDateTime.cpp =================================================================== diff -u -ra5be04172757fa469d85fb83a6998a4404214f19 -r6816b783f50e08267aa016d64350bc020080d901 --- sources/view/settings/VDateTime.cpp (.../VDateTime.cpp) (revision a5be04172757fa469d85fb83a6998a4404214f19) +++ sources/view/settings/VDateTime.cpp (.../VDateTime.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -92,7 +92,7 @@ .arg(_minute) .arg(_second); - LOG_EVENT(tr("SetDateTime %1").arg(mDateTime)); + LOG_DEBUG(tr("SetDateTime %1").arg(mDateTime)); status("Setting date and time ..."); @@ -114,7 +114,7 @@ } else { _acceptUI = SUCCEED; - LOG_EVENT("SetDateTime Succeed"); + LOG_DEBUG("SetDateTime Succeed"); } updateStatus(); } Index: sources/wifi/WifiInterface.cpp =================================================================== diff -u -r7077e38c74db9cccb5496ffefcf8936c0916de76 -r6816b783f50e08267aa016d64350bc020080d901 --- sources/wifi/WifiInterface.cpp (.../WifiInterface.cpp) (revision 7077e38c74db9cccb5496ffefcf8936c0916de76) +++ sources/wifi/WifiInterface.cpp (.../WifiInterface.cpp) (revision 6816b783f50e08267aa016d64350bc020080d901) @@ -209,7 +209,7 @@ _init = true; initConnections(); - LOG_EVENT("UI," + tr("%1 Initialized").arg(metaObject()->className())); + LOG_DEBUG("UI," + tr("%1 Initialized").arg(metaObject()->className())); return true; }