Добавить форум Fonarevka.ru в Избранное ×
FONAREVKA.RU - Всё о фонарях и осветительной технике
Регистрация Дневники Группы Альбомы Каталоги Поиск Сообщения за день Отметить все разделы прочитанными
Вернуться   Форум FONAREVKA.RU Авторские разделы наших мастеров Разработки от Lux-RC
Забыли пароль? Регистрация
Войти через OpenID



  • Бесплатные розыгрыши призов
  • Розыгрыши призов в соц. сетях!
  • Для гостей форума
  • О нашем проекте
  • Пожертвования (Donate)
  • Реклама на форуме
На форуме ежемесячно проходят бесплатные розыгрыши призов для зарегистрированных и активно общающихся форумчан. Вы можете выиграть не только различные фонарики, зарядные устройства, аккумуляторы и другие аксессуары известных брендов, а также фонари и компоненты от известных кастомщиков и мелкосерийных производителей, но и другие призы, такие как мультитулы, ножи, рюкзаки и другое снаряжение. Все проходящие розыгрыши призов для форумчан абсолютно бесплатные и призы для розыгрышей предоставляют спонсоры, вам достаточно нажать кнопку "Принять участие" и ждать результата. Форумчане не несут никаких финансовых и имущественных рисков, связанных с участием в данных розыгрышах (т.е. вы ничего не оплачиваете и ни чем не рискуете). С момента начала проведения данных розыгрышей более 100 форумчан стали обладателями весьма неплохих призов и количество победителей продолжает увеличиваться!
В ближайшее время состоятся очередные розыгрыши призов - следите за информацией!

Рекомендуем Вам подписаться на тему (оптимальнее с уведомлением на ваш E-mail), где публикуется информация о новых розыгрышах призов.

Подробная информация по ссылке

Закрытая тема  Создать новую тему
Просмотров в теме 44944   Ответов в теме 437   Подписчиков на тему 18   Добавили в закладки 1
Опции темы
Старый 28.01.2015, 06:40 Автор темы   431
lux-rc.com
закрыто
 
Регистрация: 24.05.2010
Последняя активность: 16.09.2018 23:01
Сообщений: 9105
Сказал(а) спасибо: 576
Поблагодарили: 3959 раз(а) в 1526 сообщениях

Отправить сообщение для lux-rc.com с помощью Skype™
По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Ок, допустим так, пусть будет "две команды" (на самом деле все-равно одна, две в одном)

Можно независимо менять цвет и менять яркость/паттерн. Можно и то и другое в одной команде. А можно - отдельно одно от другого.

Поэтому обсуждавшаяся логика с тлением выглядит так. Из любого состояния по триггеру выполняются исключения - выбираем цвет и сразу включаем на 100%. Далее по таймеру спустя 5 сек и любого снижаем только яркость до 5%. А полностью гасим явным образом при выключении.

По-моему так все красиво. Меняем метаязык? Если кто-то успел написать что-то свое на 371 - файло может сломаться (я руками смогу поправить если что)

-------------- вечером в газете, утром в куплете -----------------------

Поправил описание языка и шаблон 371 с простеньким примером

В итоге получаем одно действие "RGB"

У действия по-прежнему два параметра, но оба - опциональные, т.е. может быть указан любой или оба сразу.

Первый параметр - цвет:
- черный
- красный
- зеленый
- янтарный
- синий
- маджента
- циан
- белый

Второй параметр - яркость/паттерн:
- выключить
- 100% яркости
- 5% яркости
- мигать

Смена цветов происходит мгновенно. Без переходов. За счет этого имеет смысл черный цвет. Им можно мигать и отбивать морзянку (я знаю некоторые это очень любят, три красных и семь синих)

Сменя яркости - с плавным переходом. Это делает сама кнопка на уровне "железа". Мигалка тоже реализована внутри кнопка - мигает так, как сейчас мигает красным FL33 - т.е. быстрые вспышки с затуханием по экспоненте.

Если кто-то имеет что-то против такого решения - поднимаем руку. Пару дней на опыты хватит?

[Исправлено: lux-rc.com, 28.01.2015 в 06:57]
lux-rc.com вне форума   Вверх
Старый 28.01.2015, 07:56   432
4ward
Новичок
 
Регистрация: 10.12.2012
Последняя активность: 10.10.2016 04:47
Адрес: Забайкальский край
Сообщений: 48
Сказал(а) спасибо: 7
Поблагодарили: 12 раз(а) в 11 сообщениях

По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

В каких случаях нужно будет устанавливать флаг и, соответственно, запускать индикатор:
- при активации режима
- при длительной работе какого-то из режимов
В первом случае все просто: включаем режим и вместе с ним флаг.
Во втором случае нужно чтобы тлеющий индикатор просыпался (загорал на 100%) только тогда, когда ему нужно цвет поменять. Т.е. каждое энное количество секунд идет проверка состояния и индикатор либо вспыхивает, либо продолжает тлеть таким же цветом. Поэтому и нужна проверка текущего состояния-цвета индикатора.
__________________
Жизнь в лучшем свете!
4ward вне форума   Вверх
Поблагодарили: 1 раз
lux-rc.com (28.01.2015)
Старый 28.01.2015, 15:46 Автор темы   433
lux-rc.com
закрыто
 
Регистрация: 24.05.2010
Последняя активность: 16.09.2018 23:01
Сообщений: 9105
Сказал(а) спасибо: 576
Поблагодарили: 3959 раз(а) в 1526 сообщениях

Отправить сообщение для lux-rc.com с помощью Skype™
По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Цитата:
Посмотреть сообщение Сообщение от 4ward :
В каких случаях нужно будет устанавливать флаг и, соответственно, запускать индикатор:
- при активации режима
- при длительной работе какого-то из режимов
В первом случае все просто: включаем режим и вместе с ним флаг.
Во втором случае нужно чтобы тлеющий индикатор просыпался (загорал на 100%) только тогда, когда ему нужно цвет поменять. Т.е. каждое энное количество секунд идет проверка состояния и индикатор либо вспыхивает, либо продолжает тлеть таким же цветом. Поэтому и нужна проверка текущего состояния-цвета индикатора.
мдя.. подкинули задачку

действительно, было бы правильно чтобы треющий индикатор просыпался в случае когда уровень заряда падает на ступеньку. А если он просто будет раз в 30 сек просыпаться независимо от изменения состояния акка?

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

Я вот что думаю. А нельзя ли тоже самое устроить с помощью слотов памяти в nexus? На флагах это можно написать хоть сейчас (допустим если уровней индикации четыре - то хватит и двух флажков). Но на флагах получатся "танцы с бубном". Да и мало их, они нужнее в других местах.

Но если допустим расширить возможности слотов? Сейчас они заточены на сохранение режима работы регулятора. Нет возможности напрямую загружать в слот константу или сравнивать с константой. А если это реализовать, то это много где может оказаться полезным. В частности сейчас для того, чтобы инициализировать заводскую настройку любимого режима его сначала приходтся включить (буквально включить свет) и только потом загрузить текущий режим в слот. Потом погасить свет. Три операции вместо одной. Некрасивый хак.

Предлагается.

1) Добавить новое условие. Значение слота < или > некоторого выбранного значения

2) Добавить действие. Загрузить в слот произвольное значение из списка.

Тогда вместо флажка можно использовать слот и условное значение степени разряда. 0 - это условное начальное значение акка (новый режим). Загрузка нуля означает принудительное включение индикации (при нажатии на кнопку).

Далее по результатам сравнения в слот загружается текущее значение в зависимости от напряжения.

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

Не уверен что смог передать идею, но кажется это должно сработать, нужно нарисовать схемку и допилить сим.

Важное замечание! Все эти "докрутки" не влияют на прошивки, написаные ранее на 361alpha. Если нужно, чтобы в Вашем уже написанном UI появились новые функции - сигнальте, я поправлю в коде на 371alpha. Если вы хотите попробовать 371аlpha с нуля - используйте этот шаблон

[Исправлено: lux-rc.com, 28.01.2015 в 15:58]
lux-rc.com вне форума   Вверх
Старый 29.01.2015, 03:13   434
4ward
Новичок
 
Регистрация: 10.12.2012
Последняя активность: 10.10.2016 04:47
Адрес: Забайкальский край
Сообщений: 48
Сказал(а) спасибо: 7
Поблагодарили: 12 раз(а) в 11 сообщениях

По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Цитата:
Посмотреть сообщение Сообщение от lux-rc.com :
1) Добавить новое условие. Значение слота < или > некоторого выбранного значения

2) Добавить действие. Загрузить в слот произвольное значение из списка.
Идея понятна. Если не ошибаюсь, то такую возможность работы со слотами уже обсуждали. Думаю поможет не только для программирования индикации, но и поможет уменьшить количество нодов и связей в схемах.
4ward вне форума   Вверх
Старый 29.01.2015, 04:02   435
m72
Ветеран Фонарёвки
 
Аватар для m72
 
Регистрация: 11.02.2012
Последняя активность: Сегодня 00:16
Сообщений: 3595
Сказал(а) спасибо: 2945
Поблагодарили: 1794 раз(а) в 974 сообщениях

По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Цитата:
Посмотреть сообщение Сообщение от 4ward :
Т.е. каким цветом он горит в данный момент.
Основной модуль может запомнить какой цвет он задавал в предыдущий раз. Это сильно проще.
Хотя если модуль совсем-совсем отключает собственное питание на время сна и просыпается по отдельному таймеру, то да, может пригодиться.
__________________
Не стреляйте в программиста, он паяет как умеет.

[Исправлено: m72, 29.01.2015 в 04:05]
m72 вне форума   Вверх
Старый 30.01.2015, 02:26   436
m72
Ветеран Фонарёвки
 
Аватар для m72
 
Регистрация: 11.02.2012
Последняя активность: Сегодня 00:16
Сообщений: 3595
Сказал(а) спасибо: 2945
Поблагодарили: 1794 раз(а) в 974 сообщениях

По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Правильно ли я понимаю, что...

Есть два модуля: кнопко и светило (держало и хлебало).

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

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

А что делать если индикатор "тлеет" (1-5%)? Какой механизм _с малым потреблением_ заставит светильный модуль с Нексусом проснуться раз в минуту (к примеру), замерить батарейку, пробежаться по программе, и если уровень изменился то поменять цвет свечения? Часовой микросхемы и кварца к ней на фотках не видел.

Или в кнопочный модуль можно (и желательно) заложить следующие фишки:
1. Выключиться навечно (т.е. до внешнего воздействия: замена батарейки, нажатие на кнопку).
2. Выставить цвет свечения + яркость.
3. Заставить разбудить модуль с нексусом через Х секунд.
4. Пока кнопочный модуль светится ему можно доверить хранение какой-нибудь переменной, всё равно на кнопочном контроллере напряжение будет.

В общем не зная кто во время сна спит и как крепко (может вообще без питания, зато экономно) давать советы по реализации управления индикатором проблематично.

Кстати, еще вопрос про нексус. Можно ли сделать многозадачность в нескольких графах? Грубо говоря совершенно независимая нитка управления светом, нитка управления индикатором уровня и нитка считающая число нажатий на клавишу. К примеру после каждого 10-го нажатия будет моргать маячок. По идее реализация многозадачности довольно проста. Просто каждая нитка имеет собственную точку входа "подали питание", а дальше уже каждая сама по себе. Интерес еще бы представил механизм доступа к нескольким глобальным флагам и переходам по их изменению, но для двух ниток свет/показ заряда это не обязательно.

[Исправлено: m72, 30.01.2015 в 02:29]
m72 вне форума   Вверх
Старый 31.01.2015, 15:59 Автор темы   437
lux-rc.com
закрыто
 
Регистрация: 24.05.2010
Последняя активность: 16.09.2018 23:01
Сообщений: 9105
Сказал(а) спасибо: 576
Поблагодарили: 3959 раз(а) в 1526 сообщениях

Отправить сообщение для lux-rc.com с помощью Skype™
По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Цитата:
Посмотреть сообщение Сообщение от m72 :
Основной модуль может запомнить какой цвет он задавал в предыдущий раз. Это сильно проще.
Хотя если модуль совсем-совсем отключает собственное питание на время сна и просыпается по отдельному таймеру, то да, может пригодиться.
цвет помнит сам индикатор в кнопке. из 371 может приходить 2 типа команд:

- либо установить цвет, это он отрабатываем мгновенно, независимо от текущей яркости и выбранного режима.

- либо установить яркость или включить режим мигания. эти операции индикатор отрабатывает с плавым переходом.

две команды могут прийти в одном "пакете", тогда будет практически одновременно сделано и то и другое.

----------------

по поводу "спячки" индикатора все не так просто. я не буду делать так, чтобы индикатор работал постоянно. я и в новой версии хочу сделать схему, которая будет рвать физически цепь на землю и полностью отключать питание индикатора. в этом случае все его текущие настройки будут забыты. т.е. на уровне диаграммы NEXUS нужно иметь в виду - после полного перезапуска индикатора заново заливать в него и цвет, и режим работы.

Сейчас временем жизни индиатора управляет 334+ модуль. Индикатор просыпается по нажатию, для этого 334+ должен выставить флаг что он хочет чтобы индикатор проснулся. Если 334+ сбрасывает этот флаг, то индикатор в течение еще 10-15 секунд ждет и после этого рвет землю

Новый индикатор я пока не программировал, но хочу изменить логику жизни на более простую. Главная вводная - это тот факт, что в ждущем режиме когда RGB не горят - ток потребления индикатора очень небольшой. В новой версии он вообще равен току ждущего режима контроллера плюс утечки LDO, т.к. делителя напряжения уже нет - индикатор не следит за батареей. Поэтому утечка в индикаторе вредна только если речь идет о большом времени в неактивном режиме. Это грубо говоря ситуация, когда фонарь с аккумулятором валяется без дела больше суток. Поэтому предлагается уже не обращать на флаг из 371, а считать время с последней команды от него. Если 371 не посылает команд в течение допустим суток и если в течении суток никто не нажимает на кнопку, то мы делаем вывод что фонарь на хранении, им не пользуются и гасим полностью индикатор, отрывая его от земли.
lux-rc.com вне форума   Вверх
Старый 01.02.2015, 03:10 Автор темы   438
lux-rc.com
закрыто
 
Регистрация: 24.05.2010
Последняя активность: 16.09.2018 23:01
Сообщений: 9105
Сказал(а) спасибо: 576
Поблагодарили: 3959 раз(а) в 1526 сообщениях

Отправить сообщение для lux-rc.com с помощью Skype™
По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Цитата:
Посмотреть сообщение Сообщение от m72 :
Правильно ли я понимаю, что...
Есть два модуля: кнопко и светило (держало и хлебало).
Раньше кнопочный модуль сам измерял напряжение и показывал его, то сейчас информацию ему предполагается выдавать со светильного.
Когда индикатор просыпается по нажатию на кнопку, то всё просто и понятно. Нажатие подаёт питание, схема прогружается с нуля, включает подхват питания. Проснулись, замерили, поняли чем именно надо отчитаться, отчитались и баиньки. Без внешнего воздействия всё отключено и изнутри побудке не поддаётся.
все верно. небольшое подолнение - 334 (светило) может вмешиваться в работу кнопко - принудительно ее погасить напимер. или не давать запустить при нажатии. все остальное так как описано

Цитата:
Посмотреть сообщение Сообщение от m72 :
А что делать если индикатор "тлеет" (1-5%)? Какой механизм _с малым потреблением_ заставит светильный модуль с Нексусом проснуться раз в минуту (к примеру), замерить батарейку, пробежаться по программе, и если уровень изменился то поменять цвет свечения? Часовой микросхемы и кварца к ней на фотках не видел.
механизм описан в посте выше. светило не засыпает полностью никогда. жизнь в нем тлеет всегда, но очень экономичная. кнопко же умеет засыпать с концами и без толкача, т.е. без механического нажатия ее не поднять. идея в том, что кнопко будет жить в спящем довольно долго потребляя минимум, на уровне светила в спячке. и когда кнопко не активна в течение некотого длительного времени, ну грубо часа или может суток, и светило ей не отправляет команды, то она решает что больше она не нужна и спокойно засыпает. если же кнопка тлеет, то будет тлеть пока ее не отключит светило из NEXUS.

а таймер и в кнопке и в светиле имеется. да, без кваца, не такой точный, но он там есть.

Цитата:
Посмотреть сообщение Сообщение от m72 :
Или в кнопочный модуль можно (и желательно) заложить следующие фишки:
1. Выключиться навечно (т.е. до внешнего воздействия: замена батарейки, нажатие на кнопку).
2. Выставить цвет свечения + яркость.
3. Заставить разбудить модуль с нексусом через Х секунд.
4. Пока кнопочный модуль светится ему можно доверить хранение какой-нибудь переменной, всё равно на кнопочном контроллере напряжение будет.
1 - такая фича в кнопке будет, но она будет скрыта, т.е. пользователь NEXUS о ней знать не должен. внутенняя кухня.

2 - так оно уже и описано в NEXUS, см примеры выше по ссылка (пока без симулятора)

3 - нексус будить не надо, он всегда активен, даже в стендбае, когда фонарь не горит. мигающий локатор - это тоже NEXUS.

4 - это не нужно. кнопка дожна быть настолько "тупой", насколько это возможно.

Цитата:
Посмотреть сообщение Сообщение от m72 :
Кстати, еще вопрос про нексус. Можно ли сделать многозадачность в нескольких графах? Грубо говоря совершенно независимая нитка управления светом, нитка управления индикатором уровня и нитка считающая число нажатий на клавишу. К примеру после каждого 10-го нажатия будет моргать маячок. По идее реализация многозадачности довольно проста. Просто каждая нитка имеет собственную точку входа "подали питание", а дальше уже каждая сама по себе. Интерес еще бы представил механизм доступа к нескольким глобальным флагам и переходам по их изменению, но для двух ниток свет/показ заряда это не обязательно.
звучит монументально, но по опыту скажу что там где появляется многозадачность - там без проблем не обойтись. уровень понимания кода падает до нуля, все понимает оказывается в голове спеца, котоый эту голову сломал, пока вылавливал баги. Потому как просто независимыми нитками тут не отделаешься. Это действительно не самая сложная задача. Поскольку устройсво одно и "независимые" процессы все-таки зависимы (по нажатию одной и той же кнопки должны переключаться и режимы и подниматься индикатор, при чем его показания могут зависеть от логики режимов), то глядишь потебуются семафоры, мютексы, критические секции. А дальше - изоляция транзакций и ... это конец.

Язык NEXUS задумывался как инстумент вовсе не прогрммиста. В таком качестве ему грош цена. Программист могущий программировать многозадачные приложения и так справится с написанием кода для контроллера - ему и на C нормально пишется.

Я задумал NEXUS как интструмент постановщика задач. В этом случае он обязан быть настолько простым, насколько это возможно для решения задачек упавления такими устройствами как фонарик.

Концепция конечного автомата - штука простая. И если не сыпать умными терминами, то на пальцах объяснить - не проблема. Особенно если есть пример перед глазами.

Я уже накропал пример интерфейса с индикатором на базе алгоритма FL33 v3.0. Графически логика индикатора там выглядит как отдельный "куст", ну т.е. это маленькая самостоятельная диагамка. Интуитивно понятная. Т.е. ее работа заключается в постом правиле, что независимо от текущего состояния при наличии флага выполнить цепочку сравнений, раскрасить кнопку в соотв. цвет и венуться.

по сути это очень похоже на обаботку прерывний. где прерывание описано неким условием.
lux-rc.com вне форума   Вверх
Закрытая тема  Создать новую тему

Опции темы

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор фонаря для работы в карьере master1 Выбор фонарей 73 07.08.2013 22:39
Выбор ручного фонаря для работы Paul REE Выбор фонарей 69 15.09.2012 00:34
Помогите с выбором фонаря для работы , фонаря для души и модуля D26 SeTT Выбор фонарей 14 23.03.2012 11:29
Силен и могуч немецкий язык Virgo_Style На досуге 2 08.06.2011 18:30
Выбор фонаря для работы в дымовой трубе Spirit27y Выбор фонарей 13 06.05.2011 12:48

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

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

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


Текущее время: 11:53. Часовой пояс GMT +3.
Даты в формате dd.mm.yyyy.
(По умолчанию форум работает по московскому времени.)


Powered by vBulletin® 3.8.x
Copyright ©2000 - 2014, vBulletin Solutions, Inc. Перевод: zCarot


FONAREVKA.RU - хоббийный проект, сообщество энтузиастов, для которых область фонаростроения (в частности фонарики, компоненты, зарядные устройства, источники питания и т.д.), это исключительно хобби и общение "по интересам".

Проект FONAREVKA.RU - не ведет торговую деятельность и не оказывает иных услуг, где существует коммерческая составляющая. Исключение составляют предоставление на нашей площадке рекламных мест для баннерной рекламы (без каких-либо привилегий для самого рекламодателя) и поддержка в рамках разумного мелкосерийных производителей и кастомщиков, для которых разработки, это в первую очередь многолетнее хобби.

Проект FONAREVKA.RU - не имеет никакого отношения к созвучным магазинам или доменам в других доменных зонах.

Все наши проекты, созданные в рамках основного проекта FONAREVKA.RU размещаются исключительно на поддоменах домена Fonarevka.ru

Список наших проектов:

Официальная база тестов и сравнения фонарей: Fonarevka.ru
Форум о фонарях и светотехнике: Forum.fonarevka.ru
Форум о лазерах и лазерной технике: Lasers.fonarevka.ru
База отзывов о товарах с DX и т.п.: Dxreviews.fonarevka.ru
Калькулятор светового потока: Ledcalc.fonarevka.ru
База тестов и сравнения фонарей от наших коллег: 3rdparty.fonarevka.ru
Глоссарий Фонарёвщика: Glossary.fonarevka.ru

vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.

Copyright ©2007 - 2018, FONAREVKA.RU.

Если Вы не являетесь правообладателем того или иного контента размещенного на форуме (фото/видео/текст),
то при любом использовании материалов форума необходимо получить письменное разрешение
на использование того или иного материала у администрации форума.

При использовании материалов форума ссылка на forum.fonarevka.ru обязательна.

Экстремальный портал VVV.RU Рейтинг@Mail.ru --> bigmir)net TOP 100

Время генерации страницы 0.24554 секунды с 22 запросами