Перейти к содержимому
Черновик: материал сгенерирован и ещё не вычитан.

Хранение данных — внутренняя память, microSD и eMMC

У прибора два независимых хранилища:

  • внутренняя флеш-память — есть всегда, хранит только архив точек;
  • microSD-карта или eMMC — есть не на всех модификациях, хранит архив, фотографии, файлы геозон, скрипты, логи и любые пользовательские файлы.

eMMC — это распаянная микросхема памяти (по умолчанию 4 ГБ) вместо слота для карты. Для прибора и для команд это то же самое хранилище: всё, что написано ниже про microSD, так же работает и с eMMC.

Какие блоки есть в конкретном приборе, видно во вкладке Устройство — наведите курсор на код спецификации.

⚙ Открыть устройство

Секция ТрекАрхив:

Место хранения архива (ARCHIVE <0|1>) — откуда брать сохранённые данные для отправки на сервер:

ЗначениеХранилище
0внутренняя флеш-память
1microSD-карта / eMMC

Структура архива (FLASHARCHIVE 1,<0|1>) — порядок отсылки данных из внутренней памяти на сервер:

ЗначениеПорядок
0сначала самые свежие записи, затем самые старые
1в хронологическом порядке

Порядок актуален только для внутренней памяти: при работе с microSD-карты выгрузка всегда хронологическая.

⚙ Архив

Изменение относительно старой документации. Раньше FLASHARCHIVE переключала архив между «статической» и «динамической» структурой. На 10, 7x и XS динамическая структура используется всегда (в архив пишутся только данные, выбранные для отправки на сервер), а первый параметр команды зафиксирован единицей — настраивается только порядок выгрузки.

Что именно попадает в архив, задаётся составом основного пакета в секции «Протокол» — см. «Настройка трека».

Место на карте делится между тремя потребителями. Доли задаются в процентах командой SDQUOTA:

  • SDQUOTA <индекс>,<процент> — задать долю: 0 — архив, 1 — сборщик архивов, 2 — фотографии; значение 0…100.
  • SDQUOTA без параметров показывает текущее распределение.
  • Сумма всех долей не должна превышать 100 % — иначе прибор отвечает sum must not exceed 100% и настройку не применяет.

Значения по умолчанию зависят от модификации прибора. На приборе с картой (или eMMC) и поддержкой режима точки доступа Wi-Fi бо́льшая часть места отдана сборщику архивов:

SDQUOTA
SDQUOTA: 0(Archive)-20%, 1(Collector)-60%, 2(Photo)-20%

На остальных приборах сборщик места не занимает, а карта делится пополам между архивом и фотографиями:

SDQUOTA
SDQUOTA: 0(Archive)-50%, 1(Collector)-0%, 2(Photo)-50%

Индекс 1 настраивается не везде. Доля сборщика архивов существует только на приборах с режимом точки доступа Wi-Fi. На остальных она равна нулю и не сохраняется: команда SDQUOTA 1,20 там не даст эффекта — это не неисправность прибора. Всё место в этом случае распределяйте между индексами 0 и 2.

А на приборе без карты и без eMMC квот нет вообще. Если носитель не предусмотрен модификацией, ни одна из трёх долей не заводится в конфигурации: раздел квот в конфигураторе будет пустым, а команда SDQUOTA — бесполезной. Делить в этом случае нечего, весь архив живёт во внутренней флеш-памяти.

SDINFO
SDINFO: <идентификатор> FS:FAT32; Total:15200 MB; Free:14100 MB;

Команда показывает файловую систему (FAT12/FAT16/FAT32/exFAT), общий и свободный объём. Если карты нет, ответ — SD card is not present (на приборах с eMMC — eMMC is not present).

КомандаДействие
MOUNTсмонтировать карту (ответы mounted, already mounted)
UMOUNTразмонтировать перед извлечением (umounted, already umounted, umount error)
MSDрежим USB-накопителя: карта отдаётся компьютеру как флешка
JOURNALINGSD <0|1>журналирование файловой системы
READONLYSDзапрос режима «только чтение» (аппаратный, изменить нельзя)

Извлекать карту на ходу не нужно: UMOUNT корректно завершает запись, MOUNT возвращает карту в работу.

Форматирование двухшаговое, чтобы его нельзя было выполнить случайно:

FORMATSD
FORMATSD: format key: 4821
FORMATSD 4821
FORMATSD: scheduled

Сначала запросите ключ командой без параметров, затем отправьте ключ параметром. Форматирование выполняется при следующем удобном моменте — все данные на карте будут удалены. На приборах с аппаратным режимом «только чтение» команда отвечает denied.

КомандаДействие
FSLIST <путь>[,<часть>]список содержимого каталога; длинный список отдаётся частями
FSLIST2 <путь>[,<глубина>]рекурсивный список с заданной глубиной вложенности
FSDELETE <имя>удалить файл или каталог по полному пути
FSMOVE <источник>,<приёмник>[,<true|false>]переместить или переименовать файл/каталог; третий параметр true разрешает затереть занятое имя приёмника

Завершающий слэш в путях можно не убирать — прибор отбрасывает его сам, /Arc/ и /Arc для него одно и то же.

FSDELETE /Geofences/zones.kml
FSDELETE: Success
FSMOVE /01,/02
FSMOVE: Success

Ответы, которые встречаются чаще всего:

ОтветКогда приходитЧто делать
Successоперация выполнена
File or dir doesn't existsFSDELETE: по указанному пути нет ни файла, ни каталогасверьте путь через FSLIST: он пишется полностью, от корня, и чувствителен к регистру
Source name doesn't existsFSMOVE: не найден источник (первый параметр)то же — проверьте путь через FSLIST
Destination name already existsFSMOVE: имя приёмника уже занято, а перезапись не разрешенавыберите другое имя, удалите старое через FSDELETE или добавьте третьим параметром true
Failed: <код>путь найден, но сама операция не прошласмотрите код в таблице ниже

Failed — самый редкий из ответов: путь прибор уже нашёл, отказала файловая система. Номер — код ошибки FatFS:

FSDELETE /Arc/Collector/0080C25E2C11
FSDELETE: Failed: 7

Чаще всего это 7 — попытка удалить непустой каталог: сначала удалите содержимое, потом сам каталог.

КодОшибкаЧто означает
0FR_OKуспешно
1FR_DISK_ERRошибка низкого уровня ввода/вывода
2FR_INT_ERRне удалось получить подтверждение
3FR_NOT_READYфизический диск не работает
4FR_NO_FILEфайл не найден
5FR_NO_PATHпуть не найден
6FR_INVALID_NAMEнедопустимый формат имени пути
7FR_DENIEDдоступ запрещён или каталог не пуст
8FR_EXISTобъект уже существует
9FR_INVALID_OBJECTнекорректный объект файловой системы
10FR_WRITE_PROTECTEDноситель защищён от записи
11FR_INVALID_DRIVEневерный номер устройства
12FR_NOT_ENABLEDрабочая область тома не выделена
13FR_NO_FILESYSTEMкорректная файловая система не найдена
14FR_MKFS_ABORTEDформатирование прервано
15FR_TIMEOUTпревышено время ожидания доступа к тому
16FR_LOCKEDоперация запрещена политикой блокировок
17FR_NOT_ENOUGH_COREне удалось выделить память
18FR_TOO_MANY_OPEN_FILESслишком много открытых файлов
19FR_INVALID_PARAMETERнекорректный параметр
20FR_LOCKED_JRNфайл заблокирован журналом
21FR_COMMIT_JRN_ERRORошибка фиксации журнала
22FR_SYNC_DATA_JRN_ERRORошибка синхронизации данных журнала
23FR_JRN_INIT_ERRORошибка инициализации журнала

Чтобы прочитать или изменить содержимое файла (а не только удалить или переименовать), нужны алгоритмы EasyLogic — см. «Работа с содержимым файлов».

Загрузить и забрать файлы удалённо можно синхронизацией по WebDAV — «Удалённая синхронизация файлов».

⚙ Открыть команды

Прибор умеет сам паковать и распаковывать архивы — это экономит место и трафик при выгрузке логов.

КомандаФормат
ZIPZIP <файл|каталог>,<имя архива>,<уровень сжатия 0…9>
ZIPLISTZIPLIST <имя архива> — список содержимого в диагностику
UNZIPUNZIP <имя архива>,<каталог>[,<файл в архиве>]
UNPACKUNPACK <имя .gsz>,<имя результата>

Операции выполняются в фоне: команда отвечает started, result will be shown in diag, а результат печатается в диагностике. Одновременно выполняется только одна операция — иначе ответ another operation is already in progress.

Архив пишется во временный файл с суффиксом .tmp и переименовывается только после успешного завершения: наличие целевого файла и есть признак готовности.

⚙ Открыть диагностику

Прибор считает ошибки работы с картой и при превышении порога может сам перезагрузиться. Секция СамодиагностикаSD:

ПараметрКомандаПорог по умолчанию
Ошибки монтированияSMARTATTRCFG403 0,<порог>,<сброс>1000 (≈ 100 с)
Ошибки монтирования журналаSMARTATTRCFG404 0,<порог>,<сброс>1000 (≈ 100 с)
Ошибки тайм-аутаSMARTATTRCFG405 0,<порог>,<сброс>1000 (≈ 16 мин)
Ошибки закрытия файлаSMARTATTRCFG406 0,<порог>,<сброс>100

Второй параметр — разрешить перезагрузку прибора при достижении порога (0/1, по умолчанию выключено). Порог ошибок закрытия файла равен числу заблокированных файлов: при ошибке записи доступ к файлу блокируется и повторные попытки не выполняются.

⚙ Открыть самодиагностику SD-карты

Систематические ошибки монтирования и тайм-аутов почти всегда означают изношенную или несовместимую карту — замените её и проверьте SDINFO.


См. также: Настройка трека · Работа с содержимым файлов · Удалённая синхронизация файлов (WebDAV) · Геозоны · Экономия трафика и работа в роуминге