Пытаюсь читать со своего ELM327, настроил. В качестве примера в teraterm, когда я отправляю команду ATI
, я получил ответ
>ATI
ELM327 v1.3
Я знаю, что возврат каретки должен быть \r
, согласно руководству 0x0D
для исходящих и входящих. Теперь в моем коде я использую ReadExisting()
, и это дает мне несколько пустых строк, иногда отображается ELM327 v1.3
, но иногда это может быть:
/>
ATI
ELM3
27 v1.3
Мне трудно сделать это красивым и очистить одну строку ответ.
_serialPort = new SerialPort(ComsList.GetItemText(ComsList.SelectedItem), bauds[2], Parity.None, 8, StopBits.One);
_serialPort.Handshake = Handshake.None;
_serialPort.NewLine = "\r";
_serialPort.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
// Show all the incoming data in the port's buffer
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
lastMessage = indata;
Debug.Print(indata);
}