【Arduino】Arduinoにて文字列分割を試してみた

はじめに

こんにちは、がんがんです。
最近はArduinoをよく使用しております。PySerialで送信した文字を上手く扱う方法をいろいろ調べたりしてみます。

文字列分割用のsplit関数をArduino用に作成されている人がいましたので、
今回はそちらを試してみます。

参考記事

algorithm.joho.info

実験

実験は参考記事のままです。最終的にはPySerialから送信した文字の分割を行いたいです。

コード

String cmds[3] = {"\n"};

int split(String data, char delimiter, String *dst){
  int index = 0;
  int arraySize = (sizeof(data))/sizeof((data[0]));
  int datalength = data.length();
  
  for(int i = 0; i < datalength; i++){
    char tmp = data.charAt(i);
    if( tmp == delimiter ){
      index++;
      if( index > (arraySize - 1)) return -1;
    }
    else dst[index] += tmp;
  }
  return (index + 1);
}

void setup(){
  // 文字列
  String cmd = "on,off,on";
  //  分割数 = 分割処理(文字列, 区切り文字, 配列)
  int index = split(cmd, ',', cmds);
  //  結果表示
  Serial.begin(9600);
  for(int i = 0; i < index; i++){
    Serial.println(cmds[i]);
  }
}

void loop(){
  
}

結果

f:id:gangannikki:20190124153350j:plain

まとめ

今回はArduino内で文字列の分割を行いました。
最終的には、PySerialから送信した文字を分割して送信していきたいです。