Алгоритм управления меню энкодером?

Использование прочих датчиков и энкодеров и пользовательских блоков к ним
Ответить
DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

Алгоритм управления меню энкодером?

#1

Сообщение DWD » 10.07.2016{, 09:56}

Чем больше кнопок, тем легче организовать меню в программе.
Скажем, наплохо смотрится и легко делается меню при управлении с 5 кнопок, расположенных соответствующим образом: влево, вправо, вверх, вниз и в центре - кнопка "Ок"...
Тут всё прозрачно и просто.

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

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

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

Подскажите, пожалуйста, красивые алгоритмы реализации, а то у самого уже фантазии не хватает.
Последний раз редактировалось DWD 10.07.2016{, 09:58}, всего редактировалось 1 раз.
Изображение

holodaleksey
Лейтенант
Сообщения: 566
Зарегистрирован: 10.01.2016{, 13:47}
Репутация: 14

Алгоритм управления меню энкодером?

#2

Сообщение holodaleksey » 10.07.2016{, 10:36}

Короткое нажатие ввод, с удержанием выход.
подобные решения весьма приятно реализованы у карела в pj32 и pjeasy.
Подпись удалена мною по требованию администрации форума, что является нарушение демократии )

DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

Алгоритм управления меню энкодером?

#3

Сообщение DWD » 10.07.2016{, 11:09}

Тут тоже есть заморочки...
Если организовать срабатывание по отпусканию кнопки, то появляется задержка на срабатывание - проявляется как тормознутость. Что нервирует.
А если организовать срабатывание по нажатию, то реализация довольно громоздкая, сложная и закрученная.
Изображение

vlad
Лейтенант
Сообщения: 396
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

Алгоритм управления меню энкодером?

#4

Сообщение vlad » 10.07.2016{, 11:25}

еще можно по бездействию. правда если много параметров настраивать то не совсем удобно. в этом случае по бездействию и по длительному удержанию

DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

Алгоритм управления меню энкодером?

#5

Сообщение DWD » 10.07.2016{, 12:04}

По бездействию мне не подходит, не смотря на слабо разветвлённое меню: порядка 4  редактируемых меню (плюс несколько информационных), и в каждом 1-3 изменяемых  параметра.

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

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

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

Правда не на каждом экране меню есть свободное место даже для одного символа...
Последний раз редактировалось DWD 10.07.2016{, 12:21}, всего редактировалось 1 раз.
Изображение

vlad
Лейтенант
Сообщения: 396
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

Алгоритм управления меню энкодером?

#6

Сообщение vlad » 10.07.2016{, 12:52}

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

CraCk
Лейтенант
Сообщения: 632
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 10

Алгоритм управления меню энкодером?

#7

Сообщение CraCk » 10.07.2016{, 13:32}

У меня нет энкодера чтобы проверить вариант: Зажимаем кнопку энкодера и не отпуская ее одновременно крутим вправо или влево. Что будет означать меню назад.
А экран какой?
Последний раз редактировалось CraCk 10.07.2016{, 13:34}, всего редактировалось 1 раз.

DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

Алгоритм управления меню энкодером?

#8

Сообщение DWD » 10.07.2016{, 14:41}

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

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

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

Добавлено (10.07.2016, 14:39)
---------------------------------------------
CraCk писал(а):Зажимаем кнопку энкодера и не отпуская ее одновременно крутим вправо или влево. Что будет означать меню назад.
Я этот вариант уже проверял - работает чётко с любым энкодером, какие у меня были. В том числе и в варианте на 3-х фазном движке.

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

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

Добавлено (10.07.2016, 14:41)
---------------------------------------------
CraCk писал(а):А экран какой?
Что Вы имеете в виду - марку дисплея?
Последний раз редактировалось DWD 10.07.2016{, 14:29}, всего редактировалось 1 раз.
Изображение

CraCk
Лейтенант
Сообщения: 632
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 10

Алгоритм управления меню энкодером?

#9

Сообщение CraCk » 10.07.2016{, 15:32}

DWD писал(а):Что Вы имеете в виду - марку дисплея?
Имел ввиду на сколько строк? Если есть место можно создать пункт назад.

[video][/video]
Вложения
Menu_nokia_5110.rar
(508.84 КБ) 109 скачиваний
Последний раз редактировалось CraCk 10.07.2016{, 15:34}, всего редактировалось 1 раз.

DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

Алгоритм управления меню энкодером?

#10

Сообщение DWD » 10.07.2016{, 16:02}

Дисплей 2002
Изображение

Аватара пользователя
Vitez
Сержант
Сообщения: 211
Зарегистрирован: 08.11.2015{, 14:32}
Репутация: 4

Алгоритм управления меню энкодером?

#11

Сообщение Vitez » 10.07.2016{, 21:11}

Мое предложение: В конце каждого прокручиваемого списка "Меню" есть вкладка "Назад" Активация оной и  возвращает на уровень выше.
Последний раз редактировалось Vitez 10.07.2016{, 21:17}, всего редактировалось 1 раз.

Аватара пользователя
Noname
Сержант
Сообщения: 120
Зарегистрирован: 06.01.2016{, 21:53}
Репутация: 1
Откуда: Москва
Имя: Анатолий

Алгоритм управления меню энкодером?

#12

Сообщение Noname » 11.07.2016{, 21:04}

когда то делал меню на трех кнопках, вот нашел правда не доделанный проект, но если интересно , можете посмотреть в протеусе
ссылка
Последний раз редактировалось Noname 11.07.2016{, 21:06}, всего редактировалось 1 раз.

DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

Алгоритм управления меню энкодером?

#13

Сообщение DWD » 12.07.2016{, 07:30}

Спасибо, посмотрел.
Пока пытаюсь сделать без применения задержек. Особенно длинных.
Изображение

Ответить

Вернуться в «Прочие датчики и энкодеры»