Пример #1
0
 private void btn_Enter_Click(object sender, EventArgs e)
 {
     btn_Enter.Enabled = false;
     btn_Param.Enabled = false;
     _rowIndex         = 0;
     foreach (KeyValuePair <int, CardInfo> item in DicRegisterList)
     {
         if (item.Value.Cid == 0)
         {
             item.Value.CardLock            = 0;
             item.Value.CardReportLoss      = 0;
             item.Value.CardType            = 0;
             item.Value.ParkingRestrictions = 0;
             item.Value.CardDistance        = MainForm.Rparam.Value.Distance;
             item.Value.CardPartition       = MainForm.Rparam.Value.Paratition;
             item.Value.CardTime            = MainForm.Rparam.Value.Time;
             item.Value.CardCount           = DataCombination.SetCount(item.Value.CardCount);
         }
     }
     RegisterCards(string.Empty, -1);
 }
Пример #2
0
        /// <summary>
        /// 确认
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_Enter_Click(object sender, EventArgs e)
        {
            try
            {
                btn_Enter.Enabled = false;
                _mViceCard        = null;

                //判断定距卡是否挂失
                if (_mCardInfo.CardReportLoss == 1)
                {
                    //定距卡解挂必须修改定距卡的同步位数据
                    _mCardInfo.Synchronous    = _mCardInfo.Synchronous == 0 ? 1 : 0;
                    _mCardInfo.CardReportLoss = 0;
                }
                //解锁
                _mCardInfo.CardLock = 0;
                //定距卡时间
                _mCardInfo.CardTime = cb_CardType.SelectedIndex == 0 ? t_CardTime.Value : GetViceMaxTime();
                //定距卡类型
                _mCardInfo.CardType = cb_CardType.SelectedIndex;
                //定距卡距离
                _mCardInfo.CardDistance = cb_CardDistance.SelectedIndex;
                //定距卡车位限制
                _mCardInfo.ParkingRestrictions = cb_ParkingRestrictions.SelectedIndex;
                //定距卡车场分区
                _mCardInfo.CardPartition = cb_CardPartition.SelectedIndex == 0 ? 0 : GetSelectedPartition();
                //定距卡计数
                _mCardInfo.CardCount = DataCombination.SetCount(_mCardInfo.CardCount);
                //定距卡副卡数量
                _mCardInfo.ViceCardCount = _mBoundAdd.Count + _mBundledCardinfo.Count;

                TypeParameter typeparameter = new TypeParameter()
                {
                    Lock     = _mCardInfo.CardLock,
                    Distance = _mCardInfo.CardDistance
                };

                FunctionByteParameter functionbyteparameter = new FunctionByteParameter()
                {
                    Loss                = _mCardInfo.CardReportLoss,
                    Synchronous         = _mCardInfo.Synchronous,
                    RegistrationType    = (CardType)_mCardInfo.CardType,
                    ViceCardCount       = _mCardInfo.ViceCardCount,
                    ParkingRestrictions = _mCardInfo.ParkingRestrictions,
                    InOutState          = _mCardInfo.InOutState
                };

                DistanceParameterContent distancecontent = new DistanceParameterContent()
                {
                    CardNumber = _mCardInfo.CardNumber,
                    Type       = typeparameter,
                    Function   = functionbyteparameter,
                    Count      = ++_mCardInfo.CardCount
                };
                byte[] by;
                switch (_mCardInfo.CardType)
                {
                case 0:
                    SingleCardData singlecarddata = new SingleCardData()
                    {
                        Time      = _mCardInfo.CardTime,
                        Partition = _mCardInfo.CardPartition
                    };
                    by = DataCombination.CombinationDistanceCard(distancecontent, singlecarddata);
                    break;

                case 1:     //组合卡
                    List <ViceCardData> vicecarddatas = new List <ViceCardData>();
                    foreach (CardInfo item in _mBundledCardinfo)
                    {
                        ViceCardData vicecard = new ViceCardData()
                        {
                            ViceNumber = item.CardNumber,
                            Time       = item.CardTime,
                            Partition  = item.CardPartition,
                            Count      = item.CardCount
                        };
                        vicecarddatas.Add(vicecard);
                    }
                    foreach (CardInfo item in _mBoundAdd)
                    {
                        item.CardCount = DataCombination.SetCount(item.CardCount);
                        ViceCardData vicecard = new ViceCardData()
                        {
                            ViceNumber = item.CardNumber,
                            Time       = item.CardTime,
                            Partition  = item.CardPartition,
                            Count      = item.CardCount
                        };
                        vicecarddatas.Add(vicecard);
                    }
                    by = DataCombination.CombinationDistanceCard(distancecontent, vicecarddatas);
                    break;

                default:     //车牌识别卡
                    List <PlateCardData> platecarddatas = new List <PlateCardData>();
                    foreach (CardInfo item in _mBundledCardinfo)
                    {
                        PlateCardData platecarddata = new PlateCardData()
                        {
                            Plate     = item.CardNumber,
                            Time      = item.CardTime,
                            Partition = item.CardPartition
                        };
                        platecarddatas.Add(platecarddata);
                    }
                    foreach (CardInfo item in _mBoundAdd)
                    {
                        PlateCardData platecarddata = new PlateCardData()
                        {
                            Plate     = item.CardNumber,
                            Time      = item.CardTime,
                            Partition = item.CardPartition
                        };
                        platecarddatas.Add(platecarddata);
                    }

                    by = DataCombination.CombinationDistanceCard(distancecontent, platecarddatas);
                    break;
                }
                if (_mPort.IsOpen)
                {
                    _mPort.Write(by);
                }
            }
            catch (Exception ex)
            {
                btn_Enter.Enabled = true;
                MessageBox.Show(ex.Message, @"提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }