0

我正在开发一个 WPF 应用程序来与 ELM327 交互。myApp 和 ELM327 之间的通信介质是 USB 协议。ELM327 通过 OBD 端口连接到车辆。我的应用程序能够成功建立 USB 通信。无论我从我的应用程序发送什么命令,我得到了什么?作为回复。我将波特率设置为9600。例如,我发送了ATZ,我得到了?作为回复。我发送了 010D,我收到了?我尝试使用该应用程序附带 ELM327,该应用程序可以成功提取数据。

MyApp USB 通讯连接代码:

public SerialPort sport;

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            int baudValue=0;
            if (cbBaud.Text == null)
                MessageBox.Show("select a baud rate");
            else
            {
                if (cbBaud.Text != null)
                {
                    baudValue = int.Parse(cbBaud.Text);
                }
                serialConnect(baudValue);
            }




        }

        public void serialConnect(int baudRate)
        {
            try
            {
                if (tbCOM.Text != null)
                {
                    sport = new System.IO.Ports.SerialPort(tbCOM.Text,
                                                          baudRate);
                    if (!sport.IsOpen)
                    {
                        sport.Open();
                        sport.DataReceived += new SerialDataReceivedEventHandler(serialDataReceived);
                        elIndicator.Fill = Brushes.Green;
                    }
                    else
                    {
                        MessageBox.Show("Connection already Opened");
                    }
                }
            }
            catch(Exception EX)
            {
                MessageBox.Show("Connection Error");
            }

        }

MyApp数据发送代码:

private void BtSent_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                sport.WriteLine(tbSend.Text);
            }
            catch(Exception EX)
            {
                MessageBox.Show("Write Error");
            }
        }

MyApp 数据接收代码:

private void serialDataReceived(object sender, SerialDataReceivedEventArgs e)
{
    this.Dispatcher.Invoke((Action)(() =>
    {
        recData.Text = "\n";
        recData.Text = System.Environment.NewLine + sport.ReadExisting();
    }));

}

我必须发送任何初始化代码吗?

4

0 回答 0