protected virtual void OnStatusChangedReporting(EntranceStatusReport report) { if (this.StatusChangedReporting != null) { this.StatusChangedReporting(this, report); } }
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); }
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); } } }
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); }
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); }