Index: firmware/App/Controllers/DryBiCart.h =================================================================== diff -u -rd210786d6c7d75bb0b4d9e18efc40a01d85123fe -rdeba34e5074da9ac97d8bcbe995f554eec5c70ed --- firmware/App/Controllers/DryBiCart.h (.../DryBiCart.h) (revision d210786d6c7d75bb0b4d9e18efc40a01d85123fe) +++ firmware/App/Controllers/DryBiCart.h (.../DryBiCart.h) (revision deba34e5074da9ac97d8bcbe995f554eec5c70ed) @@ -18,6 +18,7 @@ #ifndef __DRY_BICART_H__ #define __DRY_BICART_H__ +#include "PIControllers.h" #include "DDCommon.h" #include "DDDefs.h" @@ -32,11 +33,14 @@ // ********** public definitions ********** +//#pragma pack(push, 1) /// dry bicart data structure typedef struct { U32 dryBiCartFillExecState; ///< Dry bicart execution state U32 bicarbChamberFillExecState; ///< Bicarb chamber Fill execution state + //TODO: restore it after testing complete +#if 0 U32 dryBiCartDrainExecState; ///< Dry bicart drain execution state U32 dryBiCartFillCycleCounter; ///< Dry bicart fill cycle counter U32 dryBiCartMaxFillCycleCount; ///< Dry bicart fill cycle max count @@ -47,8 +51,22 @@ U32 dryBiCartCurrentFillTime; ///< Dry bicart current fill duration in milli second U32 dryBiCartType; ///< Dry bicart type (small-0/large-1) U32 dryBiCartDrainTimePeriod; ///< Dry bicart drain time based on catridge type (small/large) +#endif + // TODO: remove after closed loops stabilized + PI_CONTROLLER_SIGNALS_DATA dryBiCartBicarbDosingControl; ///< Dry bicart bicarb dosing closed loop control signals data + PI_CONTROLLER_SIGNALS_DATA dryBiCartAcidDosingControl; ///< Dry bicart acid dosing closed loop control signals data + + F32 dryBiCartAcidDoseVolume; ///< Dry bicart acid dose volume + F32 dryBiCartBicarbDoseVolume; ///< Dry bicart bicarb dose volume + + F32 dryBiCartBicarbDosingKPgain; ///< Dry bicart bicarb dosing control kp gain + F32 dryBiCartBicarbDosingKIgain; ///< Dry bicart bicarb dosing control ki gain + //F32 dryBiCartAcidDosingKPgain; ///< Dry bicart acid dosing control kp gain + //F32 dryBiCartAcidDosingKIgain; ///< Dry bicart acid dosing control ki gain } DRY_BICART_DATA_T; +//#pragma pack(pop) + // ********** public function prototypes ********** void initDryBiCart( void ); @@ -61,6 +79,26 @@ BOOL setBicartFillRequested( void ); BOOL setBicartDrainRequested( void ); +F32 getAcidBicarbTargetConductivity( void ); +F32 getAcidBicarbDeltaConductivity( void ); + +F32 getBicarbTargetConductivity( void ); +F32 getBicarbDeltaConductivity( void ); + +//void setBicarb( F32 targetValue ); +//F32 getBicarb( void ); +void setBicarbDoseVol( F32 targetValue ); +F32 getBicarbDoseVol( void ); + +F32 getAcidDoseVol( void ); +void setAcidDoseVol( F32 targetValue ); + +F32 getBicarbKpGainCoefficient( void ); +F32 getBicarbKiGainCoefficient( void ); + +F32 getAcidKpGainCoefficient( void ); +F32 getAcidKiGainCoefficient( void ); + DRY_BICART_FILL_EXEC_STATE_T getCurrentDryBiCartFillExecState( void ); BOOL testDryBiCartDataPublishIntervalOverride( MESSAGE_T *message ); @@ -70,6 +108,21 @@ BOOL testDryBiCartDrainRequestOverride( MESSAGE_T *message ); BOOL testDryBiCartTypeOverride( MESSAGE_T *message ); +BOOL testDryBiCartAcidDoseVolumeOverride( MESSAGE_T *message ); +BOOL testDryBiCartBicarbDoseVolumeOverride( MESSAGE_T *message ); + +BOOL testDryBiCartBicarbDoseVolControlKpGainOverride( MESSAGE_T *message ); +BOOL testDryBiCartBicarbDoseVolControlKiGainOverride( MESSAGE_T *message ); + +BOOL testDryBiCartAcidDoseVolControlKpGainOverride( MESSAGE_T *message ); +BOOL testDryBiCartAcidDoseVolControlKiGainOverride( MESSAGE_T *message ); + +BOOL testDryBiCartTargetConductivityOverride( MESSAGE_T *message ); +BOOL testDryBiCartDeltaConductivityOverride( MESSAGE_T *message ); + +BOOL testDryBiCartAcidBicarbDeltaConductivityOverride( MESSAGE_T *message ); +BOOL testDryBiCartAcidBicarbTargetConductivityOverride( MESSAGE_T *message ); + /**@}*/ #endif