67 lines
1.4 KiB
C
67 lines
1.4 KiB
C
![]() |
/*
|
||
|
错误检测。
|
||
|
*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
#include <stdbool.h>
|
||
|
#include <stdint.h>
|
||
|
|
||
|
typedef enum {
|
||
|
/* Low priority */
|
||
|
ERROR_DETECT_UNIT_NO_DEV = 0,
|
||
|
ERROR_DETECT_UNIT_REFEREE,
|
||
|
ERROR_DETECT_UNIT_CHASSIS_M1,
|
||
|
ERROR_DETECT_UNIT_CHASSIS_M2,
|
||
|
ERROR_DETECT_UNIT_CHASSIS_M3,
|
||
|
ERROR_DETECT_UNIT_CHASSIS_M4,
|
||
|
ERROR_DETECT_UNIT_TRIGGER,
|
||
|
ERROR_DETECT_UNIT_FEED,
|
||
|
ERROR_DETECT_UNIT_GIMBAL_YAW,
|
||
|
ERROR_DETECT_UNIT_GIMBAL_PIT,
|
||
|
ERROR_DETECT_UNIT_GYRO,
|
||
|
ERROR_DETECT_UNIT_ACCL,
|
||
|
ERROR_DETECT_UNIT_MAGN,
|
||
|
ERROR_DETECT_UNIT_DBUS,
|
||
|
ERROR_DETECT_UNIT_NUM,
|
||
|
/* High priority */
|
||
|
} ErrorDetect_Unit_t;
|
||
|
|
||
|
typedef struct {
|
||
|
bool enable;
|
||
|
uint8_t priority;
|
||
|
uint32_t patient_lost;
|
||
|
uint32_t patient_work;
|
||
|
|
||
|
uint32_t showup;
|
||
|
uint32_t showup_last;
|
||
|
uint32_t cycle_time;
|
||
|
uint32_t duration_lost;
|
||
|
uint32_t duration_work;
|
||
|
uint32_t found_lost;
|
||
|
bool error_exist;
|
||
|
bool is_lost;
|
||
|
uint8_t data_is_error;
|
||
|
|
||
|
} ErrorDetect_Error_t;
|
||
|
|
||
|
typedef struct {
|
||
|
ErrorDetect_Error_t error[ERROR_DETECT_UNIT_NUM];
|
||
|
} ErrorDetect_t;
|
||
|
|
||
|
int8_t ErrorDetect_Init(void);
|
||
|
void ErrorDetect_Processing(uint32_t sys_time);
|
||
|
bool ErrorDetect_ErrorExist(ErrorDetect_Unit_t unit);
|
||
|
ErrorDetect_Unit_t ErrorDetect_GetErrorUnit(void);
|
||
|
const ErrorDetect_Error_t *ErrorDetect_GetDetail(ErrorDetect_Unit_t unit);
|
||
|
|
||
|
void ErrorDetect_Update(ErrorDetect_Unit_t unit, uint32_t time_current);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|