Index: firmware/App/Controllers/MixingControl.c =================================================================== diff -u -r0e6a31089c00ac89f121c538bf0e8576b38b25e7 -r8be347eb6f2bf0bc7ce8be64dd72fe0ce35e9eff --- firmware/App/Controllers/MixingControl.c (.../MixingControl.c) (revision 0e6a31089c00ac89f121c538bf0e8576b38b25e7) +++ firmware/App/Controllers/MixingControl.c (.../MixingControl.c) (revision 8be347eb6f2bf0bc7ce8be64dd72fe0ce35e9eff) @@ -97,7 +97,7 @@ #define STD_DILUTION_BICARB_POST_MIX_NA 37.0F ///< Bicarb post mix Sodium #define STD_DILUTION_BICARB_POST_MIX_CHO3 33.0F ///< Post mix bicarbonate -#define MS_TO_US(x) (((F32)(x)) * 1000.0f) ///< MilliSiemense to microSiemense convertion factor +#define MILLISIEMENS_TO_MICROSIEMENS(x) ( ( ( F32 )( x ) ) * 1000.0F ) ///< Milli siemense to micro siemense convertion factor #define DIALYSATE_TARGET_USER_ADJ_SODIUM_SETTING getTDSodiumConcentration() ///< User Sodium #define DIALYSATE_TARGET_USER_ADJ_BICARB_SETTING getTDBicarbonateConcentration() ///< User bicarb @@ -115,11 +115,11 @@ #define FINAL_NA_ADJ_MIX ( ACID_TARGET_CONCENTRATE_NA + BICARB_PERCENT_CHANGE_NA ) ///< Final adjusted sodium -#define FINAL_NAHCO3_ADJ_MIX ( BICARB_PERCENT_CHANGE_NAHCO3 ) +#define FINAL_NAHCO3_ADJ_MIX ( BICARB_PERCENT_CHANGE_NAHCO3 ) ///< Final Bicarbonate part -#define FINAL_ACID_MIX ( ACID_MIX_VOLUME_ML * ACID_PERCENT_CHANGE ) ///< Final Acid Mix +#define FINAL_ACID_MIX ( ACID_MIX_VOLUME_ML * ACID_PERCENT_CHANGE ) ///< Final Acid Mix volume -#define FINAL_BICARB_MIX ( BICARB_MIX_VOLUME_ML * BICARB_PERCENT_CHANGE ) ///< Final bicarb mix +#define FINAL_BICARB_MIX ( BICARB_MIX_VOLUME_ML * BICARB_PERCENT_CHANGE ) ///< Final bicarb mix volume #define BICARB_CONDUCTIVITY_PRE ( STD_DILUTION_BICARB_POST_MIX_NA * BICARB_PERCENT_CHANGE * getTDBicarbConversionFactor() ) ///< Theoretical bicarb conductivity pre mix @@ -160,8 +160,8 @@ // publish static OVERRIDE_U32_T mixingControlDataPublishInterval; ///< Mixing Control data publish interval. static U32 mixingControlDataPublicationTimerCounter; ///< Used to schedule mixingControl data publication to CAN bus. -static F32 mixingControlLastBicarbMixVolume; ///< Deadband bicarb mix volume -static F32 mixingControlLastAcidMixVolume; ///< Deadband acid mix volume +static F32 mixingControlLastBicarbMixVolume; ///< Previously stored value, if bicarb control in dead band +static F32 mixingControlLastAcidMixVolume; ///< Previously stored value, if acid control in dead band // mixing static OVERRIDE_F32_T mixingControlAcidVolume; ///< Acid concentrate volume in ml ( overrideable). @@ -574,56 +574,56 @@ * The getTotalConductivity function gets the total conductivity of bicarb and acid * @details \b Inputs: none * @details \b Outputs: none - * @return conductivity + * @return totalConductivity(Dialysate conductivity) in uS/cm *************************************************************************/ static F32 getTotalConductivity( void ) { F32 totalConductivity = TOTAL_CONDUCTIVITY; - // convert millisiemense to micro siemense - return MS_TO_US(totalConductivity); + // convert milli siemense to micro siemense + return MILLISIEMENS_TO_MICROSIEMENS( totalConductivity ); } /*********************************************************************//** * @brief * The getAcidConducivityPost function gets the acid conductivity post * @details \b Inputs: none * @details \b Outputs: none - * @return conductivity + * @return acidConductivityPost in uS/cm *************************************************************************/ static F32 getAcidConducivityPost( void ) { F32 acidConductivityPost = ACID_CONDUCTIVITY_POST; - // convert millisiemense to micro siemense - return MS_TO_US(acidConductivityPost); + // convert milli siemense to micro siemense + return MILLISIEMENS_TO_MICROSIEMENS( acidConductivityPost ); } /*********************************************************************//** * @brief - * The getBicarbConductivityPost function gets the bicarb conductivity post + * The getBicarbConductivityPost function gets the bicarb conductivity after mix * @details \b Inputs: none * @details \b Outputs: none - * @return conductivity + * @return bicarbConductivityPost in uS/cm *************************************************************************/ static F32 getBicarbConductivityPost( void ) { // right now post mix value is same as BICARB_CONDUCTIVITY_PRE F32 bicarbConductivityPost = BICARB_CONDUCTIVITY_PRE; - // convert millisiemense to micro siemense - return MS_TO_US(bicarbConductivityPost); + // convert milli siemense to micro siemense + return MILLISIEMENS_TO_MICROSIEMENS( bicarbConductivityPost ); } /*********************************************************************//** * @brief - * The getBicarbConductivityPre function gets the bicarb conductivity pre + * The getBicarbConductivityPre function gets the bicarb conductivity before mix * @details \b Inputs: none * @details \b Outputs: none - * @return conductivity + * @return bicarbConductivityPre in uS/cm *************************************************************************/ static F32 getBicarbConductivityPre( void ) { F32 bicarbConductivityPre = BICARB_CONDUCTIVITY_PRE; - // convert millisiemense to micro siemense - return MS_TO_US(bicarbConductivityPre); + // convert milli siemense to micro siemense + return MILLISIEMENS_TO_MICROSIEMENS( bicarbConductivityPre ); } /*********************************************************************//** @@ -656,8 +656,8 @@ if ( BICARB_MIX_ID == mixId ) { - //TODO: right now using the fixed conductivity , later use the calculated version API F32 measuredBicarbConductivity = getFilteredConductivity( D17_COND ); + // reads getBicarbConductivityPre() F32 bicarbConductivity = getBicarbTargetConductivity(); F32 bicarbDeltaConductivity = getBicarbDeltaConductivity(); @@ -672,8 +672,8 @@ } else if ( ACID_MIX_ID == mixId ) { - //TODO: right now using the fixed conductivity , later use the calculated version API F32 measuredAcidBicarbMixConductivity = getFilteredConductivity( D27_COND ); + // reads getTotalConductivity(); F32 DialysateConductivity = getDialysateTargetConductivity(); F32 DialysateDeltaConductivity = getDialysateDeltaConductivity(); @@ -872,9 +872,6 @@ // acid+bicarb conductivity or Dialysate conductivity data.totalConductivity = getTotalConductivity(); - - //TODO :broadcast theretical pre and post conductivity - // TODO: remove after feature testing memcpy( &data.bicarbData, &bicarbControlSignals, sizeof( PI_CONTROLLER_SIGNALS_DATA ) ); // TODO: remove after feature testing Index: firmware/App/Modes/ModePreGenDialysate.c =================================================================== diff -u -r145fd716a856f864f39fb0f9884865f6e45b9256 -r8be347eb6f2bf0bc7ce8be64dd72fe0ce35e9eff --- firmware/App/Modes/ModePreGenDialysate.c (.../ModePreGenDialysate.c) (revision 145fd716a856f864f39fb0f9884865f6e45b9256) +++ firmware/App/Modes/ModePreGenDialysate.c (.../ModePreGenDialysate.c) (revision 8be347eb6f2bf0bc7ce8be64dd72fe0ce35e9eff) @@ -252,13 +252,10 @@ //TODO: Change to wet self test state later DD_PRE_GEN_DIALYSATE_STATE_T state = DD_PRE_GEN_DRY_BICART_INITIAL_FILL; - // TODO: testing drybicart fill in pre-gen -#if 0 - if ( getTestConfigStatus( TEST_CONFIG_DD_DRY_BICART_TEST ) == TRUE ) + if ( FALSE == getTestConfigStatus( TEST_CONFIG_DD_DISABLE_DRY_BICARB ) ) { setBicartFillRequested(); } -#endif //execWetSelfTest(); return state; @@ -275,9 +272,8 @@ { //TODO: Change to wet self test state later DD_PRE_GEN_DIALYSATE_STATE_T state = DD_PRE_GEN_DRY_BICART_INITIAL_FILL; -#if 0 - // TODO: testing drybicart fill in pre-gen - if ( getTestConfigStatus( TEST_CONFIG_DD_DRY_BICART_TEST ) == TRUE ) + + if ( FALSE == getTestConfigStatus( TEST_CONFIG_DD_DISABLE_DRY_BICARB ) ) { // stay in this state till bicart fill complete. if ( getCurrentDryBiCartFillExecState() == DRY_BICART_FILL_COMPLETE_STATE ) @@ -287,7 +283,6 @@ // TODO: Alarm if it is not completed within 1.5 minutes } else -#endif { // not bicart fill, move to next state state = DD_PRE_GEN_DIALYSATE_WAIT_FOR_GEND; Index: firmware/App/Services/TDInterface.c =================================================================== diff -u -r0e6a31089c00ac89f121c538bf0e8576b38b25e7 -r8be347eb6f2bf0bc7ce8be64dd72fe0ce35e9eff --- firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision 0e6a31089c00ac89f121c538bf0e8576b38b25e7) +++ firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision 8be347eb6f2bf0bc7ce8be64dd72fe0ce35e9eff) @@ -40,31 +40,29 @@ // ********** private definitions ********** -#define TD_DATA_FRESHNESS_TIMEOUT_MS ( 3 * MS_PER_SECOND ) ///< TD data freshness timeout (in ms). +#define TD_DATA_FRESHNESS_TIMEOUT_MS ( 3 * MS_PER_SECOND ) ///< TD data freshness timeout (in ms). -#define TD_DIALYSATE_FLOWRATE_MIN_ML_MIN ( 50.0F ) ///< TD Min dialysate flow rate (mL/min) -#define TD_DIALYSATE_FLOWRATE_MAX_ML_MIN ( 600.0F ) ///< TD Max dialysate flow rate (mL/min) +#define TD_DIALYSATE_FLOWRATE_MIN_ML_MIN ( 50.0F ) ///< TD Min dialysate flow rate (mL/min) +#define TD_DIALYSATE_FLOWRATE_MAX_ML_MIN ( 600.0F ) ///< TD Max dialysate flow rate (mL/min) -#define TD_UF_RATE_MIN_ML_MIN ( 0.0F ) ///< TD Min UF rate (mL/min) -#define TD_UF_RATE_MAX_ML_MIN ( 2000.0F / 60.0F ) ///< TD Max UF rate (mL/min) +#define TD_UF_RATE_MIN_ML_MIN ( 0.0F ) ///< TD Min UF rate (mL/min) +#define TD_UF_RATE_MAX_ML_MIN ( 2000.0F / 60.0F ) ///< TD Max UF rate (mL/min) -#define TD_DIALYSATE_TEMP_MIN_DEGC ( 35.0F ) ///< TD Min dialysate temperature (deg C) -#define TD_DIALYSATE_TEMP_MAX_DEGC ( 38.0F ) ///< TD Max dialysate temperature (deg C) +#define TD_DIALYSATE_TEMP_MIN_DEGC ( 35.0F ) ///< TD Min dialysate temperature (deg C) +#define TD_DIALYSATE_TEMP_MAX_DEGC ( 38.0F ) ///< TD Max dialysate temperature (deg C) -#define TD_ACID_TYPE_MIN ( 0U ) ///< TD Min acid type index -#define TD_ACID_TYPE_MAX ( (U32)( NUM_OF_ACID_TYPE - 1U ) ) ///< TD Max acid type index +#define TD_ACID_TYPE_MIN ( 0U ) ///< TD Min acid type index +#define TD_ACID_TYPE_MAX ( (U32)( NUM_OF_ACID_TYPE - 1U ) ) ///< TD Max acid type index -#define TD_SODIUM_MIN ( 130U ) ///< TD Min acid type index -#define TD_SODIUM_MAX ( 155U ) ///< TD Max acid type index +#define TD_SODIUM_MIN ( 130U ) ///< TD Min acid type index +#define TD_SODIUM_MAX ( 155U ) ///< TD Max acid type index +#define TD_BICARBONATE_MIN ( 20U ) ///< TD Min acid type index +#define TD_BICARBONATE_MAX ( 40U ) ///< TD Max acid type index +#define BICARBONATE_CONVERSION_FACTOR 0.073371212F ///< Bicarbonate conversion factor mS/cm per mmol/L +#define MAX_ACID_CONC_TYPES 10 ///< Number of acid concentrate conversion factors -#define TD_BICARBONATE_MIN ( 20U ) ///< TD Min acid type index -#define TD_BICARBONATE_MAX ( 40U ) ///< TD Max acid type index - -#define BICARBONATE_CONVERSION_FACTOR 0.073371212F ///< Bicarbonate conversion factor mS/cm per mmol/L -#define MAX_ACID_CONC_TYPES 10 ///< Number of acid concentrate conversion factors - // TODO move to institutional records once implemented /// Acid concentration conversion factors for each acid type const F32 ACID_CONVERSION_FACTOR[ MAX_ACID_CONC_TYPES ] = { 0.1119255F, @@ -211,7 +209,7 @@ *************************************************************************/ void execTDInterfaceMonitor( void ) { - + // TODO:implementation pending } /*********************************************************************//**