更新しました
私のアプリでは、Bluetooth を介して PCB と継続的に通信しています。この通信は HEX 文字列によって行われます。
文字列形式は次のようになります。
2b(thread init), 05(write command), 09(bytes), 04(variable bytes), 5af2ff1f(memory location), 04a0bcf1(variable value), 7e(checksum)
この 16 進文字列の機能は、PCB の具体的なメモリ位置にアクセスして値を書き込むことです。
簡単にするために、16 進文字列が次のようであると仮定しましょう。
hex_string= 2B05A82BF1
この文字列は、Bluetooth 経由で送信する前に、Byte[] に変換します。必要なのは、送信するすべての文字列をチェックする関数を作成することです。
私が探す必要があるのは、文字列内の「2B」バイトです。これは、PCB が「2b」を「init スレッド」値として読み取り、文字列内に「2b」がある場合、PCB はそれを別のスレッドの init として読み取り、文字列全体が送信されないためです。
これを Hex String で確認する方が簡単なのか、それとも Byte[] に変換した後に確認する方が簡単なのかはわかりません。
関数は、文字列の最初の「2b」を破棄し、文字列内に別の「2b」があるかどうかを確認し、存在する場合はそれを複製して、この結果になります。
before: hex_string= 2B05A82BF1
after: hex_string= 2B05A82B2BF1
このようにして、PCB は「2b」が初期スレッド値ではないことを認識します。
私がやりたいのは、すべての文字列に「2b」値が含まれているかどうかをチェックする関数です。しかし、バイト[]に変換するとき...またはいつ...そしてそれを行う方法.