Index: sources/canbus/messageinterpreter.cpp =================================================================== diff -u -rfe1cc7af9637a8485b6948b50eb5fb06e4c83740 -r772d48b0ccaa0d25b6ed48bba3a4b29dc73c5c16 --- sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision fe1cc7af9637a8485b6948b50eb5fb06e4c83740) +++ sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision 772d48b0ccaa0d25b6ed48bba3a4b29dc73c5c16) @@ -21,8 +21,10 @@ // Project #include "logger.h" #include "format.h" +#include "mtreatmentparameters.h" using namespace Can; +using namespace Model; #define DEBUG_RECEIVE_SIGNAL(vID, vMODEL) //qDebug() << vID << vMODEL; @@ -242,6 +244,15 @@ LOG_EVENT(AlarmSilenceRequestData::toString(vData)); break; + case Gui::GuiActionType::ID_CreateTreatmentReq: { + if ( ! count ) { logInvalidLength(vActionId); return false; } + vPayload = Format::fromVariant(vData); + TreatmentParameters params; + params.fromVariantList(vData); + LOG_EVENT(params.toString()); + break; + } + default: QString mActionIdHexString = Format::toHexString(vActionId); LOG_DEBUG(mSenderID + tr("Unknown transmit Message with ID '%1'").arg(mActionIdHexString)); Index: sources/model/mtreatmentparameters.cpp =================================================================== diff -u -rc71deaab48699cffdf9db816dfac2778d79c2238 -r772d48b0ccaa0d25b6ed48bba3a4b29dc73c5c16 --- sources/model/mtreatmentparameters.cpp (.../mtreatmentparameters.cpp) (revision c71deaab48699cffdf9db816dfac2778d79c2238) +++ sources/model/mtreatmentparameters.cpp (.../mtreatmentparameters.cpp) (revision 772d48b0ccaa0d25b6ed48bba3a4b29dc73c5c16) @@ -2,3 +2,53 @@ using namespace Model; TreatmentParameters::TreatmentParameters() {} + +QString TreatmentParameters::toString() +{ + return QString(stringPrefix + "(%0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16)") + .arg(data.bloodFlowRate) + .arg(data.dialysateFlowRate) + .arg(data.duration) + .arg(data.heparinDispensingRate) + .arg(data.heparinBolusVolume) + .arg(data.heparinStopTime) + .arg(data.salineBolus) + .arg(data.acidConcentrate) + .arg(data.bicarbonateConcentrate) + .arg(data.dialyzerType) + .arg(data.dialysateTemp) + .arg(data.arterialPressureLimitLow) + .arg(data.arterialPressureLimitHigh) + .arg(data.venousPressureLimitLow) + .arg(data.venousPressureLimitHigh) + .arg(data.bloodPressureMeasureInterval) + .arg(data.rinsebackFlowRate); +} + +TreatmentParameters::Data TreatmentParameters::fromVariantList(const QVariantList &list) +{ + Data data; + if (list.length() != 18) + { + qDebug() << "Invalid QVariant List in " << __FUNCTION__; + return data; + } + data.bloodFlowRate = list[0].toUInt(); + data.dialysateFlowRate = list[1].toUInt(); + data.duration = list[2].toUInt(); + data.heparinDispensingRate = list[3].toUInt(); + data.heparinBolusVolume = list[4].toUInt(); + data.heparinStopTime = list[5].toUInt(); + data.salineBolus = list[6].toUInt(); + data.acidConcentrate = list[7].toUInt(); + data.bicarbonateConcentrate = list[8].toUInt(); + data.dialyzerType = list[9].toUInt(); + data.dialysateTemp = list[10].toUInt(); + data.arterialPressureLimitLow = list[11].toUInt(); + data.arterialPressureLimitHigh = list[12].toUInt(); + data.venousPressureLimitLow = list[13].toUInt(); + data.venousPressureLimitHigh = list[14].toUInt(); + data.bloodPressureMeasureInterval = list[15].toUInt(); + data.rinsebackFlowRate = list[16].toUInt(); + return data; +} Index: sources/model/mtreatmentparameters.h =================================================================== diff -u -r9612f309f51323d5f89fa7acd64acb3e355380e2 -r772d48b0ccaa0d25b6ed48bba3a4b29dc73c5c16 --- sources/model/mtreatmentparameters.h (.../mtreatmentparameters.h) (revision 9612f309f51323d5f89fa7acd64acb3e355380e2) +++ sources/model/mtreatmentparameters.h (.../mtreatmentparameters.h) (revision 772d48b0ccaa0d25b6ed48bba3a4b29dc73c5c16) @@ -32,32 +32,15 @@ qint32 venousPressureLimitHigh = 0; // mmHg quint32 bloodPressureMeasureInterval = 0; // minutes quint32 rinsebackFlowRate = 0; // mL/min - - bool operator == (const Data &other) const { - if (other.bloodFlowRate != bloodFlowRate) return false; - if (other.dialysateFlowRate != dialysateFlowRate) return false; - if (other.duration != duration) return false; - if (other.heparinDispensingRate != heparinDispensingRate) return false; - if (other.heparinBolusVolume != heparinBolusVolume) return false; - if (other.heparinStopTime != heparinStopTime) return false; - if (other.salineBolus != salineBolus) return false; - if (other.acidConcentrate != acidConcentrate) return false; - if (other.bicarbonateConcentrate != bicarbonateConcentrate) return false; - if (other.dialyzerType != dialyzerType) return false; - if (other.dialysateTemp != dialysateTemp) return false; - if (other.arterialPressureLimitLow != arterialPressureLimitLow) return false; - if (other.arterialPressureLimitHigh != arterialPressureLimitHigh) return false; - if (other.venousPressureLimitLow != venousPressureLimitLow) return false; - if (other.venousPressureLimitHigh != venousPressureLimitHigh) return false; - if (other.bloodPressureMeasureInterval != bloodPressureMeasureInterval) return false; - if (other.rinsebackFlowRate != rinsebackFlowRate) return false; - return true; - } - }; Data data; + QString toString(); + TreatmentParameters::Data fromVariantList(const QVariantList &list); +private: + + QString stringPrefix = "Treatment Parameters"; }; } Index: unittests/tst_views.cpp =================================================================== diff -u -r9551959461d534dc624f0cbcca0e6f953844fb16 -r772d48b0ccaa0d25b6ed48bba3a4b29dc73c5c16 --- unittests/tst_views.cpp (.../tst_views.cpp) (revision 9551959461d534dc624f0cbcca0e6f953844fb16) +++ unittests/tst_views.cpp (.../tst_views.cpp) (revision 772d48b0ccaa0d25b6ed48bba3a4b29dc73c5c16) @@ -479,7 +479,23 @@ view.onFinishedPrime(); view.onStart(); - QCOMPARE(view.treatmentData, dataBackup); + QCOMPARE(view.treatmentData.bloodFlowRate, dataBackup.bloodFlowRate); + QCOMPARE(view.treatmentData.dialysateFlowRate, dataBackup.dialysateFlowRate); + QCOMPARE(view.treatmentData.duration, dataBackup.duration); + QCOMPARE(view.treatmentData.heparinDispensingRate, dataBackup.heparinDispensingRate); + QCOMPARE(view.treatmentData.heparinBolusVolume, dataBackup.heparinBolusVolume); + QCOMPARE(view.treatmentData.heparinStopTime, dataBackup.heparinStopTime); + QCOMPARE(view.treatmentData.salineBolus, dataBackup.salineBolus); + QCOMPARE(view.treatmentData.acidConcentrate, dataBackup.acidConcentrate); + QCOMPARE(view.treatmentData.bicarbonateConcentrate, dataBackup.bicarbonateConcentrate); + QCOMPARE(view.treatmentData.dialyzerType, dataBackup.dialyzerType); + QCOMPARE(view.treatmentData.dialysateTemp, dataBackup.dialysateTemp); + QCOMPARE(view.treatmentData.arterialPressureLimitLow, dataBackup.arterialPressureLimitLow); + QCOMPARE(view.treatmentData.arterialPressureLimitHigh, dataBackup.arterialPressureLimitHigh); + QCOMPARE(view.treatmentData.venousPressureLimitLow, dataBackup.venousPressureLimitLow); + QCOMPARE(view.treatmentData.venousPressureLimitHigh, dataBackup.venousPressureLimitHigh); + QCOMPARE(view.treatmentData.bloodPressureMeasureInterval, dataBackup.bloodPressureMeasureInterval); + QCOMPARE(view.treatmentData.rinsebackFlowRate, dataBackup.rinsebackFlowRate); }