Index: firmware/App/Modes/ModeTreatmentParams.c =================================================================== diff -u -rc3a59cba8736f085050b6fa74532eb68452d21fc -rde169e7374f6c7a737995ac8c6c3953dc5c75aa7 --- firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision c3a59cba8736f085050b6fa74532eb68452d21fc) +++ firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision de169e7374f6c7a737995ac8c6c3953dc5c75aa7) @@ -150,10 +150,12 @@ for ( param = 0; param < NUM_OF_TREATMENT_PARAMS; param++ ) { - resetCriticalData( &treatmentParameters[ param ] ); - // set each treatment parameter to its type and default value + // set type, range, and default value for each treatment parameter treatmentParameters[ param ].typ = treatParamsProperties[ param ].dataType; - setCriticalData( &treatmentParameters[ param ], treatParamsProperties[ param ].def ); + treatmentParameters[ param ].minimum = treatParamsProperties[ param ].min; + treatmentParameters[ param ].maximum = treatParamsProperties[ param ].max; + treatmentParameters[ param ].defValue = treatParamsProperties[ param ].def; + resetCriticalData( &treatmentParameters[ param ] ); // set staged parameter values to zero stagedParams[ param ].uInt = 0; } @@ -309,7 +311,10 @@ // set all treatment parameters (except UF volume which is not yet received) for ( param = TREATMENT_PARAM_FIRST_UINT; param < TREATMENT_PARAM_UF_VOLUME; param++ ) { - setCriticalData( &treatmentParameters[ param ], stagedParams[ param ] ); + if ( FALSE == setCriticalData( &treatmentParameters[ param ], stagedParams[ param ] ) ) + { + // TODO - should never get here - s/w fault? + } } // retain original settings for treatment that may be adjusted later during treatment origTreatmentParams.bloodFlowRate_mL_min = getCriticalData( &treatmentParameters[ TREATMENT_PARAM_BLOOD_FLOW ] ).uInt; @@ -552,22 +557,26 @@ * Outputs : treatmentParameters[] * @param param ID of treatment parameter to set unsigned integer value for * @param value unsigned integer value to assign to given treatment parameter - * @return none + * @return TRUE if set was successful, FALSE if not *************************************************************************/ -void setTreatmentParameterU32( TREATMENT_PARAM_T param, U32 value ) +BOOL setTreatmentParameterU32( TREATMENT_PARAM_T param, U32 value ) { + BOOL result = FALSE; + // validate parameter if ( param <= TREATMENT_PARAM_LAST_UINT ) { CRITICAL_DATAS_T data = treatmentParameters[ param ].data; data.uInt = value; - setCriticalData( &treatmentParameters[ param ], data ); + result = setCriticalData( &treatmentParameters[ param ], data ); } else { SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_MODE_TREATMENT_PARAMS_INVALID_SET_U32_PARAM, (U32)param ) } + + return result; } /*********************************************************************//** @@ -579,22 +588,26 @@ * Outputs : treatmentParameters[] * @param param ID of treatment parameter to set signed integer value for * @param value signed integer value to assign to given treatment parameter - * @return none + * @return TRUE if set was successful, FALSE if not *************************************************************************/ -void setTreatmentParameterS32( TREATMENT_PARAM_T param, S32 value ) +BOOL setTreatmentParameterS32( TREATMENT_PARAM_T param, S32 value ) { + BOOL result = FALSE; + // validate parameter if ( ( param >= TREATMENT_PARAM_FIRST_INT ) && ( param <= TREATMENT_PARAM_LAST_INT ) ) { CRITICAL_DATAS_T data = treatmentParameters[ param ].data; data.sInt = value; - setCriticalData( &treatmentParameters[ param ], data ); + result = setCriticalData( &treatmentParameters[ param ], data ); } else { SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_MODE_TREATMENT_PARAMS_INVALID_SET_S32_PARAM, (U32)param ) } + + return result; } /*********************************************************************//** @@ -606,22 +619,26 @@ * Outputs : treatmentParameters[] * @param param ID of treatment parameter to set floating point value for * @param value floating point value to assign to given treatment parameter - * @return none + * @return TRUE if set was successful, FALSE if not *************************************************************************/ -void setTreatmentParameterF32( TREATMENT_PARAM_T param, F32 value ) +BOOL setTreatmentParameterF32( TREATMENT_PARAM_T param, F32 value ) { + BOOL result = FALSE; + // validate parameter if ( ( param >= TREATMENT_PARAM_FIRST_F32 ) && ( param < NUM_OF_TREATMENT_PARAMS ) ) { CRITICAL_DATAS_T data = treatmentParameters[ param ].data; data.sFlt = value; - setCriticalData( &treatmentParameters[ param ], data ); + result = setCriticalData( &treatmentParameters[ param ], data ); } else { SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_MODE_TREATMENT_PARAMS_INVALID_SET_F32_PARAM, (U32)param ) } + + return result; } /*********************************************************************//** @@ -739,18 +756,15 @@ // set parameter per its type if ( CRITICAL_DATA_TYPE_U32 == treatParamsProperties[ param ].dataType ) { - setTreatmentParameterU32( param, value.uInt ); - result = TRUE; + result = setTreatmentParameterU32( param, value.uInt ); } else if ( CRITICAL_DATA_TYPE_S32 == treatParamsProperties[ param ].dataType ) { - setTreatmentParameterS32( param, value.sInt ); - result = TRUE; + result = setTreatmentParameterS32( param, value.sInt ); } else { - setTreatmentParameterF32( param, value.sFlt ); - result = TRUE; + result = setTreatmentParameterF32( param, value.sFlt ); } } }