## b_mod_error ### 数据结构 ```C typedef void (*pecb)(uint8_t err); //错误发生后的回调 #define INVALID_ERR ((uint8_t)0xFF) #define BERROR_LEVEL_0 0X00 //错误等级0,调用回调后自动从队列中移除 #define BERROR_LEVEL_1 0X01 //错误等级1,需要手动从队列移除 ``` ### 接口介绍 ```C //初始化并传入回调函数 int bErrorInit(pecb cb); //注册错误,err:错误号 level:错误等级 //interval_ms:间隔时间,level为BERROR_LEVEL_1时有效。 //当错误发生后执行一次回调,如果错误没有被清除,则interval_ms时间后再次执行回调 int bErrorRegist(uint8_t err, uint32_t interval_ms, uint32_t level); //清除指定的错误 int bErrorClear(uint8_t e_no); //查询错误是否存在 int bErrorIsExist(uint8_t e_no); //查询错误队列是否为空,即没有错误发生或者发生的错误都已经被处理 int bErrorIsEmpty(void); ``` ### 使用例子 ```C #define BAT_LOW (0) #define MEM_ERR (1) void SystemErrCallback(uint8_t err) { b_log_e("err:%d\r\n", err); } int main() { ... bInit(); bErrorInit(SystemErrCallback); bErrorRegist(BAT_LOW, 3000, BERROR_LEVEL_1); //当错误发生时调用 bErrorRegist(MEM_ERR, 0, BERROR_LEVEL_0); //当错误发生时调用 ... } ```