package com.megster.cordova.ble.central; import org.apache.cordova.CallbackContext; import java.util.UUID; /** * Android BLE stack is async but doesn't queue commands, so it ignore additional commands when processing. WTF? * This is an object to encapsulate the command data for queuing */ class BLECommand { // Types public static int READ = 10000; public static int REGISTER_NOTIFY = 10001; public static int REMOVE_NOTIFY = 10002; public static int READ_RSSI = 10003; // BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE // BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT private CallbackContext callbackContext; private UUID serviceUUID; private UUID characteristicUUID; private byte[] data; private int type; public BLECommand(CallbackContext callbackContext, UUID serviceUUID, UUID characteristicUUID, int type) { this.callbackContext = callbackContext; this.serviceUUID = serviceUUID; this.characteristicUUID = characteristicUUID; this.type = type; } public BLECommand(CallbackContext callbackContext, UUID serviceUUID, UUID characteristicUUID, byte[] data, int type) { this.callbackContext = callbackContext; this.serviceUUID = serviceUUID; this.characteristicUUID = characteristicUUID; this.data = data; this.type = type; } public int getType() { return type; } public CallbackContext getCallbackContext() { return callbackContext; } public UUID getServiceUUID() { return serviceUUID; } public UUID getCharacteristicUUID() { return characteristicUUID; } public byte[] getData() { return data; } }