R2_UP/User/Algorithm/error_detect.h

69 lines
1.1 KiB
C
Raw Permalink Normal View History

2025-03-12 10:46:02 +08:00
#ifndef ERROR_DETECT_H
#define ERROR_DETECT_H
#include "struct_typedef.h"
#define DETECT_TASK_INIT_TIME 57
#define DETECT_CONTROL_TIME 10
enum errorList
{
// NUC_TOE =0,
//
// PITCH6020_TOE,
//
// YAW26020_TOE,
// PITCH26020_TOE,
BOARD_GYRO_TOE,
BOARD_ACCEL_TOE,
IMU_TOE,
ERROR_LIST_LENGHT,
};
typedef __packed struct
{
uint32_t new_time;
uint32_t last_time;
uint32_t lost_time;
uint32_t work_time;
uint16_t set_offline_time : 12;
uint16_t set_online_time : 12;
uint8_t enable : 1;
uint8_t priority : 4;
uint8_t error_exist : 1;
uint8_t is_lost : 1;
uint8_t data_is_error : 1;
fp32 frequency;
bool_t (*data_is_error_fun)(void);
void (*solve_lost_fun)(void);
void (*solve_data_error_fun)(void);
} error_t;
/**
* @brief get toe error status
* @param[in] toe: table of equipment
* @retval true (eror) or false (no error)
*/
extern bool_t toe_is_error(uint8_t err);
/**
* @brief record the time
* @param[in] toe: table of equipment
* @retval none
*/
extern void detect_hook(uint8_t toe);
#endif