/**************************************************************************************************************************** multiFileProject.cpp For Realtek RTL8720DN, etc. using Flash The FlashStorage_RTL8720DN library aims to provide a convenient way to store and retrieve user's data using the non-volatile flash memory of RTL8720DN, etc.. It's using the buffered read and write to minimize the access to Flash. It now supports writing and reading the whole object, not just byte-and-byte. Inspired by Cristian Maglie's FlashStorage (https://github.com/cmaglie/FlashStorage) Built by Khoi Hoang https://github.com/khoih-prog/FlashStorage_RTL8720DN Licensed under MIT license *****************************************************************************************************************************/ // To demo how to include files in multi-file Projects #include "multiFileProject.h" void testFlashStorage() { Serial.print("FlashStorage length: "); Serial.println(FlashStorage.length()); // Check signature at address 0 int signature; // Create a "Person" variable and call it "owner" uint16_t storedAddress = 0; Person owner; FlashStorage.get(storedAddress, signature); // If the FlashStorage is empty then no WRITTEN_SIGNATURE if (signature == WRITTEN_SIGNATURE) { FlashStorage.get(storedAddress + sizeof(signature), owner); // Say hello to the returning user! Serial.print("Hi "); Serial.print(owner.name); Serial.print(" "); Serial.print(owner.surname); Serial.println(", nice to see you again :-)"); Serial.println("Clearing WRITTEN_SIGNATURE for next try"); FlashStorage.put(0, 0); Serial.println("Done clearing signature in FlashStorage. You can reset now"); } else { Serial.println("FlashStorage is empty, writing WRITTEN_SIGNATURE and some example data:"); FlashStorage.put(storedAddress, WRITTEN_SIGNATURE); // ...in this case we ask for user data. Serial.setTimeout(30000); Serial.print("Insert your name : "); String name = Serial.readStringUntil('\n'); Serial.println(name); Serial.print("Insert your surname : "); String surname = Serial.readStringUntil('\n'); Serial.println(surname); // Fill the "owner" structure with the data entered by the user... name.toCharArray(owner.name, 100); surname.toCharArray(owner.surname, 100); // ...and finally save everything into FlashStorage FlashStorage.put(storedAddress + sizeof(signature), owner); // Print a confirmation of the data inserted. Serial.print("<< Your name: "); Serial.print(owner.name); Serial.print(". Your surname: "); Serial.print(owner.surname); Serial.println(" >> have been saved. Thank you!"); } }