Tôi bắt đầu xây dựng một mạng BLE đơn giản với vi điều khiển và một mâm xôi pi (tardis BLE dongle). Là một điểm khởi đầu, tôi đang tìm một ví dụ C hoặc C++ đơn giản để đọc/ghi một thiết bị BLE, tương tự như những gì tôi có thể thực hiện trên dòng lệnh. Các ví dụ tôi đã tìm thấy cho đến nay khá phức tạp. Là một người mới bắt đầu BLE tôi cần một số ví dụ rất đơn giản để xây dựng từ trước khi tiến lên với một thiết kế phức tạp hơn. Tôi ổn với mã hóa cứng tên thiết bị BLE như tôi có trong ví dụ gatttool bên dưới.Ví dụ đọc/ghi C/C++ BLE với Bluez
Dưới đây là cách tôi hiện đang sử dụng các tùy chọn dòng lệnh từ Bluez.
Từ dòng lệnh tôi có thể sử dụng:
$ sudo hcitool lescan
LE Scan ...
BB:A0:50:02:18:07 MyDevice
Tiếp theo tôi có thể kết nối với các thiết bị trên dòng lệnh với gatttool:
$ sudo gatttol -b BB:A0:50:02:18:07 -I
[BB:A0:50:02:18:07][LE]> connect
Attempting to connect to BB:A0:50:02:18:07
Connection successful
Cuối cùng tôi có thể đọc và viết bằng các tay cầm thích hợp
[BB:A0:50:02:18:07][LE]> char-write-req 000f 0100
Characteristic value was written successfully
[BB:A0:50:02:18:07][LE]> char-write-cmd 0011 4C467A
Một số trang web tôi đã sử dụng để nghiên cứu ban đầu và bắt đầu:
http://people.csail.mit.edu/albert/bluez-intro/c404.html
https://github.com/carsonmcdonald/bluez-experiments/blob/master/experiments/scantest.c
Bạn cũng có thể có một cái nhìn tại mới nhất api DBUS GATT được công bố bởi các phiên bản mới nhất của Bluez (từ 5,29 ... Tôi nghĩ). Vẫn còn thử nghiệm, nhưng tôi đã làm một số xét nghiệm và nó hoạt động khá tốt. Tất nhiên hiệu suất có thể thấp hơn một chút so với truy cập vào thư viện bluez trực tiếp nhưng tôi nghĩ rằng nó đáng để thử ... –