Hi tôi đã được ở cùng một vấn đề, nhưng tại thời điểm này tôi có một mã làm việc với MLDP, trước tiên bạn cần phải đi đến các trang web Module:
http://www.microchip.com/wwwproducts/Devices.aspx?product=RN4020
sau đó, dưới Documentation & Software bạn có thể tìm thấy:
- Android Explorer 16 RN4020 PICtail Demo Mã
- MLDP Demo dành cho Android
- RN4020 Android App Demo
Mục đầu tiên là một ví dụ mã để làm việc với các mô-đun và MLDP từ android, nó sử dụng clases Bluetooth GATT được thực hiện từ Android 4.3 (API 18)
Các MLDP khái niệm cũng giống như bất kỳ 'GATT đặc trưng' khác của BTL, nhưng nó được gửi trực tiếp từ RF đến UART mà không cần vi điều khiển yêu cầu giá trị đặc trưng
trong mã ví dụ bạn sẽ tìm thấy hai dự án (một với dịch vụ) thành phần nền)), đi tới dự án 'RN4020 Die', nhập nó vào không gian làm việc của bạn nếu bạn muốn, nhưng theo src/tên gói/thư mục, bạn sẽ tìm thấy tập tin 'DeviceControlActivity.java '
tệp đó chứa mã chính để sử dụng đối tượng de BluetoothDevice bạn chọn và tạo kết nối GATT với nó, bạn sẽ thấy các chức năng như viết và đọc đặc điểm, kiểm tra và/hoặc sử dụng các phần của mã bạn sẽ có thể bắt đầu sử dụng các mô-đun như SPP
một số phần của mã của tôi để tìm hiểu và thực hiện nhanh chóng:
mBluetoothGatt = mDevice.connectGatt(this, false, mGattCallback);//To connect to mDevice
mGattCallBack là giống như mẫu mã của vi mạch, nhưng với sự thay đổi của:
@Override
public void onCharacteristicChanged(BluetoothGatt gatt,BluetoothGattCharacteristic characteristic) {
String dataValue = characteristic.getStringValue(0);//get modified data
RX.append(dataValue);//append it on my RX textview
}
với sửa đổi đó, bạn sẽ nhận được một 'sự kiện' khi thay đổi đặc trưng, trong trường hợp này, mỗi khi vi điều khiển gửi dữ liệu
bạn có thể sử dụng chức năng cung cấp 'writeCharacteristic' để gửi dữ liệu, bạn có thể sử dụng nó như này:
mDataMDLP.setValue("R=>" + TX.getText() + "\r\n");
writeCharacteristic(mDataMDLP);
Cuối cùng, chức năng 'findMldpGattService' là quá quan trọng, nó sẽ so sánh các UUIDs tuyên bố của giao thức MLDP với có sẵn trên thiết bị, sau đó nó sẽ initialice đối tượng 'mDataMDLP', cho phép bạn sử dụng nó
Tôi hy vọng câu trả lời của tôi hữu ích cho bạn và người khác.
Thật kỳ lạ là họ chưa ghi lại các thuộc tính, nhưng không khó để tìm ra bằng LightBlue của ứng dụng. Các loại giao thức mô phỏng cổng nối tiếp này thường có thuộc tính để gửi dữ liệu và một thuộc tính khác cho dữ liệu nhận được. – Paulw11