Example #1
0
        private void SerialPortDataReceived(ParsingParameter param)
        {
            if (!PortHelper.IsConnection)
            {
                return;
            }
            if (PortHelper.CurrentForm != this)
            {
                return;
            }
            if (param.FunctionAddress == 67)
            {
                switch (param.Command)
                {
                case 9:
                    //0x46 F 失败  0x53 S 成功
                    _isModuleSet = DataParsing.TemporaryContent(param.DataContent) == 83;
                    break;

                case 208:
                    //0x59 Y 设置成功  0x4E N 设置失败
                    _isModuleSet = DataParsing.TemporaryContent(param.DataContent) == 89;
                    break;
                }
            }
        }
Example #2
0
 /// <summary>
 /// 端口数据接收
 /// </summary>
 /// <param name="param"></param>
 private void SerialPortDataReceived(ParsingParameter param)
 {
     if (!PortHelper.IsConnection)
     {
         return;
     }
     if (PortHelper.CurrentForm != this)
     {
         return;
     }
     this.Invoke(new EventHandler(delegate
     {
         try
         {
             if (param.FunctionAddress == 66 && param.Command == 221)
             {
                 long result = DataParsing.TemporaryContent(param.DataContent);
                 if (result == 0)
                 {
                     DisplayContent("临时 IC 设备口令设置成功,请保管好口令。", Color.Black);
                     ClearTxt();
                 }
                 else
                 {
                     DisplayContent("临时 IC 设备口令设置失败,请确认设备之间的通信是否正常。");
                 }
             }
         }
         catch (Exception ex)
         {
             CustomExceptionHandler.GetExceptionMessage(ex);
         }
     }));
 }
Example #3
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);
 }
 /// <summary>
 /// 端口数据接收
 /// </summary>
 /// <param name="param"></param>
 private void SerialPortDataReceived(ParsingParameter param)
 {
     if (!PortHelper.IsConnection)
     {
         return;
     }
     if (PortHelper.CurrentForm != this)
     {
         return;
     }
     this.Invoke(new EventHandler(delegate
     {
         if (tb_NewPwd.TextLength == 0)
         {
             return;
         }
         try
         {
             if (param.FunctionAddress == 65)
             {
                 DistanceParameter distanceparam = DataParsing.DistanceParsingContent(param.DataContent);
                 if (distanceparam.Command == 160)
                 {
                     if (distanceparam.AuxiliaryCommand == 0)//成功
                     {
                         DisplayContent("多功能操作平台口令设置成功,请保管好口令。", Color.Black);
                         ClearTxt();
                     }
                     else//失败
                     {
                         DisplayContent("多功能操作平台口令设置失败,请重新操作。");
                     }
                 }
                 else
                 {
                     DisplayContent("未知数据内容。");
                 }
             }
             else
             {
                 DisplayContent("未知数据内容。");
             }
         }
         catch (Exception ex)
         {
             CustomExceptionHandler.GetExceptionMessage(ex);
             MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }));
 }
Example #5
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);
 }
Example #6
0
 private void SerialPortDataReceived(ParsingParameter param)
 {
     if (PortHelper.IsConnection)
     {
         return;
     }
     if (param.FunctionAddress == 65)
     {
         DistanceParameter distanceparam = DataParsing.DistanceParsingContent(param.DataContent);
         if (distanceparam.Command == 160)
         {
             PortHelper.IsConnection = true;
         }
     }
 }
 /// <summary>
 /// 端口数据接收事件
 /// </summary>
 /// <param name="param"></param>
 private void SerialPortDataReceived(ParsingParameter param)
 {
     if (!PortHelper.IsConnection)
     {
         return;
     }
     if (PortHelper.CurrentForm != this)
     {
         return;
     }
     if (param.FunctionAddress == 65)
     {
         DistanceParameter distanceparam = DataParsing.DistanceParsingContent(param.DataContent);
         if (distanceparam.Command == 27)
         {
             SetUpdateCardData(distanceparam.AuxiliaryCommand);
         }
     }
 }
Example #8
0
 /// <summary>
 /// 端口数据接收事件
 /// </summary>
 /// <param name="param"></param>
 private void SerialPortDataReceived(ParsingParameter param)
 {
     if (!PortHelper.IsConnection)
     {
         return;
     }
     if (PortHelper.CurrentForm != this)
     {
         return;
     }
     try
     {
         if (param.FunctionAddress == 65)
         {
             StopTimeOut();
             //解析数据内容
             DistanceParameter distanceparam = DataParsing.DistanceParsingContent(param.DataContent);
             if (distanceparam.Command == 27)             //定距卡写入
             {
                 if (distanceparam.AuxiliaryCommand == 0) //成功
                 {
                     Dbhelper.Db.Update <CbCardInfo>(_mCardInfo);
                     Dbhelper.Db.Update <CbCardCountingState>(_mCardCounting);
                     this.Tag          = _mCardInfo;
                     this.DialogResult = DialogResult.OK;
                 }
                 else
                 {
                     MessageBox.Show("定距卡写入失败,请将定距卡放置在发行器可读写区域内,重新操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         CustomExceptionHandler.GetExceptionMessage(ex);
         MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     finally
     {
         btn_Enter.Enabled = true;
     }
 }
Example #9
0
 /// <summary>
 /// 端口接收事件
 /// </summary>
 /// <param name="param"></param>
 private void SerialPortDataReceived(ParsingParameter param)
 {
     if (!PortHelper.IsConnection)
     {
         return;
     }
     if (PortHelper.CurrentForm != this)
     {
         return;
     }
     this.Invoke(new EventHandler(delegate
     {
         if (param.FunctionAddress == 65)
         {
             DistanceParameter distanceparam = DataParsing.DistanceParsingContent(param.DataContent);
             if (distanceparam.Command == 27)
             {
                 UnlockDistanceCard(distanceparam.AuxiliaryCommand);
             }
         }
     }));
 }
Example #10
0
        /// <summary>
        /// 端口数据接收
        /// </summary>
        /// <param name="param"></param>
        private void SerialPortDataReceived(ParsingParameter param)
        {
            if (!PortHelper.IsConnection)
            {
                return;
            }
            if (PortHelper.CurrentForm != this)
            {
                return;
            }
            this.Invoke(new EventHandler(delegate
            {
                try
                {
                    if (param.FunctionAddress == 66)
                    {
                        long result = DataParsing.TemporaryContent(param.DataContent);
                        switch (param.Command)
                        {
                        case 204:
                            if (result == 0)
                            {
                                DisplayContent("临时 IC 卡加载成功。", Color.Black);
                            }
                            else
                            {
                                DisplayContent("临时 IC 卡加载失败,请确认旧密码是否正确或IC 卡是否放置在读写区域内。");
                            }
                            SetDeviceNewPassword();
                            IsEnd = true;
                            break;

                        case 221:
                            if (!IsEnd)
                            {
                                if (result == 0)
                                {
                                    DisplayContent("临时 IC 设备初始化成功。", Color.Black);
                                    PortHelper.SerialPortWrite(PortAgreement.GetTemporaryICEncryption(Dal_IcDevicePwd.TempIcDevicePassword.Pwd));
                                }
                                else
                                {
                                    DisplayContent("临时 IC 设备初始化失败。");
                                    p_Top.Enabled = true;
                                }
                            }
                            else
                            {
                                if (result != 0)
                                {
                                    SetDeviceNewPassword();
                                }
                                else
                                {
                                    p_Top.Enabled = true;
                                }
                            }
                            break;
                        }
                    }
                }
                catch (Exception ex)
                {
                    CustomExceptionHandler.GetExceptionMessage(ex);
                    MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }));
        }
Example #11
0
        /// <summary>
        /// 端口数据接收
        /// </summary>
        /// <param name="param"></param>
        private void SerialPortDataReceived(ParsingParameter param)
        {
            if (!PortHelper.IsConnection)
            {
                return;
            }
            if (PortHelper.CurrentForm != this)
            {
                return;
            }
            this.Invoke(new EventHandler(delegate
            {
                if (tb_OldPwd.TextLength == 0)
                {
                    return;
                }
                try
                {
                    if (param.FunctionAddress == 65)
                    {
                        DistanceParameter distanceparam = DataParsing.DistanceParsingContent(param.DataContent);
                        switch (distanceparam.Command)
                        {
                        case 13:    //卡密码
                            switch (distanceparam.AuxiliaryCommand)
                            {
                            case 0:
                                if (distanceparam.TypeParameter.CardType == CardTypes.PasswordMistake)
                                {
                                    DisplayContent("5 米定距卡:" + distanceparam.CardNumber + " 加载失败。", (int)distanceparam.TypeParameter.CardType, Color.Red);
                                }
                                else
                                {
                                    DisplayContent("5 米定距卡:" + distanceparam.CardNumber + " 加载成功。", (int)distanceparam.TypeParameter.CardType, Color.Black);
                                }
                                break;

                            case 8:
                                DisplayContent("5 米定距卡加载结束。", Color.Black);
                                p_Top.Enabled = true;
                                IsEnd         = true;
                                SetDevicedNewPwd();
                                break;

                            default:
                                DisplayContent("5 米定距卡加载失败,请将 5 米定距卡放置在读写区域内,请重新操作。");
                                p_Top.Enabled = true;
                                break;
                            }
                            break;

                        case 160:    //设备密码
                            if (!IsEnd)
                            {
                                if (distanceparam.AuxiliaryCommand == 0)    //成功
                                {
                                    DisplayContent("多功能操作平台初始化设置成功,进行 5 米定距卡口令加载。", Color.Black);

                                    PortHelper.SerialPortWrite(PortAgreement.GetDistanceCardEncryption(Dal_DevicePwd.DistanceSystemPassword.Pwd));
                                }
                                else    //失败
                                {
                                    DisplayContent("多功能操作平台初始化设置失败,请重新操作。");
                                    p_Top.Enabled = true;
                                }
                            }
                            else
                            {
                                if (distanceparam.AuxiliaryCommand != 0)
                                {
                                    SetDevicedNewPwd();
                                }
                            }
                            break;

                        default:
                            DisplayContent("未知数据内容。");
                            p_Top.Enabled = true;
                            break;
                        }
                    }
                    else
                    {
                        DisplayContent("未知数据内容。");
                        p_Top.Enabled = true;
                    }
                }
                catch (Exception ex)
                {
                    DisplayContent(ex.Message);
                    p_Top.Enabled = true;
                    CustomExceptionHandler.GetExceptionMessage(ex);
                }
            }));
        }
Example #12
0
        /// <summary>
        /// 端口数据接收事件
        /// </summary>
        /// <param name="param"></param>
        private void SerialPortDataReceived(ParsingParameter param)
        {
            if (!PortHelper.IsConnection)
            {
                return;
            }
            if (PortHelper.CurrentForm != this)
            {
                return;
            }
            try
            {
                if (param.FunctionAddress == 65)
                {
                    StopTimeOutThread();

                    //解析数据内容
                    DistanceParameter distanceparam = DataParsing.DistanceParsingContent(param.DataContent);
                    if (distanceparam.Command == 27)             //写入定距卡
                    {
                        if (distanceparam.AuxiliaryCommand == 0) //成功
                        {
                            StringBuilder sb = new StringBuilder();
                            StringBuilder sbRecordContent = new StringBuilder();
                            DateTime      maxtime         = DateTime.MinValue;
                            foreach (CbAssociateCard vicecarditem in _mViceCard)
                            {
                                if (vicecarditem.UseState == 3 && vicecarditem.AssociateCardTime.Date != vicecarditem.UpdateTime.Date)
                                {
                                    sb.AppendFormat(" update CBAssociateCard set UpdateTime='{0:yyyy-MM-dd}',UseState={1} where id!={2} and AssociateCardNumber='{3}' ; ", vicecarditem.UpdateTime, 1, vicecarditem.ID, vicecarditem.AssociateCardNumber);
                                    sbRecordContent.AppendFormat(" 副卡编号:{0} 时间:{1} 延期时间:{2} ", vicecarditem.AssociateCardNumber, vicecarditem.AssociateCardTime, vicecarditem.UpdateTime);
                                }
                                vicecarditem.AssociateCardTime = vicecarditem.UpdateTime;
                                vicecarditem.UseState          = 0;
                                if (vicecarditem.AssociateCardTime > maxtime)
                                {
                                    maxtime = vicecarditem.AssociateCardTime;
                                }
                            }

                            if (sb.Length > 0)
                            {
                                //更新当前副卡的所有时间
                                Dbhelper.Db.ExecuteNonQuery(sb.ToString());
                            }

                            //更新副卡数据
                            Dbhelper.Db.Update <CbAssociateCard>(_mViceCard.ToArray());
                            if (_mViceCardCounting != null)
                            {
                                _mViceCardCounting.Add(_mCardCounting);
                                //更新计数数据
                                Dbhelper.Db.Update <CbCardCountingState>(_mViceCardCounting.ToArray());
                            }
                            else
                            {
                                //更新主卡计数数据
                                Dbhelper.Db.Update <CbCardCountingState>(_mCardCounting);
                            }
                            if (_mCardInfo.StopTime.Date != maxtime.Date)
                            {
                                _mCardInfo.StopTime = maxtime;
                                //更新主卡数据
                                Dbhelper.Db.Update <CbCardInfo>(_mCardInfo);
                            }
                            this.Tag          = _mCardInfo;
                            this.DialogResult = DialogResult.OK;
                        }
                        else
                        {
                            MessageBox.Show("定距卡写入失败,请将定距卡放置在发行器可读写区域内,重新操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                CustomExceptionHandler.GetExceptionMessage(ex);
                MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                btn_Enter.Enabled = true;
            }
        }