Escaneo BLE de Linux después de CTRL+C

Escaneo BLE de Linux después de CTRL+C

Tengo un programa C que funciona bien la primera vez que se ejecuta (API BLUEZ C), pero si presiono Ctrl+ Cpara detenerlo y luego lo ejecuto nuevamente, nunca encuentra ningún dispositivo BLE (función de escaneo). Si reinicio Linux, vuelve a funcionar. Mi programa está en un bucle while(1) escaneando e imprimiendo información del dispositivo (incluidos los datos del fabricante) y llama:

stop_hci_scan(current_hci_state);
error_check_and_exit(current_hci_state);
close_hci_device(current_hci_state);

están fuera del circuito.

El programadebeSobrevivo a este evento ( Ctrl+ C) porque planeo ponerlo en un servicio de Linux para poder reiniciarlo automáticamente si se bloquea o algo así.

Entonces, parece que necesito realizar una limpieza antes de iniciar el programa por segunda vez (para evitar reiniciar), ¿verdad?

¿Pero que?

Respuesta1

Puedes usar (en la línea de comando):

sudo hciconfig hci0 reset

No sé el equivalente C...

información relacionada