Varredura de Linux BLE após um CTRL + C

2

Eu tenho um programa em C que funciona bem na primeira vez que ele roda (BLUEZ C API) mas se eu pressionar CTRL + C para pará-lo e se eu rodá-lo novamente ele nunca encontrará nenhum dispositivo BLE (função de escaneamento). Se eu reiniciar o Linux, ele funciona novamente. Meu programa está em um tempo (1) loop de digitalização e informações do dispositivo de impressão (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 programa deve sobreviver a este evento (CTRL + C) porque estou planejando colocá-lo em um serviço linux para que seja possível reiniciá-lo automaticamente se ele cair ou algo assim.

Então, parece que eu preciso fazer alguma limpeza antes de lançar o programa pela segunda vez (para evitar a reinicialização), certo?

Mas o que?

    
por user3204762 02.06.2018 / 19:40

1 resposta

1

Você pode usar (na linha de comando):

sudo hciconfig hci0 reset

Eu não sei o equivalente C ...

    
por 22.08.2018 / 16:08

Tags