Linux BLE-Scannen nach STRG+C

Linux BLE-Scannen nach STRG+C

Ich habe ein C-Programm, das beim ersten Ausführen gut funktioniert (BLUEZ C API), aber wenn ich Ctrl+ drücke C, um es zu stoppen, und es dann erneut ausführe, findet es kein BLE-Gerät (Scanfunktion). Wenn ich Linux neu starte, funktioniert es wieder. Mein Programm befindet sich in einer while(1)-Schleife, scannt und druckt Geräteinformationen (einschließlich Herstellerdaten) und ruft auf:

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

sind außerhalb der Schleife.

Das Programmmussdieses Ereignis überleben ( Ctrl+ C), da ich vorhabe, es in einen Linux-Dienst einzubinden, um einen automatischen Neustart zu ermöglichen, falls es hängt oder so etwas.

Also scheint es, dass ich vor dem zweiten Start des Programms eine Bereinigung durchführen muss (um einen Neustart zu vermeiden), richtig?

Aber was?

Antwort1

Sie können (in der Befehlszeile) Folgendes verwenden:

sudo hciconfig hci0 reset

Ich kenne das C-Äquivalent nicht ...

verwandte Informationen