2014-11-03 16 views

Trả lời

7

Lập trình BLE với BlueZ trên Galileo hoặc Edison tương tự như bất kỳ nền tảng x86 nào khác.

Edison (và Galileo) thường đi kèm với thư viện BlueZ được cài đặt trước. Bạn chỉ cần liên kết với họ bằng mã C của bạn và chương trình tương tự với nền tảng x86 khác.

Để có đầy đủ C code example bluetooth scan with BlueZ, see this link.

Please see this example for BLE scan

Và HCI API here.

+0

Tôi đã nhìn thấy mã ví dụ này. Nó hoạt động, nhưng nó không quét các thiết bị BLE - chỉ các thiết bị bình thường. – Longes

+0

@Longes For BLE bạn sẽ cần phải đặt 'hci_le_set_scan_parameter', [vui lòng xem ví dụ này để quét BLE] (https://github.com/carsonmcdonald/bluez-experiments/blob/master/experiments/scantest.c) – ashoke

+0

Ví dụ BLE phụ thuộc vào ncurses, để thử nghiệm, tôi đã thay đổi nó thành một ứng dụng giao diện điều khiển thuần túy. Ngoài ra, bạn phải chạy nó với sudo. – prmottajr

8

Ví dụ về câu trả lời khác không làm việc cho tôi, nó dừng lại trong scanning ...

Các liên kết tiếp theo làm việc cho ngôn ngữ c, nhưng có một lỗi khi đúc các byte đó có thông tin về de RSSI tín hiệu. https://github.com/glock45/intel-edison-playground/blob/master/scan.c

dòng này 121:

printf("%s - RSSI %d\n", addr, (**char**)info->data[info->length]); 

nên là:

printf("%s - RSSI %d\n", addr, (**int8_t**)info->data[info->length]); 

tôi tìm thấy những bằng cách nhìn bên bluez-version/monitor/*.c, nơi chương trình btmon là. Bạn có thể thấy các kiểu dữ liệu và cấu trúc, hcidump.c là rất hữu ích và packets.c, và main.c quá, nhưng có rất nhiều để tìm hiểu về socket HCI

+0

Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. – Kmeixner

0

Mã scan.c intel-edison cũng hoạt động trên Raspberry Pi.

Nó hoạt động để quét mô-đun bạn bè Adafruit BLE UART được kết nối với Arduino uno.

Trên Pi, cần tải xuống tệp bluez-5.33.tar.gz, libncurses-dev và libbluetooth-dev.

Để biên dịch scan.c, sử dụng

gcc scan.c -lbluetooth -o quét

Các vấn đề liên quan