|
|
|
|
106595 437 18 1 |
|
Опции темы | Поиск в этой теме |
05.11.2013, 13:12 | 281 |
закрыто
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
|
05.11.2013, 13:19 | 282 | |
закрыто
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
Цитата:
Есть еще одна хотелка. Часто бывает нужно добавить логики, для этого какие-то линки требуется "перекинуть" на новые ноды. Сейчас приходится убивать линки и делать с нуля новые. Можно внести ошибку. А вот если бы можно перекинуть линку с ноды на ноду, было бы счастье. Я вот думаю, если делать сразу второе - может не потребуется первое? Т.е. нужно "отключить" на время правило-линку, перекинул ее начало на "пустышку" и всего дело. И наглядно, и кнопок меньше. А то что-то меня редактор уже своей навороченностью пугать начинает. ------- UPDADE!!! -------------- Комрады, изменилась архитектура сима и рисовальщика. Скрипты вынесены в отдельные файлы и по ним прошелся оптимизатор-ужиматель. Софт стал загружаться и работать ощутимо быстрее. Но! Ужиматель очень радикальный, скрипт перемалывает так, что я его не узнаю и не понимаю. В теории после такой "оптимизации" что-то может отвалится. Если заметите - сигнальте в тему! Кстати, из-за того, что скриптовая часть теперь живет отдельно - после каждого обновления сервера в браузере нужно принудительно обновлять страницу. Жмите F5 , а лучше Ctrl+F5. Обычно этого хватает, кеш браузера чистить не обязательно. [Исправлено: lux-rc.com, 05.11.2013 в 13:34] |
|
05.11.2013, 13:38 | 283 | |
Новичок
Регистрация: 10.12.2012 Последняя активность: 10.10.2016 04:47 Адрес: Забайкальский край
Сообщений: 48
Сказал(а) спасибо: 7
Поблагодарили: 12 раз(а) в 11 сообщениях
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
Цитата:
3 режима. включаются клик, удержание, двойной клик. в каждом режиме 1 клик + удержание запускает цикл из трех возможных вариантов для данного режима. последний запоминается. переход между режимами 1 клик либо 2 клика. выключение - удержание. из плюшек... тактический режим, включение - отключение локатора флагом, этот же флаг дает - убирает возможность использования дополнительного диода при блокировке фонаря
__________________
Жизнь в лучшем свете! |
|
05.11.2013, 13:55 | 284 | |
закрыто
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
Цитата:
|
|
05.11.2013, 14:37 | 285 |
Новичок
Регистрация: 10.12.2012 Последняя активность: 10.10.2016 04:47 Адрес: Забайкальский край
Сообщений: 48
Сказал(а) спасибо: 7
Поблагодарили: 12 раз(а) в 11 сообщениях
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
|
05.11.2013, 15:19 | 286 |
Новичок
Регистрация: 10.12.2012 Последняя активность: 10.10.2016 04:47 Адрес: Забайкальский край
Сообщений: 48
Сказал(а) спасибо: 7
Поблагодарили: 12 раз(а) в 11 сообщениях
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
Не нравятся мне что-то эти клики... сразу спешат действие выполнять. В этом плане пара Нажал-Отжался куда приятнее в симуляторе... хотя схема и выглядит от этого более громоздкой
|
05.11.2013, 15:48 | 287 |
закрыто
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
Обновились. Теперь не сбрасывает в полноэкранную симуляцию при сохранении. В строке адреса можно использовать опции (через &)
opt-en - открыть сразу в "инженерном" режиме (когда видно граф состояний) opt-sim - открыть с симулятором opt-exm - экспертный режим симулятора opt-fs - открыть сразу на полный экран Для примера ссылка на "АСТРУ", которая открывает ее в инженерном режиме с экспертным симулятором в углу экрана: http://lux-rc.com/content/p... -------------------------- Мы тут пришли к внутреннему согласию, что NEXUS можно открывать для паблик доступа. Открываем? Или пока рано? [Исправлено: lux-rc.com, 05.11.2013 в 15:50] |
05.11.2013, 16:01 | 288 |
Weekend Warrior
Регистрация: 24.09.2012 Последняя активность: 26.07.2019 10:38 Адрес: Minsk.by
Сообщений: 144
Сказал(а) спасибо: 70
Поблагодарили: 20 раз(а) в 14 сообщениях
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
Многабукаф. Я предупредил.
[Исправлено: Vasiq, 05.11.2013 в 16:45] |
05.11.2013, 19:02 | 289 |
Ветеран Фонарёвки
Регистрация: 22.11.2011 Последняя активность: 13.11.2020 16:01
Сообщений: 1009
Сказал(а) спасибо: 534
Поблагодарили: 247 раз(а) в 138 сообщениях
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
может быть сделать раскрывающийся текстовый элемент? всё-таки пару строк описания не помешают.
|
06.11.2013, 04:14 | 290 |
закрыто
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
обновились (не забываем CTRL+F5)
Сделано: - Паттерны в симуляторе (SOS, маяк, строб) - Возможность перецеплять линки на другие ноды (нужно открыть линку, кнопки внутри) - Кучка фиксов по мелочи - Сделаны все actions! Осталось: - Симулятор: условие SHUTDOWN (время отсутсвия питания) - Симулятор: условие MOTION (датчик движения) ------------------------- Два последних условия используются редко, поэтому кто ждал готовый сим и готовый редактор - пора начинать. Тут был вопрос как временно во время отладки "отключать" правило. Два способа. Первый - создаете временную ноду и переключаете линку так, чтобы она начиналась с этой ноды. Второй - добавить в линку условие с флагом. А флаги можно на лету переключать руками в симуляторе (экспертный режим). Немного о паттернах. Любую нестандартную "мигалку" всегда можно нарисовать руками из нодов и таймеров. В ядро добавил только самые "выстраданные" и самые стандартные мигалки. 1) SOS. Соотв. директиве § 161.013–7, это как раз случай, когда сигнал бедствия подается светом. Скорость его в этом случае должна быть сильно меньше, чем если это в радиоэфире. http://www.gpo.gov/fdsys/pk... Мне такой сос кажется странным и очень "прибалтийским". Но что поделаешь, таковы правила. Так положено. 2) Строб. Тут все как обычно, частота 10Гц, заполнение 50%. Соотв. средней частоте альфа-волны мозга, с таким заполнением наиболее эффективно атакует эпиллептический порог. 3) Маяк. Тут к сожалению не удалось выйти на "едиснтвенно-правильные" стандарты и требования. Этих маяков описано везде множество вариантов. В авиации и на море - требования отличаются. Но можно прийти к "условному среднему". Две быстрые вспышки с интервалом 2сек. Это чуть медленее чем в воздухе и быстрее чем на море. Но обозначить себя в непогоду - подойдет вполне. Опять таки, если присмотреться к оформлению тех же БАНО на гражданских самолетах - виден разброд и шатание. Как по скорости, так и по расположению и цвету маяков. |
06.11.2013, 10:04 | 291 | |
Ветеран Фонарёвки
Регистрация: 31.12.2010 Последняя активность: 14.11.2024 08:04 Адрес: Есть ли жизнь за МКАДом?
Сообщений: 2345
Сказал(а) спасибо: 384
Поблагодарили: 1803 раз(а) в 490 сообщениях
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
Цитата:
__________________
В тёмном месте невозможно долго находиться без фонаря. |
|
06.11.2013, 10:47 | 292 |
закрыто
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
второй флаг - это и есть костыль? его нужно удалить везде?
было бы конечно идеально увидеть баг так как Вы его видите, а то я щас тут наудаляю, не факт что получится так, как задумано автором вообще пока не врубаюсь зачем нужны эти оба флага не могли бы на словах описать идею этого велосипедного света? --------------------------------- Поправил схему в силу своего понимания http://lux-rc.com/content/p... Без флагов совсем обойтись не получилось, оставил только флаг 1. Зачем он тут нужен. Изначально сброшен. Взводится при нажатии на кнопку и переходе в состояние-таймер из которого два выхода. Либо кнопка отпущена и тогда возвращаемся к состоянию которое было до нажатия (rollback). Либо прошла секунда удержания - выключаем свет. Если бы флага 1 не было, то правило "из любого если кнопка нажата" срабатывало бы постоянно и для состояния таймера, в итоге бы таймер не работал, все время бы сбрасывался. Поэтому когда мы входим в таймер - ставим флаг, а когда покидаем - сбрасываем. Теперь про клик. Действительно, если кликать в кнопку, то мы каким-то образом "вылетаем" из состояния таймер минуя rollback и флаг остается set. Из-за этого повторное нажатие уже не переводит в таймер и свет отключить не получается. Почему это так. Это не баг, это фича, и это важная фича, ее нужно понимать. Это касается того, как работают клики (вспоминаем пример астру). Дело в том, что любой клик (одиночный или серия) срабатывает для того места, где начался. В момент опускания кнопки начинается новая серия (это может быть клик, или двойной, заранее неизвестно). Машина запоминает то место, где это началось. Далее срабатывает правило - перейти из любого состояния в таймер пока кнопка нажата. Если кнопка отпущена раньше, чем через 1/3 секунды - это понимается как клик и тогда срабатывает правило на клик из того места, где клик начался. Т.е. происходит "как бы" роллбек, но без роллбека. Соотв. флаг не чистится т.к. ни одно из правил ведущее из таймера не сработало. Просто переход в таймер отменяется из-за "пойманного" клика. Для этого я чищу флаг по клику вместе с измемением режима. Пример астры это хорошо показывает. Там из центральной ноды "все выключено" в разные стороны расходятся конкурирующие условия на все виды кликов - одиночный, двойной и так далее. Когда начнается серия кликов - машина запоминает где это началось, т.е. в выключенном состоянии. Когда она ловит первый клик серии, то происходит переход в слабый режим. Если после этого серия заканчивается - то там она и остается. Но если приходит второй клик серии кликов, то срабатывает правило на переход с средний режим из того места, где клики начались. Т.е. мы как бы "переигрывает" по новому, т.к. ситуация изменилась и теперь переходим на средний режим. И так далее. Поднимите руку если это не понятно. Я попробую объяснить другими словами. Ну в Вашей схеме я кое-где поправил приоритет линкам. К примеру в высаженном акк не загорался красный удержанием, из-за правила перехода в блокировку из любого состояния, которое стояло первым. Т.е. когда напряжение падает, это правило начинает постоянно долбиться в блокировку. Даже из блокировки (блокировка - это тоже режим, и для него правило "для всех" срабатывает как и для любого другого состояния). Поэтому если такое правило стоит выше - до кнопки дело не дойдет. Просто поднимаем правило кнопки выше и все работает. В этой схеме сейчас все идеально, кроме одного. Мне не нравятся переходы между слабым и максимальным по клику. Тут вот в чем дело. Если кликать быстрой серией, то вместо одиночных кликов мы получаем серию из N кликов, поэтому первый старабатывает, а повтороные нет, так как это уже понимается как "двойной", "тройной" и так далее. А правил на них у нас в схеме нет. Увы на кликах эту особенность не победить, поэтому если это не фонтан - то придется рисовать "переключалку" без кликов - на "нажал"-"отпустил". Тогда и флаг при переходах чистить не придется, кликов нет, ничто не вернет из таймера по отпусанию кнопки кроме легального перехода из таймера в rollback [Исправлено: lux-rc.com, 06.11.2013 в 12:31] |
06.11.2013, 11:29 | 293 |
закрыто
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
я б не стал. будьте краткими, это талант :-) на самом деле текст под нодой сейчас транслируется в экран сима поэтому длинные послания там ни к чем. Достатоно коротких - "выключено", "максимальны", "батарея села" и так далее.
|
06.11.2013, 11:44 | 294 |
закрыто
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
Цитата:
http://lux-rc.com/content/p... Идея понятна? Четное количество кликов возвращают нас в том режим, где были. А нечетное - переход на противоположный. Поэтому все серии отрабатываются корректно, как один клик. Два быстрых клика - мигнули дальним. Четыре быстрых - двойная вспышка. |
06.11.2013, 11:56 | 295 |
Weekend Warrior
Регистрация: 24.09.2012 Последняя активность: 26.07.2019 10:38 Адрес: Minsk.by
Сообщений: 144
Сказал(а) спасибо: 70
Поблагодарили: 20 раз(а) в 14 сообщениях
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
Вопрос касался именно роллбэка без "Роллбэка". Теперь все понятно! Я и предполагал, что это связано с серией кликов. И за фикс спасибо, так гораздо лучше (: [Исправлено: Vasiq, 06.11.2013 в 11:57] |
06.11.2013, 12:34 | 296 | |
Ветеран Фонарёвки
Регистрация: 22.11.2011 Последняя активность: 13.11.2020 16:01
Сообщений: 1009
Сказал(а) спасибо: 534
Поблагодарили: 247 раз(а) в 138 сообщениях
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
Цитата:
ещё: незнаю возможно ли, но иногда требуется переместить условие вверх/вниз по списку. сейчас приходится переписывать линк полностью. |
|
06.11.2013, 14:32 | 297 |
закрыто
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
Цитата:
но это на потом. сейчас нужно быстро добивать 361 на Ваших примерах и отправлять фонари FL33. Далее сделаем отдельный чип NEXUS. А потом займусь примочками и доработками UI |
Поблагодарили: 1 раз |
ARC'TERYX (06.11.2013)
|
06.11.2013, 16:25 | 298 |
Почти не ждун
Регистрация: 15.02.2012 Последняя активность: 06.11.2021 14:48 Адрес: СПб
Сообщений: 745
Сказал(а) спасибо: 217
Поблагодарили: 274 раз(а) в 136 сообщениях
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
Господа, минуточку внимания: предлагаю посмотреть на два интерфейса. Графически они полностью идентичны (ну разве что кривизна стрелок, но не в том суть), только один работает, а второй - нет. http://lux-rc.com/content/p... и http://lux-rc.com/content/p...
Кто знает секрет - тому конфетка от Сергея. lux-rc.com,
__________________
|
06.11.2013, 16:48 | 299 |
Weekend Warrior
Регистрация: 24.09.2012 Последняя активность: 26.07.2019 10:38 Адрес: Minsk.by
Сообщений: 144
Сказал(а) спасибо: 70
Поблагодарили: 20 раз(а) в 14 сообщениях
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
Да, в учебнике нужно будет сделать побольше элементарных примеров на приоритеты. [Исправлено: Vasiq, 06.11.2013 в 16:59] |
06.11.2013, 17:25 | 300 |
закрыто
|
Re: Nexus - Язык описания алгоритма работы любого фонаря
Для начала есть общий совет - старайтесь не устраивать конкуренции. Т.е. идельаная нода эта такая, из которой ведут взаимоисключающие правила. Т.е. если одна линка выполняется логически - тогда все остальные нет. И на приоритеты можно забить.
Пример. Допустим Вы хотите реагировать на просадку аккумулятора в макс. режиме. И хотите чтобы было 2 варианта. Если напряжение ниже 2.5 вольт - полность отключить (пустой аккумулятор). А если ниже 3.3 вольт (низкий уровень заряда) - снижаем яркость. Вот если так и с делать, т.е. вывести из основного режима два правила, одно <2.5, а другое <3.3, то получите конкуренцию. Потому как если напряжение падает ниже 2.5, то логически выполняются оба. И если правило <3.3 будет стоять выше в приоритете, то дело до <2.5 никогда не дойдет, будет отработано первое правило. Поэтому, либо расставляем правильно проритеты, либо пишем взаимосключающие правила. Отключение если <2.5. Снижение яркости если >=2.5 И <3.3. Приоритеты помогают экономить место на бумаге, но использовать их нужно с пониманием. Сейчас приоритет линков отображается красными номерками рядом с нодой (считаются только исходящие). Первая - без номера. Остальные 2, 3... Но есть одна фишка, которую я не могу придумать как показать. Т.е. в языке она есть, на работу влияет, но графически не отображается. Дело конечно в нодах "ДЛЯ ВСЕХ". Эти состояния "виртуальные", на самом деле их нет, и правила ведущие из "ДЛЯ ВСЕХ" фактически выходят и каждой нормальной ноды. Понимаете? И они тоже имеют определенноую очередность. Эту очередность можно менять поднимая в приоритете правила ведущие из FOR ALL, но какой порядок полчается в каждой реальной ноде с учетом возможного перехода по FOR ALL - это не видно и непонятно как показывать. Но с этим можно работать, просто держа в голове эту особенность. Проритет абсолютно любого правила можно поднимать наверх с помощью кнопки где нарисована стрелочка и номер 1. Если это правило ведет из обычной ноды - тут все хорошо, Номера линков изменятся. Если это правило ведет из FOR ALL - то визуально ничего на схеме не изменится, но правило это станет первым и для всех нодов будет проверяться в первую очередь. Если Вы прочитали этот текст и ничего не поняли, это нормально :-) Тогда просто используйте взаимоисключающие условия на правилах. В том числе и на правилах FOR ALL если такие есть. [Исправлено: lux-rc.com, 06.11.2013 в 17:32] |