#include #include #include #include #include "esp_err.h" #include "esp_log.h" #include "esp_spiffs.h" #include "file.h" static const char *TAG = "SPIFFS"; esp_vfs_spiffs_conf_t conf = { .base_path = "/spiffs", .partition_label = "storage_spiffs", .max_files = 5, .format_if_mount_failed = true }; void init_memory(){ ESP_LOGI(TAG, "Initializing SPIFFS"); // Use settings defined above to initialize and mount SPIFFS filesystem. // Note: esp_vfs_spiffs_register is an all-in-one convenience function. esp_err_t ret = esp_vfs_spiffs_register(&conf); if (ret != ESP_OK) { if (ret == ESP_FAIL) { ESP_LOGE(TAG, "Failed to mount or format filesystem"); } else if (ret == ESP_ERR_NOT_FOUND) { ESP_LOGE(TAG, "Failed to find SPIFFS partition"); } else { ESP_LOGE(TAG, "Failed to initialize SPIFFS (%s)", esp_err_to_name(ret)); } return; } size_t total = 0, used = 0; ret = esp_spiffs_info(conf.partition_label, &total, &used); if (ret != ESP_OK) { ESP_LOGE(TAG, "Failed to get SPIFFS partition information (%s)", esp_err_to_name(ret)); } else { ESP_LOGI(TAG, "Partition size: total: %d, used: %d", total, used); } } void close_memory(){ esp_vfs_spiffs_unregister(conf.partition_label); ESP_LOGI(TAG, "SPIFFS unmounted"); } void create_file(char adresa[],char comment[]){ ESP_LOGI(TAG, "Opening file"); FILE* f = fopen(adresa, "w"); if (f == NULL) { ESP_LOGE(TAG, "Failed to open file for writing"); return; } fprintf(f, comment); fclose(f); ESP_LOGI(TAG, "File written"); } void read_file(char adresa[]){ char line[120]; ESP_LOGI(TAG, "Reading file"); FILE* f = fopen(adresa, "r"); if (f == NULL) { ESP_LOGE(TAG, "Failed to open file for reading"); return; } ESP_LOGI(TAG, "Read from file: "); while(fgets(line, 120, f)){ printf("%s",line); } fclose(f); // strip newline //char* pos = strchr(line, '\n'); //if (pos) { // *pos = '\0'; //} } /* #include #include void create_files(){ File serial = SPIFFS.open("/serial.txt",FILE_WRITE); serial.print("1"); serial.close(); serial = SPIFFS.open("/keyfile.key",FILE_WRITE); serial.print("-----BEGIN EC PRIVATE KEY-----\n"\ "MIHcAgEBBEIA4THscwU+atnO/MHMqUx65bQl8qipWp3jaoym1C01lHHB1D7o94ed\n"\ "sKo2P0V5lBWvDrvDHvnXF8aoajIE8a502JmgBwYFK4EEACOhgYkDgYYABAFf3u2n\n"\ "+Z2Y7iw3JwfFVjihJDyaLrjjojTgw9JXuZ3mDpC+RbmtvfowO0Pk6NPl8LxeqCf3\n"\ "19rhscMthQQ1NocsBgAWkaAwWhamRW3CBvmgioz9Bh6ETkE7/zJ1USvvoMfXkGqO\n"\ "ZI0MKehIwLGpGkL2JseYKnnNh/Ue5fHzpzfwncpf4g==\n"\ "-----END EC PRIVATE KEY-----\n"); serial.close(); serial = SPIFFS.open("/CA.crt",FILE_WRITE); serial.print("-----BEGIN CERTIFICATE-----\n"\ "MIICQDCCAZ+gAwIBAgIBATAMBggqhkjOPQQDAgUAMDkxETAPBgNVBAMMCG15c2Vy\n"\ "dmVyMRcwFQYDVQQKDA5teW9yZ2FuaXNhdGlvbjELMAkGA1UEBhMCTkwwHhcNMTkw\n"\ "MTAxMDAwMDAwWhcNMjExMjMxMjM1OTU5WjA5MREwDwYDVQQDDAhteXNlcnZlcjEX\n"\ "MBUGA1UECgwObXlvcmdhbmlzYXRpb24xCzAJBgNVBAYTAk5MMIGbMBAGByqGSM49\n"\ "AgEGBSuBBAAjA4GGAAQBX97tp/mdmO4sNycHxVY4oSQ8mi6446I04MPSV7md5g6Q\n"\ "vkW5rb36MDtD5OjT5fC8Xqgn99fa4bHDLYUENTaHLAYAFpGgMFoWpkVtwgb5oIqM\n"\ "/QYehE5BO/8ydVEr76DH15BqjmSNDCnoSMCxqRpC9ibHmCp5zYf1HuXx86c38J3K\n"\ "X+KjUzBRMA8GA1UdEwQIMAYBAf8CAQAwHQYDVR0OBBYEFPq3svLwKboIsDWdsSyi\n"\ "Ay/Jw3HQMB8GA1UdIwQYMBaAFPq3svLwKboIsDWdsSyiAy/Jw3HQMAwGCCqGSM49\n"\ "BAMCBQADgYwAMIGIAkIB5yPjh42zT9dkWKthaW5Sf7EFs5yQnadfhVnnyqEho2Bt\n"\ "7KkRrI5/+QH0bZ98JeNvtJimAMXXxP2/uSY1pa+es/ACQgG6MbUQOLvxMyIevF5i\n"\ "PkZrwhm8VfpAmwPIU/6xzcpry8wBbCm/vro1oTdQdGdOUlSSlTQ8QFBCqwMxVt9T\n"\ "1RDiwg==\n"\ "-----END CERTIFICATE-----\n"); serial.close(); serial = SPIFFS.open("/cert.req",FILE_WRITE); serial.print("-----BEGIN CERTIFICATE REQUEST-----\n"\ "MIIBlDCB9AIBADBPMREwDwYDVQQDDAhlc3AzMi5zazEUMBIGA1UECgwLRXhhbXBs\n"\ "ZSBMdGQxJDAiBgNVBAYTG1VLIG91dHB1dF9maWxlPWVzcDMyLnNrLnJlcTCBmzAQ\n"\ "BgcqhkjOPQIBBgUrgQQAIwOBhgAEAV/e7af5nZjuLDcnB8VWOKEkPJouuOOiNODD\n"\ "0le5neYOkL5Fua29+jA7Q+To0+XwvF6oJ/fX2uGxwy2FBDU2hywGABaRoDBaFqZF\n"\ "bcIG+aCKjP0GHoROQTv/MnVRK++gx9eQao5kjQwp6EjAsakaQvYmx5gqec2H9R7l\n"\ "8fOnN/Cdyl/ioAAwDAYIKoZIzj0EAwIFAAOBjAAwgYgCQgHb3sNKKOcUOLIiCIYx\n"\ "wUbyDFUWMOkrZH0sRvKTyyOH+zmP7Z8rJu4pqMoR5N6a3kZ8c+3WTiiOlSb5Hvtd\n"\ "Ttya4gJCAT4HcYqMUBjoz5m0Pv67vIQ/tAhh6+uyX+GjuYhZJNW3NwImhWDWbofW\n"\ "7M4UaISadRE3K9bykB3WoGGeeqI8tI0c\n"\ "-----END CERTIFICATE REQUEST-----\n"); serial.close(); } void read_and_remove_files(){ File root = SPIFFS.open("/"); File file = root.openNextFile(); while(file){ Serial.print("FILE: "); Serial.println(file.name()); Serial.print(file.readString()); //SPIFFS.remove(file.name()); file = root.openNextFile(); } } */