Ich habe ein Bluetooth-Gerät, das ich mit gatttool unter Linux steuern kann. Ich möchte mein eigenes c-Programm entwickeln, das Befehle an es senden kann.Wie programmiert man ein Bluetooth LE Gerät mit C auf Linux x86?
Ich habe Bluetooth-Programmierung in der Vergangenheit getan und es ist relativ einfach, ähnlich wie Netzwerkprogrammierung, aber dieses Mal ist es ein Bluetooth Low Energy-Gerät und folgt den Prinzipien here Ergebnisse in einem Host ist down-Nachricht, wenn ich klar verbinden kann/Trennen Sie es mit gatttool.
Wie erstelle ich dieses Programm? Ich weiß, ich sollte die Bluez-Bibliothek verwenden, aber ich bin mir nicht sicher, wo ich mit Low-Energy-Geräten anfangen soll.
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;
Ihr Code ist nicht mehr verfügbar. Kannst du es bitte posten? – gregoiregentil
Es ist nicht mein Code. Ich schrieb jedoch ein wesentlich umfangreicheres und voll funktionsfähiges Programm darauf basierend. Sie können dies als ein Beispiel verwenden, wie Sie mit einem BLE-Gadget mit Bluez sprechen können: http://github.com/dlenski/ttblue –
Vielen Dank! – gregoiregentil