Index: firmware/App/Modes/ModeTxParams.c =================================================================== diff -u -r96377d3f1e16d6f8a48fddbe9f645f9e2fd68478 -rb235eaec221c0e56482f640cf374111daa34119f --- firmware/App/Modes/ModeTxParams.c (.../ModeTxParams.c) (revision 96377d3f1e16d6f8a48fddbe9f645f9e2fd68478) +++ firmware/App/Modes/ModeTxParams.c (.../ModeTxParams.c) (revision b235eaec221c0e56482f640cf374111daa34119f) @@ -863,7 +863,8 @@ setPressureLimitsToOuterBounds(); // Go to pre-treatment mode - requestNewOperationMode( MODE_PRET ); + requestNewOperationMode( MODE_PRET ); // TODO - restore when pre-tx mode implemented + // requestNewOperationMode( MODE_TREA ); // Commenting for training treatParamsConfirmed = FALSE; } Index: firmware/App/Services/TxParams.c =================================================================== diff -u -r482b7687783895cd75bbbf1756f724952bcfcaf6 -rb235eaec221c0e56482f640cf374111daa34119f --- firmware/App/Services/TxParams.c (.../TxParams.c) (revision 482b7687783895cd75bbbf1756f724952bcfcaf6) +++ firmware/App/Services/TxParams.c (.../TxParams.c) (revision b235eaec221c0e56482f640cf374111daa34119f) @@ -1146,34 +1146,40 @@ /*********************************************************************//** * @brief - * The testSetTreatmentParameterOverride function overrides the value of a - * given treatment parameter. - * @details Inputs: none - * @details Outputs: treatment parameter set to given value - * @param param ID of treatment parameter to set value of - * @param value value to set for given treatment parameter - * @return TRUE if override successful, FALSE if not + * The testSetTreatmentParameter function sets a given treatment parameter + * to a given value. + * @details \b Inputs: none + * @details \b Outputs: treatmentParameters[] + * @param message Set treatment parameter message from Dialin which includes + * the ID of the treatment parameter to be set and the value to set it to. + * @return TRUE if set request is successful, FALSE if not *************************************************************************/ -BOOL testSetTreatmentParameter( TREATMENT_PARAM_T param, CRITICAL_DATAS_T value ) +BOOL testSetTreatmentParameter( MESSAGE_T *message ) { BOOL result = FALSE; - if ( param < NUM_OF_TREATMENT_PARAMS ) + // Verify payload length is valid + if ( message->hdr.payloadLen == sizeof( DIALIN_SET_TX_PARAM_PAYLOAD_T ) ) { - if ( TRUE == isTestingActivated() ) + DIALIN_SET_TX_PARAM_PAYLOAD_T payload; + + memcpy( (U08*)&payload, &message->payload[0], sizeof( DIALIN_SET_TX_PARAM_PAYLOAD_T ) ); + + // Verify treatment parameter ID is valid + if ( (TREATMENT_PARAM_T)payload.paramID < NUM_OF_TREATMENT_PARAMS ) { - // Set parameter per its type - if ( CRITICAL_DATA_TYPE_U32 == TREAT_PARAMS_PROPERTIES[ param ].dataType ) + // Set the given Tx param to the given value + if ( (TREATMENT_PARAM_T)payload.paramID <= TREATMENT_PARAM_LAST_UINT ) { - result = setTreatmentParameterU32( param, value.uInt ); + result = setTreatmentParameterU32( (TREATMENT_PARAM_T)payload.paramID, payload.value.uInt ); } - else if ( CRITICAL_DATA_TYPE_S32 == TREAT_PARAMS_PROPERTIES[ param ].dataType ) + else if ( (TREATMENT_PARAM_T)payload.paramID >= TREATMENT_PARAM_FIRST_F32 ) { - result = setTreatmentParameterS32( param, value.sInt ); + result = setTreatmentParameterF32( (TREATMENT_PARAM_T)payload.paramID, payload.value.sFlt ); } else { - result = setTreatmentParameterF32( param, value.sFlt ); + result = setTreatmentParameterS32( (TREATMENT_PARAM_T)payload.paramID, payload.value.sInt ); } } } @@ -1216,4 +1222,5 @@ return result; } + /**@}*/ Index: firmware/App/Services/TxParams.h =================================================================== diff -u -r482b7687783895cd75bbbf1756f724952bcfcaf6 -rb235eaec221c0e56482f640cf374111daa34119f --- firmware/App/Services/TxParams.h (.../TxParams.h) (revision 482b7687783895cd75bbbf1756f724952bcfcaf6) +++ firmware/App/Services/TxParams.h (.../TxParams.h) (revision b235eaec221c0e56482f640cf374111daa34119f) @@ -101,6 +101,15 @@ BOOL getTreatParamsConfirmed( void ); // Determine whether user confirmed the parameters BOOL isTreatmentParamInRange( TREATMENT_PARAM_T param, CRITICAL_DATAS_T value ); // Check range for a proposed treatment parameter value +S32 getS32TreatmentParamLowerRangeLimit( TREATMENT_PARAM_T param ); // Get lower range limit for signed integer treatment parameter +S32 getS32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_T param ); // Get upper range limit for signed integer treatment parameter +U32 getU32TreatmentParamLowerRangeLimit( TREATMENT_PARAM_T param ); // Get lower range limit for unsigned integer treatment parameter +U32 getU32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_T param ); // Get upper range limit for unsigned integer treatment parameter +F32 getF32TreatmentParamLowerRangeLimit( TREATMENT_PARAM_T param ); // Get lower range limit for floating point treatment parameter +F32 getF32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_T param ); // Get upper range limit for floating point treatment parameter +S32 getS32DefaultTreatmentParamEdge( TREATMENT_PARAM_T param, BOOL isMin ); // Get default min/max edge for signed integer treatment parameter +U32 getU32DefaultTreatmentParamEdge( TREATMENT_PARAM_T param, BOOL isMin ); // Get default min/max edge for unsigned integer treatment parameter +F32 getF32DefaultTreatmentParamEdge( TREATMENT_PARAM_T param, BOOL isMin ); // Get default min/max edge for floating point treatment parameter U32 getDialyzerBloodVolume( DIALYZER_TYPE_T dialyzer ); // Get the blood side volume for a given dialyzer type U32 getDialyzerDialysateVolume( DIALYZER_TYPE_T dialyzer ); // Get the dialysate side volume for a given dialyzer type