我有一个 C 程序,第一次运行时运行良好(BLUEZ C API),但如果我按Ctrl+C停止它,然后如果我再次运行它,它永远找不到任何 BLE 设备(扫描功能)。如果我重新启动 linux,它会再次工作。我的程序在 while(1) 循环扫描和打印设备信息(包括制造商数据)并调用:
stop_hci_scan(current_hci_state);
error_check_and_exit(current_hci_state);
close_hci_device(current_hci_state);
是外循环。
该程序必须幸存到这个事件(Ctrl+ C),因为我计划将它放入一个Linux服务中,以便在它挂起或发生其他情况时能够自动重新启动它。
所以,看来我需要在第二次启动程序之前进行一些清理(以避免重新启动),对吗?
但什么?
答案1
您可以使用(在命令行):
sudo hciconfig hci0 reset
我不知道C的等价物...