示例#1
0
        private object ModeChangedHandler(VideoOS.Platform.Messaging.Message message, FQID destination, FQID source)
        {
            Paused = false;

            switch (EnvironmentManager.Instance.Mode)
            {
            case Mode.ClientLive:
                ImageViewerInit();
                StartLive();
                InLive = true;
                StartTimer();
                break;

            case Mode.ClientPlayback:
                StopTimer();
                ShowNoCarruoselCamera();
                StartBrowse();
                InLive = false;
                break;

            case Mode.ClientSetup:
                StopTimer();
                ShowNoCarruoselCamera();
                StartSetup();
                InLive = false;
                break;
            }
            return(null);
        }
示例#2
0
        private object VideoWallMessageCommunicationHandler(VideoOS.Platform.Messaging.Message message, FQID destination, FQID sender)
        {
            var    data     = message.Data as VideoWallIndicationData;
            var    action   = data.ActionId;
            var    itemFQID = data.FQID;
            string itemKind = null;

            if (itemFQID.Kind == Kind.VideoWall)
            {
                itemKind = "Smart wall";
            }
            else if (itemFQID.Kind == Kind.VideoWallMonitor)
            {
                itemKind = "Smart wall monitor";
            }
            else if (itemFQID.Kind == Kind.View)
            {
                itemKind = "View";
            }
            if (string.Equals(action, "DELETED") || itemFQID.Kind == Kind.View)
            {
                ShowMessage(string.Format(@"{0}  Message: {1} of GUID: {2} is {3}", DateTime.Now, itemKind, itemFQID.ObjectId.ToString(), action), data);
            }
            else
            {
                ShowMessage(string.Format(@"{0}  Message: {1} {2} is {3}", DateTime.Now, itemKind, Configuration.Instance.GetItem(itemFQID).Name, action), data);
            }
            return(null);
        }
示例#3
0
        private void UpdateCameras()
        {
            try
            {
                List <Item> cameraItems = new List <Item>();
                FindAllCameras(Configuration.Instance.GetItemsByKind(Kind.Camera), cameraItems);

                cameraItems = ShuffleList(cameraItems);

                for (int i = 0; i < MAX_MAX_CAMERA_COUNT; i++)
                {
                    Message setCameraMessage;
                    if (i < SCWorkSpaceDefinition.MaxCameras && i < cameraItems.Count)
                    {
                        setCameraMessage = new Message(MessageId.SmartClient.SetCameraInViewCommand,
                                                       new SetCameraInViewCommandData()
                        {
                            Index = i, CameraFQID = cameraItems[i].FQID
                        });
                    }
                    else
                    {
                        setCameraMessage = new Message(MessageId.SmartClient.SetCameraInViewCommand,
                                                       new SetCameraInViewCommandData()
                        {
                            Index = i, CameraFQID = null
                        });
                    }
                    EnvironmentManager.Instance.SendMessage(setCameraMessage);
                }
            } catch (Exception ex)
            {
                EnvironmentManager.Instance.ExceptionDialog("SCWorkSpace:UpdateCameras", ex);
            }
        }
示例#4
0
        /// <summary>
        /// This method keeps an eye with what view layout the user is selecting,
        /// stores it under _currentView, and show the name in the read-only textBoxLayoutName textbox.
        /// </summary>
        /// <param name="message"></param>
        /// <param name="s"></param>
        /// <param name="r"></param>
        /// <returns></returns>
        private object ViewChangedHandler(Message message, FQID s, FQID r)
        {
            _currentView = message.Data as ViewAndLayoutItem;

            UpdateIndexes();
            return(null);
        }
 /// <summary>
 /// A new state message has been send by the EventServer - check for any new valued state changes
 /// </summary>
 /// <param name="message"></param>
 /// <param name="dest"></param>
 /// <param name="source"></param>
 /// <returns></returns>
 private object MessageHandler(VideoOS.Platform.Messaging.Message message, FQID dest, FQID source)
 {
     if (message.MessageId == VideoOS.Platform.Messaging.MessageId.Server.NewEventIndication)
     {
         EventData eventData = message.Data as EventData;
         string    server    = message.ExternalMessageSourceEndPoint.ServerId.ServerHostname;
         if (eventData != null)
         {
             BeginInvoke(new MethodInvoker(delegate()
             {
                 UpdateState(eventData.EventHeader.Source.FQID, eventData.EventHeader.Message, server);
             }));
         }
         else
         {
             BaseEvent baseEvent = message.Data as BaseEvent;
             if (baseEvent != null)
             {
                 BeginInvoke(new MethodInvoker(delegate()
                 {
                     UpdateState(baseEvent.EventHeader.Source.FQID,
                                 baseEvent.EventHeader.Message, server);
                 }));
             }
         }
     }
     return(null);
 }
        private object PlaybackTimeChangedHandler(Message message, FQID dest, FQID sender)
        {
            var time = (DateTime)message.Data;

            _nextToFetchTime = time;
            return(null);
        }
示例#7
0
        private object IPAddressResponseHandler(VideoOS.Platform.Messaging.Message message, FQID destination, FQID sender)
        {
            string ip = (string)message.Data;

            System.Windows.MessageBox.Show(ip, _selectItem.Name);
            return(null);
        }
 private object MapResponseHandler(VideoOS.Platform.Messaging.Message message, FQID to, FQID from)
 {
     if (InvokeRequired)
     {
         BeginInvoke(new MessageReceiver(MapResponseHandler), new object[] { message, to, from });
         return(null);
     }
     else
     {
         MapResponseData data = message.Data as MapResponseData;
         if (data != null && _selectedNode != null)
         {
             _selectedNode.Nodes.Clear();
             if (String.IsNullOrEmpty(data.ErrorText))
             {
                 foreach (var entry in data.MapCollection)
                 {
                     if (!entry.RecursiveMap)
                     {
                         TreeNode node = _selectedNode.Nodes.Add(entry.Id, entry.DisplayName);
                         node.Nodes.Add("Empty");
                     }
                 }
                 treeView1.Invalidate();
             }
             else
             {
                 _selectedNode.Nodes.Add(data.ErrorText);
             }
         }
         return(null);
     }
 }
示例#9
0
 /// <summary>
 /// A new state message has been send by the EventServer - check for any new valued state changes
 /// </summary>
 /// <param name="message"></param>
 /// <param name="dest"></param>
 /// <param name="source"></param>
 /// <returns></returns>
 private object MessageHandler(VideoOS.Platform.Messaging.Message message, FQID dest, FQID source)
 {
     if (message.MessageId == VideoOS.Platform.Messaging.MessageId.Server.NewEventIndication)
     {
         EventData eventData = message.Data as EventData;
         if (eventData != null)
         {
             BeginInvoke(new MethodInvoker(delegate()
             {
                 UpdateState(eventData.EventHeader.Source.FQID, eventData.EventHeader.Message);
             }));
         }
         else
         {
             BaseEvent baseEvent = message.Data as BaseEvent;
             if (baseEvent != null)
             {
                 BeginInvoke(new MethodInvoker(delegate()
                 {
                     UpdateState(baseEvent.EventHeader.Source.FQID,
                                 baseEvent.EventHeader.Message);
                 }));
             }
         }
     }
     if (message.MessageId == VideoOS.Platform.Messaging.MessageId.System.SystemConfigurationChangedIndication)
     {
         BeginInvoke(new MethodInvoker(delegate()
         {
             listBoxChanges.Items.Insert(0, DateTime.Now.ToLongTimeString() + ": " + message.MessageId);
         }));
     }
     return(null);
 }
示例#10
0
        private object NewAlarmMessageHandler(VideoOS.Platform.Messaging.Message message, FQID dest, FQID source)
        {
            if (_viewMode != ViewMode.Alarm)
            {
                return(null);
            }

            if (InvokeRequired)
            {
                Invoke(new MessageReceiver(NewAlarmMessageHandler), message, dest, source);
            }
            else
            {
                Alarm alarm = message.Data as Alarm;
                if (alarm != null)
                {
                    DataGridViewRow row = new DataGridViewRow();
                    row.Tag = alarm;
                    string alarmDef = alarm.RuleList != null && alarm.RuleList.Count > 0 ? alarm.RuleList[0].Name : "";
                    row.CreateCells(dataGridViewAlarm, alarm.EventHeader.Source.Name, alarm.EventHeader.Timestamp.ToLocalTime(),
                                    alarm.EventHeader.Message, alarm.EventHeader.Priority, alarm.State, alarmDef);
                    dataGridViewAlarm.Rows.Insert(0, row);
                }
            }
            return(null);
        }
示例#11
0
        private void Move(MoveCommand c)
        {
            if (Camera != null)
            {
                VideoOS.Platform.Messaging.Message msg = null;
                switch (c)
                {
                case MoveCommand.Home:
                    msg = new VideoOS.Platform.Messaging.Message(MessageId.Control.PTZMoveCommand, VideoOS.Platform.Messaging.PTZMoveCommandData.Home);
                    break;

                case MoveCommand.Down:
                    msg = new VideoOS.Platform.Messaging.Message(MessageId.Control.PTZMoveCommand, VideoOS.Platform.Messaging.PTZMoveCommandData.Down);
                    break;

                case MoveCommand.DownLeft:
                    msg = new VideoOS.Platform.Messaging.Message(MessageId.Control.PTZMoveCommand, VideoOS.Platform.Messaging.PTZMoveCommandData.DownLeft);
                    break;

                case MoveCommand.DownRight:
                    msg = new VideoOS.Platform.Messaging.Message(MessageId.Control.PTZMoveCommand, VideoOS.Platform.Messaging.PTZMoveCommandData.DownRight);
                    break;

                case MoveCommand.Up:
                    msg = new VideoOS.Platform.Messaging.Message(MessageId.Control.PTZMoveCommand, VideoOS.Platform.Messaging.PTZMoveCommandData.Up);
                    break;

                case MoveCommand.UpLeft:
                    msg = new VideoOS.Platform.Messaging.Message(MessageId.Control.PTZMoveCommand, VideoOS.Platform.Messaging.PTZMoveCommandData.UpLeft);
                    break;

                case MoveCommand.UpRight:
                    msg = new VideoOS.Platform.Messaging.Message(MessageId.Control.PTZMoveCommand, VideoOS.Platform.Messaging.PTZMoveCommandData.UpRight);
                    break;

                case MoveCommand.Left:
                    msg = new VideoOS.Platform.Messaging.Message(MessageId.Control.PTZMoveCommand, VideoOS.Platform.Messaging.PTZMoveCommandData.Left);
                    break;

                case MoveCommand.Right:
                    msg = new VideoOS.Platform.Messaging.Message(MessageId.Control.PTZMoveCommand, VideoOS.Platform.Messaging.PTZMoveCommandData.Right);
                    break;

                case MoveCommand.ZoomIn:
                    msg = new VideoOS.Platform.Messaging.Message(MessageId.Control.PTZMoveCommand, VideoOS.Platform.Messaging.PTZMoveCommandData.ZoomIn);
                    break;

                case MoveCommand.ZoomOut:
                    msg = new VideoOS.Platform.Messaging.Message(MessageId.Control.PTZMoveCommand, VideoOS.Platform.Messaging.PTZMoveCommandData.ZoomOut);
                    break;

                default:
                    msg = new VideoOS.Platform.Messaging.Message(MessageId.Control.PTZMoveCommand, VideoOS.Platform.Messaging.PTZMoveCommandData.Home);
                    break;
                }

                EnvironmentManager.Instance.PostMessage(msg, Camera.Id);
            }
        }
示例#12
0
        private object PlaybackTimeChangedHandler(VideoOS.Platform.Messaging.Message message, FQID dest, FQID sender)
        {
            DateTime time = (DateTime)message.Data;

            TimeChangedHandler(time);

            return(null);
        }
示例#13
0
 private object MaxCamerasChangedReceiver(Message message, FQID sender, FQID related)
 {
     if (_workSpaceViewSelected)
     {
         UpdateCameras();
     }
     return(null);
 }
示例#14
0
 private object WorkSpaceStateChangedReceiver(Message message, FQID sender, FQID related)
 {
     if (_workSpaceSelected && ((WorkSpaceState)message.Data) == WorkSpaceState.Normal)
     {
         UpdateCameras();
     }
     return(null);
 }
示例#15
0
        private object RecorderErrorHandler(VideoOS.Platform.Messaging.Message message, FQID receiver, FQID sender)
        {
            RecorderErrorIndicationData data = message.Data as RecorderErrorIndicationData;

            toolStripStatusLabel1.Text = "Recorder error: (" + data.Command + ") " + data.ErrorText + ", " + data.RecorderWebInterfaceErrorCode +
                                         " - " + data.PtzErrorDetail;
            return(null);
        }
 public override void Activate()
 {
     VideoOS.Platform.Messaging.Message message = new VideoOS.Platform.Messaging.Message(SCToolbarPluginDefinition.SetViewItemBackgroundColor);
     message.Data = new SCToolbarPluginDefinition.ColorMessageData()
     {
         Color = _color, ViewItemInstanceFQID = _viewItemInstance.FQID, WindowFQID = _window.FQID
     };
     EnvironmentManager.Instance.SendMessage(message);
 }
示例#17
0
        private object PlaybackTimeHandler(VideoOS.Platform.Messaging.Message message, FQID dest, FQID source)
        {
            DateTime dt = (DateTime)message.Data;
            // Convert to user selected time!
            DateTime convertedTime = TimeZoneInfo.ConvertTime(dt, ClientControl.Instance.SelectedTimeZoneInfo);

            textBoxTime.Text = convertedTime.ToLongTimeString();
            return(null);
        }
        private object NewEventIndicationMessageHandler(VideoOS.Platform.Messaging.Message message, FQID dest, FQID source)
        {
            bool refreshNeeded = false;

            try
            {
                AnalyticsEvent evAnalyt = message.Data as AnalyticsEvent;
                if (evAnalyt != null)
                {
                    refreshNeeded = true;
                    for (int i = 2; i > 0; i--)
                    {
                        _AnalyticsEventObjectString[i] = _AnalyticsEventObjectString[i - 1];
                        _AnalyticsEventCameraFQID[i]   = _AnalyticsEventCameraFQID[i - 1];
                    }
                    _AnalyticsEventCameraFQID[0]   = evAnalyt.EventHeader.Source.FQID;
                    _AnalyticsEventObjectString[0] = evAnalyt.EventHeader.Message + " " + evAnalyt.EventHeader.CustomTag;
                    if (evAnalyt.ObjectList != null)
                    {
                        foreach (AnalyticsObject analytObj in evAnalyt.ObjectList)
                        {
                            if (analytObj != null)
                            {
                                _AnalyticsEventObjectString[0] += " " + analytObj.Value;
                            }
                        }
                    }
                }
                else
                {
                    BaseEvent evData = message.Data as BaseEvent;
                    if (evData != null)
                    {
                        refreshNeeded = true;
                        for (int i = 2; i > 0; i--)
                        {
                            _EventName[i]       = _EventName[i - 1];
                            _EventCameraFQID[i] = _EventCameraFQID[i - 1];
                        }
                        _EventCameraFQID[0] = evData.EventHeader.Source.FQID;
                        _EventName[0]       = evData.EventHeader.Name + " " + evData.EventHeader.Source.Name;
                    }
                }
            }
            catch (Exception ex)
            {
                EnvironmentManager.Instance.ExceptionDialog("MessageHandler", ex);
            }

            if (refreshNeeded)
            {
                RefreshOverlay();
            }

            return(null);
        }
示例#19
0
 private object SelectedCameraChangedHandler(VideoOS.Platform.Messaging.Message message, FQID destination, FQID source)
 {
     _selectedItem = Configuration.Instance.GetItem(message.RelatedFQID);
     if (_selectedItem != null)
     {
         label1.Text           = "Camera: " + _selectedItem.Name;
         _previousSelectedName = _selectedItem.Name;
     }
     _stop = true;
     return(null);
 }
示例#20
0
        private object PlaybackTimeChangedHandler(VideoOS.Platform.Messaging.Message message, FQID dest, FQID sender)
        {
            DateTime time = ((DateTime)message.Data).ToLocalTime();

            textBoxTime.Text = time.ToShortDateString() + "  " + time.ToLongTimeString();

            if (_imageViewerControl1 != null)
            {
                _imageViewerControl1.Invalidate();
            }
            return(null);
        }
示例#21
0
        private object PlaybackTimeChangedHandler(VideoOS.Platform.Messaging.Message message, FQID dest, FQID sender)
        {
            DateTime time = (DateTime)message.Data;

            // The built-in PlaybackController has FQID==null
            if (sender == null)
            {
                textBoxTime.Text = time.ToShortDateString() + "  " + time.ToLongTimeString();
            }

            return(null);
        }
示例#22
0
        private object SystemConfigurationChangedIndicationHandler(VideoOS.Platform.Messaging.Message message, FQID dest, FQID sender)
        {
            List <FQID> fqidList = message.Data as List <FQID>;

            if (fqidList != null)
            {
                lock (_userContexts)
                {
                    foreach (FQID fqid in fqidList)
                    {
                        if (fqid.ServerId.ServerType != "XP") // Ignore unknown servers (e.g. Registered Services)
                        {
                            foreach (UserContext userContext in _userContexts)
                            {
                                Item item = userContext.Configuration.GetItem(fqid.ObjectId, fqid.Kind);
                                if (item == null && fqid.Kind == Kind.Server)
                                {
                                    // Could be XPE, then use ParentId (EventServer FQID has XPE-server id in this field)
                                    item = userContext.Configuration.GetItem(fqid.ParentId, fqid.Kind);
                                }
                                FQID serverFQID = null;
                                if (fqid.Kind == Kind.Server)
                                {
                                    serverFQID = fqid;
                                }
                                else
                                {
                                    Item recorderItem = Configuration.Instance.GetItem(fqid.ServerId.Id, Kind.Server);
                                    if (recorderItem != null)
                                    {
                                        serverFQID = recorderItem.FQID;
                                    }
                                }
                                if (serverFQID != null)
                                {
                                    if (!_recordersToReload.ContainsKey(userContext))
                                    {
                                        _recordersToReload.Add(userContext, new HashSet <FQID>());
                                    }
                                    _recordersToReload[userContext].Add(serverFQID);
                                }
                            }
                        }
                    }

                    // Set timer to reload in 15 seconds (unless more changes happens, then just extent wait time)
                    _reloadTimer.Change(0, 15000);
                }
                ShowMessage("--- Event received to load new configuration");
            }
            return(null);
        }
        private object LocalConfigurationHandler(VideoOS.Platform.Messaging.Message message, FQID f1, FQID f2)
        {
            Item siteItem = EnvironmentManager.Instance.GetSiteItem(message.RelatedFQID);

            if (siteItem != null)
            {
                if (_serverNodes.ContainsKey(siteItem.FQID.ServerId.Id))
                {
                    RedrawTreeChildren(siteItem, _serverNodes[siteItem.FQID.ServerId.Id]);
                }
            }
            return(null);
        }
示例#24
0
 private object SelectedViewChangedReceiver(Message message, FQID sender, FQID related)
 {
     if (message.Data is Item && ((Item)message.Data).FQID.ObjectId == ViewAndLayoutItem.FQID.ObjectId)
     {
         _workSpaceViewSelected = true;
         UpdateCameras();
     }
     else
     {
         _workSpaceViewSelected = false;
     }
     return(null);
 }
示例#25
0
        private object PlaybackTimeChangedHandler(VideoOS.Platform.Messaging.Message message, FQID dest, FQID sender)
        {
            // Only pick up messages coming from my own PlaybackController (sender is null for the common PlaybackController)
            if (_playbackFQID.EqualGuids(sender))
            {
                DateTime time = (DateTime)message.Data;
                //Debug.WriteLine("PlaybackTimeChangedHandler: " + time.ToLongTimeString());

                TimeChangedHandler(time);

                timeLineUserControl1.SetShowTime(time);
            }
            return(null);
        }
示例#26
0
        private object PlaybackTimeChangedHandler(VideoOS.Platform.Messaging.Message message, FQID dest, FQID sender)
        {
            DateTime time = ((DateTime)message.Data).ToLocalTime();

            if (InvokeRequired)
            {
                BeginInvoke(new Action(() => HandleTimeChanged(time)));
            }
            else
            {
                HandleTimeChanged(time);
            }
            return(null);
        }
示例#27
0
        private object ThemeChangedIndicationHandler(VideoOS.Platform.Messaging.Message message, FQID destination, FQID source)
        {
            Selected = _selected;

            lsvBookmarks.BackColor = ClientControl.Instance.Theme.BackgroundColor;
            lsvBookmarks.ForeColor = ClientControl.Instance.Theme.TextColor;

            picOpenALPR.Image = ClientControl.Instance.Theme.ThemeType == ThemeType.Dark ?
                                Resources.logo_white_512x93 :
                                Resources.logo_bluegray;
            picOpenALPR.Refresh();

            return(null);
        }
示例#28
0
 /// <summary>
 /// Handling of alarms is not implemeted, only subscribing to events, the alarms where properly created based on an event
 /// and is therefor already displayed.
 /// </summary>
 /// <param name="message"></param>
 /// <param name="dest"></param>
 /// <param name="source"></param>
 /// <returns></returns>
 private object NewAlarmMessageHandler(VideoOS.Platform.Messaging.Message message, FQID dest, FQID source)
 {
     try
     {
         Alarm al = message.Data as Alarm;
         if (al != null)
         {
         }
     }
     catch (Exception ex)
     {
         EnvironmentManager.Instance.ExceptionDialog("NewAlarmMessageHandler", ex);
     }
     return(null);
 }
示例#29
0
 private object ShownWorkSpaceChangedReceiver(Message message, FQID sender, FQID related)
 {
     if (message.Data is Item && ((Item)message.Data).FQID.ObjectId == Id)
     {
         _workSpaceSelected = true;
         Notification       = null;
         _updateInformationTimer.Stop();
     }
     else
     {
         _workSpaceSelected = false;
         _updateInformationTimer.Start();
     }
     return(null);
 }
示例#30
0
 private object PlaybackIndicationHandler(VideoOS.Platform.Messaging.Message message, FQID dest, FQID sender)
 {
     if ((sender == null && _playbackControllerFQID == null) || _playbackControllerFQID.EqualGuids(sender))                      // If message from right hand side control
     {
         if (message.Data is PlaybackCommandData)
         {
             PlaybackCommandData data = (PlaybackCommandData)message.Data;
             if (data.Command == PlaybackData.PlayStop)
             {
                 _speed2 = 0;
             }
         }
     }
     return(null);
 }