Javascript 可引发写入的FC
一切都在这里: 我正试图通过蓝牙向我的rpi发送时间。 但我无法让Javascript 可引发写入的FC,javascript,android,cordova,bluetooth,bluetooth-lowenergy,Javascript,Android,Cordova,Bluetooth,Bluetooth Lowenergy,一切都在这里: 我正试图通过蓝牙向我的rpi发送时间。 但我无法让evothings.ble.writeCharacteristic工作,原因不明:/ 我使用了这样的书写特征: app.js 应用程序在显示“时间正在更新…”后崩溃 日志: 02-05 11:03:54.416 20011 20011 D BluetoothGatt: readCharacteristic() - uuid: ffffffff-ffff-ffff-ffff-fffffffffff1 02-05 11:03:54.
evothings.ble.writeCharacteristic
工作,原因不明:/
我使用了这样的书写特征:
app.js
应用程序在显示“时间正在更新…”后崩溃
日志:
02-05 11:03:54.416 20011 20011 D BluetoothGatt: readCharacteristic() - uuid: ffffffff-ffff-ffff-ffff-fffffffffff1
02-05 11:03:54.577 1049 1049 E WifiTrafficPoller: TRAFFIC_STATS_POLL true Token 65 num clients 9
02-05 11:03:54.578 1049 1049 E WifiTrafficPoller: packet count Tx=94854 Rx=127944
02-05 11:03:54.670 2185 2206 I bt_btif_gatt: set_read_value unformat.len = 42
02-05 11:03:54.671 20011 20878 D BluetoothGatt: onCharacteristicRead() - Device=B8:27:EB:6C:4F:9C UUID=ffffffff-ffff-ffff-ffff-fffffffffff1 Status=0 srvcType=0 srvcInstId=0 charInstId=0
02-05 11:03:54.694 20011 20011 E AndroidRuntime: FATAL EXCEPTION: main
02-05 11:03:54.694 20011 20011 E AndroidRuntime: Process: com.evothings.evothingsviewer, PID: 20011
02-05 11:03:54.694 20011 20011 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.bluetooth.BluetoothGattCharacteristic.setWriteType(int)' on a null object reference
02-05 11:03:54.694 20011 20011 E AndroidRuntime: at com.evothings.BLE$12.run(BLE.java:988)
02-05 11:03:54.694 20011 20011 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:815)
02-05 11:03:54.694 20011 20011 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:104)
02-05 11:03:54.694 20011 20011 E AndroidRuntime: at android.os.Looper.loop(Looper.java:207)
02-05 11:03:54.694 20011 20011 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5728)
02-05 11:03:54.694 20011 20011 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
02-05 11:03:54.694 20011 20011 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
02-05 11:03:54.694 20011 20011 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
在服务器端,除了没有调用OnWriteRequest之外,一切都很好。所以安卓应用程序在发送信息之前就崩溃了。在你的日志中,uuid对我来说很奇怪。
我不知道您正在测试哪种设备,但uuid不满足其基本格式。
请参阅 .
如果您确定uuid及其获取方式,请检查特征uuid。
它不是简单地检查字符串,而是检查如何检索特征ID。
检索它的最佳方法是调用getService,然后调用getCharacteristic 例如,
var service = evothings.ble.getService(deviceObject, '12345678-0000-1000-8000-00805f9b34fb');
var characteristic_uuid = evothings.ble.getCharacteristic(service, '11111111-0000-1000-8000-00805f9b34fb');
evothings.ble.writeCharacteristic(deviceObject, characteristic_uuid, new Uint8Array([1]), success, error);
如果这些都很好,那么请检查设备是否可以接收UINT8阵列类型。您的问题有点不清楚,理解起来有点复杂。试着编辑它,问你想更清楚地知道什么。你是对的,只是编辑过而已。现在它只显示了当前的问题。我将对此进行研究,谢谢:)-我们正在尝试与一位朋友建立一个小型乒乓球示例。我们每次都会遇到相同的错误,不同的电话,不同的RPi,相同的崩溃。。。Uuid可能是解决方案。我会回来的;)
var service = evothings.ble.getService(deviceObject, '12345678-0000-1000-8000-00805f9b34fb');
var characteristic_uuid = evothings.ble.getCharacteristic(service, '11111111-0000-1000-8000-00805f9b34fb');
evothings.ble.writeCharacteristic(deviceObject, characteristic_uuid, new Uint8Array([1]), success, error);