通过COM3端口将数据从Weighbridge检索到asp.net应用程序

时间:2018-09-08 09:34:02

标签: c# asp.net asp.net-web-api web-applications serial-port

我目前正在开发一个asp.net Web应用程序,以从通过“ COM3”端口连接的地磅中检索数据。但是,每当我读取数据时,权重为0且带负载时,其值将显示为128。我是该领域的初学者,因此对这些代码不熟悉。我当前的工作如下:

    public byte SendReceiveData()
{
    System.IO.Ports.SerialPort SerialObj = new System.IO.Ports.SerialPort("COM3");

    //SerialPort SerialObj = new SerialPort();
    try
    {
        //SerialObj.Close();

        if (SerialObj.IsOpen == false) //if not open, open the port
        {
            //SerialObj.Close();
            SerialObj.Open();
        }

        //do your work here
        byte[] cmdByteArray = new byte[1];
        SerialObj.DiscardInBuffer();
        SerialObj.DiscardOutBuffer();

        //send         
        cmdByteArray[0] = 0x7a;
        SerialObj.Write(cmdByteArray, 0, 1);

        CommTimer tmrComm = new CommTimer();
        tmrComm.Start(4000);
        while ((SerialObj.BytesToRead == 0) && (tmrComm.timedout == false))
        {
            Thread.Sleep(0);
            //Application.DoEvents();
        }
        if (SerialObj.BytesToRead > 0)
        {
            byte[] inbyte = new byte[1];
            SerialObj.Read(inbyte, 0, 1);
            if (inbyte.Length > 0)
            {
                byte value = (byte)inbyte.GetValue(0);
                int val = Convert.ToInt32(value);
                //var vall = SerialObj.ReadLine().ToString();

                //return value;

                //do other necessary processing you may want. 
            }
        }
        tmrComm.tmrComm.Dispose();
        SerialObj.DiscardInBuffer();
        SerialObj.DiscardOutBuffer();
        SerialObj.Close();
        return 1;
    }
    catch(Exception e) {
        SerialObj.Close();
        return 0;
    }
}

要进行的所有更改都是从COM端口检索数据的正确格式。端口已成功连接。另外,我如何获取千克数据。

请帮助。 谢谢

0 个答案:

没有答案