Zuverlässiger Schreibvorgang ermöglicht die Überprüfung zurück übertragener Werte und die atomare Ausführung von einer oder mehreren übertragenen Nachrichten.
Eine gute Erklärung des zuverlässigen Schreibverfahrens finden Sie in der BLE part of Mozillas Boot 2 Gecko Project documentation. Auch wenn es die Beschreibung des beginReliableWrite()
insbesondere für JavaScript gemeint ist sehr hilfreich für das Verständnis des Prozesses:
Sobald eine zuverlässige Schreibtransaktion eingeleitet wurde, um alle Anrufe an characteristic.writeValue() auf dem Remote-Gerät gesendet für Verifikation und für atomare Ausführung in die Warteschlange gestellt. Ein Versprechen, dass den geschriebenen Wert trägt, wird als Antwort auf jeden characteristic.writeValue() -Aufruf zurückgegeben und die Anwendung ist verantwortlich für die Überprüfung, ob der Wert genau übertragen wurde. Nach wurden alle Merkmale in die Warteschlange gestellt und verifiziert, executeReliableWrite() führt alle Schreibvorgänge aus. Wenn ein Merkmal nicht korrekt geschrieben wurde, bricht der Aufruf von abortReliableWrite() die aktuelle Transaktion ab, ohne Werte auf dem Remote-Gerät LE zu übergeben.
Sie beginnen, um die zuverlässige Schreib,
gatt.beginReliableWrite();
den Wert der Kennlinie eingestellt und es schreiben.
characteristic.setValue(value);
gatt.writeCharacteristic(characteristic);
Der writeCharacteristic()
Anruf wird seine 'normalen' Rückruf auslösen. Der Parameter characteristic
enthält den eigentlichen, geschrieben Wert, der überprüft werden kann:
@Override
public void onCharacteristicWrite(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic,
int status) {
...
if(characteristic.getValue() != value) {
gatt.abortReliableWrite();
} else {
gatt.executeReliableWrite();
}
...
}
die zuverlässige Schreib Executing die onReliableWriteCompleted (BluetoothGatt gatt, int status) Rückruf auslösen.
Erste Antwort auf StackOverflow, hoffe jemand findet es hilfreich.
können Sie bitte meine Antwort abwählen und bottersb antwort akzeptieren? – Paulw11
ok, ich habe es geändert –