У меня есть устройство Bluetooth, которое я могу контролировать с помощью gatttool на linux. Я хочу разработать собственную программу c, которая может отправлять ей команды.Как запрограммировать устройство Bluetooth LE с помощью C на Linux x86?
В прошлом я выполнял программирование bluetooth, и это относительно просто, аналогично сетевому программированию, но на этот раз это устройство с низким энергопотреблением Bluetooth и следование принципам here приводит к тому, что сообщение хоста не работает, когда я могу четко подключиться/отключите его, используя gatttool.
Как создать эту программу? Я знаю, что я должен использовать библиотеку bluez, но я не уверен, с чего начать с устройств с низкой энергией.
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;
Ваш код больше не доступен. Можете ли вы разместить его, пожалуйста? – gregoiregentil
Это не мой код. Тем не менее, я написал гораздо более существенную и полностью функциональную программу, основанную на ней. Вы можете использовать это как пример того, как разговаривать с гаджетом BLE с помощью Bluez: http://github.com/dlenski/ttblue –
Большое спасибо! – gregoiregentil