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; } } }
/// <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); } })); }
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); } })); }
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); }
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); } } }
/// <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; } }
/// <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); } } })); }
/// <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); } })); }
/// <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); } })); }
/// <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; } }