1

技​​术规格表中,似乎 Movesense 使用 512kB 本地内存运行:

我对吗?我们是否能够计算它能够在本地存储数据多长时间(例如 26Hz)。

这个想法是在本地存储数据,并偶尔将其与移动应用程序同步。

谢谢

4

1 回答 1

2

更新 2:

软件版本 1.4、1.6 和 1.9 中的 DataLogger 和 Logbook 改进使情况变得更好。现在块开销较小,为 15/255 字节,并且可以将具有大测量值的数据拆分为后续块。还要查看内存是否已满,还有可以 GET 和 SUBSCRIBE的/Mem/Logbook/ isFull 资源。


更新:

在最后的原型构建(硬件构建 G1)和生产构建中,EEPROM 数据内存已增长到384kB。内存可以在DataLogger/Logbook使用和“其他”(Movesense 设备库软件版本 >= 1.0.1)之间自由分配。


Movesense 传感器具有(在撰写本文时):

  • 512kB FLASH(程序)内存,其中约 70kB 用于客户应用程序(其余由蓝牙堆栈、引导加载程序、movesense 平台和设置占用)
  • 64kB 的 RAM,其中约 10kB 为蓝牙堆栈保留。在初始化框架和执行上下文后,当前软件似乎有 12.5kB 的空闲堆供客户软件使用。
  • 128 kB 的 EEPROM 数据存储器(尽管在生产版本中可能更大)。这是DataLogger保存测量值的内存。

dataLogger所需的每次测量字节数见/sbem-code/sbem_definitions.cpp。在 26Hz 采样率下,每个数据包包含 2 个测量值,因此需要 28 个字节并且它们以 13Hz 的间隔出现。每个 EEPROM 块中有 112 个字节可用于数据,因此它完全适合,每个 128 字节块可以包含 4 个数据包。所以答案:

128*1024 [B] / 128 [B / chuck] / ( 13 [pkg/sec] / 2 [pkg/chunk] ) =>
1024 [chunks] / 6.5 [chuck/sec] = ~157 seconds

免责声明:以上计算是针对当前 Movesense 硬件和当前软件的,未来两者的情况可能会发生变化

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

于 2017-09-06T09:22:16.597 回答