Menyimpan pengaturan di memori Unit Dasar

Hai Jika Anda cukup beruntung memegang mikrokontroler ESP32 di tangan Anda (saya lebih beruntung dan memiliki M5Stack di tangan saya) dari perusahaan Cina ESPRESSIF , maka pos ini mungkin berguna.



Ada situasi ketika perlu untuk menyimpan beberapa parameter dalam memori yang tidak mudah menguap (misalnya: menghitung berapa kali perangkat dihidupkan sepanjang waktu atau menyimpan pengaturan Wi-Fi). Ini dapat dilakukan dengan mudah menggunakan perpustakaan Preferensi .


Kami mendeklarasikan instance dari kelas Preferensi , dan di sana kita akan melihat ...


Hal pertama yang harus kita lakukan adalah membuat gantungan kunci dengan memanggil metode begin dengan sepasang argumen (tetapi hanya dengan yang pertama): nama gantungan kunci dan bendera read-only.


Untuk menyimpan nilai string dalam memori, Anda harus meneruskan kunci dan nilai itu sendiri ke metode yang namanya terdiri dari dua bagian: yang pertama dimasukkan dan yang kedua adalah nama jenis, misalnya: String . Semuanya jelas dan bisa dimengerti. Benar, masih ada byte mentah tanpa menggoreng bahwa tidak ada yang ingin menetapkan jenis. Dalam hal ini, metode ini juga mengambil argumen ketiga dengan jumlah byte ini. Dengan prosedur ini, semuanya tampak seperti itu.


Setelah nilainya ditulis, Anda dapat membacanya menggunakan metode (yang namanya mirip dengan yang sebelumnya), di mana bagian pertama akan didapat . Metode ini mengembalikan nilai untuk kunci dari jenis yang sesuai. Ingat kasus byte? Jika Anda tidak tahu (atau tidak ingat) berapa banyak byte pada kunci, lalu tarik metode getBytesLength dengan satu argumen - kunci, itu akan menghitung semuanya dan mengembalikan jumlah dalam size_t .


Jika Anda ingin menghapus kunci tertentu dari gantungan kunci, berikan satu-satunya argumen untuk metode hapus .


Apakah Anda ingin membawa marafet asli dan menghapus semua ? Panggil metode yang jelas tanpa argumen!


Saat Anda ingin selesai bekerja dengan bundel, panggil metode akhir tanpa argumen.


Secara umum, tipe berikut ini didukung: Char , UChar , Short , UShort , Int , UInt , Long , ULong , Long64 , ULong64 , Float , Double , Bool , String dan Bytes .


Saya mengerti apa yang saya inginkan sesuatu kode, jadi inilah sketsa. Sebuah sketsa menghitung jumlah belokan pada perangkat dan menampilkannya pada tampilan:


#include <M5Stack.h> #include <Preferences.h> Preferences preferences; const char* key = "OnOff"; uint32_t count; void setup() { m5.begin(); preferences.begin("MyKeyChain"); count = preferences.getUInt(key); preferences.putUInt(key, count + 1); M5.Lcd.setTextSize(3); M5.Lcd.setTextColor(TFT_WHITE); M5.Lcd.println("Hello, Habr!"); M5.Lcd.setTextSize(2); M5.Lcd.println("M5Stack Turned On:"); M5.Lcd.setTextSize(3); M5.Lcd.setTextColor(TFT_RED); M5.Lcd.println(count); M5.Lcd.setTextColor(TFT_WHITE); M5.Lcd.setTextSize(2); M5.Lcd.println("times"); } void loop() { } 

Referensi ke perpustakaan terlampir .

Source: https://habr.com/ru/post/id476492/


All Articles