Serial.findUntil()

Last revision:2025/06/13

名称

Serial.findUntil()

説明

Serial.findUntil()は与えらえた長さの、目的となる文字列がシリアルバッファで見つかるまで、もしくは、終端文字列が見つかるまで、データを読み込む。

Serial.findUntil()は、Streamユーティリティクラスを継承している。

書式

terminalを見つけるまでに、targetを検索するには、以下の関数を使う。

Serial.findUntil(target, terminal)

C言語シグネチャ(avr)

bool HardwareSerial::findUntil(char *target, char *terminator);

bool HardwareSerial::findUntil(char *target, size_t targetLen, char *terminator, size_t termLen);

引数

この関数は以下のオブジェクトと引数を受け付ける。

Serialシリアルポートオブジェクト。各ボードで利用可能なシリアルポートオブジェクトは、Serialを参照。
target
目的となる文字列。データ型: `char *`。
terminal, terminator終端文字列。データ型: char *
targetLen
目的となる文字列の長さ。
termLen終端文字列の長さ。

戻り値

terminalを見つける前に指定した文字列が見つかるとtrue、そうでなければfalseを返す。データ型: bool

コード例

以下のコードは、CANCELという終端文字列が来る前に、OKという文字列が見つかるまで待つ。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
void setup() {
  Serial.begin(9600);
  while (!Serial);

  Serial.println("Type a message. Looking for 'OK', but will stop if 'CANCEL' appears.");
}

void loop() {
  if (Serial.available()) {
    // Try to find "OK", but stop early if "CANCEL" is found first
    if (Serial.findUntil("OK", "CANCEL")) {
      Serial.println("Found OK before CANCEL!");
    } else {
      Serial.println("Did not find OK (CANCEL appeared first or timed out).");
    }
  }

  delay(1000);
}

参照

訳者註

findUntil(target, targetLen, terminator, termLen)の形式については、オリジナルのリファレンスには記載されていません。

オリジナルのページ

https://docs.arduino.cc/language-reference/en/functions/communication/serial/findUntil/

実装の解析

まだ解析していません。

最終更新日

July 18, 2026

inserted by FC2 system