FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Воскресенье, 04.12.2016, 04:53
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Алгоритм управления меню энкодером? (Или тремя кнопками...)
Алгоритм управления меню энкодером?
DWD
Дата: Воскресенье, 10.07.2016, 09:56 | Сообщение # 1
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
Чем больше кнопок, тем легче организовать меню в программе.
Скажем, наплохо смотрится и легко делается меню при управлении с 5 кнопок, расположенных соответствующим образом: влево, вправо, вверх, вниз и в центре - кнопка "Ок"...
Тут всё прозрачно и просто.

А вот как организовать такое же по функциональности меню, но имея всего 3 кнопки?
Если точнее, то один энкодер с кнопкой.

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

Осталось только двойные клики применять, нажатие с удержанием, да нажатие с проворотом.
Но это всё так сложно и нудно...

Подскажите, пожалуйста, красивые алгоритмы реализации, а то у самого уже фантазии не хватает.




Сообщение отредактировал DWD - Воскресенье, 10.07.2016, 09:58
 
holodaleksey Дата: Воскресенье, 10.07.2016, 10:36 | Сообщение # 2
Лейтенант
Группа: Проверенные
Сообщений: 106
Награды: 1
Репутация: 1
Статус: Offline
Короткое нажатие ввод, с удержанием выход.
подобные решения весьма приятно реализованы у карела в pj32 и pjeasy.
 
DWD Дата: Воскресенье, 10.07.2016, 11:09 | Сообщение # 3
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
Тут тоже есть заморочки...
Если организовать срабатывание по отпусканию кнопки, то появляется задержка на срабатывание - проявляется как тормознутость. Что нервирует.
А если организовать срабатывание по нажатию, то реализация довольно громоздкая, сложная и закрученная.


 
vlad Дата: Воскресенье, 10.07.2016, 11:25 | Сообщение # 4
Подполковник
Группа: Проверенные
Сообщений: 260
Награды: 0
Репутация: 5
Статус: Offline
еще можно по бездействию. правда если много параметров настраивать то не совсем удобно. в этом случае по бездействию и по длительному удержанию
 
DWD Дата: Воскресенье, 10.07.2016, 12:04 | Сообщение # 5
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
По бездействию мне не подходит, не смотря на слабо разветвлённое меню: порядка 4  редактируемых меню (плюс несколько информационных), и в каждом 1-3 изменяемых  параметра.

В общем, по бездействию будет не оперативно.

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

Добавлено (10.07.2016, 12:04)
---------------------------------------------
Может в каждом экране меню добавить ещё один, выбираемый, но неизменяемый параметр, обозначенный каким нибудь символом и означающим "выход"?
Тогда просто нажатие на кнопку означает вход в меню или параметр, а нажатие после выбора символа "выход" - выход на предыдущую позицию меню.

Правда не на каждом экране меню есть свободное место даже для одного символа... smile




Сообщение отредактировал DWD - Воскресенье, 10.07.2016, 12:21
 
vlad Дата: Воскресенье, 10.07.2016, 12:52 | Сообщение # 6
Подполковник
Группа: Проверенные
Сообщений: 260
Награды: 0
Репутация: 5
Статус: Offline
Цитата DWD ()
Может в каждом экране меню добавить ещё один, выбираемый, но неизменяемый параметр, обозначенный каким нибудь символом и означающим "выход"?
действительно- помоему это самый лучший вариант. имхо
 
CraCk Дата: Воскресенье, 10.07.2016, 13:32 | Сообщение # 7
Майор
Группа: Проверенные
Сообщений: 180
Награды: 0
Репутация: 1
Статус: Offline
У меня нет энкодера чтобы проверить вариант: Зажимаем кнопку энкодера и не отпуская ее одновременно крутим вправо или влево. Что будет означать меню назад.
А экран какой?


Сообщение отредактировал CraCk - Воскресенье, 10.07.2016, 13:34
 
DWD Дата: Воскресенье, 10.07.2016, 14:41 | Сообщение # 8
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
Цитата vlad ()
Может в каждом экране меню добавить ещё один, выбираемый, но неизменяемый параметр, обозначенный каким нибудь символом и означающим "выход"?действительно- помоему это самый лучший вариант. имхо

Места нет для доп символа. Решил в качестве символа "Возврат на шаг" делать миганющим все надписи на экране.
То есть, вращением можно будет выбрать либо какой-то параметр для редактирования (он мигает), либо режим возврата (мигает всё).

Алгоритм получается такой:
1. Вращением ручки энкодера выбираем нужное меню.
2. Нажатием ручки заходим в режим редактирования этого меню. (на экране всё мигает).
3. Вращением ручки энкодера выбираем нужный параметр для изменения (мигает название этого параметра или всё).
4. Нажатием ручки заходим в режим изменения значения параметра. (на экране  мигает значение).
5. Вращением ручки меняем значение выбранного парамтера (значение всё время мигает).
6. Нажатием ручки выходим из редактирования значения (на экране мигает название этого параметра ).
7. Вращением ручки энкодера выбираем другой параметр для изменения (мигает название этого параметра) или для выхода (мигает всё).
8. Если будет выбран параметр, то смотреть с пункта 3. Если выбран выход, то нажатием ручки происходит выход из режима редактирования выбранного меню.
9. Далее - как в пункте 1.

Вроде как получается одной кнопкой реализовать и вход и выход. И в то же время, зайдя в меню по ошибке и увидев, что всё мигает, можно снова нажать и выйти. То есть, не много лишних движений и интуитивно понятно (мне, по крайней мере smile ).

Добавлено (10.07.2016, 14:39)
---------------------------------------------

Цитата CraCk ()
Зажимаем кнопку энкодера и не отпуская ее одновременно крутим вправо или влево. Что будет означать меню назад.

Я этот вариант уже проверял - работает чётко с любым энкодером, какие у меня были. В том числе и в варианте на 3-х фазном движке.

Так что рекомендую всем...

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

Добавлено (10.07.2016, 14:41)
---------------------------------------------

Цитата CraCk ()
А экран какой?

Что Вы имеете в виду - марку дисплея?




Сообщение отредактировал DWD - Воскресенье, 10.07.2016, 14:29
 
CraCk Дата: Воскресенье, 10.07.2016, 15:32 | Сообщение # 9
Майор
Группа: Проверенные
Сообщений: 180
Награды: 0
Репутация: 1
Статус: Offline
Цитата DWD ()
Что Вы имеете в виду - марку дисплея?
Имел ввиду на сколько строк? Если есть место можно создать пункт назад.

Прикрепления: Menu_nokia_5110.rar(509Kb)


Сообщение отредактировал CraCk - Воскресенье, 10.07.2016, 15:34
 
DWD Дата: Воскресенье, 10.07.2016, 16:02 | Сообщение # 10
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
Дисплей 2002

 
Vitez Дата: Воскресенье, 10.07.2016, 21:11 | Сообщение # 11
Лейтенант
Группа: Проверенные
Сообщений: 104
Награды: 4
Репутация: 0
Статус: Offline
Мое предложение: В конце каждого прокручиваемого списка "Меню" есть вкладка "Назад" Активация оной и  возвращает на уровень выше.

Сообщение отредактировал Vitez - Воскресенье, 10.07.2016, 21:17
 
Noname Дата: Понедельник, 11.07.2016, 21:04 | Сообщение # 12
Лейтенант
Группа: Проверенные
Сообщений: 82
Награды: 0
Репутация: 1
Статус: Offline
когда то делал меню на трех кнопках, вот нашел правда не доделанный проект, но если интересно , можете посмотреть в протеусе
ссылка


Сообщение отредактировал Noname - Понедельник, 11.07.2016, 21:06
 
DWD Дата: Вторник, 12.07.2016, 07:30 | Сообщение # 13
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
Спасибо, посмотрел.
Пока пытаюсь сделать без применения задержек. Особенно длинных.


 
Форум » Основной » Спросить у знатоков » Алгоритм управления меню энкодером? (Или тремя кнопками...)
Страница 1 из 11
Поиск:

FLProg © 2016
Яндекс.Метрика