Hi,
I compiled an existing library "as is" and all worked well. Then, I tried to add one new parameter to newdata to pass the characteristic string being written to B4A.
This all compiled fine but I'm getting an error at runtime:
Error occurred on line: 0 (BLE_Peripheral)
java.lang.Exception: Sub peripheral_newdata signature does not match expected signature.
public static anywheresoftware.b4a.pc.RemoteObject b4a.bbb.ble_peripheral_subs_0._peripheral_newdata(anywheresoftware.b4a.pc.RemoteObject,anywheresoftware.b4a.pc.RemoteObject,anywheresoftware.b4a.pc.RemoteObject,anywheresoftware.b4a.pc.RemoteObject) throws java.lang.Exception
class anywheresoftware.b4a.pc.RemoteObject, class anywheresoftware.b4a.pc.RemoteObject, class anywheresoftware.b4a.pc.RemoteObject,
I read in the forum that this could be a mismatch in parameter types but I believe my parameters are well matched on both sides (string with string). What am I doing wrong?
Thanks.
I compiled an existing library "as is" and all worked well. Then, I tried to add one new parameter to newdata to pass the characteristic string being written to B4A.
B4X:
B4A: Sub Peripheral_NewData (DeviceId As String, Descriptor As String, Data() As Byte)
Java event: @Events(values={"Start (Success As Boolean)", "Subscribe (DeviceId As String)", "Unsubscribe (DeviceId As String)", "NewData (DeviceId As String, Descriptor as String, Data() As Byte)"})
Java code:
@Override
public void onCharacteristicWriteRequest(BluetoothDevice device, int requestId,
BluetoothGattCharacteristic characteristic,
boolean preparedWrite, boolean responseNeeded,
int offset, byte[] value) {
if (characteristic.getUuid().equals(charWrite.getUuid())) {
ba.raiseEventFromDifferentThread(BlePeripheral3.this, null, 0, eventName + "_newdata", false, new Object[]{device.getAddress(), characteristic.getUuid().toString(), value});
}
gattServer.sendResponse(device, requestId, BluetoothGatt.GATT_SUCCESS, 0, value);
}
This all compiled fine but I'm getting an error at runtime:
Error occurred on line: 0 (BLE_Peripheral)
java.lang.Exception: Sub peripheral_newdata signature does not match expected signature.
public static anywheresoftware.b4a.pc.RemoteObject b4a.bbb.ble_peripheral_subs_0._peripheral_newdata(anywheresoftware.b4a.pc.RemoteObject,anywheresoftware.b4a.pc.RemoteObject,anywheresoftware.b4a.pc.RemoteObject,anywheresoftware.b4a.pc.RemoteObject) throws java.lang.Exception
class anywheresoftware.b4a.pc.RemoteObject, class anywheresoftware.b4a.pc.RemoteObject, class anywheresoftware.b4a.pc.RemoteObject,
I read in the forum that this could be a mismatch in parameter types but I believe my parameters are well matched on both sides (string with string). What am I doing wrong?
Thanks.