Создание консоли с водом пароля

foxsto
Offline
Зарегистрирован: 28.03.2017

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

подскажите интересные решения.

 

foxsto
Offline
Зарегистрирован: 28.03.2017

например вводим массив [27] {0,1,2,3,4,5,6,7,8,9,a,b,c,d,сохранить,отменить,яч0,яч1,яч2,яч4,яч5,яч6,яч7,яч8,яч9}

курсором лево право выбераем индекс из массива и приравниваем текущее значение на переменную 'select'

при нажатии кнопки ок - ячейку в поле пароль приравниваем к переменной 'select' и переходим на след ячейку в пароле

(курсоры могут перемещатся по ячейкам пароля)

при наборе нужного кольчества символов в пароле нажимаем вирт кнопку -сохранить- выделеным селектом и нажатием кнопки -ок-

этот пароль записывается EEPROM.put(пароль);

чтобы на экране все показывалось что происходит выводим -select- в виде курсора на экране в свою часть позиции текущего выделенного значения

вопросы как собрать в одно слово пароль из ячеек, будет ли работать мой алгоритм?

п.с. простите за ошибки, и опечатки, тыкаю глючный сенсор

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

foxsto пишет:

кокой логикой кода лучше воспользоваться 

Двоичной

foxsto пишет:

сколько взять переменных.

Это без разницы. Сколько не бери, всё равно в конце вечера в магазин бежать придётся.

 

foxsto
Offline
Зарегистрирован: 28.03.2017

ЕвгенийП пишет:

Это без разницы. Сколько не бери, всё равно в конце вечера в магазин бежать придётся.

а по существу ничего подсказать нет возможности?

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

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

foxsto пишет:

а по существу ничего подсказать нет возможности?

А по существу я не понял вопроса.

Букв Вы написали много, а вот в чём Ваша проблема непонятно. Если бы Вы выложили свой текущий код и конкретно сказали что в нём не так, и чего Вы не можете от него добиться, был бы другой разговор.

foxsto
Offline
Зарегистрирован: 28.03.2017

ЕвгенийП пишет:

над кодом пока думаю, а вот подсказать вполне можите.

например

int parol

int ya1 = p

int ya2 = a

int ya3 = s

int ya4 = s

int ya5 = w

int ya6 = o

int ya7 = r

int ya7 = d

//производим манипуляцию с переменными так чтобы получить стово из букв подряд
---
---
//сохраняем и выводим

EEPROM.put(parol);
Serial.print(parol);

и чтобы выводилось (pasword)

максимум что у меня получилось это вывод цифр, но как это обьяснить программе что это буквы, или хотя бы чтобы она понимала что там буквы и кагда она будет к вайфаю подключаться чтобы вайфай сообразил что там написано

как писать буквы 0x84 или byte(132)

int ya5 = 0x84
int ya5 = byte(132)

поймет ли их вайфай после соединение в слово?

если записать так

char myArray[10]={9,0x84,byte(129),byte(130),3,2,7,8,9,11}; 

void setup() {
  Serial.begin(9600); //устанавливаем последовательное соединение
int i;
//for (i = 0; i < 10; i = i + 1) {
  Serial.println(myArray[0], BIN);
  Serial.println(myArray[4], BIN);
  Serial.println(myArray[2], BIN);
  Serial.println(myArray[3], BIN);
  Serial.println(myArray[1], BIN);
//}
}


void loop() {

}

то монитор выдает вот такие строки

1001

11

11111111111111111111111110000001

11111111111111111111111110000010

11111111111111111111111110000100

 

 

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

foxsto пишет:

но как это обьяснить программе что это буквы, 

Я с Ваc балдею. Там изначально у Вас написано char myArray[], то бишь, буквы.

Вместо того, чтобы эти бувы просто вывести, Вы предприняли немалые усилия, чтобы вывести их "через альпы" в виде двоичных чисел, а теперь плачетесь "как объясните, что буквы".

НИкак не объясняйте. Просто перестаньте объяснять, что Вам нужны двоичные числа. Напишите вместо Serial.println(myArray[0], BIN); просто по-человечски Serial.println(myArray[0]);.

Только если Вы хотите, чтобы в массиве были действиетльно буквы, так Вы их туда и пишите. Чего Вы написали

char myArray[10]={9,0x84,byte(129),byte(130),3,2,7,8,9,11};

пигшите нормально

char myArray[10]={'a','b','c','d', .....};

foxsto
Offline
Зарегистрирован: 28.03.2017

ЕвгенийП пишет:

foxsto пишет:

но как это обьяснить программе что это буквы, 

Я с Ваc балдею. Там изначально у Вас написано char myArray[], то бишь, буквы.

пигшите нормально

char myArray[10]={'a','b','c','d', .....};

а что делать с шрифтом дисплея на который бинарные чила идут

        0x7e, 0x11, 0x11, 0x11, 0x7e,//A        0x80    
        0x7f, 0x49, 0x49, 0x49, 0x33,//Б        0x81    
        0x7f, 0x49, 0x49, 0x49, 0x36,//В        0x82    
        0x7f, 0x01, 0x01, 0x01, 0x03,//Г        0x83    
        0xe0, 0x51, 0x4f, 0x41, 0xff,//Д        0x84    
        0x7f, 0x49, 0x49, 0x49, 0x41,//E        0x85    
        0x77, 0x08, 0x7f, 0x08, 0x77,//Ж        0x86    
        0x41, 0x49, 0x49, 0x49, 0x36,//З        0x87    
        0x7f, 0x10, 0x08, 0x04, 0x7f,//И        0x88    
        0x7c, 0x21, 0x12, 0x09, 0x7c,//Й        0x89    
        0x7f, 0x08, 0x14, 0x22, 0x41,//K        0x8A    
        0x20, 0x41, 0x3f, 0x01, 0x7f,//Л        0x8B    
        0x7f, 0x02, 0x0c, 0x02, 0x7f,//M        0x8C    

их тогда как писать чтобы программа понимала что это буква, хоть в этом случаее ни не совсем пригодится но в как в таких ситуациях поступают? если изначально не буква была присвоена а цыфры

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

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

foxsto
Offline
Зарегистрирован: 28.03.2017

сейчас сформулирую точнее.

как обьяснить ардуино и микропроцессору что эта картинка является номером таким то и обазначается буквой такой то

ардуино же понимает char myArray='J' и char myArray=74 одно и тоже, но вот доп символы и русские буквы не понимает

хотя это может просто в мониторе их отобразить не может

и вопрос все же актуален - как собрать слово из букв в одну сторчку и записать его в поле?

const char* password = "your-password";

и что дает звездочка перед

char*

никогда не встечал написание такое

 

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Пожалуйста, прочитайте внимательно вот эту книгу. Только внимательно, рабирая все примеры. Количество вопросв у Вас резко уменьшится.

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

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

Пожалуйста, прочитайте внимательно вот эту книгу. Только внимательно, рабирая все примеры. Количество вопросв у Вас резко уменьшится.

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

"нам Учитель задает трудные задачи..."

AleArduino
Offline
Зарегистрирован: 27.02.2018

Вопросы у меня есть похожие, хотел книгу глянуть, которую вы рекомендуете - ссылка не открывается (( 

Может где-то еще лежит?

Спасибо!

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

я научу: набери в гугале "Керниган+Ритчи+pdf" и качай.