Index: AlarmMgmt.c =================================================================== diff -u -r8e3c1aa26d6668749668255dbc337910b30423ae -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- AlarmMgmt.c (.../AlarmMgmt.c) (revision 8e3c1aa26d6668749668255dbc337910b30423ae) +++ AlarmMgmt.c (.../AlarmMgmt.c) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -39,8 +39,8 @@ // ********** private data ********** -static BOOL alarmIsActive[ NUM_OF_ALARM_IDS ]; ///< Table - current state of each alarm -static BOOL alarmIsDetected[ NUM_OF_ALARM_IDS ]; ///< Table - current state of each alarm condition (detected or cleared) +static BOOL alarmIsActive[ NUM_OF_ALARM_IDS ]; ///< Table - current state of each alarm +static BOOL alarmIsDetected[ NUM_OF_ALARM_IDS ]; ///< Table - current state of each alarm condition (detected or cleared) // ********** private function prototypes ********** Index: AlarmMgmt.h =================================================================== diff -u -re8ab746b2c16710ba012665b29d44c755a7dab3e -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- AlarmMgmt.h (.../AlarmMgmt.h) (revision e8ab746b2c16710ba012665b29d44c755a7dab3e) +++ AlarmMgmt.h (.../AlarmMgmt.h) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -115,6 +115,7 @@ void clearAlarmCondition( ALARM_ID_T alarm ); void setAlarmActive( ALARM_ID_T alarm, BOOL active ); void setAlarmConditionDetected( ALARM_ID_T alarm, BOOL detected ); + BOOL isAlarmActive( ALARM_ID_T alarm ); BOOL isAlarmConditionDetected( ALARM_ID_T alarm ); BOOL isAlarmRecoverable( ALARM_ID_T alarm ); Index: Comm.c =================================================================== diff -u -r8e3c1aa26d6668749668255dbc337910b30423ae -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- Comm.c (.../Comm.c) (revision 8e3c1aa26d6668749668255dbc337910b30423ae) +++ Comm.c (.../Comm.c) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -8,10 +8,10 @@ * @file Comm.c * * @author (last) Sean Nash -* @date (last) 30-Jul-2024 +* @date (last) 31-Jul-2024 * * @author (original) Sean Nash -* @date (original) 30-Jul-2024 +* @date (original) 31-Jul-2024 * ***************************************************************************/ Index: Comm.h =================================================================== diff -u -r8e3c1aa26d6668749668255dbc337910b30423ae -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- Comm.h (.../Comm.h) (revision 8e3c1aa26d6668749668255dbc337910b30423ae) +++ Comm.h (.../Comm.h) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -8,10 +8,10 @@ * @file Comm.h * * @author (last) Sean Nash -* @date (last) 30-Jul-2024 +* @date (last) 31-Jul-2024 * * @author (original) Sean Nash -* @date (original) 30-Jul-2024 +* @date (original) 31-Jul-2024 * ***************************************************************************/ Index: Common.h =================================================================== diff -u -re8ab746b2c16710ba012665b29d44c755a7dab3e -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- Common.h (.../Common.h) (revision e8ab746b2c16710ba012665b29d44c755a7dab3e) +++ Common.h (.../Common.h) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -8,10 +8,10 @@ * @file Common.h * * @author (last) Sean -* @date (last) 30-Jul-2024 +* @date (last) 31-Jul-2024 * * @author (original) Sean -* @date (original) 30-Jul-2024 +* @date (original) 31-Jul-2024 * ***************************************************************************/ Index: FPGA.c =================================================================== diff -u -r89cfaa1737a5506b9f737d962257084c358b00af -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- FPGA.c (.../FPGA.c) (revision 89cfaa1737a5506b9f737d962257084c358b00af) +++ FPGA.c (.../FPGA.c) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -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 FPGA.c * * @author (last) Sean Nash -* @date (last) 10-Sep-2023 +* @date (last) 31-Jul-2024 * -* @author (original) Dara Navaei -* @date (original) 05-Nov-2019 +* @author (original) Sean Nash +* @date (original) 31-Jul-2024 * ***************************************************************************/ Index: FPGA.h =================================================================== diff -u -re8ab746b2c16710ba012665b29d44c755a7dab3e -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- FPGA.h (.../FPGA.h) (revision e8ab746b2c16710ba012665b29d44c755a7dab3e) +++ FPGA.h (.../FPGA.h) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -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 FPGA.h * * @author (last) Sean Nash -* @date (last) 05-Sep-2023 +* @date (last) 31-Jul-2024 * -* @author (original) Dara Navaei -* @date (original) 05-Nov-2019 +* @author (original) Sean Nash +* @date (original) 31-Jul-2024 * ***************************************************************************/ Index: MessageSupport.c =================================================================== diff -u -r9512aac6feeb1379d6d425361fa78d58f75c86f6 -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- MessageSupport.c (.../MessageSupport.c) (revision 9512aac6feeb1379d6d425361fa78d58f75c86f6) +++ MessageSupport.c (.../MessageSupport.c) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -15,7 +15,7 @@ * ***************************************************************************/ -#include +#include "Messaging.h" #include "Utilities.h" /** Index: MessageSupport.h =================================================================== diff -u -rb8c0a53bcfa6be12c305761b0b1b5c79e97b55ca -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- MessageSupport.h (.../MessageSupport.h) (revision b8c0a53bcfa6be12c305761b0b1b5c79e97b55ca) +++ MessageSupport.h (.../MessageSupport.h) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -15,8 +15,8 @@ * ***************************************************************************/ -#ifndef __MESSAGESUPPORT_H__ -#define __MESSAGESUPPORT_H__ +#ifndef __MESSAGE_SUPPORT_H__ +#define __MESSAGE_SUPPORT_H__ #include "CommBuffers.h" #include "MsgDefs.h" Index: PersistentAlarm.c =================================================================== diff -u -r9512aac6feeb1379d6d425361fa78d58f75c86f6 -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- PersistentAlarm.c (.../PersistentAlarm.c) (revision 9512aac6feeb1379d6d425361fa78d58f75c86f6) +++ PersistentAlarm.c (.../PersistentAlarm.c) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -70,6 +70,7 @@ // ********** private data ********** static PERSISTENT_ALARM_DATA_T persistentAlarms[ NUM_OF_ALARM_IDS ]; ///< Array of persistent alarm structure. + static FPGA_PERSISTENT_ALARM_GROUP_T fpgaPersistentAlarmGroup[ NUM_OF_FPGA_SENSOR_GROUPS ]; ///< FPGA persistent alarm group. // ********** private function prototypes ********** Index: PersistentAlarm.h =================================================================== diff -u -r9512aac6feeb1379d6d425361fa78d58f75c86f6 -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- PersistentAlarm.h (.../PersistentAlarm.h) (revision 9512aac6feeb1379d6d425361fa78d58f75c86f6) +++ PersistentAlarm.h (.../PersistentAlarm.h) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -15,8 +15,8 @@ * ***************************************************************************/ -#ifndef __PERSISTENTALARM_H__ -#define __PERSISTENTALARM_H__ +#ifndef __PERSISTENT_ALARM_H__ +#define __PERSISTENT_ALARM_H__ #include "Common.h" @@ -55,7 +55,6 @@ { FPGA_PERS_ERROR_ARTERIAL_PRESSURE_SENSOR = 0, ///< FPGA persistent error arterial pressure sensor. FPGA_PERS_ERROR_VENOUS_PRESSURE_SESNOR, ///< FPGA persistent error venous pressure sensor. - FPGA_PERS_ERROR_SYRINGE_PUMP_ADC, ///< FPGA persistent error syringe pump ADC. NUM_OF_FPGA_SENSOR_GROUPS ///< Number of FPGA persistent error sensor groups. } FPGA_PERSISTENT_ALARMS_GROUP_T; #endif Index: SystemComm.c =================================================================== diff -u -r36a1b6d023b48c376f6a244b1ba716e04faf1550 -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- SystemComm.c (.../SystemComm.c) (revision 36a1b6d023b48c376f6a244b1ba716e04faf1550) +++ SystemComm.c (.../SystemComm.c) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -15,7 +15,6 @@ * ***************************************************************************/ -#include #include // For memcpy() #include "can.h" @@ -24,6 +23,7 @@ #include "Comm.h" #include "Interrupts.h" +#include "Messaging.h" #include "OperationModes.h" #include "SystemComm.h" #ifdef _TD_ Index: SystemComm.h =================================================================== diff -u -re8ab746b2c16710ba012665b29d44c755a7dab3e -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- SystemComm.h (.../SystemComm.h) (revision e8ab746b2c16710ba012665b29d44c755a7dab3e) +++ SystemComm.h (.../SystemComm.h) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -53,7 +53,8 @@ void initSystemComm( void ); void execSystemCommRx( void ); -void execSystemCommTx( void ); +void execSystemCommTx( void ); + void handleCANMsgInterrupt( CAN_MESSAGE_BOX_T srcCANBox ); BOOL isCANBoxForXmit( CAN_MESSAGE_BOX_T srcCANBox ); BOOL isCANBoxForRecv( CAN_MESSAGE_BOX_T srcCANBox ); Index: TestSupport.c =================================================================== diff -u -rb8c0a53bcfa6be12c305761b0b1b5c79e97b55ca -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- TestSupport.c (.../TestSupport.c) (revision b8c0a53bcfa6be12c305761b0b1b5c79e97b55ca) +++ TestSupport.c (.../TestSupport.c) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -38,7 +38,6 @@ // ********** private function prototypes ********** - /*********************************************************************//** * @brief * The getU08OverrideValue function extracts the appropriate unsigned byte Index: TestSupport.h =================================================================== diff -u -rb8c0a53bcfa6be12c305761b0b1b5c79e97b55ca -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- TestSupport.h (.../TestSupport.h) (revision b8c0a53bcfa6be12c305761b0b1b5c79e97b55ca) +++ TestSupport.h (.../TestSupport.h) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -56,6 +56,7 @@ } TEST_CONFIG_T; #endif + #ifdef _TD_ /// TD test software configurations Index: Timers.c =================================================================== diff -u -r5fb988facecb08dceb2bba1c462d3097b53617f0 -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- Timers.c (.../Timers.c) (revision 5fb988facecb08dceb2bba1c462d3097b53617f0) +++ Timers.c (.../Timers.c) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -26,7 +26,7 @@ // ********** private data ********** -static volatile U32 msTimerCount = 0; ///< 1ms timer counter incremented by TaskTimer.c. +static volatile U32 msTimerCount = 0; ///< 1ms timer counter incremented by TaskTimer.c. /*********************************************************************//** * @brief Index: Timers.h =================================================================== diff -u -re8ab746b2c16710ba012665b29d44c755a7dab3e -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- Timers.h (.../Timers.h) (revision e8ab746b2c16710ba012665b29d44c755a7dab3e) +++ Timers.h (.../Timers.h) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -32,7 +32,8 @@ // ********** public function prototypes ********** void initTimers( void ); -void incMSTimerCount( void ); +void incMSTimerCount( void ); + U32 getMSTimerCount( void ); BOOL didTimeout( U32 startMSCount, U32 timeoutPeriod ); U32 calcTimeSince( U32 startMSCount ); Index: Utilities.c =================================================================== diff -u -r5fb988facecb08dceb2bba1c462d3097b53617f0 -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- Utilities.c (.../Utilities.c) (revision 5fb988facecb08dceb2bba1c462d3097b53617f0) +++ Utilities.c (.../Utilities.c) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -30,6 +30,7 @@ #define INITIAL_CRC16_VAL 0xFFFF ///< Seed for 16-bit CRC function. #define INITIAL_CRC08_VAL 0x00 ///< Seed for 8-bit CRC function. + #define HEX_LETTER_TO_NUMBER_CONV 0x37 ///< Hex letter (i.e. A) to number conversion. #define STR_TO_HEX_CONV_MAX_BYTES 8 ///< String to hex conversion maximum allowed bytes. Index: Utilities.h =================================================================== diff -u -re8ab746b2c16710ba012665b29d44c755a7dab3e -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- Utilities.h (.../Utilities.h) (revision e8ab746b2c16710ba012665b29d44c755a7dab3e) +++ Utilities.h (.../Utilities.h) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -121,6 +121,7 @@ BOOL setCriticalData( CRITICAL_DATA_T *data, CRITICAL_DATAS_T value ); BOOL isCriticalDataInRange( CRITICAL_DATA_T *data ); void resetCriticalData( CRITICAL_DATA_T *data ); + BOOL hexStrToDec( U08 const * const valuePtr, U32* convValueAddress, U08 size ); void initSemaphores( void ); Index: WatchdogMgmt.c =================================================================== diff -u -re8ab746b2c16710ba012665b29d44c755a7dab3e -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- WatchdogMgmt.c (.../WatchdogMgmt.c) (revision e8ab746b2c16710ba012665b29d44c755a7dab3e) +++ WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -39,35 +39,35 @@ // ********** private definitions ********** -#define MIN_WATCHDOG_PET_INTERVAL_MS 45 ///< Minimum watchdog pet interval (in ms). -#define WATCHDOG_POST_TIMEOUT_MS 500 ///< Watchdog POST test timeout (in ms). -#define WATCHDOG_RECOVERY_TIME_MS 500 ///< After watchdog POST test, wait this long (in ms) before moving on. +#define MIN_WATCHDOG_PET_INTERVAL_MS 45 ///< Minimum watchdog pet interval (in ms). +#define WATCHDOG_POST_TIMEOUT_MS 500 ///< Watchdog POST test timeout (in ms). +#define WATCHDOG_RECOVERY_TIME_MS 500 ///< After watchdog POST test, wait this long (in ms) before moving on. -#define MAX_24V_LEVEL_ON_WATCHDOG_EXPIRED 5.0F ///< Maximum voltage on 24V line when watchdog is expired. // TODO - check w/ Systems. Takes time for V to bleed off. Had to raise to 5V. -#define MIN_24V_LEVEL_ON_WATCHDOG_RECOVER 22.6F ///< Minimum voltage on 24V line when watchdog is recovered. -#define MIN_BACKUP_ALARM_CURRENT_MA 200.0F ///< Minimum backup alarm audio current (in mA) detected when watchdog is expired. -#define MAX_BACKUP_ALARM_CURRENT_MA 10.0F ///< Maximum backup alarm audio current (in mA) detected when watchdog is recovered. +#define MAX_24V_LEVEL_ON_WATCHDOG_EXPIRED 5.0F ///< Maximum voltage on 24V line when watchdog is expired. // TODO - check w/ Systems. Takes time for V to bleed off. Had to raise to 5V. +#define MIN_24V_LEVEL_ON_WATCHDOG_RECOVER 22.6F ///< Minimum voltage on 24V line when watchdog is recovered. +#define MIN_BACKUP_ALARM_CURRENT_MA 200.0F ///< Minimum backup alarm audio current (in mA) detected when watchdog is expired. +#define MAX_BACKUP_ALARM_CURRENT_MA 10.0F ///< Maximum backup alarm audio current (in mA) detected when watchdog is recovered. -#define MAX_SAFETY_SHUTDOWN_MISMATCH_MS 100 ///< Maximum time (in ms) that safety shutdown cmd vs. feedback can be mismatched. +#define MAX_SAFETY_SHUTDOWN_MISMATCH_MS 100 ///< Maximum time (in ms) that safety shutdown cmd vs. feedback can be mismatched. /// Enumeration of watchdog self-test states. typedef enum Watchdog_Self_Test_States { - WATCHDOG_SELF_TEST_STATE_START = 0, ///< Watchdog self-test start state - WATCHDOG_SELF_TEST_STATE_IN_PROGRESS, ///< Watchdog self-test in progress state - WATCHDOG_SELF_TEST_STATE_RECOVER, ///< Watchdog self-test recovery state - WATCHDOG_SELF_TEST_STATE_COMPLETE, ///< Watchdog self-test completed state - NUM_OF_WATCHDOG_SELF_TEST_STATES ///< Number of watchdog self-test states + WATCHDOG_SELF_TEST_STATE_START = 0, ///< Watchdog self-test start state + WATCHDOG_SELF_TEST_STATE_IN_PROGRESS, ///< Watchdog self-test in progress state + WATCHDOG_SELF_TEST_STATE_RECOVER, ///< Watchdog self-test recovery state + WATCHDOG_SELF_TEST_STATE_COMPLETE, ///< Watchdog self-test completed state + NUM_OF_WATCHDOG_SELF_TEST_STATES ///< Number of watchdog self-test states } WATCHDOG_SELF_TEST_STATE_T; // ********** private data ********** -static U32 lastWatchdogPetTime; ///< Timestamp (ms counter) since last watchdog pet. -static OVERRIDE_U32_T watchdogTaskCheckedIn[ NUM_OF_TASKS ]; ///< Array of flags indicating whether individual tasks have checked in with watchdog manager. -static WATCHDOG_SELF_TEST_STATE_T watchdogSelfTestState; ///< Current watchdog self-test state. -static SELF_TEST_STATUS_T watchdogSelfTestStatus; ///< Watchdog self-test state status. -static U32 watchdogSelfTestTimerCount; ///< Watchdog self-test state timer counter. -static U32 safetyShutdownFeedbackMismatchTS; ///< Persistence timestamp for safety shutdown cmd vs. feedback mismatch. +static U32 lastWatchdogPetTime; ///< Timestamp (ms counter) since last watchdog pet. +static OVERRIDE_U32_T watchdogTaskCheckedIn[ NUM_OF_TASKS ]; ///< Array of flags indicating whether individual tasks have checked in with watchdog manager. +static WATCHDOG_SELF_TEST_STATE_T watchdogSelfTestState; ///< Current watchdog self-test state. +static SELF_TEST_STATUS_T watchdogSelfTestStatus; ///< Watchdog self-test state status. +static U32 watchdogSelfTestTimerCount; ///< Watchdog self-test state timer counter. +static U32 safetyShutdownFeedbackMismatchTS; ///< Persistence timestamp for safety shutdown cmd vs. feedback mismatch. // ********** private function prototypes ********** Index: WatchdogMgmt.h =================================================================== diff -u -re8ab746b2c16710ba012665b29d44c755a7dab3e -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- WatchdogMgmt.h (.../WatchdogMgmt.h) (revision e8ab746b2c16710ba012665b29d44c755a7dab3e) +++ WatchdogMgmt.h (.../WatchdogMgmt.h) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -52,7 +52,8 @@ // ********** public function prototypes ********** void initWatchdogMgmt( void ); -void execWatchdogMgmt( void ); +void execWatchdogMgmt( void ); + void checkInWithWatchdogMgmt( TASK_T task ); SELF_TEST_STATUS_T execWatchdogTest( void ); void resetWatchdogPOSTState( void ); Index: irqDispatch_c.c =================================================================== diff -u -r6d80d69a210f45c733e5307859351f2cd820a8e7 -r2801d97e877dd78189aa891e80a2f7cf60a6a2b7 --- irqDispatch_c.c (.../irqDispatch_c.c) (revision 6d80d69a210f45c733e5307859351f2cd820a8e7) +++ irqDispatch_c.c (.../irqDispatch_c.c) (revision 2801d97e877dd78189aa891e80a2f7cf60a6a2b7) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2020-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.