Ввод текста тремя кнопками

Аватара пользователя
fgfg66
Рядовой
Сообщения: 10
Зарегистрирован: 09 ноя 2018, 12:54
Имя: Илья

Ввод текста тремя кнопками

Сообщение fgfg66 »

Здравствуйте.

Нужен интерфейс ввода пятизначного кода тремя кнопками.

Код: Выделить всё

Имеем три кнопки: Плюс, минус, сохранить.
На лсд дисплее пятизначная строка. 
Мигает первый символ. 
Кнопками крутим вверх-вниз кнопками "плюс" и "минус". 
На нужном символе нажимаем кнопку "сохранить"
Мигает второй символ. Выбираем, сохраняем.

.... повторяем для каждого символа

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

Но возможно это уже реализовано и не стоит изобретать велосипед.
Oleg1345140
Лейтенант
Сообщения: 539
Зарегистрирован: 06 сен 2015, 07:09
Откуда: Курган

Ввод текста тремя кнопками

Сообщение Oleg1345140 »

fgfg66 писал(а): 13 ноя 2018, 20:21Пока вижу что это можно реализовать счетчиком - перебором из массива кодов букв.. сдвигать посимвольно, складывая в одну переменную. При достижении сдвига пять раз, делать проверку.

Но возможно это уже реализовано и не стоит изобретать велосипед.
Правильное виденье, подобным образом делал набор энкодором, только использовал не буквы а цифры.
Аватара пользователя
fgfg66
Рядовой
Сообщения: 10
Зарегистрирован: 09 ноя 2018, 12:54
Имя: Илья

Ввод текста тремя кнопками

Сообщение fgfg66 »

Ну значит чертежа велосипеда нет. Буду городить свой. ;)
fsergei70
Капитан
Сообщения: 859
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 40 раз
Поблагодарили: 8 раз

Ввод текста тремя кнопками

Сообщение fsergei70 »

Oleg1345140 писал(а): 14 ноя 2018, 00:33 подобным образом делал набор энкодором
Здравствуйте, примером не поделитесь?
Oleg1345140
Лейтенант
Сообщения: 539
Зарегистрирован: 06 сен 2015, 07:09
Откуда: Курган

Ввод текста тремя кнопками

Сообщение Oleg1345140 »

fsergei70 писал(а): 14 ноя 2018, 07:59
Oleg1345140 писал(а): 14 ноя 2018, 00:33 подобным образом делал набор энкодором
Здравствуйте, примером не поделитесь?
Доберусь до дому поделюсь, но не думаю что кроме концепции что то пригодится.
Аватара пользователя
fgfg66
Рядовой
Сообщения: 10
Зарегистрирован: 09 ноя 2018, 12:54
Имя: Илья

Пользовательский блок и пропажа памяти

Сообщение fgfg66 »

День добрый, Знатоки!

Нужен был функционал перебор счетчиком символов из массива.
Плюс мигание в момент выбора.
Нагородил логики, всё работает. Но дубляж для пяти счетчиков занял много места на схеме.
В классическом программировании есть принцип DRY (dont repeat yourself), не повторяй себя. Загоняй повторяющийся код в функции.

Решил убрать все в пользовательский блок для изящества схемы.
По аналогии с обычным программированием это ведь функция обычная? Так?


Упс.. не хватает памяти. Два блока работает, на трех уже ошибка.. А ведь на рассыпухе все отлично работает.

Посмотрел компиляцию, массивы не дублирует, код не раздувает. Что я делаю не так?



Схемку прилагаю
2018-11-15_13-39-56.png
Отправлено спустя 4 минуты 14 секунд:
Цифры-_Буквы_(FBD).ubi
Отправлено спустя 5 минут 7 секунд:
Пока у меня подозрения на массив. В нем 36 строчек. 5 счетчиков это уже 150 строк. Когда массив был один.. то он не дублировался. В пользовательском блоке возможно каждый массив новый.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Пользовательский блок и пропажа памяти

Сообщение Sancho »

Для содержимого массива из приложенного в блоке совсем не обязательно вообще создавать массив.
Таблица ascii.
На выходе блока будет один элемент типа char - его прибавить к строке.
Если не секрет, можно посмотреть на то, что происходит после блока. Не скрином.
И остальные массивы.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
fsergei70
Капитан
Сообщения: 859
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 40 раз
Поблагодарили: 8 раз

Пользовательский блок и пропажа памяти

Сообщение fsergei70 »

На сколько я понял нужно вводить слово из 5 символов, может попробовать так.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Пользовательский блок и пропажа памяти

Сообщение Sancho »

Зачем вообще массив?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
fsergei70
Капитан
Сообщения: 859
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 40 раз
Поблагодарили: 8 раз

Пользовательский блок и пропажа памяти

Сообщение fsergei70 »

Sancho писал(а): 15 ноя 2018, 14:53Зачем вообще массив?
А как по другому? Через блок таблица кодов? Интересно что места будет меньше занимает в памяти
Аватара пользователя
fgfg66
Рядовой
Сообщения: 10
Зарегистрирован: 09 ноя 2018, 12:54
Имя: Илья

Пользовательский блок и пропажа памяти

Сообщение fgfg66 »

Sancho писал(а): 15 ноя 2018, 14:38 Если не секрет, можно посмотреть на то, что происходит после блока. Не скрином.
И остальные массивы.
Там секрета нет, все счетчики собираются в строку и на дисплей. Хотел выложить код, но Flprog 4.1.1 не сохранил проект.. Блин. Вроде и сохранить нажимал, и автосохранение стоит и при компиляции сохраняет. И файл проекта свежий. Откатило на три дня. Спасибо хоть теперь могу со скрина пересобрать.. преимущество графического программирования.
Sancho писал(а): 15 ноя 2018, 14:53Зачем вообще массив?
Массив нужен для того чтобы со счетчика переводить в буквы. Такое вот решение на ум пришло.
Sancho писал(а): 15 ноя 2018, 14:38Для содержимого массива из приложенного в блоке совсем не обязательно вообще создавать массив.
Таблица ascii.
Я сначала ее попробовал, но она выдает код, а мне надо букву А например. Таблица выдает 65.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Ввод текста тремя кнопками

Сообщение Sancho »

Секундочку.

Отправлено спустя 6 минут 11 секунд:
Конвертация типов -> char
На вход подай со счётчика, предварительно прибавив 48, диапазон придётся увеличить, т.к. между цифрами и буквами есть в виде больше, меньше и т.д.
Примерно так по твоему алгоритму:
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Ввод текста тремя кнопками

Сообщение Sancho »

av писал(а): 15 ноя 2018, 15:46fgfg66, зачем вы плодите темы ? ЗДЕСЬ бы и задавали вопрос !
Согласен. Объединяю темы.

Отправлено спустя 5 минут 55 секунд:
Ввод текста тремя кнопками
av писал(а): 15 ноя 2018, 15:46Вы хотите сделать типа кодового замка. Я правильно понял ?
Если да, то количество знаков в строке.
Забыл в своём блоке задекларировать, сори:
byte count_1;
bool old_Takt;
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
fgfg66
Рядовой
Сообщения: 10
Зарегистрирован: 09 ноя 2018, 12:54
Имя: Илья

Ввод текста тремя кнопками

Сообщение fgfg66 »

av писал(а): 15 ноя 2018, 15:46fgfg66, зачем вы плодите темы ? ЗДЕСЬ бы и задавали вопрос !

Отправлено спустя 4 минуты :
fgfg66, исходя из темы по этой ссылке. Вы хотите сделать типа кодового замка. Я правильно понял ?

Да, кодовый замок. Нужно ввести код тремя кнопками. В той теме я получил ответ, что нужно подумать самому. Подумал и сделал.

Это совсем другая тема - не хватки памяти при использовании пользовательского блока. Идея с массивом не практична, если он занимает место в памяти в зависимости от количества блока. Получается не экономия, а наоборот.
Я еще учусь FBD. Уж больно он мне понравился. Детство вспомнил, 155ЛА3, все дела ))

Сейчас скачаю версию 4.2, перепишу заново и опробую ваши коды. За помощь спасибо!
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Ввод текста тремя кнопками

Сообщение Sancho »

Обновил

Отправлено спустя 3 минуты 41 секунду:
fsergei70 писал(а): 15 ноя 2018, 14:45На сколько я понял нужно вводить слово из 5 символов, может попробовать так.
И что получим, Серёга?
Несколько знаков в массиве из нескольких String. Каждый со своим индексом...

Отправлено спустя 19 минут 50 секунд:
fgfg66 писал(а): 15 ноя 2018, 16:00Да, кодовый замок. Нужно ввести код тремя кнопками. В той теме я получил ответ, что нужно подумать самому. Подумал и сделал.
Как будут, в планах, вводится кодовые слова? Те, с которыми будет сравниваться вводимое пользователем. Или это будут константы до перешивки?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
fsergei70
Капитан
Сообщения: 859
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 40 раз
Поблагодарили: 8 раз

Ввод текста тремя кнопками

Сообщение fsergei70 »

Sancho писал(а): 15 ноя 2018, 16:25Обновил
Сань а зачем так много входов? Как переделать под 3 входа + - выбираем символ и кнопкой сохранить, чтоб к энкодеру можно было прикрутить.

Отправлено спустя 2 минуты 52 секунды:
т.е. выбираем символ кнопками + - жмем кнопку, выбираем следующий символ и т. д.
Аватара пользователя
fgfg66
Рядовой
Сообщения: 10
Зарегистрирован: 09 ноя 2018, 12:54
Имя: Илья

Ввод текста тремя кнопками

Сообщение fgfg66 »

fsergei70 писал(а): 15 ноя 2018, 14:45На сколько я понял нужно вводить слово из 5 символов, может попробовать так.
Изящно. Правда у меня перебираемый символ мигал, чтобы было понятно, где меняется.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Ввод текста тремя кнопками

Сообщение Sancho »

fsergei70 писал(а): 15 ноя 2018, 16:34Сань а зачем так много входов? Как переделать под 3 входа + - выбираем символ и кнопкой сохранить, чтоб к энкодеру можно было прикрутить.
Я показал разницу в размере кода при тех-же самых входах, что и у ТС. Мой код около 100 байт...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
fgfg66
Рядовой
Сообщения: 10
Зарегистрирован: 09 ноя 2018, 12:54
Имя: Илья

Ввод текста тремя кнопками

Сообщение fgfg66 »

Sancho писал(а): 15 ноя 2018, 16:42Я показал разницу в размере кода при тех-же самых входах, что и у ТС. Мой код около 100 байт...
Очень круто!

[ref]fsergei70[/ref], Хотел посмотреть ваш пользовательский блок. Он на C. Но выдает ошибку. Скриншот прилагаю. Что это может быть?
error.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
fsergei70
Капитан
Сообщения: 859
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 40 раз
Поблагодарили: 8 раз

Ввод текста тремя кнопками

Сообщение fsergei70 »

Sancho писал(а): 15 ноя 2018, 16:42Я показал разницу в размере кода при тех-же самых входах, что и у ТС. Мой код около 100 байт...
Размер это хорошо, немного не понятно назначение входов.
Ответить

Вернуться в «Помогите, а то я "нимагу"»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей