シリアルポートから入力される1バイトから7バイトまたは8バイトまでのものを得ることができます。現在、これらのバイトは、0x1A、0x56、0xF7,0x01、0xC3などのバイトストリームへの0x06(ACK)や0x15(NAK)などの形式です。シリアルポートからの文字列、バイト配列に変換してから他のバイトと比較する
このように:
private void mySerialPort_DataReceived (object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
rxString = mySerialPort.ReadExisting();
this.Invoke(new EventHandler(DisplayText));
}
private void DisplayText(object sender, EventArgs e)
{
byte[] bytes = Encoding.ASCII.GetBytes(rxString);
tb_Status.Clear();
if (bytes = (0x00, 0x00, 0x00, 0x06))
{
tb_Status.AppendText("Ok, we are GOOD!!!");
}
}
しかし、私はエラーを取得する「重大度コード説明プロジェクトファイルの行暗黙的に 『バイト[]』にタイプ 『int型』を変換できません エラーCS0029」私は配列を持っているとき」だから
(SerialPortからの文字列としてコード化されている)のバイト数を調べるには、配列内の特定の1バイトだけを識別し、それを別のバイトと比較するにはどうすればよいですか?
のおかげ
あなたがエラーを取得しているラインでは? –
if(bytes =(0x00、0x00、0x00、0x06)) – Graham
0x ...値はデフォルトでコンパイラによってintに変換されます。 –