Beispiel #1
0
 public void PortDataReceived(DistanceParameter param)
 {
     if (param.AuxiliaryCommand == 0)
     {
         DbHelper.Db.Update <CardInfo>(_mCardInfo);
         this.Tag = _mCardInfo;
         Close();
     }
     else
     {
         MessageBox.Show("请确认定距卡是否放置在读写区域内", "提示", 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_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);
         }
     }));
 }
Beispiel #3
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;
         }
     }
 }
Beispiel #4
0
 public void PortDataReceived(DistanceParameter param)
 {
     if (param.AuxiliaryCommand == 0)
     {
         DbHelper.Db.Update <CardInfo>(_mBundledViceCard);
         _mCardInfo.CardTime = GetViceCardMaxtime();
         DbHelper.Db.Update <CardInfo>(_mCardInfo);
         OnDelayDataChange(_mCardInfo, _mBundledViceCard);
         Close();
     }
     else
     {
         MessageBox.Show("请确认定距卡是否放置在读卡区域内", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
 /// <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);
         }
     }
 }
Beispiel #6
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;
     }
 }
 /// <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);
             }
         }
     }));
 }
Beispiel #8
0
 public void PortDataReceived(DistanceParameter param)
 {
     RegisterCards(param.CardNumber, param.AuxiliaryCommand);
 }
Beispiel #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 (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);
                }
            }));
        }
Beispiel #10
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;
            }
        }
Beispiel #11
0
        /// <summary>
        /// 端口数据接收方法
        /// </summary>
        /// <param name="parameter"></param>
        public void PortDataReceived(DistanceParameter parameter)
        {
            if (_mViceCard == null)
            {
                if (parameter.AuxiliaryCommand != 0) //主卡发行失败提示下面内容
                {
                    this.Invoke(new EventHandler(delegate
                    {
                        btn_Enter.Enabled = true;
                        MessageBox.Show(@"定距卡发行失败,请将定距卡放置在多功能操作平台上。", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }));
                    return;
                }
                else //主卡发行成功
                {
                    if (parameter.CardNumber == _mCardInfo.CardNumber)
                    {
                        //更新数据库数据
                        UpdateDistanceData();
                        this.Tag = _mCardInfo;
                    }
                }
            }

            if (_mCardInfo.CardType == 1)//组合卡
            {
                int index = -1;
                //解锁副卡
                foreach (CardInfo item in _mBundledCardinfo)
                {
                    index++;
                    if (_mViceCard != null && item == _mViceCard)
                    {
                        if (item.CardNumber.Equals(parameter.CardNumber))
                        {
                            if (parameter.AuxiliaryCommand == 0)
                            {
                                item.CardLock = 0;
                                Dal.DbHelper.Db.Update <CardInfo>(item);
                                dgv_BundledList["c_LockState", index].Value = Properties.Resources.check;
                                //dgv_BundledList.Rows[_lockindex].DefaultCellStyle.ForeColor = Color.Green;
                            }
                            else
                            {
                                dgv_BundledList["c_LockState", index].Value = Properties.Resources.block;
                                //dgv_BundledList.Rows[_lockindex].DefaultCellStyle.ForeColor = Color.Red;
                            }
                        }
                        _mViceCard = null;
                        continue;
                    }
                    if (_mViceCard != null)
                    {
                        continue;
                    }
                    if (item.CardLock != 1)
                    {
                        continue;
                    }
                    _mViceCard = item;
                    CreateMessageLabel();
                    TypeParameter typeparameter = new TypeParameter()
                    {
                        Lock     = 0,
                        Distance = 0
                    };
                    DistanceParameterContent distanceparameter = new DistanceParameterContent()
                    {
                        CardNumber = item.CardNumber,
                        Type       = typeparameter,
                        Function   = null,
                        Count      = 0
                    };
                    SingleCardData?singlecarddata = null;
                    byte[]         by             = DataCombination.CombinationDistanceCard(distanceparameter, singlecarddata);
                    if (_mPort.IsOpen)
                    {
                        _mPort.Write(by);
                    }
                    return;
                }
                foreach (CardInfo item in _mViceCardInfo)
                {
                    if (item.CardLock == 1)
                    {
                        if (_lMessage != null)
                        {
                            this.Controls.Remove(_lMessage);
                            _lMessage.Dispose();
                            _lMessage = null;
                        }
                        btn_Enter.Enabled = true;
                        MessageBox.Show("解锁副卡失败,将新添加的副卡放置在发行器可读写区域内", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }
                }
            }

            btn_Enter.Enabled = true;
            Close();
        }