(編集者注。おそらく関連: SerialPort クラス)
コマンドを RFID リーダーに送信し、「回答」を受信しようとしています。
たとえば、リーダーがタグを読み取ることができる場合は、UID を受け取りますport.Write("S")
。port.ReadLine()
私は次のようにSerialDataReceivedEventHandlerを使用しています:
port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
port.ReadLine();
}
そして、これは私がコマンドを送信している場所です:
public void sendData()
{
port.Write("S");
port.Write("r01");
port.Write("r02");
}
ここでの問題は、「S」に対する最初の応答しか受信せず、3 行すべてが送信されないことです。問題は、3 つのコマンドすべてをリーダーに送信する方法がわからないことです。
無視すると、次のSerialDataReceivedEventHandler
コードを使用できることがわかります。
public void sendandreceive()
{
port.Write("S");
port.ReadLine();
port.Write("r01");
port.ReadLine();
}
そのコードは、コマンドと応答の両方を送受信します。しかし、 を使用することをお勧めしますSerialDataReceivedEventHandler
。