Index: firmware/App/DDCommon.h =================================================================== diff -u -rdbc6a43b7f0b3932b75b5f653466e7f17e1ab1aa -r57dd20557f066bf5d790ce25dd11c97bb93e3cde --- firmware/App/DDCommon.h (.../DDCommon.h) (revision dbc6a43b7f0b3932b75b5f653466e7f17e1ab1aa) +++ firmware/App/DDCommon.h (.../DDCommon.h) (revision 57dd20557f066bf5d790ce25dd11c97bb93e3cde) @@ -28,7 +28,7 @@ #define DD_VERSION_BUILD 0 //Uncomment the below line for new dosing pump testing -#define __PUMPTEST__ 1 +//#define __PUMPTEST__ 1 // ********** development build switches ********** Index: firmware/App/Modes/BalancingChamber.c =================================================================== diff -u -rf5baeac6a5f000705cd51e4779a967acf4088981 -r57dd20557f066bf5d790ce25dd11c97bb93e3cde --- firmware/App/Modes/BalancingChamber.c (.../BalancingChamber.c) (revision f5baeac6a5f000705cd51e4779a967acf4088981) +++ firmware/App/Modes/BalancingChamber.c (.../BalancingChamber.c) (revision 57dd20557f066bf5d790ce25dd11c97bb93e3cde) @@ -761,6 +761,8 @@ { // First set BC switching frequency based on the dialysate flow rate setTDDialysateFlowrate( payload.flowrate ); + // update switching rate + transitionToBalChamberFill(); // then set BC switching only flag to ignore pressure check and dosing. setBalChamberSwitchingOnlyStatus( TRUE ); // Now, if the current operating mode is standby mode idle state, execute the balancing chamber switching only control Index: firmware/App/Modes/ModeGenDialysate.c =================================================================== diff -u -r3b6bf2cb6d15da8cb273cff109d2c4b1ee99d546 -r57dd20557f066bf5d790ce25dd11c97bb93e3cde --- firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 3b6bf2cb6d15da8cb273cff109d2c4b1ee99d546) +++ firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 57dd20557f066bf5d790ce25dd11c97bb93e3cde) @@ -62,6 +62,7 @@ static U32 genDialysateDataPublicationTimerCounter; ///< Used to schedule generate dialysate data publication to CAN bus. static OVERRIDE_U32_T genDialysateDataPublishInterval; ///< Generate dialysate mode data publish interval. static F32 lastDialTargetTemperatureSet; ///< last dialysate target temperature set for heater control +static BOOL isTreatementParamUpdated; ///< To indicate change in treatment parameters // ********** private function prototypes ********** @@ -107,6 +108,7 @@ genDialysateDataPublishInterval.override = OVERRIDE_RESET; genDialysateDataPublicationTimerCounter = 0; lastDialTargetTemperatureSet = 0.0F; + isTreatementParamUpdated = FALSE; //Initialize balancing chamber module initBalanceChamber(); @@ -287,11 +289,20 @@ } } + // Manage water inlet temperature if ( genDialysateState > DD_GEND_HYD_CHAMBER_WATER_INLET_CHECK_STATE ) { hydChamberWaterInletControl(); } + // Update any dynamic treatment parameter changes + if ( TRUE == isTreatementParamUpdated ) + { + updateTreatementSettings(); + //reset the flag + isTreatementParamUpdated = FALSE; + } + // execute current gen dialysate state switch ( genDialysateState ) { @@ -588,6 +599,37 @@ /*********************************************************************//** * @brief + * The setTreatementParamUpdate function sets the flag to indicate one or more + * treatement parameters updated. + * gen dialysate mode. + * @details \b Inputs: none + * @details \b Outputs: isTreatementParamUpdated + * @return none + *************************************************************************/ +void setTreatementParamUpdate( void ) +{ + isTreatementParamUpdated = TRUE; +} + +/*********************************************************************//** + * @brief + * The updateTreatementSettings function updates the switching rate post the + * treatement parameters updated during treatement. + * @details \b Inputs: none + * @details \b Outputs: balChamberSwitchingPeriod. + * @return none + *************************************************************************/ +void updateTreatementSettings( void ) +{ + // Update the Balancing chamber switching rate based on dialysis rate + updateBalChamberSwitchingPeriod(); + + //TODO: update others parameters setting as needed. +} + + +/*********************************************************************//** + * @brief * The getDialGoodToDeliverStatus function gets the dialysate good to deliver * status. * @details \b Inputs: isDialysateGoodtoDeliver Index: firmware/App/Modes/ModeGenDialysate.h =================================================================== diff -u -r3b6bf2cb6d15da8cb273cff109d2c4b1ee99d546 -r57dd20557f066bf5d790ce25dd11c97bb93e3cde --- firmware/App/Modes/ModeGenDialysate.h (.../ModeGenDialysate.h) (revision 3b6bf2cb6d15da8cb273cff109d2c4b1ee99d546) +++ firmware/App/Modes/ModeGenDialysate.h (.../ModeGenDialysate.h) (revision 57dd20557f066bf5d790ce25dd11c97bb93e3cde) @@ -54,6 +54,8 @@ DD_GEND_MODE_STATE_T getCurrentGenDialysateState( void ); // Get the current state of the gen dialysate mode. U32 getDialGoodToDeliverStatus( void ); // Get the dialysate good to deliver status +void setTreatementParamUpdate( void ); // To indicate one or more treatment parameters updated +void updateTreatementSettings( void ); // Process the recent treatment parameters changes BOOL testDDGenDialysateDataPublishIntervalOverride( MESSAGE_T *message ); // GenD Mode data publish interval override BOOL testDialDeliveryInProgressOverride( MESSAGE_T *message ); // To override the dialysate delivery in progress flag Index: firmware/App/Services/FpgaDD.c =================================================================== diff -u -r3b6bf2cb6d15da8cb273cff109d2c4b1ee99d546 -r57dd20557f066bf5d790ce25dd11c97bb93e3cde --- firmware/App/Services/FpgaDD.c (.../FpgaDD.c) (revision 3b6bf2cb6d15da8cb273cff109d2c4b1ee99d546) +++ firmware/App/Services/FpgaDD.c (.../FpgaDD.c) (revision 57dd20557f066bf5d790ce25dd11c97bb93e3cde) @@ -128,7 +128,7 @@ U16 fpgaD9PresPressure; ///< Reg 264. D9 MPM pressure sensor RAW pressure data U16 fpgaD9PresTemp; ///< Reg 266. D9 MPM pressure sensor RAW temperature data U08 fpgaD9PresReadCnt; ///< Reg 268. D9 Counter for good SPI transmission b/w FPGA and sensor - U08 fpgaD9PresErrorCnt; ///< Reg 229. D9 Counter for bad SPI transmission b/w FPGA and sensor + U08 fpgaD9PresErrorCnt; ///< Reg 269. D9 Counter for bad SPI transmission b/w FPGA and sensor U16 fpgaD66PresPressure; ///< Reg 270. D66 MPM pressure sensor RAW pressure data U16 fpgaD66PresTemp; ///< Reg 272. D66 MPM pressure sensor RAW temperature data Index: firmware/App/Services/TDInterface.c =================================================================== diff -u -r015acf2ae3ec46adbdd2f1028f01831418f1733d -r57dd20557f066bf5d790ce25dd11c97bb93e3cde --- firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision 015acf2ae3ec46adbdd2f1028f01831418f1733d) +++ firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision 57dd20557f066bf5d790ce25dd11c97bb93e3cde) @@ -374,6 +374,9 @@ // Set concentrate types, Bypass dialyzer setTDAcidAndBicarbType( startTxRequest.acidType, startTxRequest.bicarbType ); setTDDialyzerBypass( startTxRequest.bypassDialyzer ); + + // Signal to update treatement parameters + setTreatementParamUpdate(); } result = TRUE;