Модуль отслеживает нажатия соответствующих символов сенсорной клавиатуры и записывает данные в энергонезависимую память
C++
if (buf_dwin[4] == 0X67 && buf_dwin[5] == 0X26) // Ввод телефона с клавиатуры post_2
{
char ext_Char_2[21]; // Массив для извлеченных символов
byte symbol_count = 0; // Счетчик введенных символов
// Извлечение символов и подсчет их количества
for (int i = 7; i <= 22; i++)
{
if (buf_dwin[i] == 0xFF) // Условие: байт обнаружен, прервать цикл
{
break;
}
ext_Char_2[symbol_count++] = buf_dwin[i];
}
ext_Char_2[symbol_count] = '\0'; // Добавляем завершающий нулевой символ, чтобы создать строку C-style
tel_post_2 = String(ext_Char_2); // Создание строки String из массива символов
// Создание буфера и заполнение его данными
byte buf_null_length = symbol_count + 7; // Вычисляем длину буфера
char *buf_2 = new char[buf_null_length](); // Динамическое выделение памяти и инициализация нулями
buf_2[0] = 0x5A;
buf_2[1] = 0xA5;
buf_2[2] = byte(tel_post_2.length() + 3);
buf_2[3] = 0x82;
buf_2[4] = 0x65;
buf_2[5] = 0x20;
// Копирование символов из tel_post_2 в буфер
tel_post_2.toCharArray(buf_2 + 6, symbol_count + 1);
// Очистка поля перед отправкой введенной информации
buf_clear_field[4] = 0x65;
buf_clear_field[5] = 0x20;
SerialDwin.write(buf_clear_field, 26);
// Отправка введенной информации в дисплей и освобождение памяти
SerialDwin.write(buf_2, buf_null_length);
delete[] buf_2;
preferences.begin("pulse_app", false);
preferences.putString("tel_post_2", tel_post_2); // Записать телефон tel_post_2 в память
Serial.println(tel_post_2);
Serial.println("stringData write Tel_post_2 in EEPROM is Successful");
preferences.end(); // Завершить работу с библиотекой
}