SetPf
Это все одного уровня процессы, без внутрянки. Просто API сущностей.
SetPf
А еще могут быть настройки, что обороты включить резко, заслонку открывать не надо, ее нет, нагревателю пофиг на низкую температуру.
Yuriy
Yuriy
SetPf
У меня с 5го раза свичкейз вышел еле еле на 500 строк =)
SetPf
Хотя я не претендую на красивый код.
SetPf
SetPf
Я разобрался =)
SetPf
За 2 месяца =))))
Yuriy
да блин - надо было распариться дерево построить и посмотреть - уверен не нужен он такой -просто тебе понравился он таким - что это за стейт машин - для чего
SetPf
SetPf
Видимо разбираются.
SetPf
Yuriy
Yuriy
кинь кусочек скрин - прям итригует
SetPf
Ага а потом для восстановления связи с вояджерами вызывают спецов с пенсии, т.к. в этих прогах ужатых уже никто разобратся не может. (Насчет вояджера может наврал, но для какого то космического ЛА было)
SetPf
Yuriy
и вот так много - ну 2000 идут строк. блин. круто
SetPf
Нет, на 3000 там мясо было дикое
SetPf
тут чуть меньше 400 сейчас посмотрел
Yuriy
а не выделяются прям контроллеры - актюаторы
SetPf
А тут - СИ недоООП
SetPf
SetPf
Там проблема - для разных сценариев ошибки могут быть разные сценарии отключения.
SetPf
И вот как ты не конопатся это несколько похожих свич-кейзов, с мелкими различиями.
Городить ИФы -терять читаемость.
SetPf
SetPf
она прям вся в себе, я долго думал как ее на логические шаги разбить, ничего не придумал.
SetPf
Это длинный процесс взаимодействия 10+ актуаторов и сенсоров. Смешанный в реальности.
SetPf
Я разбил, это вынес внутренний их кипеш, оставив только АПИ и объекты
Yuriy
А зачем его разбивать этот свичкейз это одна большая бизнеслогика
https://github.com/ytrikoz/garlandproject -посмотри понятно же что делается (это не то хорошо писанано - не подуй не к этому) - про разбивание.
так вот внести в подобное изменение легко прогнозируемо и результат можно до эксплуаьации понять и заменить составные части - тоже не проблема - при чем сложность общая будет как у тебя - и не помещает.
А так это 80% букв убрать - они лишние там -в одну функцию слить - легко знать где всё - там - не надо искать файл
romanetz
питонический интерпертатор используется из-за ООП и, внезапно, потому что он интерпретатор
сишный код - для скорости работы
SetPf
SetPf
Т.к. фактически это будет тот же свичкейз
romanetz
на Си в апроле пишется то, что работает на ПЛК и рантайме
(большие проекты у европейцев - сотня-другая ПЛК, компилится два дня)
SetPf
ИМХО я пробовал, свичкейз оказался читаеме сильно. Если его правильн сверху вниз писать.
Yuriy
SetPf
Я понимаю. Но это фактически тоже самое.
Yuriy
Т.к. фактически это будет тот же свичкейз
фактически всё для человека - компилятору вообще не надо - он goto label - зайдет - для людей - надо. ну мне проще.
tasmota - исходник кто-нибудь детально погружался
SetPf
Альтернативу единственную я нашел. Это какое то ТРУ ООП с мессадж шиной
SetPf
Но блин там столько сверху надо накидывать.
А а по факту, один хрен будет в центре свичкейз который раскидывает месаджы.
SetPf
Т.к. процесс он один фиг постепенное единое целое.
romanetz
так на стейт-машинах, пожалуй, всё асутп
Sid
romanetz
а хитрожопости там ООПшной не особо
Sid
Sid
С большей вариативностью и всякими наследованиями и тд
Yuriy
почему он пишет не x == 1 а 1 == x- это стайл гайд какой то?
SetPf
Я вот с тру АСУТП не работал ни разу, только велосипед.
Sid
Yuriy
Нюансы компилятора и промышленных стандартов
типа ну автоматом пишет уже так -всё- tasmota - не подвержена нюансам стандартов промышленных. но понятно - где так и думал -- просто какая ересь - а им типа таже кажется x == 1
Sid
Sid
Sid
Sid
Я про 1 == х
romanetz
я больше скажу, косяки вылазят не в алгоритмах - не в том, что код неверный
Sid
Yuriy
Я про 1 == х
x ==1 или 1 == x
конечно наверно научные работы есть - и статистика - не сомневаюсь - решение же принималось .
про компиляторы - понять легко - надо ему так - всё пиши так..
про удобство и наглядность ... ну не знаю. наверно надо проникнуться
romanetz
а косяки вылазят оттого, что во времени процесс или железо ведёт себя совсем не так, как предполагают программисты
Sid
romanetz
там самая нужная вещь - trace
Sid
romanetz
Sid
romanetz
пиво говно потому, что хозяин производства так хочет для снижения себеса
Yuriy
потому что думали " почему говно" - а не думали "как хорошо сделать"
romanetz
автоматика выполняет то, на что настроена
Sid
SetPf
я больше скажу, косяки вылазят не в алгоритмах - не в том, что код неверный
С моей не опытной колокольни самые болезненые косяки - архитектурные.
Вот задумал ты какое действо на конечном автомате, прикинул, вроде хорошо все встает.
А потом когда дописываешь, понимаешь, что без костылей не встает.
Что вот тут течет абстракция, которая все на***ет .
Или нужно чего добавить, а ты этого не ожидал и оно вообще не лезет =\
romanetz
да фигня всё это. нету там такого