私は引数としてbyte
型を取らなければならないArduino関数を持っています。アルドゥイーノでは、byte*
は次のコードは、どのような私である私は、変数に入れ、A0
と433.22
を抽出したいA0:433.22
符号なし文字でのシンボルの位置を検索し、インデックス間の内容を抽出しますか?
のようなもの、など
になりますまた、unsigned char*
// payload is A0:433.33
void someFunction(byte* payload) {
char* pos;
pos = strstr(payload, ":");
// want to eventually end up with a variable containing 'A0'
// and another containing '433.33'
}
です:
の位置を見つけようとしました。 strstr
はconst char*
でのみ動作し、unsigned char*
では動作しないため、動作しません(コンパイラからエラーが返されます)。私はそのインデックス位置を使用して、0
とインデックス(A0
)の間にあるものを抽出しました。インデックスとアレイの合計長さの間には何か(433.22
)です。
unsigned char*
から「部分」を抽出するために私が何を使用するかもわかりません。文字列の場合は、おそらくsubstr
を使用します。
私はそのペイロードをどのように作成するのか分かりませんが、通常の文字列メソッドを使用するには、おそらくreinterpret_castを使用できます。 –
Michel
ペイロードは '\ 0'で終了しますか? – JimmyB
@JimmyB、そうだね。私はここでライブラリを使用しています:https://pubsubclient.knolleary.net/api.html#callback – fuzzybabybunny