Index: firmware/App/DDCommon.h =================================================================== diff -u -r8b8fff67b95805272f37855346d600599aaec03d -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/DDCommon.h (.../DDCommon.h) (revision 8b8fff67b95805272f37855346d600599aaec03d) +++ firmware/App/DDCommon.h (.../DDCommon.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file TDCommon.h * * @author (last) Sean -* @date (last) 30-Jul-2024 +* @date (last) 26-Aug-2024 * * @author (original) Sean * @date (original) 30-Jul-2024 Index: firmware/App/Drivers/InternalADC.c =================================================================== diff -u -r4fb1e15d35f6b968bab5620909c30baec98bfd4e -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Drivers/InternalADC.c (.../InternalADC.c) (revision 4fb1e15d35f6b968bab5620909c30baec98bfd4e) +++ firmware/App/Drivers/InternalADC.c (.../InternalADC.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -154,8 +154,6 @@ * @details \b Outputs: adcReadings[][], adcReadingsIdx[], adcReadingsTotals[], adcReadingsAvgs[] * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT when invalid ADC channel number * processed. - * @param adc pointer to the ADC1 controller - * @param group ADC channel group ID * @return none *************************************************************************/ void execInternalADC( void ) Index: firmware/App/Drivers/InternalADC.h =================================================================== diff -u -r4fb1e15d35f6b968bab5620909c30baec98bfd4e -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Drivers/InternalADC.h (.../InternalADC.h) (revision 4fb1e15d35f6b968bab5620909c30baec98bfd4e) +++ firmware/App/Drivers/InternalADC.h (.../InternalADC.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file InternalADC.h * * @author (last) Vinayakam Mani -* @date (last) 13-Aug-2024 +* @date (last) 14-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 13-Aug-2024 @@ -71,7 +71,7 @@ void execInternalADC( void ); U16 getIntADCReading( INT_ADC_CHANNEL_T channel ); F32 getIntADCVoltageConverted( INT_ADC_CHANNEL_T channel ); - + /**@}*/ #endif Index: firmware/App/Drivers/PAL.c =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Drivers/PAL.c (.../PAL.c) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Drivers/PAL.c (.../PAL.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -26,11 +26,11 @@ */ // ********** private definitions ********** + #define SAFETY_SPI1_PORT_MASK 0x00000010 ///< Safety shutdown GPIO port mask (CS[4] - re-purposed as output GPIO). #define SET_SAFETY_SHUTDOWN() {mibspiREG1->PC3 |= SAFETY_SPI1_PORT_MASK;} ///< Set safety shutdown GPIO macro. #define CLR_SAFETY_SHUTDOWN() {mibspiREG1->PC3 &= ~SAFETY_SPI1_PORT_MASK;} ///< Clear safety shutdown GPIO macro. - /*********************************************************************//** * @brief * The setSystemREG1_SYSECR function sets the SYSECR register to a given value. Index: firmware/App/Drivers/PAL.h =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Drivers/PAL.h (.../PAL.h) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Drivers/PAL.h (.../PAL.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -39,6 +39,7 @@ void clear_saftety_shutdown( void ); void set_safety_shutdown( void ); + /**@}*/ #endif Index: firmware/App/Drivers/SafetyShutdown.c =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Drivers/SafetyShutdown.c (.../SafetyShutdown.c) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Drivers/SafetyShutdown.c (.../SafetyShutdown.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -17,7 +17,7 @@ #include "mibspi.h" -//#include "InternalADC.h" +#include "InternalADC.h" #include "Messaging.h" #include "SafetyShutdown.h" #include "Timers.h" @@ -129,15 +129,15 @@ case SAFETY_SHUTDOWN_SELF_TEST_STATE_IN_PROGRESS: if ( TRUE == didTimeout( safetyShutdownSelfTestTimerCount, SAFETY_SHUTDOWN_POST_TIMEOUT_MS ) ) { -// F32 v24 = getIntADCVoltageConverted( INT_ADC_SECONDARY_HEATER_24_VOLTS ); -// F32 isolatedV24 = getRawIsolatedPowerSupplyVoltage(); -// -// // Verify 24V is down when w.d. expired -// if ( ( v24 > MAX_24V_LEVEL_ON_SAFETY_SHUTDOWN ) || ( isolatedV24 > MAX_ISOLATED_24V_LEVEL_ON_SS_EXPIRED ) ) -// { -// SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DD_SAFETY_SHUTDOWN_POST_TEST_FAILED, 1.0, v24 ); -// safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; -// } + F32 v24 = getIntADCVoltageConverted( INT_ADC_SECONDARY_HEATER_24_VOLTS ); + F32 isolatedV24 = getRawIsolatedPowerSupplyVoltage(); + + // Verify 24V is down when w.d. expired + if ( ( v24 > MAX_24V_LEVEL_ON_SAFETY_SHUTDOWN ) || ( isolatedV24 > MAX_ISOLATED_24V_LEVEL_ON_SS_EXPIRED ) ) + { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DD_SAFETY_SHUTDOWN_POST_TEST_FAILED, 1.0, v24 ); + safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; + } safetyShutdownSelfTestTimerCount = getMSTimerCount(); clear_saftety_shutdown(); safetyShutdownActivated = FALSE; @@ -148,20 +148,20 @@ case SAFETY_SHUTDOWN_SELF_TEST_STATE_RECOVER: if ( TRUE == didTimeout( safetyShutdownSelfTestTimerCount, SAFETY_SHUTDOWN_RECOVERY_TIME_MS ) ) { -// F32 v24 = getIntADCVoltageConverted( INT_ADC_SECONDARY_HEATER_24_VOLTS ); -// F32 isolatedV24 = getRawIsolatedPowerSupplyVoltage(); -// -// // Verify 24V is down when w.d. recovered -// if ( ( v24 < MIN_24V_LEVEL_ON_SAFETY_RECOVER ) || ( isolatedV24 < MAX_ISOLATED_24V_LEVEL_ON_SS_EXPIRED ) ) -// { -// // TODO - If issue persisted talk with systems why 24V does not recover fully. -// SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DD_SAFETY_SHUTDOWN_POST_TEST_FAILED, 2.0, v24 ); -// safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; -// } -// else -// { -// safetyShutdownSelfTestStatus = SELF_TEST_STATUS_PASSED; -// } + F32 v24 = getIntADCVoltageConverted( INT_ADC_SECONDARY_HEATER_24_VOLTS ); + F32 isolatedV24 = getRawIsolatedPowerSupplyVoltage(); + + // Verify 24V is down when w.d. recovered + if ( ( v24 < MIN_24V_LEVEL_ON_SAFETY_RECOVER ) || ( isolatedV24 < MAX_ISOLATED_24V_LEVEL_ON_SS_EXPIRED ) ) + { + // TODO - If issue persisted talk with systems why 24V does not recover fully. + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DD_SAFETY_SHUTDOWN_POST_TEST_FAILED, 2.0, v24 ); + safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; + } + else + { + safetyShutdownSelfTestStatus = SELF_TEST_STATUS_PASSED; + } safetyShutdownSelfTestState = SAFETY_SHUTDOWN_SELF_TEST_STATE_COMPLETE; result = safetyShutdownSelfTestStatus; } Index: firmware/App/Drivers/SafetyShutdown.h =================================================================== diff -u -r6ce9326aeabf018e9c531163359f7283f9d60ae9 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Drivers/SafetyShutdown.h (.../SafetyShutdown.h) (revision 6ce9326aeabf018e9c531163359f7283f9d60ae9) +++ firmware/App/Drivers/SafetyShutdown.h (.../SafetyShutdown.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -29,6 +29,7 @@ */ // ********** public definitions ********** + /// Safety shutdown broadcast data typedef struct { Index: firmware/App/Modes/ModeFault.c =================================================================== diff -u -r4fb1e15d35f6b968bab5620909c30baec98bfd4e -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision 4fb1e15d35f6b968bab5620909c30baec98bfd4e) +++ firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -15,13 +15,11 @@ * ***************************************************************************/ - #include "OperationModes.h" #include "ModeFault.h" #include "Messaging.h" #include "Utilities.h" - /** * @addtogroup DDFaultMode * @{ Index: firmware/App/Modes/ModeFault.h =================================================================== diff -u -r4fb1e15d35f6b968bab5620909c30baec98bfd4e -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Modes/ModeFault.h (.../ModeFault.h) (revision 4fb1e15d35f6b968bab5620909c30baec98bfd4e) +++ firmware/App/Modes/ModeFault.h (.../ModeFault.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -1,17 +1,17 @@ /************************************************************************** * -* Copyright (c) 2019-2024 Diality Inc. - All Rights Reserved. +* Copyright (c) 2024-2024 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 ModeFault.h * -* @author (last) Sean Nash -* @date (last) 20-Dec-2022 +* @author (last) Vinayakam Mani +* @date (last) 06-Aug-2024 * -* @author (original) Dara Navaei -* @date (original) 05-Nov-2019 +* @author (original) Vinayakam Mani +* @date (original) 06-Aug-2024 * ***************************************************************************/ Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -r4fb1e15d35f6b968bab5620909c30baec98bfd4e -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 4fb1e15d35f6b968bab5620909c30baec98bfd4e) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -18,7 +18,6 @@ #include "reg_crc.h" // Used to hold reset reason code at startup before bits get cleared #include "reg_system.h" // Used to access exception status registers for reset reason code at startup -//#include "Accel.h" //#include "ConcentratePumps.h" //#include "ConductivitySensors.h" //#include "CPLD.h" Index: firmware/App/Modes/ModeInitPOST.h =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Modes/ModeInitPOST.h (.../ModeInitPOST.h) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Modes/ModeInitPOST.h (.../ModeInitPOST.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file ModeInitPOST.h * * @author (last) Vinayakam Mani -* @date (last) 05-Aug-2024 +* @date (last) 06-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 05-Aug-2024 Index: firmware/App/Modes/ModeService.c =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Modes/ModeService.c (.../ModeService.c) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Modes/ModeService.c (.../ModeService.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -17,7 +17,6 @@ //#include "ConcentratePumps.h" //#include "CPLD.h" -//#include "LoadCell.h" #include "ModeService.h" #include "OperationModes.h" Index: firmware/App/Modes/ModeService.h =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Modes/ModeService.h (.../ModeService.h) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Modes/ModeService.h (.../ModeService.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -23,10 +23,10 @@ #include "ModeFault.h" /** - * @defgroup DGServiceMode DGServiceMode + * @defgroup DDServiceMode DDServiceMode * @brief Service mode module. Manages service mode functions via a state machine. * - * @addtogroup DGServiceMode + * @addtogroup DDServiceMode * @{ */ Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r4fb1e15d35f6b968bab5620909c30baec98bfd4e -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 4fb1e15d35f6b968bab5620909c30baec98bfd4e) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -17,25 +17,22 @@ //#include "ConcentratePumps.h" //#include "ConductivitySensors.h" -//#include "CPLD.h" //#include "DrainPump.h" //#include "Heaters.h" -//#include "ModeChemicalDisinfect.h" #include "ModeFault.h" //#include "ModeHeatDisinfect.h" #include "ModeStandby.h" //#include "NVDataMgmt.h" #include "OperationModes.h" //#include "Pressures.h" -//#include "Reservoirs.h" //#include "ROPump.h" //#include "RTC.h" #include "SystemCommDD.h" #include "Messaging.h" #include "TaskGeneral.h" #include "MessageSupport.h" //#include "Timers.h" -//#include "Valves.h" +#include "Valves.h" /** * @addtogroup DDStandbyMode Index: firmware/App/Modes/ModeStandby.h =================================================================== diff -u -r4fb1e15d35f6b968bab5620909c30baec98bfd4e -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Modes/ModeStandby.h (.../ModeStandby.h) (revision 4fb1e15d35f6b968bab5620909c30baec98bfd4e) +++ firmware/App/Modes/ModeStandby.h (.../ModeStandby.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file ModeStandby.h * * @author (last) Vinayakam Mani -* @date (last) 06-Aug-2024 +* @date (last) 07-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 06-Aug-2024 Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -r4fb1e15d35f6b968bab5620909c30baec98bfd4e -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 4fb1e15d35f6b968bab5620909c30baec98bfd4e) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -17,8 +17,6 @@ #include "gio.h" -//#include "ModeChemicalDisinfect.h" -//#include "ModeChemicalDisinfectFlush.h" //#include "ModeDrain.h" #include "ModeFault.h" //#include "ModeFill.h" Index: firmware/App/Modes/OperationModes.h =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Modes/OperationModes.h (.../OperationModes.h) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Modes/OperationModes.h (.../OperationModes.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -22,10 +22,10 @@ #include "DDDefs.h" #include "TDDefs.h" /** - * @defgroup DGOperationModes DGOperationModes + * @defgroup DDOperationModes DDOperationModes * @brief Operation Modes module. Manages the top level operation modes of the DG via a state machine. * - * @addtogroup DGOperationModes + * @addtogroup DDOperationModes * @{ */ Index: firmware/App/Services/AlarmMgmtDD.c =================================================================== diff -u -racce65f1450d3deb39d3ed07f2e841c11d3d4df7 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Services/AlarmMgmtDD.c (.../AlarmMgmtDD.c) (revision acce65f1450d3deb39d3ed07f2e841c11d3d4df7) +++ firmware/App/Services/AlarmMgmtDD.c (.../AlarmMgmtDD.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -16,7 +16,6 @@ ***************************************************************************/ #include "AlarmMgmtDD.h" -//#include "CPLD.h" #include "OperationModes.h" #include "PersistentAlarm.h" #include "SafetyShutdown.h" Index: firmware/App/Services/AlarmMgmtDD.h =================================================================== diff -u -racce65f1450d3deb39d3ed07f2e841c11d3d4df7 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Services/AlarmMgmtDD.h (.../AlarmMgmtDD.h) (revision acce65f1450d3deb39d3ed07f2e841c11d3d4df7) +++ firmware/App/Services/AlarmMgmtDD.h (.../AlarmMgmtDD.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -65,9 +65,10 @@ BOOL isAnyCleaningModeInletWaterConditionActive( void ); BOOL testClearAllAlarms( U32 key ); -BOOL testSetAlarmInfoPublishIntervalOverride( U32 ms ); +BOOL testSetAlarmInfoPublishIntervalOverride( U32 ms );s BOOL testResetAlarmInfoPublishIntervalOverride( void ); + /**@}*/ #endif Index: firmware/App/Services/AlarmMgmtSWFaults.h =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -108,10 +108,10 @@ SW_FAULT_ID_HEAT_DISINFECT_INVALID_EXEC_STATE, SW_FAULT_ID_WATCHDOG_INVALID_TASK, SW_FAULT_ID_STANDBY_MODE_INVALID_EXEC_STATE, - SW_FAULT_ID_GEN_IDLE_MODE_INVALID_EXEC_STATE, // 80 - SW_FAULT_ID_DRAIN_MODE_INVALID_EXEC_STATE, - SW_FAULT_ID_FILL_MODE_INVALID_EXEC_STATE, - SW_FAULT_ID_SOLO_MODE_INVALID_EXEC_STATE, + SW_FAULT_ID_AVAILABLE_2, // 80 + SW_FAULT_ID_AVAILABLE_3, + SW_FAULT_ID_AVAILABLE_4, + SW_FAULT_ID_AVAILABLE_5, SW_FAULT_ID_PRESSURE_INVALID_EXEC_STATE, SW_FAULT_ID_INVALID_NVDATAMGMT_EXEC_CAL_STATE, // 85 SW_FAULT_ID_INVALID_VALVE_ID, @@ -125,7 +125,7 @@ SW_FAULT_ID_INVALID_VOLTAGE_MONITOR_STATE, SW_FAULT_ID_INVALID_MONITORED_VOLTAGE_ID, // 95 SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_TO_GET_PROPS, - SW_FAULT_ID_DD_CHEM_DISINFECT_INVALID_EXEC_STATE, + SW_FAULT_ID_AVAILABLE_1, SW_FAULT_ID_DD_INVALID_SWITCH_ID, SW_FAULT_ID_DD_PRESSURES_INVALID_SELF_TEST_STATE, SW_FAULT_ID_SAFETY_SHUTDOWN_INVALID_SELF_TEST_STATE, // 100 Index: firmware/App/Services/CommBuffers.c =================================================================== diff -u -r4fb1e15d35f6b968bab5620909c30baec98bfd4e -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Services/CommBuffers.c (.../CommBuffers.c) (revision 4fb1e15d35f6b968bab5620909c30baec98bfd4e) +++ firmware/App/Services/CommBuffers.c (.../CommBuffers.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -16,8 +16,7 @@ ***************************************************************************/ #include // for memcpy() - -//#include "CommBuffers.h" + #include "Messaging.h" #include "SystemCommDD.h" #include "Timers.h" Index: firmware/App/Services/CommBuffers.h =================================================================== diff -u -r52ded7b22d4b413aa8182f1343e4fbb78e8c3b0a -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Services/CommBuffers.h (.../CommBuffers.h) (revision 52ded7b22d4b413aa8182f1343e4fbb78e8c3b0a) +++ firmware/App/Services/CommBuffers.h (.../CommBuffers.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file CommBuffers.h * * @author (last) Vinayakam Mani -* @date (last) 05-Aug-2024 +* @date (last) 06-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 05-Aug-2024 Fisheye: Tag 26ee1d67dca19aac1850077cbd41c05498cf059d refers to a dead (removed) revision in file `firmware/App/Services/FPGADD.c'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 26ee1d67dca19aac1850077cbd41c05498cf059d refers to a dead (removed) revision in file `firmware/App/Services/FPGADD.h'. Fisheye: No comparison available. Pass `N' to diff? Index: firmware/App/Services/FpgaDD.c =================================================================== diff -u --- firmware/App/Services/FpgaDD.c (revision 0) +++ firmware/App/Services/FpgaDD.c (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -0,0 +1,1418 @@ + +/************************************************************************** +* +* Copyright (c) 2024-2024 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 FPGADD.c +* +* @author (last) Vinayakam Mani +* @date (last) 05-Aug-2024 +* +* @author (original) Vinayakam Mani +* @date (original) 05-Aug-2024 +* +***************************************************************************/ + +#include +#include // for memset(), memcpy() + +#include "gio.h" +#include "sci.h" +#include "sys_dma.h" +#include "FPGA.h" +#include "Messaging.h" +#include "Comm.h" +#include "Compatible.h" +//#include "NVDataMgmt.h" +#include "OperationModes.h" +#include "PersistentAlarm.h" +#include "Messaging.h" +#include "Timers.h" +#include "Utilities.h" + +/** + * @addtogroup FPGADD + * @{ + */ + +// ********** private definitions ********** + +#define FPGA_EXPECTED_ID 0x02 ///< FPGA expected ID. + +#define MAX_COMM_ERROR_RETRIES 5 ///< Maximum number of communication error retries + +#define DRAIN_PUMP_DAC_SHIFT_BITS 4 ///< Drain pump DAC shift bits. + +#define FPGA_FLUIDLEAK_STATE_MASK 0x0004 ///< Bit mask for fluid leak detector. + +//ToDo : Define the default values for the Valves ( 0: Deenergized, 1 : Energized) on power up. +#define FPGA_ENABLE_VALVES_CONTROL 0x0000 ///< FPGA enable valves control. +#define FPGA_ENABLE_BC_VALVES_CONTROL 0x00 ///< FPGA enable Balancing chamber valves control. +#define FPGA_ENABLE_UF_VALVES_CONTROL 0x00 ///< FPGA enable Balancing Chamber valves control. + +#define FPGA_VBF_PWM_PULL_IN_MS ( 3 * MS_PER_SECOND ) ///< FPGA VBf PWM pull in in milliseconds. +#define FPGA_VBF_PWM_LOW 9999 ///< FPGA VBf PWM low. +#define FPGA_VBF_PWM_PERIOD 16666 ///< FPGA VBf PWM period. + +// Assuming all valves are ON/OFF based control ( No PWM control used) +#define FPGA_ENABLE_VALVES_PWM 0x0000 ///< FPGA enable valves PWM. +#define FPGA_ENABLE_BC_VALVES_PWM 0x00 ///< FPGA enable Balancing chamber valves PWM. +#define FPGA_ENABLE_UF_VALVES_PWM 0x00 ///< FPGA enable Ultrafiltration valves PWM. + +#define CONCENTRATE_CAP_SWITCH_MASK 0x10 ///< Concentrate cap switch bit mask. +#define FPGA_CONC_PUMP_FAULT_BITS 0x03 ///< Concentrate pump fault bits mask. +#define FPGA_CP1_PARKED_BIT 0x04 ///< Concentrate pump 1 parked status bit mask. +#define FPGA_CP2_PARKED_BIT 0x10 ///< Concentrate pump 2 parked status bit mask. +#define FPGA_CP1_PARK_FAULT_BIT 0x08 ///< Concentrate pump 1 park fault status bit mask. +#define FPGA_CP2_PARK_FAULT_BIT 0x20 ///< Concentrate pump 2 park fault status bit mask. +#define FPGA_CONC_PUMP_PARK_COMMAND 0x80 ///< Park command bit for the concentrate pumps. +#define DIALYSATE_CAP_SWITCH_MASK 0x20 ///< Dialysate cap switch bit mask. +#define FPGA_THD_CONTROL_COMMAND 0X01 ///< FPGA THd control command. +#define FPGA_POWER_OUT_TIMEOUT_MS ( 2 * MS_PER_SECOND ) ///< FPGA power out timeout in milliseconds. +#define FPGA_GPIO_POWER_STATUS_PIN 7 ///< FPGA GPIO power status pin. +#define FPGA_READ_V3_START_BYTE_NUM 256 ///< FPGA V3 read sensors start byte number. +#define FPGA_READ_V3_END_BYTE_NUM 430 ///< FPGA V3 read sensors end byte number. + +/// FPGA size of V3 read bytes. +#define FPGA_SIZE_OF_V3_READ_BYTES ( FPGA_READ_V3_END_BYTE_NUM - FPGA_READ_V3_START_BYTE_NUM ) + +#define PROCESSOR_FPGA_CLOCK_DIFF_TOLERANCE 1 ///< Tolerance for processor clock speed check against FPGA clock. + +#define MAX_FPGA_COMM_FAILURES_WINDOW_MS ( 1 * SEC_PER_MIN * MS_PER_SECOND ) ///< FPGA comm failures window +#define MAX_FPGA_COMM_FAILURES 3 ///< FPGA maximum comm failures per MAX_FPGA_COMM_FAILURES_WINDOW_MS +#define MIN_POWER_ON_TIME_FOR_COMM_FAILS ( 1 * MS_PER_SECOND ) ///< Allow FPGA comm errors for first second after power-up + +// FPGA header struct. +#pragma pack(push,1) +typedef struct +{ + U08 fpgaId; ///< Reg 0. FPGA ID code. Checked against expected value at power up to verify basic FPGA communication and operation + U08 fpgaRevMinor; ///< Reg 1. FPGA revision (minor) being reported + U08 fpgaRevMajor; ///< Reg 2. FPGA revision (major) being reported + U08 fpgaRevLab; ///< Reg 3. FPGA revision (lab) being reported +} FPGA_HEADER_T; // read only on FPGA + +/// FPGA sensors' readings struct. +typedef struct +{ + U16 fpgaCompatibilityRev; ///< Reg 256. Compatibility revision + U16 fpgaTimerCountMS; ///< Reg 258. Internal FPGA timer count in milliseconds + U16 fpgaRemoteUpdateRead; ///< Reg 260. FPGA Remote Update Read ( copy contents from remote update write) + + U08 fpgaIOErrorCntProcessor; ///< Reg 262. Number of errors in Microprocessor UART interface + U08 fpgaIOErrorCntPC; ///< Reg 263. Number of errors in PC UART interface + + U32 fpgaPnPressure; ///< Reg 264. Pn/PHo MPM pressure sensor RAW pressure data + U32 fpgaPnTemp; ///< Reg 268. Pn/PHo MPM pressure sensor RAW temperature data + U08 fpgaPnReadCnt; ///< Reg 272. Pn/PHo Counter for good I2C transmission b/w FPGA and sensor + U08 fpgaPnErrorCnt; ///< Reg 273. Pn/PHo Counter for bad I2C transmission b/w FPGA and sensor + + U32 fpgaPCbPressure; ///< Reg 274. PCb/PDB MPM pressure sensor RAW pressure data + U32 fpgaPCbTemp; ///< Reg 278. PCb/PDB MPM pressure sensor RAW temperature data + U08 fpgaPCbReadCnt; ///< Reg 282. PCb/PDB Counter for good I2C transmission b/w FPGA and sensor + U08 fpgaPCbErrorCnt; ///< Reg 283. PCb/PDB Counter for bad I2C transmission b/w FPGA and sensor + + U32 fpgaPDsPressure; ///< Reg 284. PDs MPM pressure sensor RAW pressure data + U32 fpgaPDsTemp; ///< Reg 288. PDs MPM pressure sensor RAW temperature data + U08 fpgaPDsReadCnt; ///< Reg 292. PDs Counter for good I2C transmission b/w FPGA and sensor + U08 fpgaPDsErrorCnt; ///< Reg 293. PDs Counter for bad I2C transmission b/w FPGA and sensor + + U32 fpgaPDfPressure; ///< Reg 294. PDf MPM pressure sensor RAW pressure data + U32 fpgaPDfTemp; ///< Reg 298. PDf MPM pressure sensor RAW temperature data + U08 fpgaPDfReadCnt; ///< Reg 302. PDf Counter for good I2C transmission b/w FPGA and sensor + U08 fpgaPDfErrorCnt; ///< Reg 303. PDf Counter for bad I2C transmission b/w FPGA and sensor + + U32 fpgaPtmPressure; ///< Reg 304. Ptm MPM pressure sensor RAW pressure data + U32 fpgaPtmTemp; ///< Reg 308. Ptm MPM pressure sensor RAW temperature data + U08 fpgaPtmReadCnt; ///< Reg 312. Ptm Counter for good I2C transmission b/w FPGA and sensor + U08 fpgaPtmErrorCnt; ///< Reg 313. Ptm Counter for bad I2C transmission b/w FPGA and sensor + + U16 fpgaCD1DataOut; ///< Reg 314. Data read from Conductivity Sensor 1 register + U16 fpgaCD1Cond; ///< Reg 316. CD1 conductivity + U16 fpgaCD1Temp; ///< Reg 318. CD1 Temperature + U08 fpgaCD1ReadCnt; ///< Reg 320. CD1 successful read count + U08 fpgaCD1ErrorCnt; ///< Reg 321. CD1 error read count + + U16 fpgaCD2DataOut; ///< Reg 322. Data read from Conductivity Sensor 2 register + U16 fpgaCD2Cond; ///< Reg 324. CD2 conductivity + U16 fpgaCD2Temp; ///< Reg 326. CD2 Temperature + U08 fpgaCD2ReadCnt; ///< Reg 328. CD2 successful read count + U08 fpgaCD2ErrorCnt; ///< Reg 329. CD2 error read count + + U16 fpgaCD3DataOut; ///< Reg 330. Data read from Conductivity Sensor 3 register + U16 fpgaCD3Cond; ///< Reg 332. CD3 conductivity + U16 fpgaCD3Temp; ///< Reg 334. CD3 Temperature + U08 fpgaCD3ReadCnt; ///< Reg 336. CD3 successful read count + U08 fpgaCD3ErrorCnt; ///< Reg 337. CD3 error read count + + U16 fpgaCD4DataOut; ///< Reg 338. Data read from Conductivity Sensor 4 register + U16 fpgaCD4Cond; ///< Reg 340. CD4 conductivity + U16 fpgaCD4Temp; ///< Reg 342. CD4 Temperature + U08 fpgaCD4ReadCnt; ///< Reg 344. CD4 successful read count + U08 fpgaCD4ErrorCnt; ///< Reg 345. CD4 error read count + + U16 fpgaLevelSensor1; ///< Reg 346. Level Sensor 1 + U16 fpgaLevelSensor2; ///< Reg 348. Level Sensor 2 + + U08 fpgaHallSensInputs; ///< Reg 350. Hall sensor Inputs + + U08 fpgaBldTxFIFOCnt; ///< Reg 351. Blood leak sensor transmit FIFO count + U16 fpgaBldRxErrorCnt; ///< Reg 352. Blood leak sensor Receive error count + U16 fpgaBldRxFIFOCnt; ///< Reg 354. Blood leak sensor Receive FIFO count + U08 fpgaBldRxFIFODataOut; ///< Reg 356. Blood leak sensor Receive data + U08 fpgaBldPulseStatus; ///< Reg 357. Blood leak sensor status + + U16 fpgaValveStates; ///< Reg 358. Valve status read + U16 fpgaValvePWMEnableStates; ///< Reg 360. Valve PWM Enable status read + U08 fpgaValveBCStates; ///< Reg 362. Balancing chamber Valves states + U08 fpgaValveBCPWMStates; ///< Reg 363. Balancing Chamber Valve PWM states + U08 fpgaValveUFStates; ///< Reg 364. Ultrafiltration Valves states + U08 fpgaValveUFPWMStates; ///< Reg 365. Ultrafiltration Valves PWM states + +} DD_FPGA_SENSORS_T; + +typedef struct +{ + U16 fpgaValveControl; ///< Reg 04. Valve control register + U16 fpgaValvePWMEnable; ///< Reg 06. Valve PWM enable + + U16 fpgaVDrPWMLow; ///< Reg 08. VDr PWM low. VDo-> VDr. + U16 fpgaVDrPWMPeriod; ///< Reg 10. VDr PWM period + U16 fpgaVDrPWMPullin; ///< Reg 12. VDr PWM pull in + U16 fpgaVTDWMLow; ///< Reg 14. VTD PWM low + U16 fpgaVTDPWMPeriod; ///< Reg 16. VTD PWM period + U16 fpgaVTDPWMPullin; ///< Reg 18. VTD PWM pull in + U16 fpgaVHBPWMLow; ///< Reg 20. VHB PWM low + U16 fpgaVHBPWMPeriod; ///< Reg 22. VHB PWM period + U16 fpgaVHBPWMPullin; ///< Reg 24. VHB PWM pull in + U16 fpgaVrpPWMLow; ///< Reg 26. Vrp PWM low + U16 fpgaVrpPWMPeriod; ///< Reg 28. Vrp PWM period + U16 fpgaVrpPWMPullin; ///< Reg 30. Vrp PWM pull in + + U16 fpgaVHoPWMLow; ///< Reg 32. VHo PWM low + U16 fpgaVHoPWMPeriod; ///< Reg 34. VHo PWM period + U16 fpgaVHoPWMPullin; ///< Reg 36. VHo PWM pull in + U16 fpgaVDB1PWMLow; ///< Reg 38. VDB1 PWM low + U16 fpgaVDB1PWMPeriod; ///< Reg 40. VDB1 PWM period + U16 fpgaVDB1PWMPullin; ///< Reg 42. VDB1 PWM pull in + U16 fpgaVP1PWMLow; ///< Reg 44. VP1 PWM low + U16 fpgaVP1PWMPeriod; ///< Reg 46. VP1 PWM period + U16 fpgaVP1PWMPullin; ///< Reg 48. VP1 PWM pull in + U16 fpgaVPTPWMLow; ///< Reg 50. VPT PWM Low + U16 fpgaVPTPWMPeriod; ///< Reg 52. VPT PWM period + U16 fpgaVPTPWMPullin; ///< Reg 54. VPT PWM pull in + + U16 fpgaVDB2PWMLow; ///< Reg 56. VDB2 PWM low + U16 fpgaVDB2PWMPeriod; ///< Reg 58. VDB2 PWM period + U16 fpgaVDB2PWMPullin; ///< Reg 60. VDB2 PWM pull in + U16 fpgaVDiPWMLow; ///< Reg 62. VDi PWM low + U16 fpgaVDiPWMPeriod; ///< Reg 64. VDi PWM period + U16 fpgaVDiPWMPullin; ///< Reg 66. VDi PWM pull in + U16 fpgaVDoPWMLow; ///< Reg 68. VDo PWM low + U16 fpgaVDoPWMPeriod; ///< Reg 70. VDo PWM period + U16 fpgaVDoPWMPullin; ///< Reg 72. VDo PWM pull in + U16 fpgaVP2PWMLow; ///< Reg 74. VP2 PWM low + U16 fpgaVP2PWMPeriod; ///< Reg 76. VP2 PWM period + U16 fpgaVP2PWMPullin; ///< Reg 78. VP2 PWM pull in + U16 fpgaVHiPWMLow; ///< Reg 80. VHi PWM low + U16 fpgaVHiPWMPeriod; ///< Reg 82. VHi PWM period + U16 fpgaVHiPWMPullin; ///< Reg 84. VHi PWM pull in + + U08 fpgaBCValveControl; ///< Reg 86. Balancing Chamber Valves Control Registers + U08 fpgaBCValvePWMControl; ///< Reg 87. Balancing Chamber Valves PWM control + U08 fpgaUFValveControl; ///< Reg 88. Ultra filtration Valves Control Registers + U08 fpgaUFValvePWMControl; ///< Reg 89. Ultra filtration Valves PWM control + + U08 fpgaConSensTD12Control; ///< Reg 90. Conductivity/Temperature Sensors 1 & 2 Control registers + U08 fpgaConSensTD34Control; ///< Reg 91. Conductivity/Temperature Sensors 3 & 4 Control registers + U16 fpgaConSensTD12_Addrs; ///< Reg 92. CDTD 1&2 Initialization Address register + U16 fpgaConSensTD12_Data_In; ///< Reg 94. CDTD 1&2 Initialization data register + U16 fpgaConSensTD34_Addrs; ///< Reg 96. CDTD 3&4 Initialization Address register + U16 fpgaConSensTD34_Data_In; ///< Reg 98. CDTD 3&4 Initialization data register + + U16 fpgaRemoteUpdate_Write; ///< Reg 100.Register for Remote update used by SW. + + U16 fpgaDGPSpeed; ///< Reg 102. DGP Speed/RPM Control + U08 fpgaDGPControl; ///< Reg 104. DGP Control + U08 fpgaSDPControl; ///< Reg 105. SDP Control + U16 fpgaSDPSpeed; ///< Reg 106. SDP Speed/RPM Control + U16 fpgaCPASpeed; ///< Reg 108. Acid Concentrate Pump Speed/RPM Control + U08 fpgaCPAControl; ///< Reg 110. Acid Concentrate Pump Control + U08 fpgaCPBControl; ///< Reg 111. BiCarb Concentrate Pump Control + U16 fpgaCPBSpeed; ///< Reg 112. BiCarb Concentrate Pump Speed/RPM Control + + U08 fpgaBloodLeakSensorTest; ///< Reg 114. Blood leak sensor test + U08 fpgaBloodLeakUARTControl; ///< Reg 115. Blood leak sensor UART control + U08 fpgaBloodLeakFIFOTx; ///< Reg 116. Blood leak sensor FIFO transmit control + +} FPGA_ACTUATORS_T; +#pragma pack(pop) + +// ********** private data ********** + +// FPGA data +static FPGA_HEADER_T fpgaHeader; ///< FPGA header structure. +static DD_FPGA_SENSORS_T fpgaSensorReadings; ///< DD FPGA sensors structure. +static FPGA_ACTUATORS_T fpgaActuatorSetPoints; ///< FPGA actuator set points structure. + +// ********** private function prototypes ********** + +/*********************************************************************//** + * @brief + * The initFPGADD function initializes the DD FPGA module. + * @details \b Inputs: none + * @details \b Outputs: FPGA module initialized. + * @return none + *************************************************************************/ +void initFPGADD( void ) +{ + // Initialize fpga driver + initFPGA( (U08*)&fpgaHeader, (U08*)&fpgaSensorReadings, (U08*)&fpgaActuatorSetPoints, + sizeof(FPGA_HEADER_T), sizeof(DD_FPGA_SENSORS_T), sizeof(FPGA_ACTUATORS_T) ); + + // initialize fpga data structures + memset( &fpgaHeader, 0, sizeof( FPGA_HEADER_T ) ); + memset( &fpgaSensorReadings, 0, sizeof( DD_FPGA_SENSORS_T ) ); + memset( &fpgaActuatorSetPoints, 0, sizeof( FPGA_ACTUATORS_T ) ); + + // Set the THd control register to 0x1 to make sure its ADC is running + //fpgaActuatorSetPoints.fpgaTHdControlReg = FPGA_THD_CONTROL_COMMAND; + fpgaActuatorSetPoints.fpgaValveControl = FPGA_ENABLE_VALVES_CONTROL; + fpgaActuatorSetPoints.fpgaValvePWMEnable = FPGA_ENABLE_VALVES_PWM; + fpgaActuatorSetPoints.fpgaBCValveControl = FPGA_ENABLE_BC_VALVES_CONTROL; + fpgaActuatorSetPoints.fpgaBCValvePWMControl = FPGA_ENABLE_BC_VALVES_PWM; + fpgaActuatorSetPoints.fpgaUFValveControl = FPGA_ENABLE_UF_VALVES_CONTROL; + fpgaActuatorSetPoints.fpgaUFValvePWMControl = FPGA_ENABLE_UF_VALVES_PWM; + + // initialize FPGA clock speed error time windowed count + initTimeWindowedCount( TIME_WINDOWED_COUNT_FPGA_COMM_FAILURES, MAX_FPGA_COMM_FAILURES, MAX_FPGA_COMM_FAILURES_WINDOW_MS); + +} + +/*********************************************************************//** + * @brief + * The execFPGATest function executes the FPGA self-test. + * @details \b Inputs: fpgaHeader + * @details \b Outputs: none + * @details \b Alarm: ALARM_ID_DD_FPGA_POST_TEST_FAILED when FPGA compatibility failed and/or + * wrong FPGA header seen. + * @return passed, or failed + *************************************************************************/ +SELF_TEST_STATUS_T execFPGATest( void ) +{ + SELF_TEST_STATUS_T result; + + // check FPGA reported correct ID + if ( FPGA_EXPECTED_ID == fpgaHeader.fpgaId ) + { + // Check FPGA compatibility w/ firmware + if ( DD_FPGA_COMPATIBILITY_REV == fpgaSensorReadings.fpgaCompatibilityRev ) + { + result = SELF_TEST_STATUS_PASSED; + } + else + { + result = SELF_TEST_STATUS_FAILED; + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_FPGA_POST_TEST_FAILED, (U32)DD_FPGA_COMPATIBILITY_REV, (U32)fpgaSensorReadings.fpgaCompatibilityRev ) + } + } + else + { + result = SELF_TEST_STATUS_FAILED; + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_DD_FPGA_POST_TEST_FAILED, (U32)fpgaHeader.fpgaId ) + } + + return result; +} + +/*********************************************************************//** + * @brief + * The execFPGAClockSpeedTest function verifies the processor clock speed + * against the FPGA clock. + * @details \b Inputs: fpgaHeader, + * window timer TIME_WINDOWED_COUNT_FPGA_CLOCK_SPEED_ERROR + * @details \b Outputs: none + * @details \b Alarm: ALARM_ID_DD_FPGA_CLOCK_SPEED_CHECK_FAILURE when clock speed + * mismatch seen. + * @return: none + *************************************************************************/ +void execFPGAClockSpeedTest( void ) +{ + /* DEBUG WARNING + * It may be necessary to comment out the following + * code to prevent the alarm from occurring while + * debugging. + */ + + static U16 currentFPGATimerCount_ms = 0; + static U32 currentTimerCount_ms = 0; + + U16 const newFPGATimerCount_ms = getFPGATimerCount(); + U32 const newTimerCount_ms = getMSTimerCount(); + U32 const diffFPGATimerCount = (U32)u16DiffWithWrap( currentFPGATimerCount_ms, newFPGATimerCount_ms ); + U32 const diffTimerCount = u32DiffWithWrap( currentTimerCount_ms, newTimerCount_ms ); + + if ( getCurrentOperationMode() != DD_MODE_INIT ) + { + if ( abs( diffFPGATimerCount - diffTimerCount ) > PROCESSOR_FPGA_CLOCK_DIFF_TOLERANCE ) + { + if ( TRUE == incTimeWindowedCount( TIME_WINDOWED_COUNT_FPGA_CLOCK_SPEED_ERROR ) ) + { + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_FPGA_CLOCK_SPEED_CHECK_FAILURE, diffFPGATimerCount, diffTimerCount ); + } + } + } + + currentFPGATimerCount_ms = newFPGATimerCount_ms; + currentTimerCount_ms = newTimerCount_ms; +} + +/*********************************************************************//** + * @brief + * The setFPGAValveStates function sets the DD valve states with a 16-bit + * set of states - one bit per valve, with a 1 meaning "energized" and a 0 + * meaning "de-energized". The bit positions for these bit states are as follows: + * 0 - VDr/VDo.\n + * 1 - VTD.\n + * 2 - VHB.\n + * 3 - Vrp.\n + * 4 - VHo.\n + * 5 - VDB1.\n + * 6 - VP1.\n + * 7 - VPT.\n + * 8 - VDB2.\n + * 9 - VDi.\n + * 10 - VDo.\n + * 11 - VP2.\n + * 12 - VHi.\n + * 13..15 - reserved or unused. + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaValveControl + * @param valveStates bit mask for the various valve states + * @return none + *************************************************************************/ +void setFPGAValveStates( U16 valveStates ) +{ + fpgaActuatorSetPoints.fpgaValveControl = valveStates; +} + +/*********************************************************************//** + * @brief + * The setFPGABCValveStates function sets the DD balancing chamber valve states with a + * 8-bit set of states - one bit per valve, with a 1 meaning "energized" and a 0 + * meaning "de-energized". The bit positions for these bit states are as follows: + * 0 - V1.\n + * 1 - V2.\n + * 2 - V3.\n + * 3 - V4.\n + * 4 - V5.\n + * 5 - V6.\n + * 6 - V7.\n + * 7 - V8.\n + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaBCValveControl + * @param valveStates bit mask for the balancing chamber valve states + * @return none + *************************************************************************/ +void setFPGABCValveStates( U08 valveStates ) +{ + fpgaActuatorSetPoints.fpgaBCValveControl = valveStates; +} + +/*********************************************************************//** + * @brief + * The setFPGAUFValveStates function sets the DD ultrafiltration valve states with a + * 8-bit set of states - one bit per valve, with a 1 meaning "energized" and a 0 + * meaning "de-energized". The bit positions for these bit states are as follows: + * 0 - UFi1.\n + * 1 - UFi2.\n + * 2 - UFo1.\n + * 3 - UFo2.\n + * 4..7 - Unused or reserved.\n + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaUFValveControl + * @param valveStates bit mask for the balancing chamber valve states + * @return none + *************************************************************************/ +void setFPGAUFValveStates( U08 valveStates ) +{ + fpgaActuatorSetPoints.fpgaUFValveControl = valveStates; +} + +/*********************************************************************//** + * @brief + * The setFPGADialysateOutPumpSpeed function sets the speed period for + * dialysate out pump (SDP). + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaSDPSpeed + * @param speed The dialysate out pump speed period + * @return none + *************************************************************************/ +void setFPGADialysateOutPumpSpeed( U16 speed ) +{ + fpgaActuatorSetPoints.fpgaSDPSpeed = speed; +} + +/*********************************************************************//** + * @brief + * The setFPGADialysateInPumpSpeed function sets the speed period for + * dialysate In pump (DGP). + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaDGPSpeed + * @param speed The dialysate In pump speed period + * @return none + *************************************************************************/ +void setFPGADialysateInPumpSpeed( U16 speed ) +{ + fpgaActuatorSetPoints.fpgaDGPSpeed = speed; +} + +/*********************************************************************//** + * @brief + * The setFPGADialysateOutPumpControl function sets the controls for + * dialysate out pump (SDP). bit definitions To be defined(TBD) + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaSDPControl + * @param control The dialysate out pump controls + * @return none + *************************************************************************/ +void setFPGADialysateOutPumpControl( U08 control ) +{ + fpgaActuatorSetPoints.fpgaSDPControl = control; +} + +/*********************************************************************//** + * @brief + * The setFPGADialysateInPumpControl function sets the controls for + * dialysate In pump (DGP). bit definitions To be defined(TBD) + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaDGPControl + * @param control The dialysate In pump controls + * @return none + *************************************************************************/ +void setFPGADialysateInPumpControl( U08 control ) +{ + fpgaActuatorSetPoints.fpgaDGPControl = control; +} + +/*********************************************************************//** + * @brief + * The setFPGAAcidPumpSetStepSpeed function sets the step speed period for + * concentrate pump CPA. + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaCPASpeed + * @param stepSpeed The concentrate pump step speed period + * @return none + *************************************************************************/ +void setFPGAAcidPumpSetStepSpeed( U16 stepSpeed ) +{ + fpgaActuatorSetPoints.fpgaCPASpeed = stepSpeed; +} + +/*********************************************************************//** + * @brief + * The setFPGABicarbSetStepSpeed function sets the step speed period for + * concentrate pump CP2. + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaCPBSpeed + * @param stepSpeed The concentrate pump step speed period + * @return none + *************************************************************************/ +void setFPGABicarbSetStepSpeed( U16 stepSpeed ) +{ + fpgaActuatorSetPoints.fpgaCPBSpeed = stepSpeed; +} + +/*********************************************************************//** + * @brief + * The setFPGAAcidPumpControl function sets the DVT concentrate pump 1 + * (acid pump) control mode. + * bit 7: Park (set in different function) + * bit 6: nSleep + * bit 5: nReset + * bit 4: nEnable + * bit 3: Direction (1=Fwd, 0=Rev) + * bit 0-2: Microstepping resolution + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaCPAControl + * @param control Concentrate pump control set + * @return none + *************************************************************************/ +void setFPGAAcidPumpControl( U08 control ) +{ + fpgaActuatorSetPoints.fpgaCPAControl &= FPGA_CONC_PUMP_PARK_COMMAND; // preserve msb (park command bit) + fpgaActuatorSetPoints.fpgaCPAControl |= control; +} + +/*********************************************************************//** + * @brief + * The setFPGABicarbPumpControl function sets the DVT concentrate pump 2 + * (bicarb pump) control mode. + * bit 7: Park (set in different function) + * bit 6: nSleep + * bit 5: nReset + * bit 4: nEnable + * bit 3: Direction (1=Fwd, 0=Rev) + * bit 0-2: Microstepping resolution + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaCPBControl + * @param control Concentrate pump control set + * @return none + *************************************************************************/ +void setFPGABicarbPumpControl( U08 control ) +{ + fpgaActuatorSetPoints.fpgaCPBControl &= FPGA_CONC_PUMP_PARK_COMMAND; // preserve msb (park command bit) + fpgaActuatorSetPoints.fpgaCPBControl |= control; +} + +/*********************************************************************//** + * @brief + * The setFPGAAcidPumpParkCmd function sets the DVT concentrate pump 1 + * (acid pump) park command bit. + * bit 7: Park command bit + * bit 0-6: Other pump control bits (set in different function) + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaCPAControl + * @param Park command bit set + * @return none + *************************************************************************/ +void setFPGAAcidPumpParkCmd( void ) +{ + fpgaActuatorSetPoints.fpgaCPAControl |= FPGA_CONC_PUMP_PARK_COMMAND; // this bit must be cleared after next transmit to prevent continuous park commands +} + +/*********************************************************************//** + * @brief + * The setFPGABicarbPumpParkCmd function sets the DVT concentrate pump 2 + * (bicarb pump) park command bit. + * bit 7: Park command bit + * bit 0-6: Other pump control bits (set in different function) + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaCPBControl + * @param Park command bit set + * @return none + *************************************************************************/ +void setFPGABicarbPumpParkCmd( void ) +{ + fpgaActuatorSetPoints.fpgaCPBControl |= FPGA_CONC_PUMP_PARK_COMMAND; // this bit must be cleared after next transmit to prevent continuous park commands +} + +/*********************************************************************//** + * @brief + * The setFpgaCD12Control function sets the FPGA Conductivity + * Sensor control register for CD1&2. + * bit 7: Enables TD2 read transaction (1), address needed + * bit 6: Enables TD2 write transaction (1), address and data needs to be set + * bit 5: Enable TD2 Init procedure (1) + * bit 4: reset TD2 Conduct sensor (1) + * bit 3: Enables TD1 read transaction (1), address needed + * bit 2: Enables TD1 write transaction (1), address and data needs to be set + * bit 1: Enable TD1 Init procedure (1) + * bit 0: reset TD1 Conduct sensor (1) + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaConSensTD12Control + * @param control Conductivity Sensor control set + * @return none + *************************************************************************/ +void setFPGACD12Control( U08 control ) +{ + fpgaActuatorSetPoints.fpgaConSensTD12Control = control; +} + +/*********************************************************************//** + * @brief + * The setFpgaCD34Control function sets the FPGA Conductivity + * Sensor control register for CD3&4. + * bit 7: Enables TD4 read transaction (1), address needed + * bit 6: Enables TD4 write transaction (1), address and data needs to be set + * bit 5: Enable TD4 Init procedure (1) + * bit 4: reset TD4 Conduct sensor (1) + * bit 3: Enables TD3 read transaction (1), address needed + * bit 2: Enables TD3 write transaction (1), address and data needs to be set + * bit 1: Enable TD3 Init procedure (1) + * bit 0: reset TD3 Conduct sensor (1) + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaConSensTD34Control + * @param control Conductivity sensor control set + * @return none + *************************************************************************/ +void setFPGACD34Control( U08 control ) +{ + fpgaActuatorSetPoints.fpgaConSensTD34Control = control; +} + +/*********************************************************************//** + * @brief + * The setFPGACD12Address function sets the conductivity sensor + * CD12 address register to perform read and write operations. + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaConSensTD12_Addrs + * @param address The conductivity sensor CD12 address + * @return none + *************************************************************************/ +void setFPGACD12Address( U16 address ) +{ + fpgaActuatorSetPoints.fpgaConSensTD12_Addrs = address; +} + +/*********************************************************************//** + * @brief + * The setFPGACD34Address function sets the conductivity sensor + * CD34 address register to perform read and write operations. + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaConSensTD34_Addrs + * @param address The conductivity sensor CD34 address + * @return none + *************************************************************************/ +void setFPGACD34Address( U16 address ) +{ + fpgaActuatorSetPoints.fpgaConSensTD34_Addrs = address; +} + +/*********************************************************************//** + * @brief + * The setFPGACD12Data function sets the conductivity sensor + * CD12 data input for write operations. + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaConSensTD12_Data_In + * @param data The conductivity sensor CD12 Data + * @return none + *************************************************************************/ +void setFPGACD12Data( U16 data ) +{ + fpgaActuatorSetPoints.fpgaConSensTD12_Data_In = data; +} + +/*********************************************************************//** + * @brief + * The setFPGACD34Data function sets the conductivity sensor + * CD34 data input for write operations. + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaConSensTD34_Data_In + * @param data The conductivity sensor CD34 Data + * @return none + *************************************************************************/ +void setFPGACD34Data( U16 data ) +{ + fpgaActuatorSetPoints.fpgaConSensTD34_Data_In = data; +} + +/*********************************************************************//** + * @brief + * The getFPGAVersions function gets the FPGA version numbers. + * @details \b Inputs: fpgaHeader + * @details \b Outputs: none + * @return none + *************************************************************************/ +void getFPGAVersions( U08 *Id, U08 *Maj, U08 *Min, U08 *Lab ) +{ + *Id = fpgaHeader.fpgaId; + *Maj = fpgaHeader.fpgaRevMajor; + *Min = fpgaHeader.fpgaRevMinor; + *Lab = fpgaHeader.fpgaRevLab; +} + +/*********************************************************************//** + * @brief + * The getFPGADialysateOutPumpControl function gets the status of the + * dialysate out pump control status bits. + * bit 7: TBD + * bit 6: TBD + * bit 5: TBD + * bit 4: TBD + * bit 3: TBD + * bit 0-2: TBD + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaSDPControl + * @return Dialysate Out pump control status bit + *************************************************************************/ +U08 getFPGADialysateOutPumpControl( void ) +{ + return fpgaActuatorSetPoints.fpgaSDPControl; +} + +/*********************************************************************//** + * @brief + * The getFPGADialysateInPumpControl function gets the status of the + * dialysate Inlet pump control status bits. + * bit 7: TBD + * bit 6: TBD + * bit 5: TBD + * bit 4: TBD + * bit 3: TBD + * bit 0-2: TBD + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaDGPControl + * @return Dialysate Inlet pump control status bit + *************************************************************************/ +U08 getFPGADialysateInPumpControl( void ) +{ + return fpgaActuatorSetPoints.fpgaDGPControl; +} + +/*********************************************************************//** + * @brief + * The getFPGAAcidPumpControlStatus function gets the status of the + * acid pump control status bits. + * bit 7: Park (set in different function) + * bit 6: nSleep + * bit 5: nReset + * bit 4: nEnable + * bit 3: Direction (1=Fwd, 0=Rev) + * bit 0-2: Microstepping resolution + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaCPAControl + * @return Acid pump control status bit + *************************************************************************/ +U08 getFPGAAcidPumpControlStatus( void ) +{ + return fpgaActuatorSetPoints.fpgaCPAControl; +} + +/*********************************************************************//** + * @brief + * The getFPGABicarbPumpControlStatus function gets the DVT concentrate pump 2 + * (bicarb pump) control mode. + * bit 7: Park (set in different function) + * bit 6: nSleep + * bit 5: nReset + * bit 4: nEnable + * bit 3: Direction (1=Fwd, 0=Rev) + * bit 0-2: Microstepping resolution + * @details \b Inputs: none + * @details \b Outputs: fpgaActuatorSetPoints.fpgaCPBControl + * @return Bicarb pump control status bit + *************************************************************************/ +U08 getFPGABicarbPumpControlStatus( void ) +{ + return fpgaActuatorSetPoints.fpgaCPBControl; +} + +/*********************************************************************//** + * @brief + * The getFPGAValveStates function gets the latest sensed valve states. + * See setFPGAValveStates for valve state bit positions. + * @details \b Inputs: fpgaSensorReadings.fpgaValveStates + * @details \b Outputs: none + * @return last valve states reading + *************************************************************************/ +U16 getFPGAValveStates( void ) +{ + return fpgaSensorReadings.fpgaValveStates; +} + +/*********************************************************************//** + * @brief + * The getFPGAValveBCStates function gets the latest sensed balancing + * chamber valve states. + * See setFPGABCValveStates for BC valve state bit positions. + * @details \b Inputs: fpgaSensorReadings.fpgaValveBCStates + * @details \b Outputs: none + * @return last balancing chamber valve states reading + *************************************************************************/ +U08 getFPGAValveBCStates( void ) +{ + return fpgaSensorReadings.fpgaValveBCStates; +} + +/*********************************************************************//** + * @brief + * The getFPGAValveUFStates function gets the latest sensed ultrafiltration + * valve states. + * See setFPGAUFValveStates for UF valve state bit positions. + * @details \b Inputs: fpgaSensorReadings.fpgaValveUFStates + * @details \b Outputs: none + * @return last ultrafiltration valve states reading + *************************************************************************/ +U08 getFPGAValveUFStates( void ) +{ + return fpgaSensorReadings.fpgaValveUFStates; +} + +/*********************************************************************//** + * @brief + * The getFPGAPnReadCount function gets Pn/PHo pressure sensor counter of + * good I2C transmissions between FPGA and Sensor. + * @details \b Inputs: fpgaSensorReadings.fpgaPnReadCnt + * @details \b Outputs: none + * @return Latest Pn/PHo Pressure sensor read count + *************************************************************************/ +U08 getFPGAPnReadCount( void ) +{ + return fpgaSensorReadings.fpgaPnReadCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGAPnErrorCount function gets Pn/PHo pressure sensor error count. + * @details \b Inputs: fpgaSensorReadings.fpgaPnErrorCnt + * @details \b Outputs: none + * @return Latest Pn/PHo pressure sensor read error count + *************************************************************************/ +U08 getFPGAPnErrorCount( void ) +{ + return fpgaSensorReadings.fpgaPnErrorCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGAPnRawPressure function gets Pn/PHo pressure sensor raw + * pressure value. + * @details \b Inputs: fpgaSensorReadings.fpgaPnPressure + * @details \b Outputs: none + * @return Latest Pn/PHo pressure sensor raw pressure data + *************************************************************************/ +U32 getFPGAPnRawPressure( void ) +{ + return fpgaSensorReadings.fpgaPnPressure; +} + +/*********************************************************************//** + * @brief + * The getFPGAPnRawTemperature function gets Pn/PHo pressure sensor raw + * temperature value. + * @details \b Inputs: fpgaSensorReadings.fpgaPnTemp + * @details \b Outputs: none + * @return Latest Pn/PHo pressure sensor raw temperature data + *************************************************************************/ +U32 getFPGAPnRawTemperature( void ) +{ + return fpgaSensorReadings.fpgaPnTemp; +} + +/*********************************************************************//** + * @brief + * The getFPGAPCbReadCount function gets PCb/PDB pressure sensor counter of + * good I2C transmissions between FPGA and Sensor. + * @details \b Inputs: fpgaSensorReadings.fpgaPCbReadCnt + * @details \b Outputs: none + * @return Latest PCb/PDB Pressure sensor read count + *************************************************************************/ +U08 getFPGAPCbReadCount( void ) +{ + return fpgaSensorReadings.fpgaPCbReadCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGAPCbErrorCount function gets PCb/PDB pressure sensor error count. + * @details \b Inputs: fpgaSensorReadings.fpgaPCbErrorCnt + * @details \b Outputs: none + * @return Latest PCb/PDB pressure sensor read error count + *************************************************************************/ +U08 getFPGAPCbErrorCount( void ) +{ + return fpgaSensorReadings.fpgaPCbErrorCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGAPCbRawPressure function gets PCb/PDB pressure sensor raw + * pressure value. + * @details \b Inputs: fpgaSensorReadings.fpgaPCbPressure + * @details \b Outputs: none + * @return Latest PCb/PDB pressure sensor raw pressure data + *************************************************************************/ +U32 getFPGAPCbRawPressure( void ) +{ + return fpgaSensorReadings.fpgaPCbPressure; +} + +/*********************************************************************//** + * @brief + * The getFPGAPCbRawTemperature function gets PCb/PDB pressure sensor raw + * temperature value. + * @details \b Inputs: fpgaSensorReadings.fpgaPCbTemp + * @details \b Outputs: none + * @return Latest PCb/PDB pressure sensor raw temperature data + *************************************************************************/ +U32 getFPGAPCbRawTemperature( void ) +{ + return fpgaSensorReadings.fpgaPCbTemp; +} + +/*********************************************************************//** + * @brief + * The getFPGAPDsReadCount function gets PDs pressure sensor counter of + * good I2C transmissions between FPGA and Sensor. + * @details \b Inputs: fpgaSensorReadings.fpgaPDsReadCnt + * @details \b Outputs: none + * @return Latest PDs Pressure sensor read count + *************************************************************************/ +U08 getFPGAPDsReadCount( void ) +{ + return fpgaSensorReadings.fpgaPDsReadCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGAPDsErrorCount function gets PDs pressure sensor error count. + * @details \b Inputs: fpgaSensorReadings.fpgaPDsErrorCnt + * @details \b Outputs: none + * @return Latest PDs pressure sensor read error count + *************************************************************************/ +U08 getFPGAPDsErrorCount( void ) +{ + return fpgaSensorReadings.fpgaPDsErrorCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGAPDsRawPressure function gets PDs pressure sensor raw + * pressure value. + * @details \b Inputs: fpgaSensorReadings.fpgaPDsPressure + * @details \b Outputs: none + * @return Latest PDs pressure sensor raw pressure data + *************************************************************************/ +U32 getFPGAPDsRawPressure( void ) +{ + return fpgaSensorReadings.fpgaPDsPressure; +} + +/*********************************************************************//** + * @brief + * The getFPGAPDsRawTemperature function gets PDs pressure sensor raw + * temperature value. + * @details \b Inputs: fpgaSensorReadings.fpgaPDsTemp + * @details \b Outputs: none + * @return Latest PDs pressure sensor raw temperature data + *************************************************************************/ +U32 getFPGAPDsRawTemperature( void ) +{ + return fpgaSensorReadings.fpgaPDsTemp; +} + +/*********************************************************************//** + * @brief + * The getFPGAPDfReadCount function gets PDf pressure sensor counter of + * good I2C transmissions between FPGA and Sensor. + * @details \b Inputs: fpgaSensorReadings.fpgaPDfReadCnt + * @details \b Outputs: none + * @return Latest PDf Pressure sensor read count + *************************************************************************/ +U08 getFPGAPDfReadCount( void ) +{ + return fpgaSensorReadings.fpgaPDfReadCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGAPDfErrorCount function gets PDf pressure sensor error count. + * @details \b Inputs: fpgaSensorReadings.fpgaPDfErrorCnt + * @details \b Outputs: none + * @return Latest PDf pressure sensor read error count + *************************************************************************/ +U08 getFPGAPDfErrorCount( void ) +{ + return fpgaSensorReadings.fpgaPDfErrorCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGAPDfRawPressure function gets PDf pressure sensor raw + * pressure value. + * @details \b Inputs: fpgaSensorReadings.fpgaPDfPressure + * @details \b Outputs: none + * @return Latest PDf pressure sensor raw pressure data + *************************************************************************/ +U32 getFPGAPDfRawPressure( void ) +{ + return fpgaSensorReadings.fpgaPDfPressure; +} + +/*********************************************************************//** + * @brief + * The getFPGAPDfRawTemperature function gets PDf pressure sensor raw + * temperature value. + * @details \b Inputs: fpgaSensorReadings.fpgaPDfTemp + * @details \b Outputs: none + * @return Latest PDf pressure sensor raw temperature data + *************************************************************************/ +U32 getFPGAPDfRawTemperature( void ) +{ + return fpgaSensorReadings.fpgaPDfTemp; +} + +/*********************************************************************//** + * @brief + * The getFPGAPtmReadCount function gets Ptm pressure sensor counter of + * good I2C transmissions between FPGA and Sensor. + * @details \b Inputs: fpgaSensorReadings.fpgaPtmReadCnt + * @details \b Outputs: none + * @return Latest Ptm Pressure sensor read count + *************************************************************************/ +U08 getFPGAPtmReadCount( void ) +{ + return fpgaSensorReadings.fpgaPtmReadCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGAPtmErrorCount function gets Ptm pressure sensor error count. + * @details \b Inputs: fpgaSensorReadings.fpgaPtmErrorCnt + * @details \b Outputs: none + * @return Latest Ptm pressure sensor read error count + *************************************************************************/ +U08 getFPGAPtmErrorCount( void ) +{ + return fpgaSensorReadings.fpgaPtmErrorCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGAPtmRawPressure function gets Ptm pressure sensor raw + * pressure value. + * @details \b Inputs: fpgaSensorReadings.fpgaPtmPressure + * @details \b Outputs: none + * @return Latest Ptm pressure sensor raw pressure data + *************************************************************************/ +U32 getFPGAPtmRawPressure( void ) +{ + return fpgaSensorReadings.fpgaPtmPressure; +} + +/*********************************************************************//** + * @brief + * The getFPGAPtmRawTemperature function gets Ptm pressure sensor raw + * temperature value. + * @details \b Inputs: fpgaSensorReadings.fpgaPtmTemp + * @details \b Outputs: none + * @return Latest Ptm pressure sensor raw temperature data + *************************************************************************/ +U32 getFPGAPtmRawTemperature( void ) +{ + return fpgaSensorReadings.fpgaPtmTemp; +} + +/*********************************************************************//** + * @brief + * The getFPGACD1ReadCount function gets CD1 conductivity sensor read count. + * @details \b Inputs: fpgaSensorReadings.fpgaCD1ReadCnt + * @details \b Outputs: none + * @return Latest CD1 conductivity sensor read count + *************************************************************************/ +U08 getFPGACD1ReadCount( void ) +{ + return fpgaSensorReadings.fpgaCD1ReadCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGACD1ErrorCount function gets CD1 conductivity sensor error count. + * @details \b Inputs: fpgaSensorReadings.fpgaCD1ErrorCnt + * @details \b Outputs: none + * @return Latest CD1 conductivity sensor read error count + *************************************************************************/ +U08 getFPGACD1ErrorCount( void ) +{ + return fpgaSensorReadings.fpgaCD1ErrorCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGACD1 function gets CD1 conductivity sensor value. + * @details \b Inputs: fpgaSensorReadings.fpgaCD1 + * @details \b Outputs: none + * @return Latest CD1 conductivity sensor value + *************************************************************************/ +U16 getFPGACD1( void ) +{ + return fpgaSensorReadings.fpgaCD1Cond; +} + +/*********************************************************************//** + * @brief + * The getFPGACD1Temp function gets CD1 conductivity sensor temperature value. + * @details \b Inputs: fpgaSensorReadings.fpgaCD1Temp + * @details \b Outputs: none + * @return Latest CD1 conductivity sensor temperature value + *************************************************************************/ +U16 getFPGACD1Temp( void ) +{ + return fpgaSensorReadings.fpgaCD1Temp; +} + +/*********************************************************************//** + * @brief + * The getFPGACD1Data function gets CD1 conductivity sensor register value. + * @details \b Inputs: fpgaSensorReadings.fpgaCD1DataOut + * @details \b Outputs: none + * @return Latest CD1 conductivity sensor register data value + *************************************************************************/ +U16 getFPGACD1Data( void ) +{ + return fpgaSensorReadings.fpgaCD1DataOut; +} + +/*********************************************************************//** + * @brief + * The getFPGACD2ReadCount function gets CD2 conductivity sensor read count. + * @details \b Inputs: fpgaSensorReadings.fpgaCD2ReadCnt + * @details \b Outputs: none + * @return Latest CD2 conductivity sensor read count + *************************************************************************/ +U08 getFPGACD2ReadCount( void ) +{ + return fpgaSensorReadings.fpgaCD2ReadCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGACD2ErrorCount function gets CD2 conductivity sensor error count. + * @details \b Inputs: fpgaSensorReadings.fpgaCD2ErrorCnt + * @details \b Outputs: none + * @return Latest CD2 conductivity sensor read error count + *************************************************************************/ +U08 getFPGACD2ErrorCount( void ) +{ + return fpgaSensorReadings.fpgaCD2ErrorCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGACD2 function gets CD2 conductivity sensor value. + * @details \b Inputs: fpgaSensorReadings.fpgaCD2 + * @details \b Outputs: none + * @return Latest CD2 conductivity sensor value + *************************************************************************/ +U16 getFPGACD2( void ) +{ + return fpgaSensorReadings.fpgaCD2Cond; +} + +/*********************************************************************//** + * @brief + * The getFPGACD2Temp function gets CD2 conductivity sensor temperature value. + * @details \b Inputs: fpgaSensorReadings.fpgaCD2Temp + * @details \b Outputs: none + * @return Latest CD2 conductivity sensor temperature value + *************************************************************************/ +U16 getFPGACD2Temp( void ) +{ + return fpgaSensorReadings.fpgaCD2Temp; +} + +/*********************************************************************//** + * @brief + * The getFPGACD2Data function gets CD2 conductivity sensor register value. + * @details \b Inputs: fpgaSensorReadings.fpgaCD2DataOut + * @details \b Outputs: none + * @return Latest CD2 conductivity sensor register data value + *************************************************************************/ +U16 getFPGACD2Data( void ) +{ + return fpgaSensorReadings.fpgaCD2DataOut; +} + +/*********************************************************************//** + * @brief + * The getFPGACD3ReadCount function gets CD3 conductivity sensor read count. + * @details \b Inputs: fpgaSensorReadings.fpgaCD3ReadCnt + * @details \b Outputs: none + * @return Latest CD3 conductivity sensor read count + *************************************************************************/ +U08 getFPGACD3ReadCount( void ) +{ + return fpgaSensorReadings.fpgaCD3ReadCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGACD3ErrorCount function gets CD3 conductivity sensor error count. + * @details \b Inputs: fpgaSensorReadings.fpgaCD3ErrorCnt + * @details \b Outputs: none + * @return Latest CD3 conductivity sensor read error count + *************************************************************************/ +U08 getFPGACD3ErrorCount( void ) +{ + return fpgaSensorReadings.fpgaCD3ErrorCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGACD3 function gets CD3 conductivity sensor value. + * @details \b Inputs: fpgaSensorReadings.fpgaCD3 + * @details \b Outputs: none + * @return Latest CD3 conductivity sensor value + *************************************************************************/ +U16 getFPGACD3( void ) +{ + return fpgaSensorReadings.fpgaCD3Cond; +} + +/*********************************************************************//** + * @brief + * The getFPGACD3Temp function gets CD3 conductivity sensor temperature value. + * @details \b Inputs: fpgaSensorReadings.fpgaCD3Temp + * @details \b Outputs: none + * @return Latest CD3 conductivity sensor temperature value + *************************************************************************/ +U16 getFPGACD3Temp( void ) +{ + return fpgaSensorReadings.fpgaCD3Temp; +} + +/*********************************************************************//** + * @brief + * The getFPGACD3Data function gets CD3 conductivity sensor register value. + * @details \b Inputs: fpgaSensorReadings.fpgaCD3DataOut + * @details \b Outputs: none + * @return Latest CD3 conductivity sensor register data value + *************************************************************************/ +U16 getFPGACD3Data( void ) +{ + return fpgaSensorReadings.fpgaCD3DataOut; +} + +/*********************************************************************//** + * @brief + * The getFPGACD4ReadCount function gets CD4 conductivity sensor read count. + * @details \b Inputs: fpgaSensorReadings.fpgaCD4ReadCnt + * @details \b Outputs: none + * @return Latest CD4 conductivity sensor read count + *************************************************************************/ +U08 getFPGACD4ReadCount( void ) +{ + return fpgaSensorReadings.fpgaCD4ReadCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGACD4ErrorCount function gets CD4 conductivity sensor error count. + * @details \b Inputs: fpgaSensorReadings.fpgaCD4ErrorCnt + * @details \b Outputs: none + * @return Latest CD4 conductivity sensor read error count + *************************************************************************/ +U08 getFPGACD4ErrorCount( void ) +{ + return fpgaSensorReadings.fpgaCD4ErrorCnt; +} + +/*********************************************************************//** + * @brief + * The getFPGACD4 function gets CD4 conductivity sensor value. + * @details \b Inputs: fpgaSensorReadings.fpgaCD4 + * @details \b Outputs: none + * @return Latest CD4 conductivity sensor value + *************************************************************************/ +U16 getFPGACD4( void ) +{ + return fpgaSensorReadings.fpgaCD4Cond; +} + +/*********************************************************************//** + * @brief + * The getFPGACD4Temp function gets CD4 conductivity sensor temperature value. + * @details \b Inputs: fpgaSensorReadings.fpgaCD4Temp + * @details \b Outputs: none + * @return Latest CD4 conductivity sensor temperature value + *************************************************************************/ +U16 getFPGACD4Temp( void ) +{ + return fpgaSensorReadings.fpgaCD4Temp; +} + +/*********************************************************************//** + * @brief + * The getFPGACD4Data function gets CD4 conductivity sensor register value. + * @details \b Inputs: fpgaSensorReadings.fpgaCD4DataOut + * @details \b Outputs: none + * @return Latest CD4 conductivity sensor register data value + *************************************************************************/ +U16 getFPGACD4Data( void ) +{ + return fpgaSensorReadings.fpgaCD4DataOut; +} + +/*********************************************************************//** + * @brief + * The getFPGALevelSensor1 function gets the latest FPGA level sensor 1 + * reading. + * @details \b Inputs: fpgaSensorReadings.fpgaLevelSensor1 + * @details \b Outputs: none + * @return last FPGA level sensor1 reading + *************************************************************************/ +U16 getFPGALevelSensor1( void ) +{ + return fpgaSensorReadings.fpgaLevelSensor1; +} + +/*********************************************************************//** + * @brief + * The getFPGALevelSensor2 function gets the latest FPGA level sensor 2 + * reading. + * @details \b Inputs: fpgaSensorReadings.fpgaLevelSensor2 + * @details \b Outputs: none + * @return last FPGA level sensor2 reading + *************************************************************************/ +U16 getFPGALevelSensor2( void ) +{ + return fpgaSensorReadings.fpgaLevelSensor2; +} + +/*********************************************************************//** + * @brief + * The getFPGATimerCount function gets the latest FPGA timer millisecond count. + * @details \b Inputs: fpgaSensorReadings + * @details \b Outputs: none + * @return last FPGA timer count + *************************************************************************/ +U16 getFPGATimerCount( void ) +{ + return fpgaSensorReadings.fpgaTimerCountMS; +} + +/*********************************************************************//** + * @brief + * The checkFPGACommFailure function increments the FPGA comm failure + * windowed timer and returns whether or not the number of failures in + * the window have been reached. + * @details \b Inputs: none + * @details \b Outputs: none + * @return TRUE if windowed count exceeded, else false. + *************************************************************************/ +void checkFPGACommFailure( void ) +{ + if ( getMSTimerCount() > MIN_POWER_ON_TIME_FOR_COMM_FAILS ) + { + if ( TRUE == incTimeWindowedCount( TIME_WINDOWED_COUNT_FPGA_COMM_FAILURES ) ) + { + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_FPGA_COMM_TIMEOUT, MAX_FPGA_COMM_FAILURES, (U32)fpgaSensorReadings.fpgaIOErrorCntProcessor ) + } + } +} + +/*********************************************************************//** + * @brief + * The checkFPGAAFEOEFailure function increments the FPGA comm failure + * windowed timer if an FE or OE error has occurred and returns whether + * or not the number of failures in + * the window have been reached. + * @details \b Inputs: none + * @details \b Outputs: none + * @return TRUE if windowed count exceeded, else false. + *************************************************************************/ +BOOL checkFPGAFEOEFailure( void ) +{ + BOOL status = FALSE; + BOOL FPGAFEOEError = getSci2FEOEError(); + + if ( TRUE == FPGAFEOEError) + { + if ( getMSTimerCount() > MIN_POWER_ON_TIME_FOR_COMM_FAILS ) + { + if ( TRUE == incTimeWindowedCount( TIME_WINDOWED_COUNT_FPGA_COMM_FAILURES ) ) + { + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_FPGA_COMM_TIMEOUT, MAX_FPGA_COMM_FAILURES, (U32)fpgaSensorReadings.fpgaIOErrorCntProcessor ) + status = TRUE; + } + } + } + + return status; +} + +/**@}*/ Index: firmware/App/Services/FpgaDD.h =================================================================== diff -u --- firmware/App/Services/FpgaDD.h (revision 0) +++ firmware/App/Services/FpgaDD.h (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -0,0 +1,228 @@ +/************************************************************************** +* +* Copyright (c) 2024-2024 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 FPGADD.h +* +* @author (last) Vinayakam Mani +* @date (last) 08-Aug-2024 +* +* @author (original) Dara Navaei +* @date (original) 08-Aug-2024 +* +***************************************************************************/ + +#ifndef __FPGADD_H__ +#define __FPGADD_H__ + +#include "DDCommon.h" +#include "Interrupts.h" +#include "Utilities.h" + +/** + * @defgroup FPGADD FPGADD + * @brief FPGA service module. Provides functionality to interact with DD FPGA. + * + * @addtogroup FPGADD + * @{ + */ + +// ********** public definitions ********** + +// ********** public function prototypes ********** + +void initFPGADD( void ); +void execFPGAClockSpeedTest( void ); +SELF_TEST_STATUS_T execFPGATest( void ); + +void checkFPGACommFailure( void ); +BOOL checkFPGAFEOEFailure( void ); + +//Set FPGA functions +void setFPGAValveStates( U16 valveStates ); +void setFPGABCValveStates( U08 valveStates ); +void setFPGAUFValveStates( U08 valveStates ); + +void setFPGACD12Control( U08 control ); +void setFPGACD34Control( U08 control ); +void setFPGACD12Address( U16 address ); +void setFPGACD34Address( U16 address ); +void setFPGACD12Data( U16 data ); +void setFPGACD34Data( U16 data ); + +void setFPGAAcidPumpSetStepSpeed( U16 stepSpeed ); +void setFPGABicarbSetStepSpeed( U16 stepSpeed ); +void setFPGADialysateOutPumpSpeed( U16 speed ); +void setFPGADialysateOutPumpControl( U08 control ); +void setFPGADialysateInPumpControl( U08 control ); + +void setFPGAAcidPumpControl( U08 control ); +void setFPGABicarbPumpControl( U08 control ); + +// Get FPGA functions +void getFPGAVersions( U08 *Id, U08 *Maj, U08 *Min, U08 *Lab ); +U16 getFPGAValveStates( void ); +U08 getFPGAValveBCStates( void ); +U08 getFPGAValveUFStates( void ); + +U16 getFPGALevelSensor1( void ); +U16 getFPGALevelSensor2( void ); + +U08 getFPGACD1ReadCount( void ); +U08 getFPGACD1ErrorCount( void ); +U16 getFPGACD1( void ); +U16 getFPGACD1Temp( void ); +U16 getFPGACD1Data( void ); + +U08 getFPGACD2ReadCount( void ); +U08 getFPGACD2ErrorCount( void ); +U16 getFPGACD2( void ); +U16 getFPGACD2Temp( void ); +U16 getFPGACD2Data( void ); + +U08 getFPGACD3ReadCount( void ); +U08 getFPGACD3ErrorCount( void ); +U16 getFPGACD3( void ); +U16 getFPGACD3Temp( void ); +U16 getFPGACD3Data( void ); + +U08 getFPGACD4ReadCount( void ); +U08 getFPGACD4ErrorCount( void ); +U16 getFPGACD4( void ); +U16 getFPGACD4Temp( void ); +U16 getFPGACD4Data( void ); + +U08 getFPGAPnReadCount( void ); +U08 getFPGAPnErrorCount( void ); +U32 getFPGAPnRawPressure( void ); +U32 getFPGAPnRawTemperature( void ); + +U08 getFPGAPCbReadCount( void ); +U08 getFPGAPCbErrorCount( void ); +U32 getFPGAPCbRawPressure( void ); +U32 getFPGAPCbRawTemperature( void ); + +U08 getFPGAPDsReadCount( void ); +U08 getFPGAPDsErrorCount( void ); +U32 getFPGAPDsRawPressure( void ); +U32 getFPGAPDsRawTemperature( void ); + +U08 getFPGAPDfReadCount( void ); +U08 getFPGAPDfErrorCount( void ); +U32 getFPGAPDfRawPressure( void ); +U32 getFPGAPDfRawTemperature( void ); + +U08 getFPGADialysateOutPumpControl( void ); +U08 getFPGADialysateInPumpControl( void ); + +U08 getFPGAPtmReadCount( void ); +U08 getFPGAPtmErrorCount( void ); +U32 getFPGAPtmRawPressure( void ); +U32 getFPGAPtmRawTemperature( void ); + +U16 getFPGATimerCount( void ); + +//===================================================== +// ToDo : clean up required on following set functions +//===================================================== +void setFPGADrainPumpSpeed( U08 drainPumpDAC ); +void setFPGACPoProbeType( U16 probeType ); +void setFPGACPiProbeType( U16 probeType ); +void setFPGAAcidPumpParkCmd( void ); +void setFPGABicarbPumpParkCmd( void ); +//====================================================== + +//==================================================== +//Todo : Following get functions need clean up +//==================================================== +U16 getFPGADrainPumpSpeed( void ); + +U08 getFPGARTDErrorCount( void ); +U08 getFPGARTDReadCount( void ); + +U32 getFPGATRoTemp( void ); +U08 getFPGATRoErrorCount( void ); +U08 getFPGATRoReadCount( void ); + +U32 getFPGATDiTemp( void ); +U08 getFPGATDiErrorCount( void ); +U08 getFPGATDiReadCount( void ); + +U16 getFPGAPrimaryHeaterTemp( void ); +U08 getFPGAPrimaryHeaterFlags( void ); +U08 getFPGAPrimaryHeaterReadCount( void ); + +U16 getFPGATrimmerHeaterTemp( void ); +U08 getFPGATrimmerHeaterFlags( void ); +U08 getFPGATrimmerHeaterReadCount( void ); + +U16 getFPGAPrimaryColdJunctionTemp( void ); +U16 getFPGATrimmerColdJunctionTemp( void ); + +U08 getFPGAConcentratePumpsFault( void ); +BOOL getFPGAAcidPumpIsParked( void ); +BOOL getFPGABicarbPumpIsParked( void ); +BOOL getFPGAAcidPumpParkFault( void ); +BOOL getFPGABicarbPumpParkFault( void ); + +U16 getFPGACP1HallSensePulseWidth( void ); +U16 getFPGACP2HallSensePulseWidth( void ); + +U16 getFPGABoardTemp( void ); +U32 getFPGATRoInternalTemp( void ); +U32 getFPGATDiInternalTemp( void ); +U32 getFPGACondSnsrInternalTemp( void ); + +U08 getFPGAADC1ReadCount( void ); +U08 getFPGAADC1ErrorCount( void ); + +U08 getFPGAADC2ReadCount( void ); +U08 getFPGAADC2ErrorCount( void ); + +BOOL noFPGAFluidLeakDetected( void ); + +U08 getFPGADialysateCapStatus( void ); +U08 getFPGAConcentrateCapStatus( void ); + +U16 getFPGAInternalVccVoltage( void ); +U16 getFPGAInternalVccAuxiliaryVoltage( void ); +U16 getFPGAVPVNVoltage( void ); + +U08 getFPGABaroReadCount( void ); +U08 getFPGABaroErrorCount( void ); +U16 getFPGABaroMfgInfo( void ); +U16 getFPGABaroPressureSensitivity( void ); +U16 getFPGABaroPressureOffset( void ); +U16 getFPGABaroTempCoeffOfPressSensitvity( void ); +U16 getFPGABaroTempCoeffOfPressOffset( void ); +U16 getFPGABaroReferenceTemperature( void ); +U16 getFPGABaroTempCoeffOfTemperature( void ); +U16 getFPGABaroCoeffsCRC( void ); +U32 getFPGABaroPressure( void ); +U32 getFPGABaroTemperature( void ); + +U32 getFPGATHdTemp( void ); +U32 getFPGATHdInternalTemp( void ); +U08 getFPGATHdReadCount( void ); +U08 getFPGATHdErrorCount( void ); + +U16 getFPGAHeaterGateADC( void ); +U16 getFPGAHeaterGndADC( void ); +U08 getFPGAHeaterGateADCReadCount( void ); +U08 getFPGAHeaterGateADCErrorCount( void ); + +U16 getFPGADrainPumpCurrentFeedback( void ); +U16 getFPGADrainPumpSpeedFeedback( void ); +U08 getFPGADrainPumpDirection( void ); + +U16 getFPGAOnBoardThermistorCount( void ); +U16 getFPGAPowerSupply2ThermistorCount( void ); +//==================================================== + + +/**@}*/ + +#endif Index: firmware/App/Services/Interrupts.c =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Services/Interrupts.c (.../Interrupts.c) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Services/Interrupts.c (.../Interrupts.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file Interrupts.c * * @author (last) Vinayakam Mani -* @date (last) 05-Aug-2024 +* @date (last) 06-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 05-Aug-2024 Index: firmware/App/Services/Interrupts.h =================================================================== diff -u -r8b8fff67b95805272f37855346d600599aaec03d -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Services/Interrupts.h (.../Interrupts.h) (revision 8b8fff67b95805272f37855346d600599aaec03d) +++ firmware/App/Services/Interrupts.h (.../Interrupts.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file Interrupts.h * * @author (last) Vinayakam Mani -* @date (last) 08-Aug-2024 +* @date (last) 09-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 08-Aug-2024 Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r4fb1e15d35f6b968bab5620909c30baec98bfd4e -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 4fb1e15d35f6b968bab5620909c30baec98bfd4e) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -63,7 +63,6 @@ COMM_BUFFER_NOT_USED, ///< Buffer for outgoing HD to PC messages so no response buffer }; - typedef BOOL (*MsgFuncPtr)( MESSAGE_T* ); /// Message handling function lookup table Index: firmware/App/Services/Messaging.h =================================================================== diff -u -r4fb1e15d35f6b968bab5620909c30baec98bfd4e -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Services/Messaging.h (.../Messaging.h) (revision 4fb1e15d35f6b968bab5620909c30baec98bfd4e) +++ firmware/App/Services/Messaging.h (.../Messaging.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -67,7 +67,6 @@ BOOL handleSetTDOperationMode( MESSAGE_T *message ); - // Test Support Messaging Functions ************************** BOOL isTestingActivated( void ); Index: firmware/App/Services/MsgQueues.c =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Services/MsgQueues.c (.../MsgQueues.c) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Services/MsgQueues.c (.../MsgQueues.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file MsgQueues.c * * @author (last) Vinayakam Mani -* @date (last) 05-Aug-2024 +* @date (last) 06-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 05-Aug-2024 Index: firmware/App/Services/MsgQueues.h =================================================================== diff -u -r4fb1e15d35f6b968bab5620909c30baec98bfd4e -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Services/MsgQueues.h (.../MsgQueues.h) (revision 4fb1e15d35f6b968bab5620909c30baec98bfd4e) +++ firmware/App/Services/MsgQueues.h (.../MsgQueues.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file MsgQueues.h * * @author (last) Vinayakam Mani -* @date (last) 05-Aug-2024 +* @date (last) 06-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 05-Aug-2024 Index: firmware/App/Services/SystemCommDD.c =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Services/SystemCommDD.c (.../SystemCommDD.c) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Services/SystemCommDD.c (.../SystemCommDD.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -258,7 +258,6 @@ handleIncomingMessage( message ); } - /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/ Index: firmware/App/Services/SystemCommDD.h =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Services/SystemCommDD.h (.../SystemCommDD.h) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Services/SystemCommDD.h (.../SystemCommDD.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file SystemCommDD.h * * @author (last) Vinayakam Mani -* @date (last) 05-Aug-2024 +* @date (last) 06-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 05-Aug-2024 Index: firmware/App/Tasks/TaskBG.c =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Tasks/TaskBG.c (.../TaskBG.c) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Tasks/TaskBG.c (.../TaskBG.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file TaskBG.c * * @author (last) Vinayakam Mani -* @date (last) 05-Aug-2024 +* @date (last) 26-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 05-Aug-2024 Index: firmware/App/Tasks/TaskBG.h =================================================================== diff -u -r8b8fff67b95805272f37855346d600599aaec03d -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Tasks/TaskBG.h (.../TaskBG.h) (revision 8b8fff67b95805272f37855346d600599aaec03d) +++ firmware/App/Tasks/TaskBG.h (.../TaskBG.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file TaskBG.h * * @author (last) Vinayakam Mani -* @date (last) 05-Aug-2024 +* @date (last) 26-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 05-Aug-2024 Index: firmware/App/Tasks/TaskGeneral.c =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -21,21 +21,17 @@ #include "Messaging.h" //#include "ConcentratePumps.h" //#include "DrainPump.h" -//#include "Fans.h" //#include "Heaters.h" //#include "Integrity.h" //#include "NVDataMgmt.h" #include "OperationModes.h" -//#include "Reservoirs.h" //#include "ROPump.h" -//#include "RTC.h" //#include "Switches.h" #include "SystemComm.h" #include "SystemCommDD.h" #include "Messaging.h" #include "TaskGeneral.h" //#include "Thermistors.h" -//#include "UVReactors.h" //#include "Voltages.h" #include "WatchdogMgmt.h" Index: firmware/App/Tasks/TaskGeneral.h =================================================================== diff -u -r8b8fff67b95805272f37855346d600599aaec03d -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Tasks/TaskGeneral.h (.../TaskGeneral.h) (revision 8b8fff67b95805272f37855346d600599aaec03d) +++ firmware/App/Tasks/TaskGeneral.h (.../TaskGeneral.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file TaskGeneral.h * * @author (last) Vinayakam Mani -* @date (last) 05-Aug-2024 +* @date (last) 26-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 05-Aug-2024 Index: firmware/App/Tasks/TaskPriority.c =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Tasks/TaskPriority.c (.../TaskPriority.c) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Tasks/TaskPriority.c (.../TaskPriority.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -21,11 +21,11 @@ //#include "DrainPump.h" #include "FPGA.h" //#include "Heaters.h" -//#include "InternalADC.h" +#include "InternalADC.h" //#include "Pressures.h" #include "TaskPriority.h" //#include "TemperatureSensors.h" -//#include "Valves.h" +#include "Valves.h" #include "WatchdogMgmt.h" /** @@ -74,11 +74,8 @@ //execConductivitySensors(); // Control valves - //execValves(); + execValves(); - // Monitor accelerometer - //execAccel(); - // Monitor RO pump //execROPumpMonitor(); Index: firmware/App/Tasks/TaskPriority.h =================================================================== diff -u -r8b8fff67b95805272f37855346d600599aaec03d -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Tasks/TaskPriority.h (.../TaskPriority.h) (revision 8b8fff67b95805272f37855346d600599aaec03d) +++ firmware/App/Tasks/TaskPriority.h (.../TaskPriority.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file TaskPriority.h * * @author (last) Vinayakam Mani -* @date (last) 05-Aug-2024 +* @date (last) 26-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 05-Aug-2024 Index: firmware/App/Tasks/TaskTimer.c =================================================================== diff -u -r090cfb22a7c0b4738299c3fb411ca77aaba8d968 -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Tasks/TaskTimer.c (.../TaskTimer.c) (revision 090cfb22a7c0b4738299c3fb411ca77aaba8d968) +++ firmware/App/Tasks/TaskTimer.c (.../TaskTimer.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file TaskTimer.c * * @author (last) Vinayakam Mani -* @date (last) 05-Aug-2024 +* @date (last) 26-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 05-Aug-2024 Index: firmware/App/Tasks/TaskTimer.h =================================================================== diff -u -r8b8fff67b95805272f37855346d600599aaec03d -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/App/Tasks/TaskTimer.h (.../TaskTimer.h) (revision 8b8fff67b95805272f37855346d600599aaec03d) +++ firmware/App/Tasks/TaskTimer.h (.../TaskTimer.h) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -8,7 +8,7 @@ * @file TaskTimer.h * * @author (last) Vinayakam Mani -* @date (last) 05-Aug-2024 +* @date (last) 26-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 05-Aug-2024 Index: firmware/source/sys_main.c =================================================================== diff -u -r4fb1e15d35f6b968bab5620909c30baec98bfd4e -r26ee1d67dca19aac1850077cbd41c05498cf059d --- firmware/source/sys_main.c (.../sys_main.c) (revision 4fb1e15d35f6b968bab5620909c30baec98bfd4e) +++ firmware/source/sys_main.c (.../sys_main.c) (revision 26ee1d67dca19aac1850077cbd41c05498cf059d) @@ -47,6 +47,7 @@ /* Include Files */ +#include #include "sys_common.h" /* USER CODE BEGIN (1) */ @@ -72,10 +73,6 @@ //#include "FluidLeak.h" //#include "FlowSensors.h" #include "FPGA.h" -#include "FPGADD.h" -//#include "Heaters.h" -//#include "Integrity.h" -//#include "InternalADC.h" #include "Interrupts.h" #include "MsgQueues.h" //#include "NVDataMgmt.h" @@ -92,7 +89,7 @@ #include "Timers.h" #include "Utilities.h" //#include "UVReactors.h" -//#include "Valves.h" +#include "Valves.h" //#include "Voltages.h" #include "WatchdogMgmt.h" @@ -182,7 +179,7 @@ //initPressures(); //initLoadCell(); //initNVDataMgmt(); - //initValves(); + initValves(); //initHeaters(); //initTemperatureSensors(); //initConductivitySensors();