Index: firmware/App/Services/TxParams.c =================================================================== diff -u -rb4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00 -r12af1351f6db7747ebe2b4c52a9bac41ef551968 --- firmware/App/Services/TxParams.c (.../TxParams.c) (revision b4166e3c1342a8ddbf1dee8df4eaeb46fb0e6d00) +++ firmware/App/Services/TxParams.c (.../TxParams.c) (revision 12af1351f6db7747ebe2b4c52a9bac41ef551968) @@ -123,6 +123,7 @@ { CRITICAL_DATA_TYPE_U32, {.uInt=300}, {.uInt=500}, {.uInt=300} }, // TREATMENT_PARAM_PRIME_RINSEBACK_VOLUME { CRITICAL_DATA_TYPE_U32, {.uInt=0}, {.uInt=3}, {.uInt=0} }, // TREATMENT_PARAM_HEPATITIS_B { CRITICAL_DATA_TYPE_U32, {.uInt=0}, {.uInt=2}, {.uInt=0} }, // TREATMENT_PARAM_ACID_CONCENTRATE + { CRITICAL_DATA_TYPE_U32, {.uInt=0}, {.uInt=1}, {.uInt=0} }, // TREATMENT_PARAM_CONFIRMATION { CRITICAL_DATA_TYPE_F32, {.sFlt=0.0}, {.sFlt=48.0}, {.sFlt=1.0} }, // TREATMENT_PARAM_SUBST_FLUID_VOLUME { CRITICAL_DATA_TYPE_F32, {.sFlt=0.0}, {.sFlt=2.0}, {.sFlt=0.0} }, // TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME { CRITICAL_DATA_TYPE_F32, {.sFlt=0.0}, {.sFlt=3.0}, {.sFlt=0.0} }, // TREATMENT_PARAM_HEPARIN_DELIVERY_RATE @@ -439,6 +440,7 @@ BOOL paramsAreInvalid = TRUE; BOOL paramsAreInRange, paramsAreConsistent, isUFValid; BOOL result = FALSE; + BOOL paramsConfirmed = FALSE; TREATMENT_PARAMS_DATA_PAYLOAD_T params; U32 rejReasons[ NUM_OF_TREATMENT_PARAMS ]; @@ -456,6 +458,9 @@ // Extract treatment parameters from given payload to staging array so we can more easily work with them extractTreatmentParamsFromPayload( params ); + // Flag that indicates if the user have sent the tx params validation from pre-treatment create rx state, + // so that if all params are valid, TD software will transition state to patient connection + paramsConfirmed = (BOOL)stagedParams[ TREATMENT_PARAM_TREATMENT_DURATION ].uInt; // Range check each treatment parameter paramsAreInRange = checkTreatmentParamsInRange( &rejReasons[0] ); @@ -473,7 +478,10 @@ paramsAreInvalid = FALSE; validTreatParamsReceived = TRUE; // direct confirmation, no validation state exists now - treatParamsConfirmed = TRUE; + if ( TRUE == paramsConfirmed ) + { + treatParamsConfirmed = TRUE; + } // Set all treatment parameters after validation for ( param = TREATMENT_PARAM_FIRST_UINT; param < NUM_OF_TREATMENT_PARAMS; param++ )