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

Аватара пользователя
fgfg66
Рядовой
Сообщения: 10
Зарегистрирован: 09.11.2018{, 12:54}
Репутация: 0
Имя: Илья

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

#1

Сообщение fgfg66 » 13.11.2018{, 20:21}

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

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

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

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

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

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

Но возможно это уже реализовано и не стоит изобретать велосипед.

Oleg1345140
Лейтенант
Сообщения: 539
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

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

#2

Сообщение Oleg1345140 » 14.11.2018{, 00:33}

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

Но возможно это уже реализовано и не стоит изобретать велосипед.
Правильное виденье, подобным образом делал набор энкодором, только использовал не буквы а цифры.

Аватара пользователя
fgfg66
Рядовой
Сообщения: 10
Зарегистрирован: 09.11.2018{, 12:54}
Репутация: 0
Имя: Илья

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

#3

Сообщение fgfg66 » 14.11.2018{, 00:49}

Ну значит чертежа велосипеда нет. Буду городить свой. ;)

fsergei70
Капитан
Сообщения: 786
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 54
Имя: Сергей

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

#4

Сообщение fsergei70 » 14.11.2018{, 07:59}

Oleg1345140 писал(а):
14.11.2018{, 00:33}
подобным образом делал набор энкодором
Здравствуйте, примером не поделитесь?

Oleg1345140
Лейтенант
Сообщения: 539
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

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

#5

Сообщение Oleg1345140 » 14.11.2018{, 10:59}

fsergei70 писал(а):
14.11.2018{, 07:59}
Oleg1345140 писал(а):
14.11.2018{, 00:33}
подобным образом делал набор энкодором
Здравствуйте, примером не поделитесь?
Доберусь до дому поделюсь, но не думаю что кроме концепции что то пригодится.

Аватара пользователя
fgfg66
Рядовой
Сообщения: 10
Зарегистрирован: 09.11.2018{, 12:54}
Репутация: 0
Имя: Илья

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

#6

Сообщение fgfg66 » 15.11.2018{, 13:52}

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

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

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


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

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



Схемку прилагаю
2018-11-15_13-39-56.png
Отправлено спустя 4 минуты 14 секунд:
Цифры-_Буквы_(FBD).ubi
(178.64 КБ) 62 скачивания
Отправлено спустя 5 минут 7 секунд:
Пока у меня подозрения на массив. В нем 36 строчек. 5 счетчиков это уже 150 строк. Когда массив был один.. то он не дублировался. В пользовательском блоке возможно каждый массив новый.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#7

Сообщение Sancho » 15.11.2018{, 14:38}

Для содержимого массива из приложенного в блоке совсем не обязательно вообще создавать массив.
Таблица ascii.
На выходе блока будет один элемент типа char - его прибавить к строке.
Если не секрет, можно посмотреть на то, что происходит после блока. Не скрином.
И остальные массивы.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

fsergei70
Капитан
Сообщения: 786
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 54
Имя: Сергей

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

#8

Сообщение fsergei70 » 15.11.2018{, 14:45}

На сколько я понял нужно вводить слово из 5 символов, может попробовать так.
Вложения
текст.flp
(114.63 КБ) 64 скачивания

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#9

Сообщение Sancho » 15.11.2018{, 14:53}

Зачем вообще массив?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

fsergei70
Капитан
Сообщения: 786
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 54
Имя: Сергей

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

#10

Сообщение fsergei70 » 15.11.2018{, 15:15}

Sancho писал(а):
15.11.2018{, 14:53}
Зачем вообще массив?
А как по другому? Через блок таблица кодов? Интересно что места будет меньше занимает в памяти

Аватара пользователя
fgfg66
Рядовой
Сообщения: 10
Зарегистрирован: 09.11.2018{, 12:54}
Репутация: 0
Имя: Илья

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

#11

Сообщение fgfg66 » 15.11.2018{, 15:21}

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

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#12

Сообщение Sancho » 15.11.2018{, 15:33}

Секундочку.

Отправлено спустя 6 минут 11 секунд:
Конвертация типов -> char
На вход подай со счётчика, предварительно прибавив 48, диапазон придётся увеличить, т.к. между цифрами и буквами есть в виде больше, меньше и т.д.
Примерно так по твоему алгоритму:
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#13

Сообщение Sancho » 15.11.2018{, 15:51}

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

Отправлено спустя 5 минут 55 секунд:
Ввод текста тремя кнопками
av писал(а):
15.11.2018{, 15:46}
Вы хотите сделать типа кодового замка. Я правильно понял ?
Если да, то количество знаков в строке.
Забыл в своём блоке задекларировать, сори:
byte count_1;
bool old_Takt;
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
fgfg66
Рядовой
Сообщения: 10
Зарегистрирован: 09.11.2018{, 12:54}
Репутация: 0
Имя: Илья

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

#14

Сообщение fgfg66 » 15.11.2018{, 16:00}

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

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

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

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

Сейчас скачаю версию 4.2, перепишу заново и опробую ваши коды. За помощь спасибо!

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#15

Сообщение Sancho » 15.11.2018{, 16:01}

Обновил

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

Отправлено спустя 19 минут 50 секунд:
fgfg66 писал(а):
15.11.2018{, 16:00}
Да, кодовый замок. Нужно ввести код тремя кнопками. В той теме я получил ответ, что нужно подумать самому. Подумал и сделал.
Как будут, в планах, вводится кодовые слова? Те, с которыми будет сравниваться вводимое пользователем. Или это будут константы до перешивки?
Вложения
Буквы_цифры_2.flp
Убрал ошибки
(211.58 КБ) 62 скачивания
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

fsergei70
Капитан
Сообщения: 786
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 54
Имя: Сергей

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

#16

Сообщение fsergei70 » 15.11.2018{, 16:31}

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

Отправлено спустя 2 минуты 52 секунды:
т.е. выбираем символ кнопками + - жмем кнопку, выбираем следующий символ и т. д.

Аватара пользователя
fgfg66
Рядовой
Сообщения: 10
Зарегистрирован: 09.11.2018{, 12:54}
Репутация: 0
Имя: Илья

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

#17

Сообщение fgfg66 » 15.11.2018{, 16:37}

fsergei70 писал(а):
15.11.2018{, 14:45}
На сколько я понял нужно вводить слово из 5 символов, может попробовать так.
Изящно. Правда у меня перебираемый символ мигал, чтобы было понятно, где меняется.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#18

Сообщение Sancho » 15.11.2018{, 16:42}

fsergei70 писал(а):
15.11.2018{, 16:34}
Сань а зачем так много входов? Как переделать под 3 входа + - выбираем символ и кнопкой сохранить, чтоб к энкодеру можно было прикрутить.
Я показал разницу в размере кода при тех-же самых входах, что и у ТС. Мой код около 100 байт...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
fgfg66
Рядовой
Сообщения: 10
Зарегистрирован: 09.11.2018{, 12:54}
Репутация: 0
Имя: Илья

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

#19

Сообщение fgfg66 » 15.11.2018{, 16:45}

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

fsergei70, Хотел посмотреть ваш пользовательский блок. Он на C. Но выдает ошибку. Скриншот прилагаю. Что это может быть?
error.png
error.png (16.86 КБ) 754 просмотра

fsergei70
Капитан
Сообщения: 786
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 54
Имя: Сергей

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

#20

Сообщение fsergei70 » 15.11.2018{, 16:46}

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

Ответить

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