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" }] }}}'
我正在尝试设置 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" }] }}}'