Как предотвратить замену значения для ключа в настройках?
#include <Preferences.h>
Preferences preferences;
const char* roomname_long = "String 1";
const char* roomname_short = "String2";
const char* roomname_long_test = "String 3";
String roomname;
void setup() {
Serial.begin(115200);
preferences.begin("app",false);
preferences.begin("credentials", false);
preferences.putString("roomname_long", roomname_long);
preferences.putString("roomname_short", roomname_short);
preferences.putString("roomname_long", roomname_long_test);
roomname = preferences.getString("roomname_long", "");
Serial.println(roomname_long);
Serial.println(roomname_short);
Serial.println(roomname);
preferences.end();
}
void loop() {
}
Я пытаюсь сохранить некоторые данные на своем esp32, это работает на самом деле, но если я попытаюсь сохранить другую переменную с тем же ключом, который она записывает поверх строки раньше, как я могу прервать это?
на последовательном мониторе я получил следующее:
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1324
ho 0 tail 12 room 4
load:0x40078000,len:13508
load:0x40080400,len:3604
entry 0x400805f0
String 1
String 2
String 3
Я хочу, чтобы, если я помещу другую переменную в ключ "roomname_long", она не должна быть перезаписана.
Так что это должно быть пребывание на строке 1
@testingesp32, 👍1
1 ответ
Лучший ответ:
▲ 0
Вы можете использовать IsKey
, чтобы проверить, установлен ли уже ключ настроек.
preferences.putString("roomname_long", roomname_long);
preferences.putString("roomname_short", roomname_short);
if (!preferences.isKey("roomname_long")) {
preferences.putString("roomname_long", roomname_long_test);
}
,
@Juraj
Смотрите также:
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Как выбрать альтернативные контакты I2C на ESP32?
- Драйверы для чипа последовательного порта CH9102X
- Как преобразовать форматированный оператор print в строковую переменную?
- ESP32 - "Детектор Браунаута был активирован" при запуске Wi-Fi
- Питание esp32cam от аккумулятора
- Контакты RX и TX на esp32
- ESP32: отключить детектор отключения питания