0

我想使用最近在 BitBucket 上更新的新示例代码(plippo/c85e1ba - 将 Movesense Core Lib 更新到版本 0.3.1.105 - 将 Movesense 示例应用程序更新到版本 0.3.1.105)。

新代码正确编译和构建。成功将置于 DFU 模式并上传此固件后,我无法使用 Movesense android 应用程序读取特征。

Movesense 被 Android 应用程序以及其他 BLE 工具(例如 nRF 连接应用程序)检测到。Movesense 应用程序在连接到设备时卡住。因此,我无法读取任何内容,或将设备置于 DFU 模式以对其进行重新编程。但是,通过 nRF 连接应用程序,我可以连接到它。

比较嵌入式代码的先前版本和当前版本,我注意到示例应用程序已被拆分。但是在 app_root.yaml 文件中的部分

apis:
  AccelerometerSample.*:
    apiId: 100
    defaultExecutionContext: PrimaryServices
  HelloWorld.*:
    apiId: 101
    defaultExecutionContext: PrimaryServices

保持不变。我上传了 HelloWorld 服务不再可用的示例应用程序“accelerometer_app”(与旧代码相比)。但仍列在 yaml 文件中。我想知道这是否是我无法再连接 Movesense 应用程序的原因。

Android 监视器中最后记录的行如下

对于正在运行的旧代码:

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 connect App 看到并连接到它,并且能够手动将数据写入 WRITE 特性,有没有一种方法(命令)可以发送到 movesense,使其进入 DFU 模式.

问题 3:我无法找到代码卡住的位置,因为我无法跟踪/跟随BleEnumeratorImpl(请参阅日志行)。在整个android项目中,BleEnumeratorImpl 位于哪里?

我感谢您的帮助 ))

4

2 回答 2

0

请使用新的安卓应用。有一个运行 DFU 模式的工作选项(从工具栏菜单)。

很快,所有 DFU 操作都将包含在这个新的示例应用程序中。

现在,在您运行 DFU 模式之后,您需要使用 Nordic DFU 应用程序。

于 2017-07-14T10:58:42.117 回答
0

编辑:新的 movesense-device-lib 已发布,可修复此 BLE 连接问题

这是一个已知问题,导致随机构建卡在 BLE 连接阶段。该问题在今天或明天应该发布的下一个版本中得到修复。由于该错误阻止启动进入 DFU 固件更新模式,因此只能使用编程夹具(J-TAG 电缆)保存传感器。对于没有夹具的客户,请通过电子邮件(info (at) movesense.com)联系 Movesense 支持,您将获得新的传感器来替换砖块传感器。

对于给您带来的不便,我真的很抱歉。

全面披露:我为 Movesense 团队工作

于 2017-06-06T08:51:38.253 回答