В хранилище данных есть 384 КБ места. DataLogger / Журнал использует около 6% для различных видов накладных расходов, поэтому остальное доступно для хранимых данных. Если вы сохраняете / Meas / HR, то размер сгенерированного хранилища составляет 6 байтов. Это означает, что имеется около 61000 RR интервалов дискового пространства. В зависимости от частоты сердечных сокращений (имеется одно обновление на детектирование RR в / Measure / HR), хранение должно длиться 5,5-17 часов (HR: 180/60) Поскольку формат хранения генерируется автоматически из описания службы, можно оптимизировать формат, создав тип интерфейса службы, который соответствует вашим потребностям, и использовать его в качестве пути в DataLogger / Config.
Итак, чтобы перейти к 3 дня хранения, я бы создал «прокси-сервис», который подписывается на / Meas / HR (или / Algo / ECGRR, если вы используете нашу реализацию Pan-Tompkins SW) и изменяет формат на более подходящий. Однако для этого потребуется реализовать собственную прошивку.
Несколько простых идей, как увеличить срок хранения в вашем случае:
- Просто укажите RR как uint16 (мс). Это означает, что объем памяти на один RR составляет 2 байта вместо 6 и должен утроить объем памяти. Легко реализовать и должно утроить время хранения, что не займет у вас 3 дня, но значительно улучшит ситуацию и не потребует ничего особенного в мобильной части при интерпретации данных.
- Другой способ - объединить несколько измерения на датчике и хранить их в большем блоке в сжатом формате. Например, есть буфер ОЗУ, который собирает 512 выборок RR и затем выполняет некоторое сжатие блоков на нем. Формат службы будет состоять из данных в сжатом формате. Недостатком является необходимость распаковки кода при интерпретации данных в мобильном приложении.
Полное раскрытие информации: я работаю в команде Movesense