1

シリアル経由で MarCator デジタル インジケーターと通信する必要があります (シリアルから USB へのアダプターを USB 接続します)。プロトコルは次のとおりです。DTR から -Vdd まで 100ms から 1 秒。その後、9 バイトのフレームが 15ms から 160ms 後に送信されます。

TeraTerm では魅力的に動作しますが、C# では動作しません。

Char[] buff = new Char[9];
SerialPort port = new SerialPort("COM25", 4800, Parity.Even, 7, StopBits.Two);

Console.WriteLine("Created");
port.Open();
port.DtrEnable = true;
Console.WriteLine("Open");
Thread.Sleep(500);

port.DtrEnable = false;
Thread.Sleep(500);
port.DtrEnable = true;

Thread.Sleep(200);
if (port.BytesToRead != 0) {
    port.Read(buff, 0, 9);
    Console.WriteLine(buff);
}
else {
    Console.WriteLine("Fail...");
}
port.Close();

MarCator が DTR コマンドを受信して​​いることがわかりますが、port.BytesToRead は常に 0 です。

よろしく、ヴァル'

4

0 に答える 0