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