Movesense 无法设置 DataLoggerConfig 获取错误 400

Movesense can't set DataLoggerConfig get error 400

我正在尝试设置 DataLogger Config 以开始测量,但收到错误 400。 读取配置或启动 DataLogger 没有问题。但是由于设置配置不起作用,所以没有什么可存储的。我正在使用带有本机 Java 代码的 Flutter 与 Movesens API 进行通信。请问这是什么问题?

这个包没有直接使用,但这部分正是来自这个包: https://gitlab.com/bluesquall/movesense_flutter

  static Future<String> setDataLoggerConfiguration(HRBandDevice device) async {
    const String configJsonString = '{"dataEntries": {"dataEntry": [{"path": "/Meas/Acc/13"}, {"path": "/Meas/Gyro/13"}]}}';

    final String response = await _wb.invokeMethod('put', {
      'path': 'suunto://${device.serial}/Mem/DataLogger/Config',
      'contract': configJsonString,
    });
    return response;
  }
                  String contract = call.argument("contract");
                                    Log.d(TAG, String.format("PUT %s : %s", path, contract));
                                    mMds.put(path, contract,
                                        new MdsResponseListener() {
                                            @Override
                                            public void onSuccess(String data) {
                                                Log.d(TAG, String.format("PUT received whiteboard response of type %s:", data.getClass().getName()));
                                                Log.d(TAG, data);
                                                result.success(data);
                                            }
                                            @Override
                                            public void onError(MdsException e) {
                                                Log.e(TAG, "PUT returned error:" + e);
                                                result.error(String.format("%d", e.getStatusCode()), "MdsException", e.getMessage() + String.format(", path: %s, contract: %s", path, contract));
                                            }
                                        } // MdsResponseListener
                                    ); // mds.put
                                    break;
D/MainActivity(19266): operation: put, path: suunto://204730000534/Mem/DataLogger/Config
D/MainActivity(19266): PUT suunto://204730000534/Mem/DataLogger/Config : {"dataEntries": {"dataEntry": [{"path": "/Meas/Acc/13"}, {"path": "/Meas/Gyro/13"}]}}
D/Mds     (19266): Mds put() uri: suunto://204730000534/Mem/DataLogger/Config contract: {"dataEntries": {"dataEntry": [{"path": "/Meas/Acc/13"}, {"path": "/Meas/Gyro/13"}]}}
I/Komposti(19266): [SDS REQUEST] type: PUT uri: suunto://204730000534/Mem/DataLogger/Config contract: {"dataEntries": {"dataEntry": [{"path": "/Meas/Acc/13"}, {"path": "/Meas/Gyro/13"}]}}
D/BleManager(19266): sendCb(1000000e), 13 bytes
D/BleManager(19266): Send complete
D/BleManager(19266): Received data: WB_DATAMSG_CLIENT_ON_PUT_RESULT, type: 7, direct msg, msgLen: 10, reqId: 5377, size: 16
E/Komposti(19266): [SDS RESPONSE] type: PUT status: BAD_REQUEST header: {"TaskId": 156, "Uri": "suunto://204730000534/Mem/DataLogger/Config", "Content-Length": 0, "Reason": "[wb] Operation failed", "Status": 400}
D/MdsOperationHandler(19266): SDSInternalCallback with call type: 4 header: {"TaskId": 156, "Uri": "suunto://204730000534/Mem/DataLogger/Config", "Content-Length": 0, "Reason": "[wb] Operation failed", "Status": 400}
E/MainActivity(19266): PUT returned error:com.movesense.mds.MdsException: Failed status: 400, reason: [wb] Operation failed
E/flutter (19266): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: PlatformException(400, MdsException, Failed status: 400, reason: [wb] Operation failed, path: suunto://204730000534/Mem/DataLogger/Config, contract: {"dataEntries": {"dataEntry": [{"path": "/Meas/Acc/13"}, {"path": "/Meas/Gyro/13"}]}}, null)

配置 json 对象应如下所示:

        '{ "config": { "dataEntries" : { "dataEntry" : [{ "path" : "/Meas/HR" }] }}}'

或者这个用于 Acc 和陀螺仪:

        '{ "config": { "dataEntries" : { "dataEntry" : [{ "path" : "/Meas/Acc/13" }, { "path" : "/Meas/Gyro/13" }] }}}'