Exemplo n.º 1
0
 private void CardReadHandler(object sender, CardReadEventArgs e)
 {
     if (AppSettings.CurrentSetting.EnableWriteCard)
     {
         //当前读到的卡片
         _cardInfo = CardDateResolver.Instance.GetCardInfoFromData(e.CardID, e[GlobalVariables.ParkingSection]);
     }
     foreach (int enID in WorkStationInfo.CurrentStation.EntranceList)
     {
         EntranceInfo entrance = ParkBuffer.Current.GetEntrance(enID);
         if (entrance != null && entrance.IsExitDevice)
         {
             RemoteReadCardNotify notify = new RemoteReadCardNotify(entrance.ParkID, entrance.EntranceID, e.CardID, e[GlobalVariables.ParkingSection]);
             if (_cardInfo != null)
             {
                 notify.LastCarPlate = _cardInfo.LastCarPlate;
             }
             IParkingAdapter pad = ParkingAdapterManager.Instance[entrance.ParkID];
             if (pad != null)
             {
                 pad.RemoteReadCard(notify);
                 break;
             }
         }
     }
 }
Exemplo n.º 2
0
        public void ProcessReport(ReportBase report)
        {
            Action <ReportBase> action = delegate(ReportBase report1)
            {
                EntranceInfo entrance = ParkBuffer.Current.GetEntrance(report1.EntranceID);
                if (entrance != null && WorkStationInfo.CurrentStation.EntranceList.Exists(e => e == entrance.EntranceID))//是否是工作站要处理的事件
                {
                    if (report1 is CardEventReport)
                    {
                        CardEventReport eventInfo = report1 as CardEventReport;
                        ProcessCardEvent(eventInfo);
                    }
                    if (!(report1 is ParkVacantReport) && !(report1 is EntranceRemainTempCardReport) && !(report1 is EntranceStatusReport))
                    {
                        eventList.InsertReport(report1);
                    }
                }
            };

            if (this.InvokeRequired)
            {
                this.Invoke(action, report);
            }
            else
            {
                action(report);
            }
        }
Exemplo n.º 3
0
 private void GetWorkmodeFromInput(EntranceInfo entrance)
 {
     entrance.WorkMode     = EntranceWorkmodeOption.OPT_None;
     entrance.IsMaster     = this.rdHost.Checked;
     entrance.IsExitDevice = this.rdExit.Checked;
     entrance.ReadAndTakeCardNeedCarSense = this.chkTakeCardNeedCarSense.Checked;
     entrance.AllowEjectCardWhithoutRead  = this.chkAllowEjectCardWhithoutRead.Checked;
     entrance.LightEnable               = this.chkLightEnable.Checked;
     entrance.ForbidWhenCardExpired     = this.chkForbidWhenCardExpired.Checked;
     entrance.ExportCharge              = this.chkExportCharge.Checked;
     entrance.OnlineHandleWhenNotOnList = this.chkOnlineHandleWhenNotOnList.Checked;
     entrance.ForbidWhenFull            = this.chkForbidWhenFull.Checked;
     entrance.DisableTempCard           = !this.chkAllowTempCard.Checked;
     entrance.Wiegand34                      = this.chkWeigand34.Checked;
     entrance.NoParkingCount                 = this.chkNoParkingCount.Checked;
     entrance.Valid                          = this.chkValid.Checked;
     entrance.ReadCardInterval               = this.txtCardReadInterval.IntergerValue;
     entrance.TicketPrinterCOMPort           = this.cmbTicketPrinter.ComPort;
     entrance.TicketReaderCOMPort            = this.cmbTicketReader.ComPort;
     entrance.TicketReaderCOMPort2           = this.cmbTicketReader2.ComPort;
     entrance.EnableParkvacantLed            = this.chkEnableParkvacantLed.Checked;
     entrance.NoReaderOnCardCaptuer          = this.chkNoReaderOnCardCaptuer.Checked;
     entrance.MonthCardWaitWhenOut           = this.chkMonthCardWaitWhenOut.Checked;
     entrance.PrepayCardWaitWhenOut          = this.chkPrepayCardWaitWhenOut.Checked;
     entrance.OnlyTempReaderAfterButtonClick = this.chkOnlyTempReaderAfterButtonClick.Checked;
     entrance.CardValidNeedResponse          = true; //卡片有效指令需要控制器返回确认一直为真
     entrance.UseAsAcs                       = this.chkUseAsACS.Checked;
 }
Exemplo n.º 4
0
        private void ClearInvalidWaitingCommand()
        {
            if (ParkBuffer.Current != null)
            {
                WaitingCommandBLL         wb        = new WaitingCommandBLL(AppSettings.CurrentSetting.ParkConnect);
                List <WaitingCommandInfo> wcs       = wb.GetAllCommands().QueryObjects;
                List <EntranceInfo>       entrances = ParkBuffer.Current.GetEntrances();

                int  entranceID      = 0;     //当前控制器id
                bool invalidEntrance = false; //当前控制器是否无效控制器
                foreach (var wc in wcs)
                {
                    if (wc.EntranceID != entranceID)
                    {
                        EntranceInfo entrance = entrances.FirstOrDefault(e => e.EntranceID == wc.EntranceID);
                        entranceID      = wc.EntranceID;
                        invalidEntrance = entrance == null;
                    }
                    if (invalidEntrance)
                    {
                        wb.Delete(wc);
                    }
                }
            }
        }
Exemplo n.º 5
0
        private void HandleBlacklist(YCTItem item, YCTWallet w, YCTBlacklist black)
        {
            bool catched = item.Reader.CatchBlackList(); //捕捉黑名单

            if (catched && black.CatchAt == null)        //之前没有捕捉日期的才写数据库
            {
                black.WalletType = w.WalletType;
                black.CatchAt    = DateTime.Now;
                black.UploadFile = null;
                new YCTBlacklistBll(AppSettings.CurrentSetting.MasterParkConnect).Update(black);
            }
            EntranceInfo      entrance = item.EntranceID.HasValue ? ParkBuffer.Current.GetEntrance(item.EntranceID.Value) : null;
            OpenCardEventArgs args     = new OpenCardEventArgs()
            {
                CardID    = w.LogicCardID,
                CardType  = w.WalletType == 0 ? string.Empty : YCTSetting.CardTyte,
                Entrance  = entrance,
                Balance   = (decimal)w.Balance / 100,
                LastError = "黑名单卡",
            };

            if (this.OnError != null)
            {
                this.OnError(this, args);
            }
        }
Exemplo n.º 6
0
        private void FrmZSTSetting_Load(object sender, EventArgs e)
        {
            dataGridView1.Rows.Clear();
            YiTingShanFuSetting yt = (new SysParaSettingsBll(AppSettings.CurrentSetting.ParkConnect)).GetSetting <YiTingShanFuSetting>();

            if (yt != null)
            {
                AppSettings.CurrentSetting.GetYiTingConfig(yt);
                txtIP.IP = yt.IP;
                txtPort.IntergerValue = yt.Port;
                dataGridView1.Rows.Clear();
                if (yt.Items != null && yt.Items.Count > 0)
                {
                    foreach (YiTingPOS item in yt.Items)
                    {
                        EntranceInfo entrance = item.EntranceID != null?ParkBuffer.Current.GetEntrance(item.EntranceID.Value) : null;

                        int row = dataGridView1.Rows.Add();
                        ShowItemOnRow(dataGridView1.Rows[row], item.ID, entrance != null ? entrance.EntranceName : string.Empty, entrance != null ? entrance.EntranceID : 0, item.Memo);
                    }
                }
                chkEnable.Checked = GlobalSettings.Current.Get <OpenCardMessageHandler>().ContainService <YiTingShanFuSetting>();
            }
            else
            {
                System.Net.IPAddress ip = Ralid.GeneralLibrary.NetTool.GetFirstIP();
                if (ip != null)
                {
                    txtIP.IP = ip.ToString();
                }
                txtPort.IntergerValue = 16171;
            }
        }
Exemplo n.º 7
0
        private CardPaymentInfo GetPaymentInfo(CardInfo card, OpenCardEventArgs e, DateTime dt)
        {
            CardPaymentInfo ret      = null;
            IParkingAdapter pad      = null;
            EntranceInfo    entrance = e.Entrance;

            if (entrance != null)
            {
                pad = ParkingAdapterManager.Instance[entrance.RootParkID];
            }
            else //中央收费,默认使用卡片的入场停车场来扣费
            {
                entrance = ParkBuffer.Current.GetEntrance(card.LastEntrance);
                if (entrance != null)
                {
                    pad = ParkingAdapterManager.Instance[entrance.RootParkID];
                }
                else
                {
                    if (ParkingAdapterManager.Instance != null && ParkingAdapterManager.Instance.ParkAdapters != null)
                    {
                        pad = ParkingAdapterManager.Instance.ParkAdapters[0];
                    }
                }
            }
            if (pad != null)
            {
                ret = pad.CreateCardPaymentRecord(card, card.CarType, dt);
            }
            return(ret);
        }
Exemplo n.º 8
0
        public EntranceBase(EntranceInfo info, ParkBase parent)
        {
            Parent    = parent;
            _entrance = info;
            _status   = EntranceStatus.UnKnown; //初始状态设置为未知

            if (info.TicketReaderCOMPort > 0)
            {
                _TicketReader              = new BarCodeReader(info.TicketReaderCOMPort);
                _TicketReader.BarCodeRead += new BarCodeReadEventHandler(TicketReader_BarCodeRead);
                _TicketReader.Open();
            }
            if (info.TicketPrinterCOMPort > 0)
            {
                _TicketPrinter = new KPM150BarCodePrinter(info.TicketPrinterCOMPort);
                _TicketPrinter.Open();
            }
            //初始化处理消息包的线程
            _PacketHandleThread = new Thread(ReportHandle_Thread);
            _PacketHandleThread.Start();

            Thread t = new Thread(new ThreadStart(HeartBeatCheck_Thread));

            t.IsBackground = true;
            t.Start();
        }
Exemplo n.º 9
0
 /// <summary>
 /// 查看控制器中是否与有工作站要侦听的控制器在同一个停车场
 /// </summary>
 /// <param name="park"></param>
 /// <returns></returns>
 public bool IsInSameParkList(List <int> entranceIDs1, List <int> entranceIDs2)
 {
     if (entranceIDs1 != null && entranceIDs1.Count > 0 &&
         entranceIDs2 != null && entranceIDs2.Count > 0)
     {
         foreach (int id1 in entranceIDs1)
         {
             if (entranceIDs2.Exists(e => e == id1))
             {
                 return(true);
             }
             EntranceInfo entrance1 = GetEntrance(id1);
             if (entrance1 != null)
             {
                 foreach (int id2 in entranceIDs2)
                 {
                     EntranceInfo entrance2 = GetEntrance(id2);
                     if (entrance2 != null && entrance1.ParkID == entrance2.ParkID)
                     {
                         return(true);
                     }
                 }
             }
         }
     }
     return(false);
 }
Exemplo n.º 10
0
        public PlateRecognitionResult Recognize(int parkID, int entranceID)
        {
            string dir = TempFolderManager.GetCurrentFolder();
            PlateRecognitionResult ret = new PlateRecognitionResult();

            try
            {
                //EntranceInfo entrance = ParkBuffer.Current.GetEntrance(entranceID);
                EntranceInfo entrance = ParkBuffer.Current.GetEntrance(parkID, entranceID);
                if (entrance != null)
                {
                    foreach (VideoSourceInfo video in entrance.VideoSources)
                    {
                        if (video.IsForCarPlate)
                        {
                            FrmSnapShoter frm  = FrmSnapShoter.GetInstance();
                            string        path = Path.Combine(dir, string.Format("{0}_{1}_{2}.jpg", "CarPlate", Guid.NewGuid().ToString(), video.VideoID));
                            if (frm.SnapShotTo(video, ref path, true, false))
                            {
                                ret = Recognize(path);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Ralid.GeneralLibrary.ExceptionHandling.ExceptionPolicy.HandleException(ex);
            }
            return(ret);
        }
Exemplo n.º 11
0
 /// <summary>
 /// 初始化
 /// </summary>
 public void Init()
 {
     if (ParkBuffer.Current != null)
     {
         List <Button> buttons = new List <Button>();
         foreach (int enID in WorkStationInfo.CurrentStation.EntranceList)
         {
             EntranceInfo entrance = ParkBuffer.Current.GetEntrance(enID);
             if (entrance != null && entrance.IsExitDevice)
             {
                 Button b = new Button();
                 b.Click    += new EventHandler(b_Click);
                 b.BackColor = System.Drawing.SystemColors.ButtonFace;
                 b.Font      = new System.Drawing.Font("宋体", 12, FontStyle.Bold);
                 b.Tag       = entrance.EntranceID;
                 b.Text      = string.Format("{0}", entrance.EntranceName);
                 this.Controls.Add(b);
                 buttons.Add(b);
             }
         }
         LayoutEntranceButtons(buttons);
         if (buttons.Count > 0)
         {
             SelectedEntranceID = Convert.ToInt32(buttons[0].Tag);
         }
     }
 }
Exemplo n.º 12
0
        /// <summary>
        /// 对通道进行图片抓拍,要求此通道有一个用于车牌识别的摄像机
        /// </summary>
        /// <param name="parkID"></param>
        /// <param name="entranceID"></param>
        /// <returns>抓拍图片的地址,返回空时表示抓拍失败</returns>
        public string SnapShot(int parkID, int entranceID)
        {
            string dir = TempFolderManager.GetCurrentFolder();

            try
            {
                EntranceInfo entrance = ParkBuffer.Current.GetEntrance(entranceID);
                if (entrance != null)
                {
                    foreach (VideoSourceInfo video in entrance.VideoSources)
                    {
                        if (video.IsForCarPlate)
                        {
                            string path = Path.Combine(dir, string.Format("{0}_{1}_{2}.jpg", "SnapShot", Guid.NewGuid().ToString(), video.VideoID));
                            if (SnapShotTo(video, ref path, false, false))
                            {
                                return(path);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Ralid.GeneralLibrary.ExceptionHandling.ExceptionPolicy.HandleException(ex);
            }
            return(string.Empty);
        }
Exemplo n.º 13
0
        private void ShowGeneralInfo(EntranceInfo entrance)
        {
            this.txtEntranceName.Text = entrance.EntranceName;
            txtIP.IP                      = entrance.IPAddress;
            txtIPMask.IP                  = entrance.IPMask;
            txtGateWay.IP                 = entrance.Gateway;
            this.txtCarPlateIP.IP         = entrance.CarPlateIP;
            this.txtVideoID.IntergerValue = entrance.VideoID == null ? 0 : entrance.VideoID.Value;
            if (entrance.CarPlateNotifyIPs != null)
            {
                if (entrance.CarPlateNotifyIPs.Count > 0)
                {
                    this.txtCarPlateNotifyController.IP = entrance.CarPlateNotifyIPs[0];
                }
                if (entrance.CarPlateNotifyIPs.Count > 1)
                {
                    this.txtCarPlateNotifyControllerSecond1.IP = entrance.CarPlateNotifyIPs[1];
                }
                if (entrance.CarPlateNotifyIPs.Count > 2)
                {
                    this.txtCarPlateNotifyControllerSecond2.IP = entrance.CarPlateNotifyIPs[2];
                }
            }

            this.txtPaymentEventIndex.IntergerValue = entrance.PaymentEventIndex;
        }
Exemplo n.º 14
0
        private void HandleWallet(LR280Item item, LR280Response w)
        {
            EntranceInfo      entrance = item.EntranceID.HasValue ? ParkBuffer.Current.GetEntrance(item.EntranceID.Value) : null;
            OpenCardEventArgs args     = new OpenCardEventArgs()
            {
                CardID   = w.卡号,
                CardType = LR280Setting.CardTyte,
                Entrance = entrance,
                Balance  = (decimal)w.金额 / 100,
            };

            if (args.CardType == LR280Setting.CardTyte)
            {
                ParkInfo p    = ParkBuffer.Current.GetPark(entrance.ParkID);
                CardInfo card = (new CardBll(AppSettings.CurrentSetting.ParkConnect)).GetCardByID(w.卡号).QueryObject;
                if (card != null && card.CardType.Name == LR280Setting.CardTyte && (entrance == null || (!p.IsNested && entrance.IsExitDevice))) ////中央收费处和非嵌套车场的出口,则进行收费处理
                {
                    HandlePayment(item, w, args);
                }
                else
                {
                    if (this.OnReadCard != null)
                    {
                        this.OnReadCard(this, args);
                    }
                }
            }
        }
Exemplo n.º 15
0
        protected override void ItemShowing()
        {
            EntranceInfo info = (EntranceInfo)UpdatingItem;

            this.Text = info.EntranceName;
            this.txtEntranceName.Text       = info.EntranceName;
            this.comAddress.EntranceAddress = info.Address;
            this.cmbTicketPrinter.ComPort   = info.TicketPrinterCOMPort;
            this.cmbTicketReader.ComPort    = info.TicketReaderCOMPort;
            if (info.TicketReaderCOMPort2 != null)
            {
                this.cmbTicketReader2.ComPort = info.TicketReaderCOMPort2.Value;
            }
            this.chkReadCardNeedCarSense.Checked           = info.ReadAndTakeCardNeedCarSense;
            this.chkLightOnWhenCarArrive.Checked           = info.LightEnable;
            this.txtCardReadInterval.IntergerValue         = info.ReadCardInterval;
            this.chkEnableParkvacantLed.Checked            = info.EnableParkvacantLed;
            this.chkNoReaderOnCardCaptuer.Checked          = info.NoReaderOnCardCaptuer;
            this.chkMonthCardWaitWhenOut.Checked           = info.MonthCardWaitWhenOut;
            this.chkPrepayCardWaitWhenOut.Checked          = info.PrepayCardWaitWhenOut;
            this.chkCardValidNeedResponse.Checked          = info.CardValidNeedResponse;
            this.chkOnlyTempReaderAfterButtonClick.Checked = info.OnlyTempReaderAfterButtonClick;
            this.chkNoParkingCount.Checked        = info.NoParkingCount;
            this.chkUseAsACS.Checked              = info.UseAsAcs;
            this.chkForbidWhenCardExpired.Checked = info.ForbidWhenCardExpired;
            this.chkForbidWhenFull.Checked        = info.ForbidWhenFull;
            this.txtCarPlateIP.IP         = info.CarPlateIP;
            this.txtVideoID.IntergerValue = info.VideoID == null ? 0 : info.VideoID.Value;
        }
Exemplo n.º 16
0
 private void ShowWorkmodeInfo(EntranceInfo entrance)
 {
     this.rdHost.Checked    = entrance.IsMaster;
     this.rdNotHost.Checked = !entrance.IsMaster;
     this.rdExit.Checked    = entrance.IsExitDevice;
     this.rdEnter.Checked   = !entrance.IsExitDevice;
     this.chkTakeCardNeedCarSense.Checked       = entrance.ReadAndTakeCardNeedCarSense;
     this.chkAllowEjectCardWhithoutRead.Checked = entrance.AllowEjectCardWhithoutRead;
     this.chkLightEnable.Checked  = entrance.LightEnable;
     this.chkExportCharge.Checked = entrance.ExportCharge;
     this.chkOnlineHandleWhenNotOnList.Checked = entrance.OnlineHandleWhenNotOnList;
     this.chkForbidWhenCardExpired.Checked     = entrance.ForbidWhenCardExpired;
     this.chkForbidWhenFull.Checked            = entrance.ForbidWhenFull;
     this.chkAllowTempCard.Checked             = !entrance.DisableTempCard;
     this.chkWeigand34.Checked              = entrance.Wiegand34;
     this.chkNoParkingCount.Checked         = entrance.NoParkingCount;
     this.chkValid.Checked                  = entrance.Valid;
     this.txtCardReadInterval.IntergerValue = entrance.ReadCardInterval;
     this.cmbTicketPrinter.ComPort          = entrance.TicketPrinterCOMPort;
     this.cmbTicketReader.ComPort           = entrance.TicketReaderCOMPort;
     if (entrance.TicketReaderCOMPort2 != null)
     {
         this.cmbTicketReader2.ComPort = entrance.TicketReaderCOMPort2.Value;
     }
     this.chkEnableParkvacantLed.Checked            = entrance.EnableParkvacantLed;
     this.chkNoReaderOnCardCaptuer.Checked          = entrance.NoReaderOnCardCaptuer;
     this.chkMonthCardWaitWhenOut.Checked           = entrance.MonthCardWaitWhenOut;
     this.chkPrepayCardWaitWhenOut.Checked          = entrance.PrepayCardWaitWhenOut;
     this.chkOnlyTempReaderAfterButtonClick.Checked = entrance.OnlyTempReaderAfterButtonClick;
     this.chkUseAsACS.Checked = entrance.UseAsAcs;
 }
Exemplo n.º 17
0
 private string GetEntrance(CardInfo card)
 {
     if (ParkBuffer.Current != null)
     {
         EntranceInfo entrance = ParkBuffer.Current.GetEntrance(card.LastEntrance);
         return(entrance != null ? entrance.EntranceName : string.Empty);
     }
     return(card.LastEntrance.ToString());
 }
Exemplo n.º 18
0
        /// <summary>
        /// 显示通道控制器节点
        /// </summary>
        /// <param name="node"></param>
        /// <param name="en"></param>
        public void RenderEntrance(TreeNode node, EntranceInfo en)
        {
            string toolTip = string.Empty;

            node.Tag  = en;
            node.Text = en.IsExitDevice ? string.Format("{0}[{1}]", en.EntranceName, en.IPAddress) :
                        string.Format("{0}[{1}][{2}]", en.EntranceName, en.IPAddress, en.TempCard);
            switch (en.Status)
            {
            case EntranceStatus.Ok:
            case EntranceStatus.GateDown:
            case EntranceStatus.GateUp:
            case EntranceStatus.LessCard:
                node.ForeColor          = System.Drawing.Color.Black;
                node.ImageIndex         = en.IsMaster ? 6 : 2;
                node.SelectedImageIndex = en.IsMaster ? 6 : 2;
                if (!en.IsExitDevice)
                {
                    if (UserSetting.Current.MinTempCard >= 0 && UserSetting.Current.MinTempCard >= en.TempCard)
                    {
                        if (AppSettings.CurrentSetting.EnableTTS)
                        {
                            Ralid.GeneralLibrary.Speech.TTSSpeech.Instance.Speek(string.Format("{0} {1}", en.EntranceName, Resources.Resource1.HardwareTree_TempCardSpeech));
                        }
                        toolTip                 = Resources.Resource1.HardwareTree_TempCardAlarm;
                        node.ForeColor          = System.Drawing.Color.Red;
                        node.ImageIndex         = 5;
                        node.SelectedImageIndex = 5;
                    }
                }
                break;

            case EntranceStatus.OffLine:
                node.ForeColor          = System.Drawing.Color.Red;
                node.SelectedImageIndex = 4;
                node.ImageIndex         = 4;
                break;

            case EntranceStatus.NoCard:
            case EntranceStatus.CardJam:
            case EntranceStatus.StorageAlarm:
            case EntranceStatus.StorageFull:
                toolTip                 = EntranceStatusDescription.GetDescription(en.Status);
                node.Text               = string.Format("{0}[{1}][{2}]", en.EntranceName, toolTip);
                node.ForeColor          = System.Drawing.Color.Red;
                node.ImageIndex         = 5;
                node.SelectedImageIndex = 5;
                break;

            default:
                node.ForeColor          = System.Drawing.Color.Red;
                node.SelectedImageIndex = 4;
                node.ImageIndex         = 4;
                break;
            }
            node.ToolTipText = toolTip;
        }
Exemplo n.º 19
0
        private void ShowItemOnRow(DataGridViewRow row, LR280Item item)
        {
            EntranceInfo entrance = item.EntranceID != null?ParkBuffer.Current.GetEntrance(item.EntranceID.Value) : null;

            row.Cells["colComport"].Value  = "COM" + item.Comport.ToString();
            row.Cells["colEntrance"].Value = entrance != null ? entrance.EntranceName : string.Empty;
            row.Cells["colMemo"].Value     = item.Memo;
            row.Tag = item;
        }
Exemplo n.º 20
0
        public PlateRecognitionResult Recognize(int parkID, int entranceID)
        {
            //if (_plnImp != null)
            //{
            //    return _plnImp.Recognize(parkID, entranceID);
            //}

            IPlateRecognition plnImp = null;
            //默认车牌识别类型
            CarPlateRecognizationType reconizationType = AppSettings.CurrentSetting.CarPlateRecognization;

            try
            {
                EntranceInfo entrance = ParkBuffer.Current.GetEntrance(parkID, entranceID);
                if (entrance != null)
                {
                    //如果是使用信路通识别的
                    if (entrance.CarPlateIP != "0.0.0.0" &&
                        !string.IsNullOrEmpty(entrance.CarPlateIP))
                    {
                        reconizationType = CarPlateRecognizationType.XinLuTong;
                    }
                    else
                    {
                        foreach (VideoSourceInfo video in entrance.VideoSources)
                        {
                            if (video.IsForCarPlate)
                            {
                                //使用大华摄像机的
                                if (video.VideoSourceType == (int)VideoServerType.DaHua)
                                {
                                    reconizationType = CarPlateRecognizationType.DaHua;
                                }
                                break;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Ralid.GeneralLibrary.ExceptionHandling.ExceptionPolicy.HandleException(ex);
            }

            if (_plnImps.ContainsKey((int)reconizationType))
            {
                plnImp = _plnImps[(int)reconizationType];
            }

            if (plnImp != null)
            {
                return(plnImp.Recognize(parkID, entranceID));
            }

            return(new PlateRecognitionResult());
        }
Exemplo n.º 21
0
        protected override CommandResult AddItem(object addingItem)
        {
            EntranceInfo entrance = addingItem as EntranceInfo;

            if (entrance.IsMaster && Park.MastEntrance != null)
            {
                return(new CommandResult(ResultCode.Fail, Resources.Resource1.FrmNetEntrance_MastExists));
            }
            return(bll.Insert((EntranceInfo)addingItem));
        }
Exemplo n.º 22
0
        private void ShowReportOnRow(DataGridViewRow row, WaitingCommandInfo record)
        {
            row.Tag = record;
            EntranceInfo entrance = ParkBuffer.Current.GetEntrance(record.EntranceID);

            row.Cells["colEntrance"].Value             = entrance == null ? string.Empty : entrance.EntranceName;
            row.Cells["colCommandType"].Value          = CommandTypeDescription.GetDescription(record.Command);
            row.Cells["colCardID"].Value               = record.CardID;
            row.Cells["colWaitingCommandStatus"].Value = WaitingCommandStatusDescription.GetDescription(record.Status);
        }
Exemplo n.º 23
0
 /// <summary>
 /// 在树中勾选通道控制器节点
 /// </summary>
 /// <param name="entrances"></param>
 public void SelectEntrances(List <EntranceInfo> entrances)
 {
     foreach (TreeNode node in allEntranceNodes)
     {
         EntranceInfo info = node.Tag as EntranceInfo;
         if (entrances.Exists(e => e.EntranceID == info.EntranceID))
         {
             node.Checked = true;
         }
     }
 }
Exemplo n.º 24
0
        /// <summary>
        /// 获取通道控制器信息
        /// </summary>
        /// <param name="parkID">停车场ID</param>
        /// <param name="entranceID">控制器ID</param>
        /// <returns></returns>
        public EntranceInfo GetEntrance(int parkID, int entranceID)
        {
            EntranceInfo entrance = null;
            ParkInfo     park     = _Parks.SingleOrDefault(p => p.ParkID == parkID);

            if (park != null)
            {
                entrance = park.Entrances.SingleOrDefault(en => en.EntranceID == entranceID);
            }
            return(entrance);
        }
Exemplo n.º 25
0
        protected override CommandResult UpdateItem(object updatingItem)
        {
            EntranceInfo entrance = updatingItem as EntranceInfo;
            ParkInfo     park     = ParkBuffer.Current.GetPark(entrance.ParkID);

            if (entrance.IsMaster && park.MastEntrance != null && park.MastEntrance.EntranceID != entrance.EntranceID)
            {
                return(new CommandResult(ResultCode.Fail, Resources.Resource1.FrmNetEntrance_MastExists));
            }
            return(bll.Update((EntranceInfo)updatingItem));
        }
Exemplo n.º 26
0
        protected override void ItemShowing()
        {
            EntranceInfo entrance = (EntranceInfo)UpdatingItem;

            ShowGeneralInfo(entrance);
            ShowWorkmodeInfo(entrance);
            rdEnter_CheckedChanged(rdEnter, EventArgs.Empty);
            this.Text = entrance.EntranceName;
            this.UCCardTypeProperty.CardTypeProperty = entrance.CardTypeProperty;
            this.UCCardTypeProperty.IsExit           = entrance.IsExitDevice;
        }
Exemplo n.º 27
0
 /// <summary>
 /// 获取通道节点
 /// </summary>
 /// <param name="entranceID"></param>
 /// <returns></returns>
 public TreeNode GetEntranceNode(int entranceID)
 {
     foreach (TreeNode node in allEntranceNodes)
     {
         EntranceInfo entrance = node.Tag as EntranceInfo;
         if (entrance != null && entrance.EntranceID == entranceID)
         {
             return(node);
         }
     }
     return(null);
 }
Exemplo n.º 28
0
 /// <summary>
 /// 更新一个控制板
 /// </summary>
 /// <param name="info"></param>
 /// <returns></returns>
 public override bool UpdateEntrance(EntranceInfo info)
 {
     if (info.ParkID == this.Park.ParkID)
     {
         NetEntrance entrance = GetEntrance(info.EntranceID) as NetEntrance;
         if (entrance != null)
         {
             if (info.IsMaster) //更新主控制器
             {
                 entrance.EntranceInfo          = info;
                 entrance.EntranceInfo.MasterIP = info.IPAddress;
                 _Master = entrance;
                 _Master.SyncToHardware();
                 foreach (NetEntrance en in _Entrances)
                 {
                     if (!en.Equals(entrance))
                     {
                         en.EntranceInfo.MasterIP = info.IPAddress;
                         if (en.Status != EntranceStatus.OffLine)
                         {
                             en.SyncToHardware();
                         }
                     }
                 }
                 return(true);
             }
             else
             {
                 if (_Master != null && _Master.EntranceInfo == info) //info由主控制器转为非主控制器,将停车场的主控制器设置为空
                 {
                     _Master = null;
                 }
                 info.MasterIP         = _Master != null ? _Master.EntranceInfo.IPAddress : string.Empty;
                 entrance.EntranceInfo = info;
                 entrance.SyncToHardware();
                 return(true);
             }
         }
     }
     else
     {
         foreach (NETPark subPark in _SubParks)
         {
             if (info.ParkID == subPark.Park.ParkID)
             {
                 return(subPark.UpdateEntrance(info));
             }
         }
         return(false);
     }
     return(false);
 }
Exemplo n.º 29
0
        private void reader_CardReadHandler(object sender, ZSTReaderEventArgs e)
        {
            if (_ZSTSetting == null || _ZSTSetting.Items == null || !_ZSTSetting.HasReader(e.ReaderIP))
            {
                _Reader.MessageConfirm(e.ReaderIP);
                return;
            }
            EntranceInfo entrance = ParkBuffer.Current.GetEntrance(_ZSTSetting.GetReader(e.ReaderIP).EntranceID);

            if (entrance == null)
            {
                _Reader.MessageConfirm(e.ReaderIP);
                return;
            }

            CardInfo card = (new CardBll(AppSettings.CurrentSetting.ParkConnect)).GetCardByID(e.CardID).QueryObject;

            if (!entrance.IsExitDevice)
            {
                _Reader.MessageConfirm(e.ReaderIP);
                if (card == null) //入口,如果卡片不在系统中,则先在系统中增加此中山通卡片
                {
                    //寻找系统中是否存在名称为"中山通"的自定义卡片类型
                    CardType ct = null;
                    if (CustomCardTypeSetting.Current != null)
                    {
                        ct = CustomCardTypeSetting.Current.GetCardType("中山通");
                    }
                    if (ct == null)
                    {
                        return;
                    }
                    if (!SaveZSTCard(e.CardID, ct, e.Balance))
                    {
                        return;
                    }
                }
            }

            ZSTHandlerInfo zst = GetZSTHandlerInstance(e.ReaderIP);

            zst.CardID  = e.CardID;
            zst.Balance = e.Balance;

            //通过远程读卡方式
            IParkingAdapter pad = ParkingAdapterManager.Instance[entrance.RootParkID];

            if (pad != null)
            {
                pad.RemoteReadCard(new RemoteReadCardNotify(entrance.RootParkID, entrance.EntranceID, e.CardID));
            }
        }
Exemplo n.º 30
0
 private void FrmZSTSetting_Load(object sender, EventArgs e)
 {
     dataGridView1.Rows.Clear();
     if (_ZSTSetting != null && _ZSTSetting.Items != null && _ZSTSetting.Items.Count > 0)
     {
         foreach (ZSTItem item in _ZSTSetting.Items)
         {
             EntranceInfo entrance = ParkBuffer.Current.GetEntrance(item.EntranceID);
             int          row      = dataGridView1.Rows.Add();
             ShowItemOnRow(dataGridView1.Rows[row], item.ReaderIP, entrance != null ? entrance.EntranceName : string.Empty, entrance != null ? entrance.EntranceID : 0, item.Memo);
         }
     }
 }
	// Use this for initialization
	public void Init (EntranceInfo mEntrance,FestivalUser data) {
		currentPoint = 0;
		entrance = mEntrance;
		mState = FestivalUserState.FollowingDirection;
		currentDirection = mEntrance.entranceDirection;
		transform.up = currentDirection;
		_Data = data;
		followPoints = new List<Vector2> ();

		InitLine ();
		StartCoroutine ("FollowBehaviour");

		mSkeletonAnimation.state.SetAnimation (0,_Data.animInfo.walk_anim, true);
		nameLabel = (Instantiate (nameLabel_prefab) as GameObject).GetComponent<UILabel> ();
		nameLabel.GetComponent<FollowPlayer> ().target = transform;
		nameLabel.text = _Data.name;

		controlState = UserControlState.Continue;
	}