0

通知响应的内容和格式是/Algo/ECGRR什么?

我使用Movesense-mobile-lib 存储库中的DataLoggerSample Android 应用程序的略微修改版本在 movesense 硬件上订阅了它,传感器运行默认设备固件。一段时间后,我可以从传感器上取下日志。.json

(在我试图弄清楚如何在设备上记录数据时遇到的另一个 SO 问题中提到了这一点。)

但我在Movesense-device-lib 存储库中看不到默认设备固件,在线文档中也没有/Algo列出 API 。

我正在寻找通知响应的具体单位和内部表示。这些单位通常会在yamlAPI 定义中给出,例如,这里是 for /Meas/HR

  /Meas/HR/Subscription:
post:
  description: |
    Combined subscription to average HR and R-R data.
  responses:
    200:
      description: Operation completed successfully
      schema:
        $ref: 'types.yaml#/definitions/HRData'
    x-notification:
      description: |
        Notifications comprise average HR (Hz) with the latest RR (ms) data
      schema:
        $ref: 'types.yaml#/definitions/HRData'

post/x-notification/description字段告诉我们单位。

.json带有对 的通知响应的输出中/Algo/ECGRR,例如:

{"Algo":[
  {"RR":742,"SNR":16,"Timestamp":14326776},
  {"RR":743,"SNR":16,"Timestamp":14327521},
  {"RR":726,"SNR":17,"Timestamp":14328240},
  {"RR":720,"SNR":14,"Timestamp":14328961},
  ...
  {"RR":660,"SNR":12,"Timestamp":20613697}]

我们可以假设单位是:

  1. RR 间隔的毫秒数
  2. SNR 无单位
  3. 时间戳的毫秒数

我们可以做出有根据的猜测,内部表示是:

  1. uint16 用于 RR 间隔
  2. 用于信噪比的 uint8
  3. uint32 时间戳

但我宁愿在某处看到确认,而不是假设.

Timestamp 字段相对于什么零参考?

另一个SO问题告诉我们

如果要存储 /Meas/HR,则生成的存储格式总共有 6 个字节长。

并且.json输出是一个带有整数的浮点数:

"Meas":{"HR":[
  {"average":98.791664123535156,"rrData":[720]},
  {"average":97.158706665039062,"rrData":[712]},
  ...

所以一个有根据的猜测是内部表示是float32& uint16,但这仍然只是一个猜测。

存储格式是多长时间/Algo/ECGRR?我在哪里可以找到其他类型的信息?因为我在 API 中没有看到它。

4

1 回答 1

0

编辑回答修改后的问题

您对 /Algo/ECGRR 通知的结构是正确的。我已经为您附上了下面 yaml 文件中的定义:

definitions:
  ECGRRData:
    required:
      - Timestamp
      - RR
      - SNR
    properties:
      Timestamp:
        description: Local timestamp of RR detection.
        type: integer
        format: uint32
        x-unit: millisecond
      RR:
        description: RR interval
        type: integer
        format: uint16
        x-unit: millisecond
      SNR:
        description: Estimated SNR of ECG signal (dB)
        type: integer
        format: int8

原始答案

这个问题可以更好地表述为“我如何为自己的固件包含 /Algo/ECGRR 服务?” 并且我们当前的文档并没有很好地包含该信息(它将被添加)。

简短回答:ECGRR 服务是一个单独许可的软件模块,可供需要它的开发人员使用。获得它的方法是向 Movesense 团队(信息(at)movesense.com)索取,并且在订购生产数量时可能会产生许可费用(由负责定价的人决定)。

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

于 2020-03-18T09:57:12.077 回答