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(); }
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; } }