Beispiel #1
0
 protected virtual void OnStatusChangedReporting(EntranceStatusReport report)
 {
     if (this.StatusChangedReporting != null)
     {
         this.StatusChangedReporting(this, report);
     }
 }
Beispiel #2
0
 protected override void OnEntranceStatusReporting(EntranceStatusReport report)
 {
     if (report.Status != EntranceStatus.OffLine)
     {
         NetEntrance entrance = GetEntrance(report.EntranceID) as NetEntrance;
         if (entrance != null) //如果主控制器重新连接
         {
             entrance.SyncToHardware();
         }
     }
     RaiseEntranceStatusReporting(report);
 }
Beispiel #3
0
        private void ProcessReport(EntranceStatusReport report)
        {
            EntranceInfo entrance = ParkBuffer.Current.GetEntrance(report.EntranceID);

            if (entrance != null)
            {
                entrance.Status = report.Status;
                TreeNode node = GetEntranceNode(entrance.EntranceID);
                if (node != null)
                {
                    RenderEntrance(node, entrance);
                }
            }
        }
Beispiel #4
0
        private ReportBase DeformatDeviceResetPacket(Packet packet)
        {
            byte para = packet.ReadByteFromParameter(0);

            if (para == 1)
            {
                DeviceResetReport report = new DeviceResetReport();
                report.Address = (byte)(packet.Address == 0 ? 1 : packet.Address);
                return(report);
            }
            else if (para == 5) //查询状态
            {
                EntranceStatusReport report1 = new EntranceStatusReport();
                report1.Address = (byte)(packet.Address == 0 ? 1 : packet.Address);
                report1.Status  = EntranceStatus.Ok;
                return(report1);
            }
            return(null);
        }
Beispiel #5
0
 protected override void OnEntranceStatusReporting(EntranceStatusReport report)
 {
     if (report.Status != EntranceStatus.OffLine)
     {
         NetEntrance entrance = GetEntrance(report.EntranceID) as NetEntrance;
         if (entrance != null) //如果主控制器重新连接
         {
             entrance.SyncToHardware();
             if (entrance == Master && WorkMode == ParkWorkMode.OffLine)
             {
                 Hardware.ParkParams pp;
                 if (_Master.ParkDevice.GetParkLots(0, out pp))  //如果成功,则以硬件保存的车位数为准
                 {
                     Park.Vacant = (short)pp.ParkVacant;
                     _ParkBll.UpdateVacant(Park.ParkID, Park.Vacant);
                     RaiseParkVacantReporting(new ParkVacantReport(Park.ParkID, 0, DateTime.Now, Park.ParkName, Park.Vacant));
                 }
             }
         }
     }
     RaiseEntranceStatusReporting(report);
 }
        private void ReportSink(EntranceStatusReport report)
        {
            List <IReportSinker> faultSinkers = new List <IReportSinker>();

            foreach (IReportSinker reportSinker in _reportSinkers)
            {
                try
                {
                    reportSinker.EntranceStatusSink(report);
                }

                catch (Exception ex)
                {
                    faultSinkers.Add(reportSinker);
                    ExceptionPolicy.HandleException(ex);
                }
            }
            if (faultSinkers.Count > 0)
            {
                RemoveFaultSinkers(faultSinkers);
            }
        }
 private void park_EntranceStatusReporting(object sender, EntranceStatusReport report)
 {
     ReportEnqueue(report);
 }