我想使用最近在BitBucket上更新的新示例代码(plippo / c85e1ba - 将Movesense Core Lib更新为版本0.3.1.105 - 将Movesense示例应用程序更新为版本0.3.1.105)。
正确编译和构建新代码。成功将movesense置于DFU模式并上传此固件后,我无法使用Movesense安卓程序读取特征。
Movesense由Android应用程序以及其他BLE工具(例如nRF连接应用程序)检测到。 Movesense应用程序在连接到设备时卡住了。因此,我无法读出任何内容,或将设备置于DFU模式以便重新编程。但是,使用nRF连接应用程序,我可以连接到它。
比较嵌入式代码的先前版本和当前版本,我注意到示例应用程序已被拆分。但是在app_root.yaml文件中的部分
apis:
AccelerometerSample.*:
apiId: 100
defaultExecutionContext: PrimaryServices
HelloWorld.*:
apiId: 101
defaultExecutionContext: PrimaryServices
保持不变。我上传了示例应用程序“accelerometer_app”,其中HelloWorld服务不再可用(与旧代码相比)。但仍然列在yaml文件中。我想知道这是否是我无法再与Movesense App连接的原因。
Android Monitor中最后记录的行是以下几行
对于正在运行的旧代码:
05-24 15:52:05.350 29854-29854/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: connect() - device: C2:4B:A6:1E:73:AE, auto: false
05-24 15:52:05.350 29854-29854/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: registerApp()
05-24 15:52:05.350 29854-29854/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: registerApp() - UUID=7eec028c-3252-434f-9dcf-cc5ced36dd30
05-24 15:52:05.352 29854-29866/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: onClientRegistered() - status=0 clientIf=5
05-24 15:52:05.414 29854-29854/com.movesense.android.sample_A_G_H.debug V/ViewRootImpl: Contents drawing finished : com.movesense.android.sample_A_G_H.debug/com.movesense.android.sample_A_G_H.MainActivity
05-24 15:52:07.548 29854-29881/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: onClientConnectionState() - status=0 clientIf=5 device=C2:4B:A6:1E:73:AE
05-24 15:52:07.548 29854-29881/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: discoverServices() - device: C2:4B:A6:1E:73:AE
05-24 15:52:08.531 29854-29881/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: onSearchComplete() = Device=C2:4B:A6:1E:73:AE Status=0
05-24 15:52:08.531 29854-29881/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: setCharacteristicNotification() - uuid: 34802252-7185-4d5d-b431-630e7050e8f0 enable: true
05-24 15:52:08.563 29854-29928/com.movesense.android.sample_A_G_H.debug D/MovesenseAndroidWrapper: Connected device! serial ECKI5ABE47F3 address 10000001
05-24 15:52:08.563 29854-29928/com.movesense.android.sample_A_G_H.debug D/BleEnumeratorImpl: adding device 10000001
05-24 15:52:08.563 29854-29928/com.movesense.android.sample_A_G_H.debug D/BleEnumeratorImpl: getDevices 1
05-24 15:52:08.698 29854-30184/com.movesense.android.sample_A_G_H.debug D/RouteObserver: onNotify {"Serial": "ECKI5ABE47F3", "Type": "New"}
05-24 15:52:12.937 29854-30184/com.movesense.android.sample_A_G_H.debug D/addWhiteboardDevice: {"manufacturerName": "Suunto", "productName": "Movesense", "variant": "Unknown", "hwCompatibilityId": "C", "serial": "ECKI5ABE47F3", "pcbaSerial": "UNKNOWN", "sw": "0.3.0", "hw": "UNKNOW", "additionalVersionInfo": "UNKNOW", "addressInfo": "UNKNOW"}
05-24 15:52:13.022 29854-29854/com.movesense.android.sample_A_G_H.debug D/MainActivity: Connected to device: Peripheral [address: C2:4B:A6:1E:73:AE, name: Movesense ECKI5ABE47F3, RSSI: -43]
05-24 15:52:13.064 29854-29854/com.movesense.android.sample_A_G_H.debug I/Timeline: Timeline: Activity_launch_request id:com.movesense.android.sample_A_G_H.debug time:47413961
如果是新代码,则无效:
05-24 15:39:23.643 18160-18160/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: connect() - device: E8:E6:77:21:D1:45, auto: false
05-24 15:39:23.643 18160-18160/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: registerApp()
05-24 15:39:23.643 18160-18160/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: registerApp() - UUID=6c391ed2-8e59-42e5-9700-99758e9e8877
05-24 15:39:23.647 18160-18207/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: onClientRegistered() - status=0 clientIf=5
05-24 15:39:23.771 18160-18160/com.movesense.android.sample_A_G_H.debug V/ViewRootImpl: Contents drawing finished : com.movesense.android.sample_A_G_H.debug/com.movesense.android.sample_A_G_H.MainActivity
05-24 15:39:27.577 18160-18171/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: onClientConnectionState() - status=0 clientIf=5 device=E8:E6:77:21:D1:45
05-24 15:39:27.577 18160-18171/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: discoverServices() - device: E8:E6:77:21:D1:45
05-24 15:39:28.647 18160-18190/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: onSearchComplete() = Device=E8:E6:77:21:D1:45 Status=0
05-24 15:39:28.647 18160-18190/com.movesense.android.sample_A_G_H.debug D/BluetoothGatt: setCharacteristicNotification() - uuid: 34802252-7185-4d5d-b431-630e7050e8f0 enable: true
05-24 15:39:28.688 18160-18171/com.movesense.android.sample_A_G_H.debug D/MovesenseAndroidWrapper: Connected device! serial ECKID9F62D52 address 10000001
05-24 15:39:28.688 18160-18171/com.movesense.android.sample_A_G_H.debug D/BleEnumeratorImpl: adding device 10000001
05-24 15:39:28.688 18160-18171/com.movesense.android.sample_A_G_H.debug D/BleEnumeratorImpl: getDevices 1
它停在第D/BleEnumeratorImpl: getDevices 1
行。
这是一个问题,因为我无法将movesense放入DFU模式并重新编程,所以基本上“它已经坏了”;)。
问题1: yaml文件中描述的服务是否是此问题的问题。
问题2: 由于我能够通过nRF连接App查看并连接到它并且能够手动将数据写入WRITE特性,是否有一种方法(命令)可以发送到movesense,使其进入DFU模式。
问题3:由于无法跟踪/关注BleEnumeratorImpl
(参见日志行),我找不到代码卡在哪里。哪个,在整个android项目中是BleEnumeratorImpl吗?
感谢您的帮助))
答案 0 :(得分:0)
编辑:新的movesense-device-lib已修复此BLE连接问题
这是一个已知问题,导致随机构建陷入BLE连接阶段。这个问题在下一个版本中得到修复,应该在今天或明天发布。由于该错误阻止启动进入DFU固件更新模式,因此只能使用编程夹具(J-TAG电缆)保存传感器。对于那些没有夹具的客户,请通过电子邮件(info(at)movesense.com)联系Movesense支持,然后您将获得新的传感器来替换砖块。
我很抱歉给您带来不便。
完全披露:我为Movesense团队工作
答案 1 :(得分:0)
请使用新的Android应用。有一个运行DFU模式的工作选项 (来自工具栏菜单)。
很快所有DFU操作都将包含在这个新的示例应用程序中。
现在您将运行DFU模式之后您需要使用Nordic DFU App。