Модуль отслеживает нажатия соответствующих символов сенсорной клавиатуры и записывает данные в энергонезависимую память

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(); // Завершить работу с библиотекой
      }