Index: sources/view/settings/VCalibrationSettings.cpp =================================================================== diff -u -rd560d600cc99ff145bee8a14ce5be183e14450da -rbd76dfd315dcec264e4bbe26e3dd85a276937094 --- sources/view/settings/VCalibrationSettings.cpp (.../VCalibrationSettings.cpp) (revision d560d600cc99ff145bee8a14ce5be183e14450da) +++ sources/view/settings/VCalibrationSettings.cpp (.../VCalibrationSettings.cpp) (revision bd76dfd315dcec264e4bbe26e3dd85a276937094) @@ -3,6 +3,7 @@ #include "GuiController.h" #include "format.h" #include "VCalibrationSettings.h" +#include "MessageGlobals.h" #include @@ -92,6 +93,12 @@ return currentDateTimeUTC.toSecsSinceEpoch(); } + +int View::VCalibrationSettings::getPayloadLength(Gui::GuiActionType type) +{ + return ( payloadLen[type] / 4 ) - 1 ; +} + /*! * \brief VCalibrationSettings::clearRejectionReason * \details Slot to clear rejection reason when user is editing a rejected parameter @@ -346,203 +353,184 @@ // epoch for fw payload const quint32 calTimeEpoch = getEpochUTC(); - const QString formattedTime = Format::fromEpoch( calTimeEpoch, "yyyy/MM/dd, HH:mm" ); + const QString formattedTime = Format::fromEpoch( calTimeEpoch, "yyyy/MM/dd, HH:mm" ); - bool ok = true; bool result = false; if ( vPayload.isEmpty() ) { goto invalid; } + switch (vIndex) { case ePressure : { - if (vPayload.size() < 3) { goto invalid; } + if (vPayload.size() < getPayloadLength(GuiActionType::ID_AdjustDDCalibrationPressureReq)) { goto invalid; } AdjustDDCalibrationPressureRequestData data; data.mIndex = vSensorIndex ; data.mGain = vPayload[eGain] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mOffset = vPayload[eOffset] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mCalibrationTime = calTimeEpoch ; - if (!ok) goto invalid; emit didAdjustment(data); break; } case eTemperature : { - if (vPayload.size() < 3) { goto invalid; } + if (vPayload.size() < getPayloadLength(GuiActionType::ID_AdjustDDCalibrationTemperatureReq)) { goto invalid; } AdjustDDCalibrationTemperatureRequestData data; data.mIndex = vSensorIndex ; data.mGain = vPayload[eGain] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mOffset = vPayload[eOffset] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mCalibrationTime = calTimeEpoch ; - if (!ok) goto invalid; - emit didAdjustment(data); break; } case eConcentratePump : { - if (vPayload.size() < 3) { goto invalid; } + if (vPayload.size() < getPayloadLength(GuiActionType::ID_AdjustDDCalibrationConcentratePumpReq)) { goto invalid; } AdjustDDCalibrationConcentratePumpRequestData data; data.mIndex = vSensorIndex ; data.mGain = vPayload[eGain] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mOffset = vPayload[eOffset] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mCalibrationTime = calTimeEpoch ; - if (!ok) goto invalid; - emit didAdjustment(data); break; } case eDialysatePumpD12 : { - if (vPayload.size() < 2) { goto invalid; } + if (vPayload.size() < getPayloadLength(GuiActionType::ID_AdjustDDCalibrationD12DialysatePumpReq)) { goto invalid; } AdjustDDCalibrationD12DialysatePumpRequestData data; data.mTargetPumpSpeed = vPayload[0] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mCalibrationTime = calTimeEpoch ; - if (!ok) goto invalid; - emit didAdjustment(data); break; } case eDialysatePumpD48 : { - if (vPayload.size() < 3) { goto invalid; } + if (vPayload.size() < getPayloadLength(GuiActionType::ID_AdjustDDCalibrationD48DialysatePumpReq)) { goto invalid; } AdjustDDCalibrationD48DialysatePumpRequestData data; data.mGain = vPayload[eGain] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mOffset = vPayload[eOffset] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mCalibrationTime = calTimeEpoch ; - if (!ok) goto invalid; - emit didAdjustment(data); break; } case eAcidTypes : { - if (vPayload.size() < 5) { goto invalid; } + if (vPayload.size() < getPayloadLength(GuiActionType::ID_AdjustDDCalibrationAcidConcentratesReq)) { goto invalid; } AdjustDDCalibrationAcidConcentratesRequestData data; data.mIndex = vSensorIndex ; data.mAcidConcMixRatio = vPayload[ConcMixRatio] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mAcidFullBottleVolumeML = vPayload[FullBottleVolumeML] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mAcidConductivityUSPerCM = vPayload[ConductivityUSPerCM] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mAcidBottleTemperature = vPayload[BottleTemperature] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mCalibrationTime = calTimeEpoch ; - if (!ok) goto invalid; - emit didAdjustment(data); break; } case eBicarbTypes : { - if (vPayload.size() < 5) { goto invalid; } + if (vPayload.size() < getPayloadLength(GuiActionType::ID_AdjustDDCalibrationBicarbConcentratesReq)) { goto invalid; } AdjustDDCalibrationBicarbConcentratesRequestData data; data.mIndex = vSensorIndex ; data.mBicarbConcMixRatio = vPayload[ConcMixRatio] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mBicarbStartVolumeML = vPayload[FullBottleVolumeML] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mBicarbConductivityUSPerCM = vPayload[ConductivityUSPerCM] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mBicarbBottleTemperature = vPayload[BottleTemperature] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mCalibrationTime = calTimeEpoch ; - if (!ok) goto invalid; - emit didAdjustment(data); break; } case eAccelerometer : { - if (vPayload.size() < 4) { goto invalid; } + if (vPayload.size() < getPayloadLength(GuiActionType::ID_AdjustDDCalibrationAccelerometerSensorReq)) { goto invalid; } AdjustDDCalibrationAccelerometerSensorRequestData data; data.mAccelXOffset = vPayload[XOffSet] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mAccelYOffset = vPayload[YOffSet] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mAccelZOffset = vPayload[ZOffSet] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mCalibrationTime = calTimeEpoch ; - if (!ok) goto invalid; - emit didAdjustment(data); break; } case eBloodLeak : { - if (vPayload.size() < 2) { goto invalid; } + if (vPayload.size() < getPayloadLength(GuiActionType::ID_AdjustDDCalibrationBloodLeakSensorReq)) { goto invalid; } AdjustDDCalibrationBloodLeakSensorRequestData data; data.mSetPoint = vPayload[0] .toInt(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mCalibrationTime = calTimeEpoch ; - if (!ok) goto invalid; - emit didAdjustment(data); break; } case eConductivity : { - if (vPayload.size() < 13) { goto invalid; } + if (vPayload.size() < getPayloadLength(GuiActionType::ID_AdjustDDCalibrationConductivitySensorReq)) { goto invalid; } AdjustDDCalibrationConductivityRequestData data; data.mIndex = vSensorIndex ; data.mKHigh = vPayload[KHigh] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mAlphaHigh = vPayload[AlphaHigh] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mEtaHigh = vPayload[EtaHigh] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mZetahigh = vPayload[Zetahigh] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mKLow = vPayload[KLow] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mAlphaLow = vPayload[AlphaLow] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mEtaLow = vPayload[EtaLow] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mZetaLow = vPayload[ZetaLow] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mBeta = vPayload[Beta] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mDelta = vPayload[Delta] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mReserved1 = vPayload[Reserved1] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mReserved2 = vPayload[Reserved2] .toFloat(&result) ; - ok &= result; + if ( ! result ) goto invalid; data.mCalibrationTime = calTimeEpoch ; - if (!ok) goto invalid; - emit didAdjustment(data); break; }