Beispiel #1
0
 private void PortDataReceived(int port)
 {
     Thread.Sleep(20);
     try
     {
         int len = _mPort.GetBytesToRead();
         if (len == 0)
         {
             return;
         }
         byte[] by = new byte[len];
         _mPort.Read(by, len);
         List <byte[]> bylist = DataValidation.Validation(by);
         foreach (byte[] item in bylist)
         {
             if (item == null)
             {
                 continue;
             }
             ParsingParameter parameter = DataParsing.ParsingContent(item);
             if (parameter.FunctionAddress == 50)
             {
                 if (parameter.Command == 1)
                 {
                     long number = DataParsing.TemporaryContent(parameter.DataContent);
                     if (number == 1)
                     {
                         if (_currentNumber >= _mNumber.Number)
                         {
                             _mNumber.Number = _currentNumber;
                             if (_mNumber.Mid > 0)
                             {
                                 DbHelper.Db.Update <ModuleNumber>(_mNumber);
                             }
                             else
                             {
                                 _mNumber.Mid = DbHelper.Db.Insert <ModuleNumber>(_mNumber);
                             }
                         }
                         EnableDownLoadControls(false);
                         return;
                     }
                     else
                     {
                         EnableDownLoadControls(true);
                         return;
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message + ex.StackTrace, @"提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     EnableDownLoadControls(true);
 }
Beispiel #2
0
 private void OnPortDataReceived(int port)
 {
     Thread.Sleep(30);
     try
     {
         int len = _m_Port.GetBytesToRead();
         if (len < 11)
         {
             return;
         }
         if (_tiDelayTimeOut != null)
         {
             _tiDelayTimeOut.Stop();
         }
         byte[] by = new byte[len];
         _m_Port.Read(by, len);
         List <byte[]> bylist = DataValidation.Validation(by);
         foreach (byte[] item in bylist)
         {
             ParsingParameter param = DataParsing.ParsingContent(item);
             if (param.FunctionAddress == 49)
             {
                 int result = (int)DataParsing.TemporaryContent(param.DataContent);
                 if (result == 1)
                 {
                     _m_Port.IsOpen = true;
                     return;
                 }
             }
             else if (param.FunctionAddress == 51)
             {
                 int result = (int)DataParsing.TemporaryContent(param.DataContent);
                 if (result == 1)
                 {
                     ContentMessage("客户编号设置成功。", Color.Green);
                 }
                 else
                 {
                     ContentMessage("错误内容:接收到的数据校验不通过。", Color.Red);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("错误内容:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     LimitControl(true);
 }