Index: firmware/App/Services/FPGA.h =================================================================== diff -u -r31c4bf94671f58375d2e1dbbbb37b37c6949e0c4 -r8e7158d8231435496fcf1d5649e51babf859ccc7 --- firmware/App/Services/FPGA.h (.../FPGA.h) (revision 31c4bf94671f58375d2e1dbbbb37b37c6949e0c4) +++ firmware/App/Services/FPGA.h (.../FPGA.h) (revision 8e7158d8231435496fcf1d5649e51babf859ccc7) @@ -1,69 +1,106 @@ /************************************************************************** * -* Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. +* Copyright (c) 2019-2021 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file FPGA.h * * @author (last) Sean Nash -* @date (last) 26-Jun-2020 +* @date (last) 01-Dec-2020 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 * ***************************************************************************/ - -#ifndef __FPGA_H__ -#define __FPGA_H__ - -#include "HDCommon.h" -#include "Interrupts.h" - -/** - * @defgroup FPGA FPGA - * @brief FPGA service module. - * Maintains latest sensor readings at priority task interval. Updates actuator - * states at priority task interval. - * - * @addtogroup FPGA - * @{ - */ - -// ********** public definitions ********** - -// ********** public function prototypes ********** - -void initFPGA( void ); -void execFPGAIn( void ); -void execFPGAOut( void ); -SELF_TEST_STATUS_T execFPGATest( void ); - -void signalFPGAReceiptCompleted( void ); -void signalFPGATransmitCompleted( void ); - -void getFPGAVersions( U08 *Id, U08 *Maj, U08 *Min, U08 *Lab ); - -F32 getFPGABloodFlowSignalStrength( void ); -F32 getFPGADialysateFlowSignalStrength( void ); - -F32 getFPGABloodFlow( void ); -F32 getFPGADialysateFlow( void ); - -U16 getFPGABloodPumpHallSensorCount( void ); -U08 getFPGABloodPumpHallSensorStatus( void ); -U16 getFPGADialInPumpHallSensorCount( void ); -U08 getFPGADialInPumpHallSensorStatus( void ); -U16 getFPGADialOutPumpHallSensorCount( void ); -U08 getFPGADialOutPumpHallSensorStatus( void ); - -S32 getFPGAArterialPressure( void ); -U16 getFPGAVenousPressure( void ); -U16 getFPGABloodPumpOcclusion( void ); -U16 getFPGADialInPumpOcclusion( void ); -U16 getFPGADialOutPumpOcclusion( void ); - + +#ifndef __FPGA_H__ +#define __FPGA_H__ + +#include "HDCommon.h" +#include "Interrupts.h" + +/** + * @defgroup FPGA FPGA + * @brief FPGA service module. + * Maintains latest sensor readings at priority task interval. Updates actuator + * states at priority task interval. + * + * @addtogroup FPGA + * @{ + */ + +// ********** public definitions ********** + +// ********** public function prototypes ********** + +void initFPGA( void ); +void execFPGAIn( void ); +void execFPGAOut( void ); +SELF_TEST_STATUS_T execFPGATest( void ); + +void signalFPGAReceiptCompleted( void ); +void signalFPGATransmitCompleted( void ); + +void getFPGAVersions( U08 *Id, U08 *Maj, U08 *Min, U08 *Lab ); + +F32 getFPGABloodFlowSignalStrength( void ); +F32 getFPGADialysateFlowSignalStrength( void ); + +F32 getFPGABloodFlow( void ); +F32 getFPGADialysateFlow( void ); + +U16 getFPGABloodPumpHallSensorCount( void ); +U08 getFPGABloodPumpHallSensorStatus( void ); +U16 getFPGADialInPumpHallSensorCount( void ); +U08 getFPGADialInPumpHallSensorStatus( void ); +U16 getFPGADialOutPumpHallSensorCount( void ); +U08 getFPGADialOutPumpHallSensorStatus( void ); + +U32 getFPGAArterialPressure( void ); +U16 getFPGAVenousPressure( void ); +U16 getFPGABloodPumpOcclusion( void ); +U16 getFPGADialInPumpOcclusion( void ); +U16 getFPGADialOutPumpOcclusion( void ); + +void getFPGAAccelAxes( S16 *x, S16 *y, S16 *z ); +void getFPGAAccelMaxes( S16 *xm, S16*ym, S16*zm ); +void getFPGAAccelStatus( U16 *cnt, U16 *accelFPGAFaultReg ); + +void getFPGAAirTrapLevels( BOOL *airAtLower, BOOL *airAtUpper ); + +void setFPGAValvesControlMode( U16 bits ); +U16 getFPGAValvesStatus( void ); + +void setFPGAValveDialyzerInletPosition( S16 setPoint ); +S16 getFPGAValveDialyzerInletPosition( void ); +U16 getFPGAValveDialyzerInletCurrentCounts( void ); + +void setFPGAValveDialyzerOutletPosition( S16 setPoint ); +S16 getFPGAValveDialyzerOutletPosition( void ); +U16 getFPGAValveDialyzerOutletCurrentCounts( void ); + +void setFPGAValveBloodVenousPosition( S16 setPoint ); +S16 getFPGAValveBloodVenousPosition( void ); +U16 getFPGAValveBloodVenousCurrentCounts( void ); + +void setFPGAValveBloodArterialPosition( S16 setPoint ); +S16 getFPGAValveBloodArterialPosition( void ); +U16 getFPGAValveBloodArterialCurrentCounts( void ); + +// The PWM functions are only used during debugging +#ifdef DEBUG_ENABLED + void setFPGAValveDialyzerInletPWM( U16 count ); + U16 getFPGAValveDialyzerInletPWM( void ); + void setFPGAValveDialyzerOutletPWM( U16 count ); + U16 getFPGAValveDialyzerOutletPWM( void ); + void setFPGAValveBloodVenousPWM( U16 count ); + U16 getFPGAValveBloodVenousPWM( void ); + void setFPGAValveBloodArterialPWM( U16 count ); + U16 getFPGAValveBloodArterialPWM( void ); +#endif + /**@}*/ #endif