目的:
arduino IDE でこれまで使用してきた SPIFFS が 非推奨となり、SPIFFS アップローダ も IDE 2.xx では 使用できない。この為、LittleFS を使用して ファイルの生成, リード 等の記述を試した。
SPIFFS から LittleFS への移行 :
SPIFFS から LittleFS へ書き換える場合の変更箇所としては、主に- include file
SPIFFS.h → LittleFS.h - コード
主に 以下の様に "SPIFFS" を "LittleFS" に 書き換えれば 動作する。
SPIFFS.begin → LittleFS.begin
SPIFFS.exists → LittleFS.exists
SPIFFS.open → LittleFS.open
SPIFFS.remove → LittleFS.remove
サンプルコード
以下にサンプルコートを表示する。サンプルコードでは、
ファイルの存在確認を行い、
あればファイルを1行づつ読み込んで行数をカウントする。
その後、ファイルに1行書き足して終了。
実行する(リセットする)たび、ファイルの内容が 1行づつ増えていく。あればファイルを1行づつ読み込んで行数をカウントする。
その後、ファイルに1行書き足して終了。
コードの説明は、サンプルコード内の コメントを参照。
#include <Arduino.h> //
#include "FS.h" // LittleFS 使用に必要
#include <LittleFS.h> // LittleFS 使用に必要
void setup() { //
File datafile ; // File 定義
String buf = "" ; // 文字列変数 定義
String lbuf = "" ; // 文字列変数 定義
int n = 0 ; //
//
Serial.begin(115200); // シリアル 開始
Serial.println("") ; //
Serial.println(" ------ Test Start ----------") ; //
//
// LittleFS テスト ------------------------- //
if (!LittleFS.begin(true)) { // LittleFS 開始
Serial.println("ファイルシステムのマウントに失敗") ; //
return ; //
} //
//
// ファイルの存在チェック ------------------ //
Serial.println(" ------ Check_file ----------") ; //
if (LittleFS.exists("/data_1.txt")) { // data_1.txt ファイル存在確認
Serial.println("data_1.txt 有り") ; // あった場合の表示
// ファイルのリード -----------------------//
datafile = LittleFS.open("/data_1.txt","r") ;
// ファイルをリードモードでオープン
if (!datafile) { //
Serial.println("datafile open error !!"); // オープン失敗時の表示
} else { //
// ファイルを1行づつリード
n = 0 ; //
while (datafile.available()) { // リードできる文字がある間ループ
lbuf = datafile.readStringUntil('\n') ; // ファイルを1行リード
Serial.println(lbuf) ; // リードした内容の表示
n++ ; // 行数をカウント
buf += lbuf + "\n" ; // buf に追加
} ; //
Serial.println("line no. :" + String(n)) ; // リードした 行数の表示
datafile.close() ; // ファイルをクローズ
} //
} else { //
Serial.println("data_1.txt なし") ; // 無かった場合の表示
} //
//
// ファイルのライト -------------------------//
Serial.println(" ------ File W/R Test Start ----------") ; //
datafile = LittleFS.open("/data_1.txt","w") ;
// ファイルをライトモードでオープン
if (!datafile) { //
Serial.println("datafile open error !! ") ; // オープン失敗時の表示
} else { //
buf += "data add line #" + String(n) + "\n" ; // 文字列を追加
Serial.println(" write data :") ; // 書き込む内容を表示
Serial.print(buf) ; //
Serial.println("") ; //
datafile.print(buf) ; // data_1.txt に書き込み
datafile.close() ; // ファイルをクローズ
} //
//
// ファイルのリード -------------------------//
Serial.println(" read check --- ") ; //
datafile = LittleFS.open("/data_1.txt","r") ;
// ファイルをリードモードでオープン
if (!datafile) { //
Serial.println("datafile open error !!"); // オープン失敗時の表示
} else { //
buf = datafile.readString() ; // ファイルをリード
Serial.print(buf) ; // リードした内容の表示
Serial.println("") ; //
datafile.close() ; // ファイルをクローズ
} //
//
Serial.println(" ------ File W/R Test End ----------") ; //
// ファイルの削除 , 削除して終わる場合は 以下のコメントアウトを外す
//if (LittleFS.remove("/data_1.txt")) { // data_1.txt ファイル存在確認
// Serial.println("data_1.txt 削除成功") ; // 成功時の表示
//} else { //
// Serial.println("data_1.txt 削除失敗") ; // 失敗時の表示
//} //
// ------- ここまで ---------------------------//
}
// loop() は 未使用 -----------------------------
void loop() { } // 処理なし

0 件のコメント:
コメントを投稿