繁体   English   中英

如何在 C# 中使用 SerialPort 的 dataReceived 事件

[英]How do I use dataReceived event of the SerialPort in C#

我有一个应用程序可以从串行端口 c# 中检索 EXA 品牌秤的数据。 我想做同样的事情,但这次是另一个品牌 KERN PFB,问题是 SerialDataReceivedEventHandler 事件永远不会执行。 我不知道我在这里错过了什么。

我试过这个: 如何在 C# 中使用 SerialPort 端口对象的 dataReceived 事件?

    public static  SerialPort mySerialPort = new SerialPort("COM1");
    public static string indata = string.Empty;

    public static void SetSetting()
    {
        mySerialPort.BaudRate = 9600;
        mySerialPort.Parity = Parity.None;
        mySerialPort.StopBits = StopBits.One;
        mySerialPort.DataBits = 8;
        mySerialPort.Handshake = Handshake.None;
        mySerialPort.RtsEnable = true;

        mySerialPort.DataReceived += MySerialPort_DataReceived;
    }

    public static void MySerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
        SerialPort sp = (SerialPort)sender;
        indata += sp.ReadExisting();
    }

    public static float GetPesage()
    {
        indata = string.Empty;
        mySerialPort.Open();
        Thread.Sleep(1000);

        string[] dataSplited = indata.Trim().Split(' ');            
        float poids = 0;
        //
        ...
        //

        mySerialPort.Close();
        return poids;
    }

我希望收到数据但没有收到。

谢谢你。

 Command S : Stable weighing value for the weight is sent via the interface
public static float GetPesage()
{
    indata = string.Empty;
    mySerialPort.Open();
    mySerialPort.Write("s");
    Thread.Sleep(1000);
    string[] dataSplited = indata.Trim().Split(' ');            
    float poids = 0;
    //
    ...
    //
    mySerialPort.Close();
    return poids;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM