//Init ------------------------------------------------------- public void Initialize(ushort _panel, ushort _zoneNumber) { myPanel = ElkCore.AddOrGetCoreObject(_panel); if (myPanel == null) { return; } if (myPanel.Zones.ContainsKey((int)_zoneNumber)) { myZone = myPanel.Zones[(int)_zoneNumber]; myZone.ElkZoneEvent += new EventHandler <ElkZoneEventArgs>(myZone_ElkZoneEvent); } }
public LastZoneStatus(ElkPanel _panel, ElkNotificationMessageHandler _handler, ElkZone _zone, eZoneStatus _zoneStatus) { TimeToNextMessage = new CTimer(OnNextMessage, Timeout.Infinite); myPanel = _panel; Zone = _zone; handler = _handler; lastStatus = eZoneStatus.Uninitialized; currentArea = myPanel.GetAreaObject(Zone.GetZoneAreaAssignment); areaName = currentArea.GetAreaName.TrimEnd(); zoneName = Zone.GetZoneName.TrimEnd(); zoneNumber = Zone.GetZoneNumber; CheckMessage(); }
//Initialize public void Initialize(int _panelId) { if (this.initRun) { return; } panelId = _panelId; this.SendDebug(string.Format("Added and initialized Panel ", _panelId)); for (int i = 1; i <= 8; i++) { if (!Areas.ContainsKey(i)) { ElkArea a = new ElkArea(); a.Initialize(this, i); Areas.Add(i, a); } } for (int i = 1; i <= 208; i++) { if (!Zones.ContainsKey(i)) { ElkZone z = new ElkZone(); z.Initialize(this, i); Zones.Add(i, z); } } for (int i = 1; i <= 208; i++) { if (!Outputs.ContainsKey(i)) { ElkOutput o = new ElkOutput(); o.Initialize(this, i); Outputs.Add(i, o); } } commandQueue = new CrestronQueue <string>(); responseQueue = new CrestronQueue <string>(); this.panelId = _panelId; this.initRun = true; }
private void ProcessZoneEvent(ElkZoneEventArgs e) { if (e.EventUpdateType == eElkZoneEventUpdateType.StatusChange) { ElkZone currentZone = myPanel.GetZoneObject(e.Zone); int zoneNumber = currentZone.GetZoneNumber; eZoneStatus zoneStatus = currentZone.GetZoneStatus; if (!lastZoneStatuses.ContainsKey(zoneNumber)) { lastZoneStatuses.Add(zoneNumber, new LastZoneStatus(myPanel, this, currentZone, zoneStatus)); } else { if (!lastZoneStatuses[zoneNumber].TimerRuning) { //lastZoneStatuses[zoneNumber].Zone = currentZone; lastZoneStatuses[zoneNumber].CheckMessage(); } } } }