/// <summary> /// 点击设备列表中的节点时发生 /// </summary> private void treeViewResList_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { //点击通道时发生,视频通道 if (e.Node.Level == TREE_LEVEL_CHANNEL) { Pu pu = m_sdkOperator.Session.getPu(e.Node.Parent.Name); int channelNo = pu.getChannelNo(e.Node.Text); if (channelNo >= BVCU.BVCU_SUBDEV_INDEXMAJOR_MIN_CHANNEL && channelNo < BVCU.BVCU_SUBDEV_INDEXMAJOR_MAX_CHANNEL) { if (m_sdkOperator.Dialog.Count == VIDEO_PANEL_COUNT) { MessageBox.Show("窗口已全部占用"); return; } foreach (Panel panel in m_videoPanels) { if (panel.ContextMenuStrip == null) { panel.ContextMenuStrip = contextMenuStripVideo; Console.WriteLine("Open dialog pu " + pu.id + " channel " + channelNo); //打开浏览******************************************************************* m_sdkOperator.Dialog.openBrowse(pu, channelNo, panel); /* * Player p = new Player(); * p.Show(); * * m_sdkOperator.Dialog.PreviewVideo(pu, channelNo, p.tbPlay); */ break; } } } else if (channelNo >= BVCU.BVCU_SUBDEV_INDEXMAJOR_MIN_TSP && channelNo < BVCU.BVCU_SUBDEV_INDEXMAJOR_MAX_TSP) { //打开Tsp通道 if (m_sdkOperator.Dialog.openTspDialog(pu, channelNo) == 0) { ListViewItem item = new ListViewItem(); item.Text = pu.id; item.Tag = channelNo; ListViewItem.ListViewSubItem TspData = new ListViewItem.ListViewSubItem(); ListViewItem.ListViewSubItem len = new ListViewItem.ListViewSubItem(); item.SubItems.AddRange(new ListViewItem.ListViewSubItem[] { TspData, len }); listViewGPSData.Items.Add(item); } } }//点击通道时发生 end }
private void treeViewResList_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Right) { if (e.Node.Level == TREE_LEVEL_CHANNEL) { Pu pu = m_sdkOperator.Session.getPu(e.Node.Parent.Name); int ichannelNo = pu.getChannelNo(e.Node.Text); g_pu = pu; g_channelNo = ichannelNo; if (ichannelNo >= BVCU.BVCU_SUBDEV_INDEXMAJOR_MIN_CHANNEL && ichannelNo < BVCU.BVCU_SUBDEV_INDEXMAJOR_MAX_CHANNEL) { contextMenuStripTalkOnly.Show(Control.MousePosition.X, Control.MousePosition.Y); } } } }
/// <summary> /// 获得设备列表,更新Form中设备TreeView的内容,被this.getPuList()调用 /// </summary> void procGetPuList() { //添加session节点 treeViewResList.Nodes.Clear(); TreeNode session = new TreeNode(m_sdkOperator.Session.Name); treeViewResList.Nodes.Add(session); for (int i = 0; i < m_sdkOperator.Session.PuList.Count; i++) { //添加设备节点 Pu pu = (Pu)m_sdkOperator.Session.PuList[i]; //当前设备是否连接通道 foreach (OneDialog dlg in m_sdkOperator.Dialog.m_dialogs) { if (dlg.pu == pu) { is_on_dialog = true; break; } } //m_sdkOperator.Dialog.m_dialogs; TreeNode puNode = new TreeNode(); puNode.Name = pu.id; if (pu.puName.Length == 0) { puNode.Text = pu.id; } else { puNode.Text = pu.puName; } session.Nodes.Add(puNode); bool online = false; //添加通道节点 foreach (Channel channl in pu.channelList) { TreeNode channelNode = new TreeNode(channl.channelName); if (channl.online) { //。。。。。。。。。。后添加。。。。。。。。 if (!is_on_dialog) { #region //获取通道号 int channelNo = pu.getChannelNo(channelNode.Text); //如果通道在线,判断是否为TSP通道,如果为TSP通道,则打开TSP通道 if (channelNo >= BVCU.BVCU_SUBDEV_INDEXMAJOR_MIN_TSP && channelNo < BVCU.BVCU_SUBDEV_INDEXMAJOR_MAX_TSP) { //打开Tsp通道 if (m_sdkOperator.Dialog.openTspDialog(pu, channelNo) == 0) { //向listview中添加设备和其对应的数据长度列 ListViewItem item = new ListViewItem(); item.Text = pu.id; item.Tag = channelNo; ListViewItem.ListViewSubItem TspData = new ListViewItem.ListViewSubItem(); ListViewItem.ListViewSubItem len = new ListViewItem.ListViewSubItem(); item.SubItems.AddRange(new ListViewItem.ListViewSubItem[] { TspData, len }); listViewGPSData.Items.Add(item); } } else if (channelNo >= BVCU.BVCU_SUBDEV_INDEXMAJOR_MIN_CHANNEL && channelNo < BVCU.BVCU_SUBDEV_INDEXMAJOR_MAX_CHANNEL) { if (m_sdkOperator.Dialog.Count == 4) { //MessageBox.Show("窗口已全部占用"); //return; } else { foreach (Panel panel in m_videoPanels) { if (panel.ContextMenuStrip == null) { panel.ContextMenuStrip = contextMenuStripVideo; Console.WriteLine("Open dialog pu " + pu.id + " channel " + channelNo); //打开浏览******************************************************************* m_sdkOperator.Dialog.openBrowse(pu, channelNo, panel); //录像 // RecordPath = "E:\\PIPE_DATA\\TEST"; Thread.Sleep(10000); m_sdkOperator.Dialog.record(panel); /* * Player p = new Player(); * p.Show(); * * m_sdkOperator.Dialog.PreviewVideo(pu, channelNo, p.tbPlay); */ break; } } Thread.Sleep(10000); } } #endregion } channelNode.ForeColor = Color.Blue; online = true; } else { channelNode.ForeColor = Color.Gray; } puNode.Nodes.Add(channelNode); } /*for (int t = 0; t < pu.channelList.Count; t++) * { * Channel channl = pu.channelList[i] as Channel; * TreeNode channelNode = new TreeNode(channl.channelName); * if (channl.online) * { * channelNode.ForeColor = Color.Blue; * online = true; * } * else * { * channelNode.ForeColor = Color.Gray; * } * puNode.Nodes.Add(channelNode); * }*/ if (online) { puNode.ForeColor = Color.Blue; } else { puNode.ForeColor = Color.Gray; } is_on_dialog = false; } //打开TSP通道后,向所有打开通道发送数据请求信息 sndData_timer.Enabled = true; }