private object TriggerReceiver(VideoOS.Platform.Messaging.Message message, FQID dest, FQID sender) { try { if (dest != null && dest.Kind == _kind) { string userSID = ""; if (sender != null && sender.Kind == Kind.User) { userSID = sender.ObjectIdString; // Get hold of the user executing the command } String command = message.Data as String; Item item = GetItem(dest); if (command != null && item != null) { if (command == "POWEROFF") { EnvironmentManager.Instance.Log(false, "SensorMonitor", "SensorMonitor- Building poweroff Event " + command, null); if (userSID == null) { SecurityAccess.CheckPermission(item, command); } else { SecurityAccess.CheckPermission(item, command, userSID); } if (_downItems.Contains(item.FQID.ObjectId) == false) { _downItems.Add(item.FQID.ObjectId); } Item controller = GetItem(dest); if (controller.Properties.ContainsKey("RelatedEventFQID") && controller.Properties.ContainsKey("RelatedFQID")) { FQID cameraFqid = new FQID(controller.Properties["RelatedFQID"]); FQID eventFqid = new FQID(controller.Properties["RelatedEventFQID"]); Message mes = new Message(MessageId.Control.TriggerCommand, cameraFqid); EnvironmentManager.Instance.PostMessage(mes, eventFqid, cameraFqid); } FQID cameraFQID = null; if (item.Properties.ContainsKey("RelatedFQID")) { cameraFQID = new FQID(item.Properties["RelatedFQID"]); } EventHeader eventHeader = new EventHeader() { ID = Guid.NewGuid(), Class = "Operational", Type = "Power", Timestamp = DateTime.Now, Message = ControllerDownMessage, Name = item.Name, Source = new EventSource { FQID = item.FQID, Name = item.Name }, CustomTag = "<My><MiniXml>With no data-1</MiniXml></My>" }; AnalyticsEvent eventData = new AnalyticsEvent { EventHeader = eventHeader, }; if (cameraFQID != null) { eventData.ReferenceList = new ReferenceList(); eventData.ReferenceList.Add(new Reference() { FQID = cameraFQID }); // Ensure that camera will be presented in the preview } EnvironmentManager.Instance.SendMessage(new VideoOS.Platform.Messaging.Message(MessageId.Server.NewEventCommand) { Data = eventData, RelatedFQID = cameraFQID }); EventServerControl.Instance.ItemStatusChanged(item); } if (command == "POWERON") { EnvironmentManager.Instance.Log(false, "SensorMonitor", "SensorMonitor- Building poweron Event " + command, null); if (userSID == null) { SecurityAccess.CheckPermission(item, command); } else { SecurityAccess.CheckPermission(item, command, userSID); } EnvironmentManager.Instance.Log(false, "SensorMonitor", "SensorMonitor- Building poweron event ", null); if (_downItems.Contains(item.FQID.ObjectId)) { _downItems.Remove(item.FQID.ObjectId); } FQID cameraFQID = null; if (item.Properties.ContainsKey("RelatedFQID")) { cameraFQID = new FQID(item.Properties["RelatedFQID"]); } EventHeader eventHeader = new EventHeader { ID = Guid.NewGuid(), Class = "Operational", Type = "Power", Timestamp = DateTime.Now, Message = ControllerUpMessage, Name = item.Name, Source = new EventSource { FQID = item.FQID, Name = item.Name }, CustomTag = "<My><MiniXml>With no data-2</MiniXml></My>" }; AnalyticsEvent eventData = new AnalyticsEvent { EventHeader = eventHeader, }; if (cameraFQID != null) { eventData.ReferenceList = new ReferenceList(); eventData.ReferenceList.Add(new Reference() { FQID = cameraFQID }); // Ensure that camera will be presented in the preview } EnvironmentManager.Instance.SendMessage(new VideoOS.Platform.Messaging.Message(MessageId.Server.NewEventCommand) { Data = eventData, RelatedFQID = cameraFQID }); EventServerControl.Instance.ItemStatusChanged(item); } if (command == "STARTREC") { EnvironmentManager.Instance.Log(false, "SensorMonitor", "SensorMonitor- Building start recording Event " + command, null); Item controller = GetItem(dest); if (controller.Properties.ContainsKey("RelatedFQID")) { FQID fqid = new FQID(controller.Properties["RelatedFQID"]); EnvironmentManager.Instance.SendMessage( new VideoOS.Platform.Messaging.Message(MessageId.Control.StartRecordingCommand), fqid); EventHeader eventHeader = new EventHeader { ID = Guid.NewGuid(), Class = "Operationel", Type = "UserCommand", Timestamp = DateTime.Now, Message = StartRecordingMessage, Name = item.Name, Source = new EventSource { FQID = item.FQID, Name = item.Name }, CustomTag = "<My><MiniXml>With no data-3</MiniXml></My>" }; AnalyticsEvent eventData = new AnalyticsEvent { EventHeader = eventHeader, }; eventData.ReferenceList = new ReferenceList(); eventData.ReferenceList.Add(new Reference() { FQID = fqid }); // Ensure that camera will be presented in the preview // We inform the rest of the Event Server, that this command has been issued (In case there is a AlarmDefinition that matches) EnvironmentManager.Instance.SendMessage(new VideoOS.Platform.Messaging.Message(MessageId.Server.NewEventCommand) { Data = eventData, RelatedFQID = fqid }); } } if (command == "STOPREC") { EnvironmentManager.Instance.Log(false, "SensorMonitor", "SensorMonitor- Building stop recording Event " + command, null); Item controller = GetItem(dest); if (controller.Properties.ContainsKey("RelatedFQID")) { FQID fqid = new FQID(controller.Properties["RelatedFQID"]); EnvironmentManager.Instance.SendMessage( new VideoOS.Platform.Messaging.Message(MessageId.Control.StopRecordingCommand), fqid); EventHeader eventHeader = new EventHeader { ID = Guid.NewGuid(), Class = "Operationel", Type = "UserCommand", Timestamp = DateTime.Now, Message = StopRecordingMessage, Name = item.Name, Source = new EventSource { FQID = item.FQID, Name = item.Name }, CustomTag = "<My><MiniXml>With no data-3</MiniXml></My>" }; AnalyticsEvent eventData = new AnalyticsEvent { EventHeader = eventHeader, }; eventData.ReferenceList = new ReferenceList(); eventData.ReferenceList.Add(new Reference() { FQID = fqid }); // Ensure that camera will be presented in the preview // We inform the rest of the Event Server, that this command has been issued (In case there is a AlarmDefinition that matches) EnvironmentManager.Instance.SendMessage(new VideoOS.Platform.Messaging.Message(MessageId.Server.NewEventCommand) { Data = eventData, RelatedFQID = fqid }); } } if (command == "TRIGGEREVENT") { EnvironmentManager.Instance.Log(false, "SensorMonitor", "SensorMonitor- Building trigger Event " + command, null); Item controller = GetItem(dest); if (controller.Properties.ContainsKey("RelatedEventFQID") && controller.Properties.ContainsKey("RelatedFQID")) { FQID cameraFqid = new FQID(controller.Properties["RelatedFQID"]); FQID eventFqid = new FQID(controller.Properties["RelatedEventFQID"]); Message mes = new Message(MessageId.Control.TriggerCommand, cameraFqid); EnvironmentManager.Instance.PostMessage(mes, eventFqid, cameraFqid); } } } } } catch (NotAuthorizedMIPException) { throw; } catch (Exception ex) { EnvironmentManager.Instance.Log(false, "SensorMonitor", "SensorMonitor-9 " + ex.Message, new [] { ex }); //User not authorized to perform the action } return(null); }
private object ThemeChangedIndicationHandler(VideoOS.Platform.Messaging.Message message, FQID destination, FQID source) { Selected = _selected; return(null); }