Ho un dispositivo bluetooth che posso controllare usando gatttool su linux. Voglio sviluppare il mio programma c in grado di inviare comandi ad esso.Come programmare un dispositivo Bluetooth LE usando C su Linux x86?
Ho fatto la programmazione bluetooth in passato ed è relativamente semplice, simile alla programmazione di rete, ma questa volta è un dispositivo bluetooth a basso consumo energetico e seguendo i principi here i risultati in un host sono giù messaggio quando posso chiaramente connettermi/disconnettersi da esso utilizzando gatttool.
Come si crea questo programma? So che dovrei usare la libreria bluez ma non sono sicuro da dove cominciare con i dispositivi a bassa energia.
int main(int argc, char **argv)
{
struct sockaddr_rc addr = { 0 };
int s, status;
char dest[18] = "B4:99:4C:5C:EE:49";
char buf[2048];
pthread_t rthread;
setbuf(stdout, NULL);
// allocate a socket
s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
// set the connection parameters (who to connect to)
addr.rc_family = AF_BLUETOOTH;
addr.rc_channel = (uint8_t) 1;
str2ba(dest, &addr.rc_bdaddr);
// connect to server
status = connect(s, (struct sockaddr *)&addr, sizeof(addr));
if(status < 0){
perror("Error connecting to host\n");
exit(1);
}
while(fgets(buf, sizeof(buf), stdin) != NULL){
status = send(s, buf, sizeof(buf), 0);
if(status < 0){
printf("Error sending.\n");
exit(1);
}
}
close(s);
return;
Il tuo codice non è più disponibile. Puoi postare per favore? – gregoiregentil
Non è il mio codice. Tuttavia, ho scritto un programma molto più sostanziale e pienamente funzionale basato su di esso. Puoi usare questo come esempio di come parlare con un gadget BLE usando Bluez: http://github.com/dlenski/ttblue –
Grazie mille! – gregoiregentil