Index: sources/view/settings/VCalibrationSettings.cpp =================================================================== diff -u -r7f62ca31bd7823affed99cda268e1e93c9caec3d -r8350b02fa06da7cb6d7f085f88f55bf505ae78df --- sources/view/settings/VCalibrationSettings.cpp (.../VCalibrationSettings.cpp) (revision 7f62ca31bd7823affed99cda268e1e93c9caec3d) +++ sources/view/settings/VCalibrationSettings.cpp (.../VCalibrationSettings.cpp) (revision 8350b02fa06da7cb6d7f085f88f55bf505ae78df) @@ -10,10 +10,16 @@ void View::VCalibrationSettings::initConnections() { + ADJUST_VIEW_CONNECTION(DDCalibrationPressureRequestData) + ADJUST_VIEW_CONNECTION(AdjustDDCalibrationPressureRequestData) + ACTION_VIEW_CONNECTION(DDCalibrationPressureResponseData) + ACTION_VIEW_CONNECTION(AdjustDDCalibrationPressureResponseData) + _calibrationList.setRoleNames({ { eRole_Title , "title" }, { eRole_Component , "component" }, { eRole_Payload , "payload" }, + { eRole_Received , "received" }, }); } @@ -49,116 +55,165 @@ { QVariantList initPayloadValues = initList ( { tr("Gain"), tr("Offset"), tr("Cal Time") } ) ; // DD Pressure sensors - _calibrationList.appendRow( {{ eRole_Title, tr("Hydraulics Outlet Pressure")}, { eRole_Component, tr("D9" )}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Dry Bicarb Pressure")}, { eRole_Component, tr("D66")}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Spent Dialysate Pressure")}, { eRole_Component, tr("D51")}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Fresh Dialysate Pressure")}, { eRole_Component, tr("D15")}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Transmembrane Pressure")}, { eRole_Component, tr("D41")}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("D87 Pressure Sensor")}, { eRole_Component, tr("D87")}, {eRole_Payload, initPayloadValues }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Hydraulics Outlet Pressure")}, { eRole_Component, tr("D9" )}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Dry Bicarb Pressure")}, { eRole_Component, tr("D66")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Spent Dialysate Pressure")}, { eRole_Component, tr("D51")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Fresh Dialysate Pressure")}, { eRole_Component, tr("D15")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Transmembrane Pressure")}, { eRole_Component, tr("D41")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("D87 Pressure Sensor")}, { eRole_Component, tr("D87")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); // FP Pressure sensors - _calibrationList.appendRow( {{ eRole_Title, tr("Water inlet pressure before regulator")}, { eRole_Component, tr("M3") }, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Water inlet pressure after regulator")}, { eRole_Component, tr("P8") }, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Water inlet pressure before the cond. sensor")}, { eRole_Component, tr("P13")}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Pressure before the RO filter")}, { eRole_Component, tr("P17")}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Pressure after the RO filter")}, { eRole_Component, tr("P46")}, {eRole_Payload, initPayloadValues }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Water inlet pressure before regulator")}, { eRole_Component, tr("M3") }, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Water inlet pressure after regulator")}, { eRole_Component, tr("P8") }, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Water inlet pressure before the cond. sensor")}, { eRole_Component, tr("P13")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Pressure before the RO filter")}, { eRole_Component, tr("P17")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Pressure after the RO filter")}, { eRole_Component, tr("P46")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); break; } case eTemperature : { QVariantList initPayloadValues = initList ( { tr("Gain"), tr("Offset"), tr("Cal Time") } ) ; - _calibrationList.appendRow( {{ eRole_Title, tr("Heat exchanger Inlet")}, { eRole_Component, tr("D1" )}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Heat exchanger Outlet")}, { eRole_Component, tr("D78")}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Hydraulics Primary Heater")}, { eRole_Component, tr("D4" )}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Trimmer Heater")}, { eRole_Component, tr("D50")}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Conductivity")}, { eRole_Component, tr("D99")}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Barometric")}, { eRole_Component, tr("BRD")}, {eRole_Payload, initPayloadValues }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Heat exchanger Inlet")}, { eRole_Component, tr("D1" )}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Heat exchanger Outlet")}, { eRole_Component, tr("D78")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Hydraulics Primary Heater")}, { eRole_Component, tr("D4" )}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Trimmer Heater")}, { eRole_Component, tr("D50")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Conductivity")}, { eRole_Component, tr("D99")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Barometric")}, { eRole_Component, tr("BRD")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); break; } case eConcentratePump : { QVariantList initPayloadValues = initList ( { tr("Gain"), tr("Offset"), tr("Cal Time") } ) ; - _calibrationList.appendRow( {{ eRole_Title, tr("Acid")}, { eRole_Component, tr("D11_CP1" )}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Bicarbonate")}, { eRole_Component, tr("D10_CP2" )}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Ultrafiltration")}, { eRole_Component, tr("D76" )}, {eRole_Payload, initPayloadValues }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Acid")}, { eRole_Component, tr("D11_CP1" )}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Bicarbonate")}, { eRole_Component, tr("D10_CP2" )}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Ultrafiltration")}, { eRole_Component, tr("D76" )}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); break; } case eDialysatePumpD12 : { QVariantList initPayloadValues = initList ( { tr("Target Pump Speed"), tr("Cal Time") } ) ; - _calibrationList.appendRow( {{ eRole_Title, tr("Fresh Dialysate Pump")}, { eRole_Component, tr("D12" )}, {eRole_Payload, initPayloadValues }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Fresh Dialysate Pump")}, { eRole_Component, tr("D12" )}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); break; } case eDialysatePumpD48 : { QVariantList initPayloadValues = initList ( { tr("Gain"), tr("Offset"), tr("Cal Time") } ) ; - _calibrationList.appendRow( {{ eRole_Title, tr("Spent Dialysate Pump")}, { eRole_Component, tr("D48" )}, {eRole_Payload, initPayloadValues }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Spent Dialysate Pump")}, { eRole_Component, tr("D48" )}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); break; } case eAcidTypes : { QVariantList initPayloadValues = initList ( { tr("Mix Ratio"), tr("Full Bottle Vol. (mL)"), tr("Cond. (uS/cm)"), tr("Temp (°C)"), tr("Cal Time") } ) ; - _calibrationList.appendRow( {{ eRole_Title, tr("08-1251-1")}, { eRole_Component, tr("")}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("08-2251-0")}, { eRole_Component, tr("")}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("08-3251-9")}, { eRole_Component, tr("")}, {eRole_Payload, initPayloadValues }}); + _calibrationList.appendRow( {{ eRole_Title, tr("08-1251-1")}, { eRole_Component, tr("")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("08-2251-0")}, { eRole_Component, tr("")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("08-3251-9")}, { eRole_Component, tr("")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); break; } case eBicarbTypes : { QVariantList initPayloadValues = initList ( { tr("Mix Ratio"), tr("Start Volume (mL)"), tr("Cond. (uS/cm)"), tr("Temp (°C)"), tr("Cal Time") } ) ; - _calibrationList.appendRow( {{ eRole_Title, tr("08-677753-0")}, { eRole_Component, tr("")}, {eRole_Payload, initPayloadValues }}); + _calibrationList.appendRow( {{ eRole_Title, tr("08-677753-0")}, { eRole_Component, tr("")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); break; } case eAccelerometer : { QVariantList initPayloadValues = initList ( { tr("X axis offset"), tr("Y axis offset"), tr("Z axis offset"), tr("Cal Time") } ) ; - _calibrationList.appendRow( {{ eRole_Title, tr("Accelerometer")}, { eRole_Component, tr("")}, {eRole_Payload, initPayloadValues }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Accelerometer")}, { eRole_Component, tr("")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); break; } case eBloodLeak : { QVariantList initPayloadValues = initList ( { tr("Set Point"), tr("Cal Time") } ) ; - _calibrationList.appendRow( {{ eRole_Title, tr("Blood Leak")}, { eRole_Component, tr("")}, {eRole_Payload, initPayloadValues }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Blood Leak")}, { eRole_Component, tr("")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); break; } case eConductivity : { QVariantList initPayloadValues = initList ( { tr("Coeff 1"),tr("Coeff 2"),tr("Coeff 3"),tr("Coeff 4"),tr("Coeff 5"),tr("Coeff 6"),tr("Coeff 7"), tr("Coeff 8"),tr("Coeff 9"),tr("Coeff 10"),tr("Coeff 11"),tr("Coeff 12"),tr("Cal Time") } ) ; - _calibrationList.appendRow( {{ eRole_Title, tr("Closed Loop Control of Dosing")}, { eRole_Component, tr("D17")}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Closed Loop Control of Dosing")}, { eRole_Component, tr("D27")}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Water, Bicarbonate, and Acid")}, { eRole_Component, tr("D29")}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Self Test")}, { eRole_Component, tr("D43")}, {eRole_Payload, initPayloadValues }}); - _calibrationList.appendRow( {{ eRole_Title, tr("Water and Bicarb Collective")}, { eRole_Component, tr("D74")}, {eRole_Payload, initPayloadValues }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Closed Loop Control of Dosing")}, { eRole_Component, tr("D17")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Closed Loop Control of Dosing")}, { eRole_Component, tr("D27")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Water, Bicarbonate, and Acid")}, { eRole_Component, tr("D29")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Self Test")}, { eRole_Component, tr("D43")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); + _calibrationList.appendRow( {{ eRole_Title, tr("Water and Bicarb Collective")}, { eRole_Component, tr("D74")}, {eRole_Payload, initPayloadValues }, {eRole_Received, false }}); break; } } + + doRequestRecords(vIndex); } -void View::VCalibrationSettings::doAdjustment(int vIndex, int vSensorIndex, QVariantList vPayload) +void View::VCalibrationSettings::doRequestRecords(int vIndex) { - // to test rejeciton reason - works -- REMOIVE later -// static int test = 0; -// rejectionReasons ({0,0,0,0,test = ! test,0}); + switch (vIndex) { + case ePressure : + { + DDCalibrationPressureRequestData data; + data.mIndex = 2; + emit didAdjustment(data); + break; + } + case eTemperature : + break; + case eConcentratePump : + break; + case eDialysatePumpD12 : + break; + case eDialysatePumpD48 : + break; + case eAcidTypes : + break; + case eBicarbTypes : + break; + case eAccelerometer : + break; + case eBloodLeak : + break; + case eConductivity : + break; + } +} +void View::VCalibrationSettings::doAdjustment(int vIndex, + int vSensorIndex, + QVariantList vPayload) +{ + enum CalibrationPayload{ + eGain = 0 , + eOffset , + eCalibrationTime + }; + // epoch for fw payload - quint32 calTime = getEpochUTC(); + const quint32 calTimeEpoch = getEpochUTC(); + const QString formattedTime = Format::fromEpoch( calTimeEpoch, "yyyy/MM/dd, HH:mm" ); - // set cal time epoch to readble for UI - if ( ! vPayload.isEmpty()) - { - vPayload.last() = Format::fromEpoch( calTime, "yyyy/MM/dd, HH:mm" ); - } - _calibrationList.updateData(vSensorIndex, eRole_Payload, vPayload); + bool ok = true; + bool result = false; - qDebug() << "Cal Time: " << vPayload.last() << " -- Epoch:" << calTime; + if ( vPayload.isEmpty() ) { goto invalid; } switch (vIndex) { case ePressure : + { + if (vPayload.size() < 3) { goto invalid; } + + AdjustDDCalibrationPressureRequestData data; + data.mIndex = vIndex ; + data.mGain = vPayload[eGain] .toFloat(&result) ; + ok &= result; + data.mOffset = vPayload[eOffset] .toFloat(&result) ; + ok &= result; + data.mCalibrationTime = calTimeEpoch ; + + if (!ok) goto invalid; + + emit didAdjustment(data); break; + } case eTemperature : break; case eConcentratePump : break; - case eDialysatePumpD12 : + case eDialysatePumpD12 : break; case eDialysatePumpD48 : break; @@ -173,4 +228,39 @@ case eConductivity : break; } + + vPayload[eCalibrationTime] = formattedTime; + _calibrationList.updateData(vSensorIndex, eRole_Payload, vPayload); + return; + +invalid: + qWarning() << "Invalid calibration payload:" << vPayload; } + +void View::VCalibrationSettings::onActionReceive(const DDCalibrationPressureResponseData &vData) +{ + adjustment_Accepted ( vData.mAccepted ); + adjustment_Reason ( vData.mReason ); + _calibrationList.updateData( vData.mIndex, eRole_Payload, QVariantList ({ vData.mGain, + vData.mOffset, + vData.mCalTime })); + qDebug() << "DDCalibrationPressureResponseData" ; + qDebug() << vData.mIndex ; + qDebug() << vData.mGain ; + adjustment ( true ); +} + +void View::VCalibrationSettings::onActionReceive(const AdjustDDCalibrationPressureResponseData &vData) +{ + adjustment_Accepted ( vData.mAccepted ); + adjustment_Reason ( vData.mReason ); + + qDebug() << "AdjustDDCalibrationPressureResponseData" ; + qDebug() << vData.mIndex ; + + rejectionReasons ({ vData.mGainRejectReason , + vData.mOffsetRejectReason , + vData.mCalibrationTimeRejectReason }) ; + + adjustment ( true ); +}