示例#1
0
        protected void OnFreshDataReceived(object sender, DataTransEventArgs e)
        {
            List <byte> buffer = (List <byte>)bufferByCom[e.PortName];

            if (e.EventData.Length < FRESHCMDCHECKBYTELENGTH)
            {
                buffer.AddRange(e.EventData);
                if (buffer.Count >= FRESHCMDCHECKBYTELENGTH)
                {
                    if (CompareResponseByte(buffer.ToArray()))
                    {
                        buffer.Clear();
                        m_PluggedPortName = e.PortName;
                        m_FreshEvent.Set();
                    }
                }
            }
            else
            {
                if (CompareResponseByte(e.EventData))
                {
                    buffer.Clear();
                    m_PluggedPortName = e.PortName;
                    m_FreshEvent.Set();
                }
            }
        }
示例#2
0
 /// <summary>
 /// 处理串口传入的数据
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void OnDataReceived(object sender, DataTransEventArgs e)
 {
     byte[] temp = new byte[FRESHCMDCHECKBYTELENGTH];
     //-32768 ~ 32767在此范围的值,当传过来的值超过32767时一定是负值,此时要异或0xFFFF后再加1补码是为负数的绝对值
     // { DP D5 D4 D3 D2 D1 UNIT }\{ E R R O R 0 1 }\{ E R R O R 0 2 }\{ E R R O R 0 3 }
     try
     {
         m_ReadBuffer.AddRange(e.EventData);
         for (int iLoop = 0; iLoop < m_ReadBuffer.Count; iLoop++)
         {
             System.Diagnostics.Debug.Write(m_ReadBuffer[iLoop].ToString("X") + " ");
         }
         System.Diagnostics.Debug.WriteLine("");
         PressureGaugeDataEventArgs args = Analyze(m_ReadBuffer);
         if (args != null && PressureGaugeDataRecerived != null)
         {
             PressureGaugeDataRecerived(this, args);
         }
     }
     catch (Exception ex)
     {
         System.Diagnostics.Debug.WriteLine(ex.Message);
     }
 }