-
- Сериализация, самописный Protocol Buffers. инженер(322 знак., 13.09.2017 11:54, )
- чтение- param=[LF], запись- param=value[LF]. В большинстве случаев спец.софт не нужен, хватает терминала... ferrum(110 знак., 10.09.2017 14:14 - 14:22)
- чего, неплохо. но тогда нужно list/dir, да и формат значений непонятен - VLLV(60 знак., 12.09.2017 16:21)
- ну Вы ваще! И говна и ложку и побольше. Простая и тривиальная приблуда разрастается в что то тяжелое. - Nikolay801_(13.09.2017 08:12)
- Думал, как упростить, пока до такого урезал: две команды вроде get и put, далее - имя переменной, которое транслируется в адрес(макросами?) сравнением со строкой. Ввод-вывод в шестнадцатиричных кодах(соответственно разрядности). Чуть продвинутей Dingo(455 знак., 13.09.2017 09:42)
- Берём ассемблер, задаем значения, с макросами и комментариями, компилируем в бинарник, загружаем. Я так делал. - Скрипач(13.09.2017 09:46)
- Думал, как упростить, пока до такого урезал: две команды вроде get и put, далее - имя переменной, которое транслируется в адрес(макросами?) сравнением со строкой. Ввод-вывод в шестнадцатиричных кодах(соответственно разрядности). Чуть продвинутей Dingo(455 знак., 13.09.2017 09:42)
- Не в ту сторону, IMHO, поворот. Скрипач(164 знак., 12.09.2017 16:48)
- ну Вы ваще! И говна и ложку и побольше. Простая и тривиальная приблуда разрастается в что то тяжелое. - Nikolay801_(13.09.2017 08:12)
- чиста из эстетических соображений, лучше чтение - param?. Тогда можно игнорировать перенос строки, пробелы, табы и пр. с этим можно файлик как то примитивненько отформатировать. - Nikolay801_(12.09.2017 08:21)
- ...и так более ста параметров? Скрипач(50 знак., 10.09.2017 14:18 - 14:20)
- чего, неплохо. но тогда нужно list/dir, да и формат значений непонятен - VLLV(60 знак., 12.09.2017 16:21)
- MODBUS ? - AVF(10.09.2017 08:53)
- Есть такое. Но есть минус - когда счет выведенных через Modbus переменных начинает идти на сотни, все известное мне клиентское ПО становится крайне не удобным. Что-то изменилось в начале адресного пространства, адреса "поплыли" и начинается AlexG(128 знак., 10.09.2017 11:01)
- А зачем менять что-то в начале таблицы? Скрипач(157 знак., 10.09.2017 11:23 - 11:28)
- Я обычно группирую данные по логической связанности +из-за особенностей ПО устройства некоторые данные могут идти только в определенной последовательности (например, массивы структур из памяти МК отображаемые на регистры Modbus). Оставляю между AlexG(86 знак., 10.09.2017 11:30)
- А зачем? Скрипач(275 знак., 10.09.2017 13:01 - 13:08)
- делаю массив указателей на параметры, т.е. если спрашивают регистр Х, то в массиве по адресу Х лежит указатель на нужную переменную, получается дикий оверхед по флэши - 4 байта на каждый параметр, но сильно упрощает все остальное. Делаю в виде AVF(1070 знак., 10.09.2017 13:04)
- существуют команды файлового доступа с адресацией до 32+8 бит. - Vit(10.09.2017 12:02)
- Это уже совсем дебри, под команды файлового доступа ни одной готовой программы не найти (одну знаю на самом деле) В этом случае свое клиентское ПО нужно уже без вариантов и теряется смысл использования стандартного протокола. - AlexG(10.09.2017 12:08)
- ИМХО, смысл не в "готовых" программах, а в простоте реализации и разделении труда. когда-нибудь от Вас в конечном продукте как комплексе всё-равно попросят/потребуют рюшечки в ПО для ПК - Vit(10.09.2017 12:17 - 15:50)
- Нет, не теряет. Потому что суть в документированности, а не в возможности любому пионеру накосячить выкачав бесплатных приблуд из Гугльмаркета. - Скрипач(10.09.2017 12:19)
- Насколько я помню, файловый доступ довольно плохо документирован. Смысл готовых программ не в обеспечении доступа для пионеров, а в совместимости. Когда собирается система с разработанным устройством в составе или собирается рабочее место для AlexG(362 знак., 10.09.2017 12:35)
- Вы бы сначала разделили конфигурационные параметры и используемые в "боевых" условиях. очень часто для "боевых" существует конфигурируемый пользователем участок адресов, куда группируются алиасы с других, часто "разбросанных" адресов. пользователю Vit(940 знак., 10.09.2017 16:11)
- Нормально он документирован. И реализован, обычно, "без изюминок". Скрипач(102 знак., 10.09.2017 13:05)
- Насколько я помню, файловый доступ довольно плохо документирован. Смысл готовых программ не в обеспечении доступа для пионеров, а в совместимости. Когда собирается система с разработанным устройством в составе или собирается рабочее место для AlexG(362 знак., 10.09.2017 12:35)
- Это уже совсем дебри, под команды файлового доступа ни одной готовой программы не найти (одну знаю на самом деле) В этом случае свое клиентское ПО нужно уже без вариантов и теряется смысл использования стандартного протокола. - AlexG(10.09.2017 12:08)
- Я обычно группирую данные по логической связанности +из-за особенностей ПО устройства некоторые данные могут идти только в определенной последовательности (например, массивы структур из памяти МК отображаемые на регистры Modbus). Оставляю между AlexG(86 знак., 10.09.2017 11:30)
- Так модбас не противоречит своему ПО, собственно тоже так делаю - AVF(10.09.2017 11:18)
- А зачем менять что-то в начале таблицы? Скрипач(157 знак., 10.09.2017 11:23 - 11:28)
- Есть такое. Но есть минус - когда счет выведенных через Modbus переменных начинает идти на сотни, все известное мне клиентское ПО становится крайне не удобным. Что-то изменилось в начале адресного пространства, адреса "поплыли" и начинается AlexG(128 знак., 10.09.2017 11:01)
- я делаю через сишные структуры, зачем нужны какие то интерпретаторы мне непонятно Nikolay801_(872 знак., 05.09.2017 11:14)
- консоль в микроконтроллере с micro readline: habrahabr.ru_post_127890 - microrl(04.09.2017 21:29, )
- консоль это хорошо, но это для инженеров/разрабочиков, ну может наладчиков. Но не для юзеров, простой народ не поймет. - Nikolay801_(05.09.2017 11:16)
- консоль. народ поймет, а если нет - заплатит за красивую морду, использующую как транспорт ту же консоль:) - например, а-ля "проводник" в стиле wake. Vit(894 знак., 10.09.2017 10:45)
- Есть такая проблема, но этап разработки редко бывает, как пуля. Зато отработав функыиональность с инженерной программой,потом проще ставить задачу программисту. - VLLV(05.09.2017 14:18)
- Более того, суровые ымбеддеры перетопчутся и без истории ввода, автодополнения и цветов. Берёшь scanf - и вперёд, не нужны эти блюмблюатеки. Тоже мне, взяли моду - изображать из дохлого МК линуксовую машину. Это шизофрения, вот что это. - SciFi(05.09.2017 11:20)
- Спасибо, неплохой вариант! Посмотрю. (вынес ссылку) - Dingo(05.09.2017 04:49, ссылка)
- консоль это хорошо, но это для инженеров/разрабочиков, ну может наладчиков. Но не для юзеров, простой народ не поймет. - Nikolay801_(05.09.2017 11:16)
- Для настройки параметров прикручивать чудо-юдо интерпретатор? Мсье знает толк в извращениях. Для того, чтобы распарсить "param=123", никакая луа не нужна. - SciFi(04.09.2017 17:02)
- Дополню, что успел наковырять. #интерпретаторы #скрипты Dingo(1044 знак., 05.09.2017 07:47 - 15.09.2017 12:39)
- Хм. А если прикрутить скрипт, который будет генерить необходимый исходник, с входными параметрами типа - название, тип(разрядность), диапазон корректных значений. Нет готового? Хочется повторяющуюся задачу автоматизировать. Но сделать это так, Dingo(137 знак., 04.09.2017 17:26)
- Не скрипт, а "X Macro". У меня такое сделано для конфига в веб-интерфейсе. VLLV наверняка двачует. - SciFi(04.09.2017 17:28)
- Самописное. Ибо, прогу внутри МК "универсальную" ты не накастрячишь. И в чем тогда смысл искать что-то внешнее универсальное ? - _basile(04.09.2017 16:53, )
- Once upon a time, на телесиськах, кто-то говорил, что реализовал в AVR'ке(?) мастер терминала VT100 (с менюшками и пр.). И тупо на любом ПК запускает клиента VT100 на UART'е. - Toчкa oпopы(04.09.2017 18:19)
- Вот ищу такое. Никто не видел реализаций для мелкоконтроллеров, библиотек готовых или еще чего, что бы на Cortex-M3/4 можно было запустить? - GDI(11.09.2017 13:30)
- У нас тут есть один девайс и операторская панель к нему. Панель работает как терминал VT100. Очень удобно - никакой привязки версий прошивок с обоих сторон, девайс ничего не знает про панель, а панель про девайс. ПО можно дорабатывать с обоих AlexG(180 знак., 11.09.2017 08:31)
- у нас тоже такое было, на мега48/88, мега128. переехало сначала на ARM7, потом на разные Cortex-M. вполне удобно, кроме того, что клиентов немного и из понятного КИПовцам - HyperTerminal 6.3 какой-то там home edition, да и часто хотят видеть и Vit(314 знак., 11.09.2017 06:48)
- Как раз общие, универсальные моменты очень хорошо прослеживаются. Прочитать|записать байт|слово|двойное_слово, всё это со знаком, без знака и хорошо бы с проверкой допустимого диапазона; то же для строки. Реализацию записи и чтения можно 'вынести Dingo_(80 знак., 04.09.2017 18:13, )
- Только сейчас проникся, о чем речь. Есть у меня протокол, по следам SNMP, и проги универсальные есть - браузер и тестер, скрипты гоняет. И да, внутри контроллера на X-макро. vllv(1882 знак., 04.09.2017 18:21 - 18:40)
- И как это работает? Можете показать подробней, что там под капотом, в макросе IMPL_VARIABLE? - Dingo(05.09.2017 04:47)
- Что, больше интересует гвоздь, которым переменная к протоколу прибита? А универсальность/гибкость универсальных программ, идентификация переменных и объектов (групп переменных), скрипты - уже всё? ;) - vllv(05.09.2017 08:16)
- По показанным фрагментам непонятна идея/как_это_работает. X-MACRO видел, читал, понимаю (хоть и не прозрачно). А с вашими фрагментами нет. - Dingo(05.09.2017 08:36)
- Чего там понимать? Для набора параметров что нужно? Имена параметров, места хранения, типы и/или процедуры чтения/записи. Всё это может генерироваться в виде разных структур и/или массивов из ЕДИНОГО большого списка при помощи этих икс макросов, SciFi(366 знак., 05.09.2017 09:32 - 09:39)
- Проще говоря крестьянский полиморфизм раннего связывания - Petrovich(05.09.2017 10:50, )
- Файл приложил, но имейте ввиду - X-MACRO бьет по мозгам, как табак в самогонке, я просто беспокоюсь, что по этой причине вы отметете что-то хорошее (мое или не мое, неважно). vllv(3152 знак., 05.09.2017 08:49)
- Чего там понимать? Для набора параметров что нужно? Имена параметров, места хранения, типы и/или процедуры чтения/записи. Всё это может генерироваться в виде разных структур и/или массивов из ЕДИНОГО большого списка при помощи этих икс макросов, SciFi(366 знак., 05.09.2017 09:32 - 09:39)
- По показанным фрагментам непонятна идея/как_это_работает. X-MACRO видел, читал, понимаю (хоть и не прозрачно). А с вашими фрагментами нет. - Dingo(05.09.2017 08:36)
- учу гуглить. дорого. - SciFi(05.09.2017 08:14, ссылка)
- Спасибо за ссылку, несмотря на иронию. Не пойму, как это колдунство работает. Отдельно - да, связку - не пойму. - Dingo(05.09.2017 08:37)
- Начните с ответа на вопрос зачем это нужно? : Нужно в ОДНОМ! месте в одну-две строки создать текстовое описание переменной (чтобы потом не думать, что такое X4), указать, как она адресуется в протоколе, что происходит при записи, что происходит vllv(66 знак., 05.09.2017 08:58)
- Наверное последую совету. Набросать код, потом смотреть повторяющиеся фрагменты, и уже для их написания использовать фишку X-Macro: генерация кода (макросов с помощью макросов). Dingo(180 знак., 05.09.2017 09:10)
- Посмотрите в BoostPP, там много всяких механизированных кунштюков обезображено. Арифметика, списки и фсе такое силами препроцессора. LightElf(86 знак., 05.09.2017 13:21 - 13:36, ссылка)
- Ничего хорошего в навороченном макроязыке нет. В сях и без макросов можно запутать так, что никогда не распутаешься. - SciFi(05.09.2017 13:39)
- Иногда, особенно по весне, очень не хватает в сишных макросах циклов. Но с каждым годом эта потребность ослабевает. - Nikolay801_(05.09.2017 13:52)
- Не зря волшебная MISRA запрещает эти все undef и ## , в первую очередь для безопасности мозга программиста. - vllv(05.09.2017 15:53)
- Мисра столько всего запрещает, что лучше бы и не пускала вовсе. - SciFi(05.09.2017 15:58)
- В бустеПП, естественно есть циклы. Как иначе обрабатывать массивы? - LightElf(05.09.2017 15:22)
- Для буйных придумали цэ с плюсами. Развлекайтесь. - SciFi(05.09.2017 13:55)
- И где в плюсах циклы препроцессора? - LightElf(05.09.2017 15:24)
- Зачем? Там много волшебного во всяких темплейтах и проч. - SciFi(05.09.2017 15:25)
- Угу, а темплейты обмазывают толстым слоем препроцессора - LightElf(05.09.2017 15:46)
- Зачем? Там много волшебного во всяких темплейтах и проч. - SciFi(05.09.2017 15:25)
- ну можно сделать шаг назад, почти в любом ассемблере макросы намного функциональней чем в сях. - Nikolay801_(05.09.2017 14:01)
- И где в плюсах циклы препроцессора? - LightElf(05.09.2017 15:24)
- Не зря волшебная MISRA запрещает эти все undef и ## , в первую очередь для безопасности мозга программиста. - vllv(05.09.2017 15:53)
- Да, говорят что программирование вообше не для всех :) - LightElf(05.09.2017 13:45)
- Иногда, особенно по весне, очень не хватает в сишных макросах циклов. Но с каждым годом эта потребность ослабевает. - Nikolay801_(05.09.2017 13:52)
- Ничего хорошего в навороченном макроязыке нет. В сях и без макросов можно запутать так, что никогда не распутаешься. - SciFi(05.09.2017 13:39)
- Макросы в Си нельзя генерировать с помощью макросов потому что #define нельзя определить внутри #define. И #include не поможет. - Petrovich(05.09.2017 12:24, )
- В принципе могу все подарить, разберетесь и переделаете под себя. Вы где обитаете? - vllv(05.09.2017 09:18)
- Посмотрите в BoostPP, там много всяких механизированных кунштюков обезображено. Арифметика, списки и фсе такое силами препроцессора. LightElf(86 знак., 05.09.2017 13:21 - 13:36, ссылка)
- Наверное последую совету. Набросать код, потом смотреть повторяющиеся фрагменты, и уже для их написания использовать фишку X-Macro: генерация кода (макросов с помощью макросов). Dingo(180 знак., 05.09.2017 09:10)
- Начните с ответа на вопрос зачем это нужно? : Нужно в ОДНОМ! месте в одну-две строки создать текстовое описание переменной (чтобы потом не думать, что такое X4), указать, как она адресуется в протоколе, что происходит при записи, что происходит vllv(66 знак., 05.09.2017 08:58)
- Спасибо за ссылку, несмотря на иронию. Не пойму, как это колдунство работает. Отдельно - да, связку - не пойму. - Dingo(05.09.2017 08:37)
- Что, больше интересует гвоздь, которым переменная к протоколу прибита? А универсальность/гибкость универсальных программ, идентификация переменных и объектов (групп переменных), скрипты - уже всё? ;) - vllv(05.09.2017 08:16)
- И как это работает? Можете показать подробней, что там под капотом, в макросе IMPL_VARIABLE? - Dingo(05.09.2017 04:47)
- При желании всё это делается на сях, интерпретаторы тут не помогают никак. Они только мешают - их же ещё прикручивать надо. - SciFi(04.09.2017 18:18)
- Только сейчас проникся, о чем речь. Есть у меня протокол, по следам SNMP, и проги универсальные есть - браузер и тестер, скрипты гоняет. И да, внутри контроллера на X-макро. vllv(1882 знак., 04.09.2017 18:21 - 18:40)
- Once upon a time, на телесиськах, кто-то говорил, что реализовал в AVR'ке(?) мастер терминала VT100 (с менюшками и пр.). И тупо на любом ПК запускает клиента VT100 на UART'е. - Toчкa oпopы(04.09.2017 18:19)