예제 #1
0
        internal void internalSetAreaAlarmState(int s)
        {
            eAreaAlarmState te = (eAreaAlarmState)Enum.Parse(typeof(eAreaAlarmState), Convert.ToString(s), true);

            if (te != alarmState)
            {
                alarmState = te;
                myPanel.SendDebug(string.Format("Area {0} - internalSetAreaAlarmState = {1}", areaNumber, alarmState.ToString()));
                OnElkAreaEvent(eElkAreaEventUpdateType.AlarmStateChange);

                checkTimer();
            }
            checkRegistered();
        }
        private void ElkNotificationMessageHandler_ElkAreaEvent(object sender, ElkAreaEventArgs e)
        {
            if (!myElkNotificationManager.managerReady)
            {
                return;
            }
            ElkArea currentArea = myPanel.GetAreaObject(e.Area);
            string  areaName    = currentArea.GetAreaName.TrimEnd();

            switch (e.EventUpdateType)
            {
            case eElkAreaEventUpdateType.ArmedStatusChange:
                eAreaArmedStatus status = currentArea.GetAreaArmedStatus;

                string devicesToSendArmed = string.Join(",", CheckAreaNotificationProperty(currentArea, e.EventUpdateType));
                if (devicesToSendArmed.Length > 0 && !String.IsNullOrEmpty(devicesToSendArmed))
                {
                    PushoverManager.Instance.SendMessage(devicesToSendArmed, String.Format("{0} - {1}", areaName, status),
                                                         String.Format("Area {0}", status));
                    myPanel.SendDebug(
                        String.Format("NotificationMessageHandler: Building Message *{0} - {1} to Devices {2}",
                                      areaName, status, devicesToSendArmed));
                }
                break;

            case eElkAreaEventUpdateType.AlarmStateChange:
                eAreaAlarmState alarmStatus        = currentArea.GetAlarmStatus;
                string          devicesToSendAlarm = string.Join(",", CheckAreaNotificationProperty(currentArea, e.EventUpdateType));
                if (devicesToSendAlarm.Length > 0 && !String.IsNullOrEmpty(devicesToSendAlarm))
                {
                    PushoverManager.Instance.SendMessage(devicesToSendAlarm, String.Format("{0} - {1}", areaName, alarmStatus),
                                                         String.Format("Area {0}", alarmStatus));
                    myPanel.SendDebug(
                        String.Format("NotificationMessageHandler: Building Message *{0} - {1} to Devices {2}",
                                      areaName, alarmStatus, devicesToSendAlarm));
                }
                break;
            }
        }