31 lines
890 B
C
Executable File
31 lines
890 B
C
Executable File
#ifndef SAFETY_MANAGER_H
|
|
#define SAFETY_MANAGER_H
|
|
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
|
|
typedef enum
|
|
{
|
|
SAFETY_FAULT_NONE = 0,
|
|
SAFETY_FAULT_DRIVER = 1,
|
|
SAFETY_FAULT_CAN_BUS_OFF = 2,
|
|
SAFETY_FAULT_CONFIG_STORE = 3,
|
|
SAFETY_FAULT_BOOT_RECOVERY = 4,
|
|
SAFETY_FAULT_DEBUG_DETACH = 5,
|
|
SAFETY_FAULT_CAN_INIT = 6
|
|
} safety_fault_t;
|
|
|
|
void SafetyManager_Init(uint32_t resetReason);
|
|
void SafetyManager_Service(void);
|
|
void SafetyManager_LatchFault(safety_fault_t fault);
|
|
void SafetyManager_KickWatchdog(void);
|
|
bool SafetyManager_IsWatchdogInitialized(void);
|
|
bool SafetyManager_IsInhibited(void);
|
|
safety_fault_t SafetyManager_GetFault(void);
|
|
bool SafetyManager_WasWatchdogReset(void);
|
|
bool SafetyManager_TriggerHilWatchdogReset(uint16_t token);
|
|
void SafetyManager_CommitHilWatchdogReset(void);
|
|
bool SafetyManager_WasHilWatchdogRecovered(void);
|
|
|
|
#endif /* SAFETY_MANAGER_H */
|