-
- А слабо прозрачные рельефные кнопки над дисплеем сделать? :) Тачскрин с кликом :) - Николай Коровин(21.04.2017 21:03)
- Поясню ещё немного. Сейчас меню для текстового дисплея масштаба 1602/2004 или PCD8544( "Nokia 5110", 84*48 точек) в связке с дохленьким контроллером масштаба stm8 или AVR. С другой стороны, если будет необходимость работать с STM32, то не хотелось Dingo(118 знак., 21.04.2017 15:05)
- Редактировать - в каком диапазоне и с каким шагом? Откуда в вашем случае меню знает какой параметро менять и в каком диапазоне(с каким шагом)? А вот одной кнопке разные действия - умно, не подумал. Хоть и в сотовом каждый день Dingo(95 знак., 21.04.2017 13:09)
- Если редактировать IP адрес - то как бы понятно. У числового параметра шаг определяется положением курсора, ну и насыщение есть, конечно. Ситуации, когда шаг не равен единице в соответствующем разряде, у меня не было, но и её можно обыграть. - SciFi(21.04.2017 13:12)
- Не совсем понятно, как можно при моей версии редактирование строчных параметров завернуть. Не часто нужны, но случается: идентификатор какой-нить для железки в сети, например. И всё равно это можно передать через enum события, вот только где их Dingo(91 знак., 21.04.2017 14:42)
- иногда делаю как SciFi, иногда (когда экран позволяет), алфавит на дисплее, бегаем по буквам и спец символам - 0men(21.04.2017 14:55)
- Чего там придумывать? Делаем текстовый редактор из того, что есть. Кнопки курсор туда-сюда, буква плюс-минус, backspace или delete, insert, cancel, enter. Получилось 8 штук. Можно убрать 2 штуки: курсор туда, буква минус, но тогда редактор будет SciFi(75 знак., 21.04.2017 14:46 - 14:53)
- Хорошо, по вашему примеру: был параметр 99, мы увеличили на 1. теперь надо 3 символа, а не два. Или было 10, уменьшили - теперь один знак. В вашем подходе как сделано? И ещё спрошу: в какой момент функционал получает значения из меню? Dingo(304 знак., 21.04.2017 13:18 - 13:29)
- Нулями слева не дополняю. Курсор можно выкатить влево под пробел, выглядит вполне нормально. Есть оба варианта: значение применяется при каждом изменении цифр или только при нажатии кнопки ввода, в зависимости от того, что удобнее в данном случае. SciFi(659 знак., 21.04.2017 13:27)
- Не-не-не, не то. Вот вы решили
менятьпередавать параметр при каждом изменении. Изменили на 1. Как функционал, не относящийся к меню узнает о новом значении? Откуда меню знает, какой из set() дёргать? Если RTOS - ждёте, пока задача Dingo(144 знак., 21.04.2017 13:38)- Для редактирования каждого параметра создаётся своя функция, которая вызывается для отработки событий меню типа SHOW_VALUE, START_EDIT, MODIFY, ENTER, CANCEL. У меня нет RTOS, поэтому да, Main Loop. SciFi(240 знак., 21.04.2017 13:47 - 13:59)
- Хм, у меня тоже почти так. Массивы структур меню потихоньку вымерли. - vllv(21.04.2017 15:08)
- Связные списки дают больше гибкости. Пытаться подстраивать логику работы устройства под упрощённую реализацию (массив или любой иное упрощение) - это тупиковый путь, приводящий к рождению уродцев. - SciFi(21.04.2017 15:12)
- Да, сцуко заказчик всегда заставляет делать не так, как удобно программисту :) - vllv(21.04.2017 15:16)
- Бывает и так, что программисту яиса мешают, тогда совсем тяжко :-) - SciFi(21.04.2017 15:17)
- Да, сцуко заказчик всегда заставляет делать не так, как удобно программисту :) - vllv(21.04.2017 15:16)
- Связные списки дают больше гибкости. Пытаться подстраивать логику работы устройства под упрощённую реализацию (массив или любой иное упрощение) - это тупиковый путь, приводящий к рождению уродцев. - SciFi(21.04.2017 15:12)
- а что такое длительный процесс? пример? - 0men(21.04.2017 14:20)
- ПИД-регулятор. Сканирование спектра. Подъём груза лебёдкой. Да всё, что угодно. - SciFi(21.04.2017 14:23)
- под него какой то фрейм времени выделяется? или там находимся пока не завершится? У меня просто тоже много приборов с меню сделано по похожей схеме, интересно, как реализовано у других ) - 0men(21.04.2017 14:45)
- У других делается банальный автомат состояний, чтобы порвать длинное на короткое. - vllv(21.04.2017 15:17)
- Далаю так, чтобы на один вызов poll() слишком много времени не уходило. Тогда тормозов нет. До сих пор жёсткие ограничения по времени делать не приходилось, поэтому всё делается легко и непринуждённо. SciFi(130 знак., 21.04.2017 14:49)
- под него какой то фрейм времени выделяется? или там находимся пока не завершится? У меня просто тоже много приборов с меню сделано по похожей схеме, интересно, как реализовано у других ) - 0men(21.04.2017 14:45)
- ПИД-регулятор. Сканирование спектра. Подъём груза лебёдкой. Да всё, что угодно. - SciFi(21.04.2017 14:23)
- Хм, у меня тоже почти так. Массивы структур меню потихоньку вымерли. - vllv(21.04.2017 15:08)
- Для редактирования каждого параметра создаётся своя функция, которая вызывается для отработки событий меню типа SHOW_VALUE, START_EDIT, MODIFY, ENTER, CANCEL. У меня нет RTOS, поэтому да, Main Loop. SciFi(240 знак., 21.04.2017 13:47 - 13:59)
- Не-не-не, не то. Вот вы решили
- Нулями слева не дополняю. Курсор можно выкатить влево под пробел, выглядит вполне нормально. Есть оба варианта: значение применяется при каждом изменении цифр или только при нажатии кнопки ввода, в зависимости от того, что удобнее в данном случае. SciFi(659 знак., 21.04.2017 13:27)
- Не совсем понятно, как можно при моей версии редактирование строчных параметров завернуть. Не часто нужны, но случается: идентификатор какой-нить для железки в сети, например. И всё равно это можно передать через enum события, вот только где их Dingo(91 знак., 21.04.2017 14:42)
- Если редактировать IP адрес - то как бы понятно. У числового параметра шаг определяется положением курсора, ну и насыщение есть, конечно. Ситуации, когда шаг не равен единице в соответствующем разряде, у меня не было, но и её можно обыграть. - SciFi(21.04.2017 13:12)