Tôi có một thiết bị bluetooth mà tôi có thể kiểm soát bằng cách sử dụng gatttool trên Linux. Tôi muốn phát triển chương trình c của riêng tôi có thể gửi lệnh cho nó.Làm thế nào để lập trình một thiết bị Bluetooth LE sử dụng C trên Linux x86?
Tôi đã thực hiện lập trình bluetooth trong quá khứ và tương đối đơn giản, tương tự như lập trình mạng nhưng lần này, thiết bị năng lượng thấp bluetooth và tuân thủ nguyên tắc here kết quả trong máy chủ./ngắt kết nối từ nó bằng gatttool.
Làm cách nào để tạo chương trình này? Tôi biết tôi nên sử dụng thư viện bluez nhưng tôi không chắc bắt đầu từ đâu với thiết bị năng lượng thấp.
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;
Mã của bạn không còn nữa. Bạn có thể đăng nó không? – gregoiregentil
Đó không phải mã của tôi. Tuy nhiên, tôi đã viết một chương trình quan trọng hơn và đầy đủ chức năng dựa trên nó. Bạn có thể sử dụng điều này làm ví dụ về cách nói chuyện với một tiện ích BLE sử dụng Bluez: http://github.com/dlenski/ttblue –
Cảm ơn bạn rất nhiều! – gregoiregentil