Verificação Linux BLE após CTRL + C

Verificação Linux BLE após CTRL + C

Eu tenho um programa C que funciona bem na primeira vez que é executado (API BLUEZ C), mas se eu pressionar Ctrl+ Cpara interrompê-lo e depois executá-lo novamente, ele nunca encontrará nenhum dispositivo BLE (função de verificação). Se eu reiniciar o Linux, ele funcionará novamente. Meu programa está em um loop while(1) de digitalização e impressão de informações do dispositivo (incluindo dados do fabricante) e chamadas:

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

estão fora do loop.

O programadevesobreviver a este evento ( Ctrl+ C) porque estou planejando colocá-lo em um serviço Linux para ser possível reiniciá-lo automaticamente se ele travar ou algo assim.

Então parece que preciso fazer uma limpeza antes de iniciar o programa pela segunda vez (para evitar reinicialização), certo?

Mas o que?

Responder1

Você pode usar (na linha de comando):

sudo hciconfig hci0 reset

Não sei o equivalente em C...

informação relacionada