Пример #1
0
        //Events -------------------------------------------------------
        void myZone_ElkZoneEvent(object sender, ElkZoneEventArgs e)
        {
            switch (e.EventUpdateType)
            {
            case eElkZoneEventUpdateType.StatusChange:
                newStatusChange((ushort)myZone.GetZoneStatus);
                break;

            case eElkZoneEventUpdateType.TypeChange:
                newTypeChange((ushort)myZone.GetZoneType);
                break;

            case eElkZoneEventUpdateType.NameChange:
                newNameChange((SimplSharpString)myZone.GetZoneName);
                break;

            case eElkZoneEventUpdateType.DefinitionChange:
                newDefinitionChange((ushort)myZone.GetZoneDefinition);
                break;

            case eElkZoneEventUpdateType.VoltageChange:
                double v = myZone.GetZoneVoltage() * 10;
                newVoltageChange((ushort)v);
                break;

            case eElkZoneEventUpdateType.AreaAssignmentChange:
                newAreaAssignmentChange((ushort)myZone.GetZoneAreaAssignment);
                break;
            }
        }
 private void ElkNotificationMessageHandler_ElkZoneEvent(object sender, ElkZoneEventArgs e)
 {
     if (!myElkNotificationManager.managerReady)
     {
         return;
     }
     ProcessZoneEvent(e);
 }
        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();
                    }
                }
            }
        }