public void connectDevice(string send) { if (vsStatus == VsViewStatusType.VIEW_CONNECTING || vsStatus == VsViewStatusType.VIEW_CONNECTED) { return; } string[] cmd = send.Split('\\'); vsDeviceName = cmd[1]; // check if not root node if (cmd.Length == 2 && cmd[0] == "Analyzers") { // set flag vsDeviceType = VsDeviceType.CAMERA; vsStatus = VsViewStatusType.VIEW_CONNECTING; // update event this.vsUpdateEvent(this, new VsMonitorEventArgs( new VsParameter(VsAppControlType.APP_SIGLEVIEW, VsAppControlType.APP_SIGLEVIEW, vsDeviceType, vsDeviceName))); labelStatus.Text = "Connecting..."; // the current camera is connected if (!vsCoreMonitor.ConnectingCamera(vsDeviceName)) { // not connected // try to connect if (!vsCoreMonitor.ConnectCamera(vsDeviceName, false)) { return; } // cache current camera vsCamera = vsCoreMonitor.GetCameraByName(vsDeviceName); } // the camera is connected // attach to current view vsCoreMonitor.AttachCameraView(vsDeviceName, this); vsAttachType = VsAttachType.ATTACH_RECEIVER; // enable toolbox buttonStop.Enabled = true; buttonAttach.Enabled = true; buttonAnalyzer.Enabled = true; } else if (cmd.Length == 2 && cmd[0] == "Layouts") { // set flag vsDeviceType = VsDeviceType.CHANNEL; vsStatus = VsViewStatusType.VIEW_CONNECTING; // update event this.vsUpdateEvent(this, new VsMonitorEventArgs( new VsParameter(VsAppControlType.APP_SIGLEVIEW, VsAppControlType.APP_SIGLEVIEW, vsDeviceType, vsDeviceName))); // the current channel is connected if (!vsCoreMonitor.ConnectingChannel(vsDeviceName)) { // not connected // try to connect if (!vsCoreMonitor.ConnectChannel(vsDeviceName, false)) { return; } // cache current camera vsChannel = vsCoreMonitor.GetChannelByName(vsDeviceName); } // the camera is connected // attach to current view vsCoreMonitor.AttachChannelView(vsDeviceName, this); // enable toolbox buttonStop.Enabled = true; buttonAttach.Enabled = true; buttonAnalyzer.Enabled = true; } }