Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 26.04.2017, 13:41  
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Сохранение и загрузка настроек в текством файле

Спасибо всем участникам дискуссии. Получил достаточно информации к размышлению и реализации. Хотелось бы подвести промежуточные итоги.
1. Для быстрого хранения данных на внешнем носителе в системах с ограниченными ресурсами ИМХО оптимален метод предложенный Someone: объединение записываемых данных в некую структуру и "заворачивание" этой структуры union-om в набор байт.
2. При необходимости визуального контроля сохраняемых данных ИМХО удобен способ хранения аналогичный ini-файлам, с разбором содержимого готовым парсером.
3.Использование дополнительных идентификаторов типов данных для упрощения разбора входного потока мне кажется тоже перспективной идеей.
Тут возникал вопрос о причине выбора текстового формата. Большинство причин уже озвучены участниками обсуждения, в первую очередь - простота восприятия человеком. Железки конечно могут общаться и битовым потоком, но если нам проще воспринимать текст - пусть поднапрягутся и делают так, как нам удобнее
Реклама:
__________________
misterdi<@>i.ua
MisterDi вне форума  
Непрочитано 26.04.2017, 14:00  
OakRidge
Почётный гражданин KAZUS.RU
 
Аватар для OakRidge
 
Регистрация: 16.05.2015
Адрес: Болгария
Сообщений: 1,460
Сказал спасибо: 286
Сказали Спасибо 1,125 раз(а) в 540 сообщении(ях)
OakRidge на пути к лучшему
По умолчанию Re: Сохранение и загрузка настроек в текством файле

MisterDi
Я делаю обмен информации по GSM сетям. Тоесть, GSM модуль посылает пакет серверу.
Бинарным кодом. Мне не нравится, да таков закон. И здесь вступает в роль программист, который выводит данные на экран. Я не умею такое делать.
Да и программисту трудно выделить бит из сообщения.
Тоесть пусть длинне, да данные в ASCII понятнее. И Вам и Програмисту. Из за непоняток и экономии трафика много проектов кривыми получились.
OakRidge вне форума  
Непрочитано 26.04.2017, 15:25  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,260
Сказал спасибо: 11,170
Сказали Спасибо 3,860 раз(а) в 2,930 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Сохранение и загрузка настроек в текством файле

MisterDi, так тут много копий было поломано по поводу целесообразности затрат на текстовое представление.
Многие аспекты будут против.
Сниженное время автономной работы за счёт увеличения времени на обработку и ввод-вывод. Это в программе на C немного дополнительного кода, а в машинных командах там немало получится, ну и рост больше чем на порядок объёма данных.
Объём дополнительного кода и его сопровождение (часто выливается в параллельный проект).
Актуальность визуального контроля потока данных. Этот аспект спокойно решается в значительной части случаев отдельной утилитой. Или их набором- для автоматического контроля параметров и анализа человеком.


Просто я уже очень много раз наблюдал метаморфозы проектов с подобными решениями и имел немало лишней работы по разрешению возникших тупиков.

Даже в родной среде Unix (/etc, /var как минимум) затраты на модификацию кода для работы с бинарными данными в итоге дают выигрыш в автономности порядка 10-15% минимум.
Конечно при этом растёт объём кода дополнительных утилит, но тут таки автономность сначала, а все остальное - это ее обеспечение.
Тут как всегда и два конца у той палки, и бритва от монаха .
Когда создадут железо с аппаратной реализацией на уровне машинных команд преобразования представлений (на уровне printf/sprintf), тогда можно будет и вернуться к обсуждению .
Пока лишь оценка отношения общего объема данных к обрабатываемому человеком и совокупные затраты в двух моделях представления информации дадут ответ. А поскольку совсем не важно где и когда происходит преобразование в человекочитаемую форму и в точке возникновения/потребления данных преобразование формально лишено смысла, то и ответ очевиден. Это таки только форма представления.
Кстати в гонке программ/процессоров/памяти на ПК часть роста затрат принадлежит именно такому подходу. Дело Билла бессмертно .

OakRidge, а программисту по сути (в первом приближении) глубоко фиолетово используемое представление данных. Во втором же приближении отсутствие парсера для текстовых данных гораздо комфортнее. Есть структура, прочитал данные и вывел их, без дополнительного разбора и анализа переданного в тексте. Конечно можно передавать все текстом в фиксированном формате, но это уже больше на фобию похоже с неоправданными расходами на трафик .
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…

Последний раз редактировалось mike-y-k; 27.04.2017 в 13:37.
mike-y-k вне форума  
Сказали "Спасибо" mike-y-k
MisterDi (27.04.2017)
Непрочитано 26.04.2017, 15:46  
anton26ru
Вид на жительство
 
Аватар для anton26ru
 
Регистрация: 21.07.2009
Сообщений: 350
Сказал спасибо: 47
Сказали Спасибо 98 раз(а) в 58 сообщении(ях)
anton26ru на пути к лучшему
По умолчанию Re: Сохранение и загрузка настроек в текством файле

mike-y-k, а может быть текстовый файл - решение для тестовой модели? А в дальнейшем возможны изменения и отказ от него. Для бета-версии вполне удобное решение.
anton26ru вне форума  
Непрочитано 26.04.2017, 16:01  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,260
Сказал спасибо: 11,170
Сказали Спасибо 3,860 раз(а) в 2,930 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Сохранение и загрузка настроек в текством файле

anton26ru, "нет ничего более постоянного, чем временное"(c)!!!
Или сразу ТЗ, нормальная постановка и путь к release/production без костылей, или постоянное "переделать" в 2do, откладываемое с тем же постоянством по очень объективным причинам. Практика таки говорит именно так . Да и затраты на переделку растут в прогрессии со временем…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 26.04.2017, 17:41  
anton26ru
Вид на жительство
 
Аватар для anton26ru
 
Регистрация: 21.07.2009
Сообщений: 350
Сказал спасибо: 47
Сказали Спасибо 98 раз(а) в 58 сообщении(ях)
anton26ru на пути к лучшему
По умолчанию Re: Сохранение и загрузка настроек в текством файле

Ну, прокрастинация - это отдельная тема.
anton26ru вне форума  
Непрочитано 26.04.2017, 19:06  
hacker7
Вид на жительство
 
Регистрация: 07.01.2007
Адрес: Ленинградская обл
Сообщений: 428
Сказал спасибо: 147
Сказали Спасибо 71 раз(а) в 56 сообщении(ях)
hacker7 на пути к лучшему
По умолчанию Re: Сохранение и загрузка настроек в текством файле

Советую всё же написать printf но имен параметров не использовать, а использовать как можно простой заведомо работающий формат, фиксированное расположение.
Имею очень боьшой опыт успешного применеия оного. Даже в системах реального времени, с доступом от десятков писателей\читателей в этот файл. Получается лучше, чем СУБД. То есть НЕ обмен сообщениями по сети, а обмен через файл чем-то типа NetBIOS.
Алфавитное представление нужно чисто для отладки и наблюдения глазами, а так можно и во внутр. предст, но неудобно
hacker7 вне форума  
Непрочитано 27.04.2017, 00:36  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,260
Сказал спасибо: 11,170
Сказали Спасибо 3,860 раз(а) в 2,930 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Сохранение и загрузка настроек в текством файле

hacker7, так опыт использования есть тут у всех. Просто ради просмотра в привычном виде придётся городить целую систему с правилами. К ТЗ на основную функцию прибавляется ТЗ на формат представления. К программированию основной функции добавляются формирование+запись и чтение+разбор текстового представления. А бинарный вариант - просто чтение/запись файла.

Если грамотно спроектировать используемую структуру данных, то больше никаких операций в программе не нужно. Имеется в виду использование данных из самой структуры, а не копирование их туда сюда в памяти. Для той структуры пишется тупой генератор кода из ее описания в .h - обычный скрипт, можно даже придумать парсинг комментариев в текстовый вывод. Код компилируется и можно увидеть в привычном виде данные в тексте. Обратный процесс не сильно сложнее. При изменениях в .h - их обработка ведётся на уровне make, без вмешательства разработчика.
При отладке можно на носитель просто писать дамп памяти для последующего анализа.
Пользуюсь таким способом, весьма удобно. Нужное легко находятся diff по серии снимков . Пространство имён берётся из вывода компилятора. Если много анализируемых полей пишется отдельный вывод в тексте.
Только вся эта работа с визуализацией, анализом и редактированием ведётся не в целевой системе, занятой своим основным делом и на постоянной основе, а при необходимости и на другой системе.

PS вариант позиционного вывода значений без имён будет ещё сложней в сопровождении и кроме текстового представления двоичных данных не даёт никакого улучшения, только ещё один поиск по таблице "значение параметра X находится в 3761 строке файла, а параметра Y - в 131" .
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…

Последний раз редактировалось mike-y-k; 27.04.2017 в 00:41.
mike-y-k вне форума  
Непрочитано 27.04.2017, 04:46  
H4LF
Вид на жительство
 
Аватар для H4LF
 
Регистрация: 10.06.2007
Сообщений: 429
Сказал спасибо: 34
Сказали Спасибо 51 раз(а) в 47 сообщении(ях)
H4LF на пути к лучшему
По умолчанию Re: Сохранение и загрузка настроек в текством файле

Сообщение от mike-y-k Посмотреть сообщение
А бинарный вариант - просто чтение/запись файла.
В общем случае - не просто (раз уж основы проектирования, а не философия). Для входящих данных (с флешь карты) тоже может потребоваться валидация - если от неправильных данных системе может стать плохо. Хотя можно сделать тяп-ляп и в продакшн, понадеявшись что ошибок чтения, записи или даже злого умысла не будет.
Ну и есть ещё мелочи вроде порядка байт и упаковки структур, о которых не стоит забывать. Может ещё какие есть, я в этом деле дилетант.
Но реализовать, конечно, заметно проще, чем с текстом, с этим я и не спорил.
А, ещё хотел спросить - акты какие-нибудь составляются, чтобы легче было найти виновных в случае чего, или только ТЗ? Но это на правах шутки)
H4LF вне форума  
Непрочитано 27.04.2017, 06:38  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,121
Сказал спасибо: 2,569
Сказали Спасибо 11,945 раз(а) в 5,992 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Сохранение и загрузка настроек в текством файле

Хотелось бы сказать поборникам бинарников.
Текстовый файл с "человеческой" информацией человеком воспринимается при наличии любых изменений. А вот бинарник "закатом солнца вручную" разбирать можно только хорошо зная структуру и версию этой структуры файла. Можно написать программку для ББ, которая поможет в этом нелегком деле. Но тогда ее прийдется переписывать под каждый чих.
Так что проще?
И запись в файл, и загрузка из него могут быть выполнены циклами. Много места займут только имена параметров.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создаем ПЛК на базе IEC 61131 kos_ua Микроконтроллеры, АЦП, память и т.д 330 29.01.2024 09:50
Ускорить компьютер 7Fantomas7 Ремонт оргтехники 111 08.08.2018 05:27


Часовой пояс GMT +4, время: 02:00.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot