|  
			
			 /*-------------------------------*/ uint32_t rf_inActive_timeout = 0; evt_timer_t rf_monitor_timer; #define RF_inactive_timeout_Limit   (30*1000) //ms #define T_INTERVAL  (5000)  //ms /**  * 每次蓝牙活动,都会调用此函数。 如果长时间未调用,除非是用户主动 停止广播或者 RF出现了异常  *  */ static void bb_frame_ongoing_handler(bool is_ongoing) { rf_inActive_timeout = 0; //每次RF活动,都清0此值     if (is_ongoing)     {         rf_work_flag = 1; //BLE 功能         // 关闭2.4G 功能,此时跑BLE收发功能         //.... }     else     {     } } /**  * BLE初始化后,在RF中调用  *  */ static void rf_monitor_timer_handle(evt_timer_t *timer, void *param) {     rf_inActive_timeout += T_INTERVAL; //每次+5秒     if (rf_inActive_timeout >= RF_inactive_timeout_Limit)     {         //         OM_LOG_DEBUG("!!! RF Inactive over %s second", RF_inactive_timeout_Limit / 1000);         //此处可添加异常处理,要根据不同工作状态,做不同的策略。如睡眠/关机,就不要处理     }     else     {         OM_LOG_DEBUG("RF active ok");         //这里可以添加用户操作         //如闪一下灯,     } } /**  * @brief rf_monitor_init() 在main函数中调用  *  */ void rf_monitor_init(void) {     obc_bb_frame_ongoing_callback_register(bb_frame_ongoing_handler); //使能bb_frame_ongoing_handler事件     evt_timer_set(&rf_monitor_timer, T_INTERVAL, EVT_TIMER_REPEAT, rf_monitor_timer_handle, NULL); } void main(void) {     ....     ....     ....     omble_init(¶m);     ....     rf_monitor_init();     while (1)     {     } } /* 测试 Log [10:52:52.312]Rx: [10:52:53.320]Rx:RF active ok [10:52:54.312]Rx: [10:52:56.311]Rx: [10:52:58.312]Rx:RF active ok [10:53:00.312]Rx: [10:53:02.311]Rx: [10:53:03.320]Rx:RF active ok [10:53:04.312]Rx: [10:53:06.312]Rx: [10:53:08.312]Rx:RF active ok [10:53:10.312]Rx: [10:53:12.313]Rx: [10:53:13.321]Rx:RF active ok [10:53:14.312]Rx: [10:53:16.313]Rx: [10:53:18.312]Rx:!!! RF Inactive over second [10:53:20.312]Rx: [10:53:22.312]Rx: [10:53:23.320]Rx:!!! RF Inactive over second [10:53:24.312]Rx: */  | 
RF 活动监测代码-202405175636.c
				
										
			
			