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