b_mod_error
数据结构
typedef void (*pecb)(uint8_t err); //错误发生后的回调
#define INVALID_ERR ((uint8_t)0xFF)
#define BERROR_LEVEL_0 0X00 //错误等级0,调用回调后自动从队列中移除
#define BERROR_LEVEL_1 0X01 //错误等级1,需要手动从队列移除
接口介绍
//初始化并传入回调函数
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);
使用例子
#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); //当错误发生时调用
...
}