mirror of
https://github.com/dimoniche/solarium_arduino.git
synced 2026-01-30 01:23:30 +03:00
Работа с паролями
This commit is contained in:
parent
e5d412ca6a
commit
27c33b2fe2
@ -73,8 +73,6 @@ boolean need_clear_menu = false; // флаг очистки
|
|||||||
boolean need_hide_cursor = false; // флаг скытия курсора на экране
|
boolean need_hide_cursor = false; // флаг скытия курсора на экране
|
||||||
boolean start_edit_parameter = false; // флаг старта редактирования параметра
|
boolean start_edit_parameter = false; // флаг старта редактирования параметра
|
||||||
|
|
||||||
bool enable_reset = false; // разрешение сброса настроек
|
|
||||||
|
|
||||||
// Переменные для работы с соляриями
|
// Переменные для работы с соляриями
|
||||||
#define pause_before 0
|
#define pause_before 0
|
||||||
#define pause_after 1
|
#define pause_after 1
|
||||||
@ -95,9 +93,7 @@ bool enable_reset = false; // разрешение сб
|
|||||||
#define work_regime 5
|
#define work_regime 5
|
||||||
#define signal_rele 6
|
#define signal_rele 6
|
||||||
#define weight_impulse 7
|
#define weight_impulse 7
|
||||||
#define reset_device 8
|
#define COUNT_BYTE_PARAMETER 8
|
||||||
#define reset_counters 9
|
|
||||||
#define COUNT_BYTE_PARAMETER 10
|
|
||||||
byte all_byte_parameters[COUNT_BYTE_PARAMETER];
|
byte all_byte_parameters[COUNT_BYTE_PARAMETER];
|
||||||
|
|
||||||
const byte all_byte_parameters_default[COUNT_BYTE_PARAMETER] = {
|
const byte all_byte_parameters_default[COUNT_BYTE_PARAMETER] = {
|
||||||
@ -109,8 +105,6 @@ const byte all_byte_parameters_default[COUNT_BYTE_PARAMETER] = {
|
|||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
0,
|
|
||||||
0,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define long_starts_counter 0
|
#define long_starts_counter 0
|
||||||
@ -125,9 +119,10 @@ const byte all_byte_parameters_default[COUNT_BYTE_PARAMETER] = {
|
|||||||
unsigned long all_long_parameters[COUNT_LONG_PARAMETER];
|
unsigned long all_long_parameters[COUNT_LONG_PARAMETER];
|
||||||
|
|
||||||
#define time_seance 0
|
#define time_seance 0
|
||||||
#define time_delay 1
|
#define time_delay 0
|
||||||
#define COUNT_TEXT_PARAMETER 2
|
#define stage_password 0
|
||||||
char text_parameters[COUNT_TEXT_PARAMETER][SIZE_SCREEN_LINE];
|
#define COUNT_TEXT_PARAMETER 1
|
||||||
|
char text_parameters[COUNT_TEXT_PARAMETER][SIZE_SCREEN_LINE*2];
|
||||||
|
|
||||||
LiquidCrystal_I2C lcd(0x27, SIZE_SCREEN_LINE, SIZE_SCREEN); // устанавливаем адрес 0x27, и дисплей 16 символов 2 строки
|
LiquidCrystal_I2C lcd(0x27, SIZE_SCREEN_LINE, SIZE_SCREEN); // устанавливаем адрес 0x27, и дисплей 16 символов 2 строки
|
||||||
|
|
||||||
@ -198,7 +193,8 @@ void read_buttons(byte x)
|
|||||||
#define SOLARIUM_MENU 8
|
#define SOLARIUM_MENU 8
|
||||||
#define SOLARIUM_MENU_PAY 9
|
#define SOLARIUM_MENU_PAY 9
|
||||||
#define SOLARIUM_MENU_DEV 10
|
#define SOLARIUM_MENU_DEV 10
|
||||||
#define RESET_MENU 11
|
#define RESET_DEVICE_MENU 11
|
||||||
|
#define RESET_COUNTER_MENU 12
|
||||||
|
|
||||||
enum type_menu_line {
|
enum type_menu_line {
|
||||||
MENU_LINE = 0,
|
MENU_LINE = 0,
|
||||||
@ -477,7 +473,7 @@ const menu_screen menu_settings[] PROGMEM = {
|
|||||||
{
|
{
|
||||||
"Сброс настроек",
|
"Сброс настроек",
|
||||||
MENU_LINE,
|
MENU_LINE,
|
||||||
{RESET_MENU}
|
{RESET_DEVICE_MENU}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
5
|
5
|
||||||
@ -502,18 +498,8 @@ const menu_screen menu_settings[] PROGMEM = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Обнуление",
|
"Обнуление",
|
||||||
LIST_PARAM_LINE,
|
MENU_LINE,
|
||||||
{
|
{RESET_COUNTER_MENU}
|
||||||
reset_counters,
|
|
||||||
{
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
" ",
|
|
||||||
"запуск"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
4
|
4
|
||||||
@ -596,8 +582,20 @@ const menu_screen menu_settings[] PROGMEM = {
|
|||||||
" "
|
" "
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"",
|
||||||
|
TEXT_PARAM_LINE,
|
||||||
|
{
|
||||||
|
stage_password,
|
||||||
|
{
|
||||||
|
0,
|
||||||
|
0,
|
||||||
},
|
},
|
||||||
2
|
""
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
3
|
||||||
},
|
},
|
||||||
// Меню 6
|
// Меню 6
|
||||||
{
|
{
|
||||||
@ -836,8 +834,55 @@ const menu_screen menu_settings[] PROGMEM = {
|
|||||||
""
|
""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"",
|
||||||
|
TEXT_PARAM_LINE,
|
||||||
|
{
|
||||||
|
stage_password,
|
||||||
|
{
|
||||||
|
0,
|
||||||
|
0,
|
||||||
},
|
},
|
||||||
2
|
""
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
3
|
||||||
|
},
|
||||||
|
// Меню 12
|
||||||
|
{
|
||||||
|
{
|
||||||
|
{
|
||||||
|
"",
|
||||||
|
FIXED_LINE,
|
||||||
|
{1}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"",
|
||||||
|
PASSWORD_VERIFY_LINE,
|
||||||
|
{
|
||||||
|
password,
|
||||||
|
{
|
||||||
|
0,
|
||||||
|
9999,
|
||||||
|
},
|
||||||
|
""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"",
|
||||||
|
TEXT_PARAM_LINE,
|
||||||
|
{
|
||||||
|
stage_password,
|
||||||
|
{
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
},
|
||||||
|
""
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
3
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1049,6 +1094,10 @@ void isButtonSingle(byte x)
|
|||||||
while(dig--) { scale *= 10; }
|
while(dig--) { scale *= 10; }
|
||||||
|
|
||||||
all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index] += scale;
|
all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index] += scale;
|
||||||
|
|
||||||
|
Serial.print(all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index]);
|
||||||
|
Serial.println("");
|
||||||
|
Serial.print(temp_password);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1089,6 +1138,8 @@ void isButtonDouble(byte x)
|
|||||||
|
|
||||||
if(current_menu_screen.menu_lines[current_line_index].type == MENU_LINE)
|
if(current_menu_screen.menu_lines[current_line_index].type == MENU_LINE)
|
||||||
{
|
{
|
||||||
|
sprintf(text_parameters[stage_password],"");
|
||||||
|
|
||||||
last_menu_index[menu_inter] = menu_index;
|
last_menu_index[menu_inter] = menu_index;
|
||||||
last_menu_cursor_index[menu_inter] = current_line_index;
|
last_menu_cursor_index[menu_inter] = current_line_index;
|
||||||
menu_inter++;
|
menu_inter++;
|
||||||
@ -1109,16 +1160,16 @@ void isButtonDouble(byte x)
|
|||||||
{
|
{
|
||||||
temp_password = all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index];
|
temp_password = all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index];
|
||||||
all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index] = 0;
|
all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index] = 0;
|
||||||
|
|
||||||
password_stage = 0;
|
password_stage = 0;
|
||||||
|
sprintf(text_parameters[stage_password],"Введите старый");
|
||||||
current_digit = 4;
|
current_digit = 4;
|
||||||
}
|
}
|
||||||
else if(current_menu_screen.menu_lines[current_line_index].type == PASSWORD_VERIFY_LINE)
|
else if(current_menu_screen.menu_lines[current_line_index].type == PASSWORD_VERIFY_LINE)
|
||||||
{
|
{
|
||||||
temp_password = all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index];
|
temp_password = all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index];
|
||||||
all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index] = 0;
|
all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index] = 0;
|
||||||
|
|
||||||
password_stage = 0;
|
password_stage = 0;
|
||||||
|
sprintf(text_parameters[stage_password],"Введите пароль");
|
||||||
current_digit = 4;
|
current_digit = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1128,6 +1179,7 @@ void isButtonDouble(byte x)
|
|||||||
} else {
|
} else {
|
||||||
start_edit_parameter = false;
|
start_edit_parameter = false;
|
||||||
need_hide_cursor = false;
|
need_hide_cursor = false;
|
||||||
|
|
||||||
if(current_menu_screen.menu_lines[current_line_index].type == DIGIT_PARAM_LINE)
|
if(current_menu_screen.menu_lines[current_line_index].type == DIGIT_PARAM_LINE)
|
||||||
{
|
{
|
||||||
save_byte_parameter(current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index);
|
save_byte_parameter(current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index);
|
||||||
@ -1138,7 +1190,55 @@ void isButtonDouble(byte x)
|
|||||||
}
|
}
|
||||||
else if(current_menu_screen.menu_lines[current_line_index].type == PASSWORD_SET_LINE)
|
else if(current_menu_screen.menu_lines[current_line_index].type == PASSWORD_SET_LINE)
|
||||||
{
|
{
|
||||||
|
if(password_stage == 0)
|
||||||
|
{
|
||||||
|
if(temp_password == all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index])
|
||||||
|
{
|
||||||
|
start_edit_parameter = true;
|
||||||
|
hide_cursor();
|
||||||
|
need_hide_cursor = true;
|
||||||
|
|
||||||
|
sprintf(text_parameters[stage_password],"Введите новый");
|
||||||
|
all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index] = 0;
|
||||||
|
password_stage = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sprintf(text_parameters[stage_password],"Неверный пароль");
|
||||||
|
password_stage = 0;
|
||||||
|
all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index] = temp_password;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(password_stage == 1)
|
||||||
|
{
|
||||||
|
password_stage = 0;
|
||||||
save_long_parameter(current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index);
|
save_long_parameter(current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index);
|
||||||
|
sprintf(text_parameters[stage_password],"Пароль обновлен");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(current_menu_screen.menu_lines[current_line_index].type == PASSWORD_VERIFY_LINE)
|
||||||
|
{
|
||||||
|
if(temp_password == all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index])
|
||||||
|
{
|
||||||
|
sprintf(text_parameters[stage_password]," Сброс прошел");
|
||||||
|
|
||||||
|
if(menu_index == RESET_DEVICE_MENU)
|
||||||
|
{
|
||||||
|
reset_parameter();
|
||||||
|
Serial.println("reset_parameter");
|
||||||
|
}
|
||||||
|
else if(menu_index == RESET_COUNTER_MENU)
|
||||||
|
{
|
||||||
|
reset_short_counters();
|
||||||
|
Serial.println("reset_short_counters");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sprintf(text_parameters[stage_password],"Неверный пароль");
|
||||||
|
}
|
||||||
|
|
||||||
|
all_long_parameters[current_menu_screen.menu_lines[current_line_index].parameter.digit.param_index] = temp_password;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1486,16 +1586,6 @@ void menu()
|
|||||||
show_cursor();
|
show_cursor();
|
||||||
need_reload_menu = false;
|
need_reload_menu = false;
|
||||||
}
|
}
|
||||||
if(all_byte_parameters[reset_device])
|
|
||||||
{
|
|
||||||
if(enable_reset) reset_parameter();
|
|
||||||
all_byte_parameters[reset_device] = 0;
|
|
||||||
}
|
|
||||||
if(all_byte_parameters[reset_counters])
|
|
||||||
{
|
|
||||||
if(enable_reset) reset_short_counters();
|
|
||||||
all_byte_parameters[reset_counters] = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lcd.clear();
|
lcd.clear();
|
||||||
@ -1615,13 +1705,22 @@ void setup()
|
|||||||
sprintf(text_parameters[time_seance],"");
|
sprintf(text_parameters[time_seance],"");
|
||||||
menu_index = 0;
|
menu_index = 0;
|
||||||
|
|
||||||
|
if(!digitalRead(buttonPin_Start))
|
||||||
|
{ // сброс пароля по умолчанию
|
||||||
|
all_long_parameters[password] = 1111;
|
||||||
|
save_long_parameter(password);
|
||||||
|
|
||||||
|
Serial.println("reset password");
|
||||||
|
}
|
||||||
|
|
||||||
all_long_parameters[money_counter] = 0;
|
all_long_parameters[money_counter] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
{
|
{
|
||||||
read_buttons(buttonPin_Service);
|
read_buttons(buttonPin_Service);
|
||||||
read_buttons(buttonPin_Start);
|
//read_buttons(buttonPin_Start);
|
||||||
|
|
||||||
hide_cursor();
|
hide_cursor();
|
||||||
need_hide_cursor = true;
|
need_hide_cursor = true;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user