Cześć byłem w tym samym problemem, ale w tej chwili mam kod do pracy z MLDP, najpierw trzeba przejść do strony Module internetowej:
http://www.microchip.com/wwwproducts/Devices.aspx?product=RN4020
następnie, na podstawie dokumentacji & Software można znaleźć:
- Android Explorer 16 RN4020 PICtail Demo Code
- MLDP Demo dla Androida
- RN4020 Android App Demo
Pierwsza pozycja jest przykładowy kod do pracy z modułem i MLDP z android, wykorzystuje Bluetooth GATT clases który został wdrożony z Androidem 4.3 (API 18)
MLDP koncepcja jest jak każda inna "charakterystyka GATT" BTL, ale jest wysyłana bezpośrednio z RF do UART bez potrzeby mikrokontrolera do żądania wartości charakterystycznej
w przykładowym kodzie znajdziesz dwa projekty (jeden z usługą (Android komponent tła)), przejdź do projektu "RN4020 Die", zaimportuj go do swojego obszaru roboczego, jeśli chcesz, ale pod src/nazwa pakietu/foldery, znajdziesz plik "DeviceControlActivity.java '
ten plik zawiera główny kod do korzystania z wybranego przez ciebie obiektu BluetoothDevice i utworzenia z nim połączenia GATT, wtedy zobaczysz funkcje takie jak zapis i odczyt, sprawdzanie i/lub używanie części kodu, które będziesz mogli rozpocząć korzystanie z modułu jak SPP
niektóre części mojego kodu do szybkiego zrozumienia i realizacji:
mBluetoothGatt = mDevice.connectGatt(this, false, mGattCallback);//To connect to mDevice
mGattCallBack jest taka sama jak przykładowy kod mikrochip, ale ze zmianą:
@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
}
z tą modyfikacją, otrzymasz „zdarzenie”, kiedy charakterystyczne zmiany, w tym przypadku, każdy mikrokontroler czas wysyłania danych
można użyć dostarczonego funkcję „writeCharacteristic” do wysyłania danych, można go używać jak to:
mDataMDLP.setValue("R=>" + TX.getText() + "\r\n");
writeCharacteristic(mDataMDLP);
Wreszcie, funkcja „findMldpGattService” jest zbyt ważne, będzie to porównać deklarowane UUID z protokołem MLDP z dostępnych w urządzeniu, a następnie będzie initialice obiekt „mDataMDLP”, co pozwala na użyj go
Mam nadzieję, że moja odpowiedź będzie przydatna dla Ciebie i dla kogoś innego.
To dziwne, że nie udokumentowały one atrybutów, ale nie powinno być trudno zorientować się w świetle aplikacji LightBlue. Tego rodzaju protokoły emulacji portu szeregowego mają zazwyczaj atrybut przesyłania danych, a inny odebranych danych. – Paulw11