Esempio n. 1
0
        //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();
        }
Esempio n. 3
0
        //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();
                    }
                }
            }
        }