シリアル経由で 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 です。
よろしく、ヴァル'