Hi ero nello stesso problema, ma in questo momento ho un codice di lavoro con MLDP, primo luogo è necessario andare alla pagina del modulo web:
http://www.microchip.com/wwwproducts/Devices.aspx?product=RN4020
poi, sotto documentazione & Software si possono trovare:
- Android Explorer 16 RN4020 PICtail Demo Codice
- MLDP Demo per Android
- RN4020 App Android Demo
La prima voce è un codice di esempio per lavorare con il modulo e MLDP da Android, utilizza clases Bluetooth GATT, che è stato realizzato da Android 4.3 (API 18)
Il MLDP concetto è come qualsiasi altra 'Caratteristica GATT' di BTL, ma è inviato direttamente dalla RF all'UCA senza microcontrollore è necessario richiedere il valore caratteristico
nel codice di esempio si trovano due progetti (uno con servizio (android componente di sfondo)), vai al progetto 'RN4020 Die', importalo nel tuo spazio di lavoro se vuoi, ma sotto src/nome del pacchetto/cartelle, troverete il file 'DeviceControlActivity.java '
quel file contiene il codice principale per l'utilizzo di oggetto BluetoothDevice selezionato e creare la connessione GATT con esso, quindi vedrai funzioni come scrivere e leggere caratteristiche, controllare e/o usare parti del codice che sarai in grado di iniziare a utilizzare il modulo come SPP
alcune parti del mio codice per la comprensione e l'attuazione rapida:
mBluetoothGatt = mDevice.connectGatt(this, false, mGattCallback);//To connect to mDevice
mGattCallBack è lo stesso come il codice di esempio del microchip, ma con il cambiamento di:
@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
}
con tale modifica, si riceverà un 'evento' quando i cambiamenti caratteristici, in questo caso, ogni volta microcontrollore inviano i dati
è possibile utilizzare la funzione fornita 'writeCharacteristic' per inviare i dati, è possibile utilizzarlo come questo:
mDataMDLP.setValue("R=>" + TX.getText() + "\r\n");
writeCharacteristic(mDataMDLP);
Infine, la funzione 'findMldpGattService' è troppo importante, sarà confrontare i UUID dichiarati del protocollo MLDP con il disponibile sul dispositivo, allora sarà initialice l'oggetto 'mDataMDLP', che consente di usalo
Spero che la mia risposta sia utile per te e qualcun altro.
È strano che non abbiano documentato gli attributi, ma non dovrebbe essere difficile capire con una luce app LightBlue. Questi tipi di protocolli di emulazione delle porte seriali hanno in genere un attributo per inviare dati e un altro per i dati ricevuti. – Paulw11