このセクションのコードに基づいて、SD カードからデータを抽出するための支援が必要です。
SD カードからデータを読み取ってシリアル ポートに表示すると、コードは機能しますが、データを char* 配列に渡し、配列をループする関数を呼び出すと、配列にゴミが表示されます (一部の読み取り不能データ)。 . SDカードからテキストファイル形式で保存されたさまざまな設定を呼び出すために使用できる機能を作成しようとしています。
次の名前のグローバル変数があります。
char* tempStoreParam[10];
処理する一時データを保存します。テキストファイルに格納されるデータはこの形式です
-n.command
ここで: n = に格納されるデータの int 番号とインデックス位置、tempStoreParam[10]
コマンドは に格納される char* 配列tempStoreParam[10]
です。
例:
-1.readTempC
-2.readTempF
-3.setdelay:10
-4.getIpAddr
コード スニペットは次のとおりです。
while (sdFiles.available()) {
char sdData[datalen + 1];
byte byteSize = sdFiles.read(sdData, datalen);
sdData[byteSize] = 0;
char* mList = strtok(sdData, "-");
while (mList != 0)
{
// Split the command in 2 values
char* lsParam = strchr(mList, '.');
if (lsParam != 0)
{
*lsParam = 0;
int index = atoi(mList);
++lsParam;
tempStoreParam[index] = lsParam;
Serial.println(index);
Serial.println(tempStoreParam[index]);
}
mList = strtok(0, "-");
}
}
私は次の結果を得ようとしています:
char* tempStoreParam[10] = {"readTempC","readTempF","setdelay:10","getIpAddr"};