Mám zařízení, kde po RS485 komunikuje několik 8bit MCU (atmel AVR) jeden z nich je master, ale občas potřebuju připojit jako slave aplikaci v PC napsanou ve VS C#.
To mám ošetřené tím, že master občas vyšle na linku dotaz na přítomnost tohoto slave - printf("data\r");
nedaří se mi ale zachytit v PC ten řetězec "data", abych mohl poslat odpověď do masteru.
jeden z neúspěšných pokusů:
serial = new SerialPort();
// 8N1
serial.DtrEnable = true;
serial.BaudRate = 19200;
serial.Parity = Parity.None;
serial.StopBits = StopBits.One;
serial.DataBits = 8;
serial.Handshake = Handshake.None;
serial.ReadTimeout = 1000;
serial.WriteTimeout = 1000;
private void nacti_data_Click(object sender, EventArgs e)
{
bool ok;
byte[] tmp = new byte[this.serial.BytesToRead];
ok = false;
while (ok!=true)
{
serial.Read(tmp, 0, serial.BytesToRead);
if (String.Equals(tmp, "data")) ok = true;
}
serial.RtsEnable = true;
Thread.Sleep(10);
serial.Write("send\r");
Thread.Sleep(50);
serial.RtsEnable = false;
}