реклама на сайте
подробности

 
 
> Сохранение параметров в файл, С использованием библиотеки fat fs
Ivan Kuznetzov
сообщение May 28 2013, 16:11
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



Добрый день! Работаю на МК с fat fs. Подскажите пожалуйста как грамотнее и красивее организовать хранение параметров в файле, затем самим контроллером парсить и модифицировать отдельные значения в таком файле?


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AlexandrY
сообщение May 30 2013, 06:12
Сообщение #2


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Ivan Kuznetzov @ May 28 2013, 19:11) *
Добрый день! Работаю на МК с fat fs. Подскажите пожалуйста как грамотнее и красивее организовать хранение параметров в файле, затем самим контроллером парсить и модифицировать отдельные значения в таком файле?


Зависит от сценария использования параметров.

Раньше использовал очень простой подход.
Объявлял все параметры как члены одной структуры. И сохранял эту структуру одной командой fwrite в файл.
Первоначально файл создавался в файловой системе самой программой при первом запуске со значениями по умолчанию.
Далее параметры правились через какой-нить интерфейс пользователя в дивайсе.

Сложнее приходилось когда надо было этот файл заранее создать в FS, чтобы избавить пользователя от ручного ввода.
Тогда писалась программа на PC.

Этот метод и поныне благополучно используется в промышленных дивайсах.
Например в частотных преобразователях OMRON которые славятся своей универсальностью и в которых параметров более трех сотен используется такой примитивный метод.
Все параметры они умудрились представить одно или двух байтными числами каждое со своим масштабированием. Никаких проблем с типизацией. Адаптировано для правки на 4-х позиционном 7-и сегментном индикаторе. Удобно при работе через протокол MODBUS. Для компа имеют свою специализированную программу.
Но это настоящий кошмар для наладчиков.
Каждый год с выходом новой версии прошивки частотника старые файлы параметров перестают подходить к новой партии частотников. И надо опять искать того гуру который конфигурировал параметры чтобы их заново адаптировать.

Потом я перешел на текстовые файлы в стиле .INI где параметры хранились в виде пар [имя]=[значение]
Информация о типах переменных по прежнему хранилась жестко в программе.
Но в .INI файлы можно добавлять коментарии. Это сильно упростило передачу таких фалов в управление в чужие руки.
Поначалу был примитивный парсер .INI файлов и юзеры из под копьютеров с разными операционками умудрялись туда внедрять невидимые служебные символы от которых парсер сбивался. Появилась необходимость делать валидатор .INI файлов с неясной доморощенной спецификацией.

И тогда я перешел на формат JSON.
Он прежде всего интересен своей точной спецификацией. Его можно проверить в куче онлайн валидаторов. Т.е. гарантируется абсолютная синтаксическая чистота.
В JSON параметры хранятся также в формате [имя]=[значение], но при этом еще и в виде иерархических структур.
Тип параметров можно описать в самом файле JSON. Очень удобно для передачи строковых параметров. Поддержка UTF8, т.е. строки могут быть на любом языке.
Наличие у каждого параметра имени сильно упрощает обращение к ним из скриптов или при создании HTML страниц редакторов параметров.
Обратная генерация JSON файлов правда несколько сложновата, поскольку для embedded дивайсов я не нашел исходников такой фичи.
Это связанно с тем, что нет единого стандарта на представление JSON структуры в памяти контроллера.
Я пока остановился на древовидных структурах в динамической памяти реализованных на списках.
Генерацию реализовал, но без сохранения форматирования, а без форматирования JSON становиться нечитабельным. sad.gif


Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение May 30 2013, 06:57
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(AlexandrY @ May 30 2013, 10:12) *
Спасибо за наводку на JSON!
Куда читабельнее xml'я!


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 08:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016