/// <summary> /// 读取数据库内容 /// </summary> /// <returns></returns> private List <DevNodeInfo> GetDevNodes() { string strErr = ""; string strSql = "select n.devid,n.nodeid,n.vc_name,n.i_NodeType " + "from m_devnodes n " + "INNER JOIN m_devinfo d on n.devid = d.DevID " + "inner JOIN m_blltree b on b.BindID = d.DevID " + "where b.unitid = '" + m_UINTID + "' and b.i_BindType = 2 " + "order by n.nodeid;"; DataTable dtDevNodes = MysqlDB.Instance.GetDataTable(out strErr, strSql); List <DevNodeInfo> lstNodes = new List <DevNodeInfo>(); if (dtDevNodes != null && dtDevNodes.Rows.Count > 0) { for (int i = 0; i < dtDevNodes.Rows.Count; i++) { DevNodeInfo node = new DevNodeInfo() { DevID = dtDevNodes.Rows[i]["DevID"].ToString() + "", Name = dtDevNodes.Rows[i]["vc_name"].ToString() + "", NodeID = dtDevNodes.Rows[i]["NodeID"].ToString() + "", NodeType = int.Parse(dtDevNodes.Rows[i]["i_NodeType"].ToString()) }; lstNodes.Add(node); } } return(lstNodes); }
/// <summary> /// 打开/关闭设备 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ToolStripMenuItemOpenCloseDev_Click(object sender, EventArgs e) { DevNodeInfo nodeInfo = tvDevs.SelectedNode.Tag as DevNodeInfo; IJFDevice dev = JFHubCenter.Instance.InitorManager.GetInitor(nodeInfo.DevID) as IJFDevice; if (dev.IsDeviceOpen) { int nRet = dev.CloseDevice(); if (nRet != 0) { MessageBox.Show("关闭设备失败!错误信息 :" + dev.GetErrorInfo(nRet)); } else { MessageBox.Show("设备已关闭"); } } else { int nRet = dev.OpenDevice(); if (nRet != 0) { MessageBox.Show("打开设备失败!错误信息 :" + dev.GetErrorInfo(nRet)); } else { MessageBox.Show("设备已打开!"); } } }
/// <summary> /// 取消编辑通道名称 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ToolStripMenuItemEditCancel_Click(object sender, EventArgs e) { DevNodeInfo nodeInfo = tvDevs.SelectedNode.Tag as DevNodeInfo; isChannelNameEditting = false; if (nodeInfo.Categoty == DevNodeCategory.DioModule) { ucDioNames.EndEdit(); ucDioNames.UpdateChannelsInfo(nodeInfo.DevID, nodeInfo.ModuleIndex); } else if (nodeInfo.Categoty == DevNodeCategory.MotionModule) { ucAxisNames.EndEdit(); ucAxisNames.UpdateChannelsInfo(nodeInfo.DevID, nodeInfo.ModuleIndex); } else if (nodeInfo.Categoty == DevNodeCategory.CmpTrigModule) { ucCmpTrigNames.EndEdit(); ucCmpTrigNames.UpdateChannelsInfo(nodeInfo.DevID, nodeInfo.ModuleIndex); } else if (nodeInfo.Categoty == DevNodeCategory.AioModule) { ucAioNames.EndEdit(); ucAioNames.UpdateChannelsInfo(nodeInfo.DevID, nodeInfo.ModuleIndex); } ToolStripMenuItemEditSave.Text = "编辑名称"; ToolStripMenuItemEditCancel.Enabled = false; tvDevs.Enabled = true; }
/// <summary> /// 更新模块的通道信息 /// </summary> /// <param name="nodeChannel"></param> void _UpdateChannelNode(TreeNode nodeChannel) { DevNodeInfo nodeInfo = nodeChannel.Tag as DevNodeInfo; JFDevCellNameManeger mgr = JFHubCenter.Instance.MDCellNameMgr; if (nodeInfo.Categoty == DevNodeCategory.DioModule) { nodeChannel.Text = "序号_" + nodeInfo.ModuleIndex + ",DI数:" + mgr.GetDiChannelCount(nodeInfo.DevID, nodeInfo.ModuleIndex) + ",DO数:" + mgr.GetDoChannelCount(nodeInfo.DevID, nodeInfo.ModuleIndex); ucDioNames.UpdateChannelsInfo(nodeInfo.DevID, nodeInfo.ModuleIndex); } else if (nodeInfo.Categoty == DevNodeCategory.MotionModule) { nodeChannel.Text = "序号_" + nodeInfo.ModuleIndex + ",轴数:" + mgr.GetAxisCount(nodeInfo.DevID, nodeInfo.ModuleIndex); ucAxisNames.UpdateChannelsInfo(nodeInfo.DevID, nodeInfo.ModuleIndex); } else if (nodeInfo.Categoty == DevNodeCategory.CmpTrigModule) { nodeChannel.Text = "序号_" + nodeInfo.ModuleIndex + ",通道数:" + mgr.GetCmpTrigCount(nodeInfo.DevID, nodeInfo.ModuleIndex); ucCmpTrigNames.UpdateChannelsInfo(nodeInfo.DevID, nodeInfo.ModuleIndex); } else if (nodeInfo.Categoty == DevNodeCategory.AioModule) { nodeChannel.Text = "序号_" + nodeInfo.ModuleIndex + ",AI数:" + mgr.GetAiChannelCount(nodeInfo.DevID, nodeInfo.ModuleIndex) + ",AO数:" + mgr.GetAoChannelCount(nodeInfo.DevID, nodeInfo.ModuleIndex); ucAioNames.UpdateChannelsInfo(nodeInfo.DevID, nodeInfo.ModuleIndex); } }
/// <summary> /// 修改Module所属的通道数量 轴/Dio/Aio/Trig等等 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ToolStripMenuItemResetChannelCount_Click(object sender, EventArgs e) { TreeNode currNode = tvDevs.SelectedNode; DevNodeInfo nodeInfo = currNode.Tag as DevNodeInfo; JFDevCellNameManeger mgr = JFHubCenter.Instance.MDCellNameMgr; FormSetModuleChnCount fm = new FormSetModuleChnCount(); if (nodeInfo.Categoty == DevNodeCategory.MotionModule) { fm.Category = FormSetModuleChnCount.ModuleCategory.Motion; fm.ChannelCount1 = mgr.GetAxisCount(nodeInfo.DevID, nodeInfo.ModuleIndex); if (fm.ShowDialog() == DialogResult.OK) { mgr.SetAxisCount(nodeInfo.DevID, nodeInfo.ModuleIndex, fm.ChannelCount1); _UpdateChannelNode(currNode);//_UpdateCfg2UI(); } } else if (nodeInfo.Categoty == DevNodeCategory.CmpTrigModule) { fm.Category = FormSetModuleChnCount.ModuleCategory.Trig; fm.ChannelCount1 = mgr.GetCmpTrigCount(nodeInfo.DevID, nodeInfo.ModuleIndex); if (fm.ShowDialog() == DialogResult.OK) { mgr.SetCmpTrigCount(nodeInfo.DevID, nodeInfo.ModuleIndex, fm.ChannelCount1); _UpdateChannelNode(currNode);//_UpdateCfg2UI(); } } else if (nodeInfo.Categoty == DevNodeCategory.DioModule) { fm.Category = FormSetModuleChnCount.ModuleCategory.Dio; fm.ChannelCount1 = mgr.GetDiChannelCount(nodeInfo.DevID, nodeInfo.ModuleIndex); fm.ChannelCount2 = mgr.GetDoChannelCount(nodeInfo.DevID, nodeInfo.ModuleIndex); if (fm.ShowDialog() == DialogResult.OK) { mgr.SetDiChannelCount(nodeInfo.DevID, nodeInfo.ModuleIndex, fm.ChannelCount1); mgr.SetDoChannelCount(nodeInfo.DevID, nodeInfo.ModuleIndex, fm.ChannelCount2); _UpdateChannelNode(currNode);////_UpdateCfg2UI(); } } else if (nodeInfo.Categoty == DevNodeCategory.AioModule) { fm.Category = FormSetModuleChnCount.ModuleCategory.Aio; fm.ChannelCount1 = mgr.GetAiChannelCount(nodeInfo.DevID, nodeInfo.ModuleIndex); fm.ChannelCount2 = mgr.GetAoChannelCount(nodeInfo.DevID, nodeInfo.ModuleIndex); if (fm.ShowDialog() == DialogResult.OK) { mgr.SetAiChannelCount(nodeInfo.DevID, nodeInfo.ModuleIndex, fm.ChannelCount1); mgr.SetAoChannelCount(nodeInfo.DevID, nodeInfo.ModuleIndex, fm.ChannelCount2); _UpdateChannelNode(currNode);// _UpdateCfg2UI(); } } }
/// <summary> /// 删除模块 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ToolStripMenuItemDelectDev_Click(object sender, EventArgs e) { TreeNode currNode = tvDevs.SelectedNode; DevNodeInfo nodeInfo = currNode.Tag as DevNodeInfo; if (DialogResult.OK == MessageBox.Show("是否从命名表配置中删除设备:" + nodeInfo.DevID, "警告", MessageBoxButtons.OKCancel)) { JFHubCenter.Instance.MDCellNameMgr.RemoveMotionDaqDevice(nodeInfo.DevID); //_UpdateCfg2UI(); currNode.Remove(); MessageBox.Show("设备:" + nodeInfo.DevID + " 已从命名表配置中删除!"); } }
/// <summary> /// 开始编辑/保存通道名称 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ToolStripMenuItemEditSave_Click(object sender, EventArgs e) { DevNodeInfo nodeInfo = tvDevs.SelectedNode.Tag as DevNodeInfo; if (!isChannelNameEditting) //开始编辑 { isChannelNameEditting = true; if (nodeInfo.Categoty == DevNodeCategory.DioModule) { ucDioNames.BeginEdit(); } else if (nodeInfo.Categoty == DevNodeCategory.MotionModule) { ucAxisNames.BeginEdit(); } else if (nodeInfo.Categoty == DevNodeCategory.CmpTrigModule) { ucCmpTrigNames.BeginEdit(); } else if (nodeInfo.Categoty == DevNodeCategory.AioModule) { ucAioNames.BeginEdit(); } else if (nodeInfo.Categoty == DevNodeCategory.TrigCtrlDev) //编辑触发控制器通道名称 { ucTrigCtrlNames.BeginEdit(); } else if (nodeInfo.Categoty == DevNodeCategory.LightCtrlTDev) { ucLightCtrlNames.BeginEdit(); } ToolStripMenuItemEditSave.Text = "保存名称"; ToolStripMenuItemEditCancel.Enabled = true; tvDevs.Enabled = false; } else //尝试保存并结束编辑状态 { JFDevCellNameManeger mgr = JFHubCenter.Instance.MDCellNameMgr; string errInfo = ""; if (nodeInfo.Categoty == DevNodeCategory.DioModule) { string[] diNames = ucDioNames.DiNames; string[] doNames = ucDioNames.DoNames; if (!mgr.SetDiNames(nodeInfo.DevID, nodeInfo.ModuleIndex, ucDioNames.DiNames, out errInfo)) { MessageBox.Show("设置DI通道名称失败,错误信息:\n" + errInfo); return; } if (!mgr.SetDoNames(nodeInfo.DevID, nodeInfo.ModuleIndex, ucDioNames.DoNames, out errInfo)) { MessageBox.Show("设置DO通道名称失败,错误信息:\n" + errInfo); return; } ucDioNames.EndEdit(); MessageBox.Show("设置DIO通道名称OK"); } else if (nodeInfo.Categoty == DevNodeCategory.MotionModule) { if (!mgr.SetAxisNames(nodeInfo.DevID, nodeInfo.ModuleIndex, ucAxisNames.AxisNames, out errInfo)) { MessageBox.Show("设置轴通道名称失败,错误信息:\n" + errInfo); return; } ucAxisNames.EndEdit(); MessageBox.Show("设置轴通道名称OK"); } else if (nodeInfo.Categoty == DevNodeCategory.CmpTrigModule) { if (!mgr.SetCmpTrigNames(nodeInfo.DevID, nodeInfo.ModuleIndex, ucCmpTrigNames.TrigNames, out errInfo)) { MessageBox.Show("设置比较触发通道名称失败,错误信息:\n" + errInfo); return; } ucCmpTrigNames.EndEdit(); MessageBox.Show("设置比较触发通道名称OK"); } else if (nodeInfo.Categoty == DevNodeCategory.AioModule) { if (!mgr.SetAiNames(nodeInfo.DevID, nodeInfo.ModuleIndex, ucAioNames.AiNames, out errInfo)) { MessageBox.Show("设置AI通道名称失败,错误信息:\n" + errInfo); return; } if (!mgr.SetAoNames(nodeInfo.DevID, nodeInfo.ModuleIndex, ucAioNames.AoNames, out errInfo)) { MessageBox.Show("设置AO通道名称失败,错误信息:\n" + errInfo); return; } ucAioNames.EndEdit(); MessageBox.Show("设置AIO通道名称OK"); } else if (nodeInfo.Categoty == DevNodeCategory.TrigCtrlDev) { //ucTrigCtrlNames. if (!mgr.SetTrigCtrlChannelNames(nodeInfo.DevID, ucTrigCtrlNames.ChannelNames(), out errInfo)) { MessageBox.Show("设置触发控制器通道名称失败,错误信息:\n" + errInfo); ucTrigCtrlNames.UpdateChannelsInfo(nodeInfo.DevID); return; } ucTrigCtrlNames.EndEdit(); } else if (nodeInfo.Categoty == DevNodeCategory.LightCtrlTDev) { if (!mgr.SetLightCtrlChannelNames(nodeInfo.DevID, ucLightCtrlNames.LightChannelNames(), out errInfo)) { MessageBox.Show("设置触发控制器通道名称失败,错误信息:\n" + errInfo); ucLightCtrlNames.UpdateChannelsInfo(nodeInfo.DevID); return; } string[] trigChannelNames = ucLightCtrlNames.TrigChannelNames(); if (null == trigChannelNames || 0 == trigChannelNames.Length) { mgr.RemoveLightCtrlDev(nodeInfo.DevID); } else { if (!mgr.SetTrigCtrlChannelNames(nodeInfo.DevID, ucLightCtrlNames.TrigChannelNames(), out errInfo)) { MessageBox.Show("设置触发控制器通道名称失败,错误信息:\n" + errInfo); ucLightCtrlNames.UpdateChannelsInfo(nodeInfo.DevID); return; } } ucLightCtrlNames.EndEdit(); //if (!mgr.SetLightCtrlChannelNames(nodeInfo.DevID, ucTrigCtrlNames.ChannelNames(), out errInfo)) //{ // MessageBox.Show("设置触发控制器通道名称失败,错误信息:\n" + errInfo); // ucTrigCtrlNames.UpdateChannelsInfo(nodeInfo.DevID); // return; //} } ToolStripMenuItemEditSave.Text = "编辑名称"; ToolStripMenuItemEditCancel.Enabled = true; isChannelNameEditting = false; tvDevs.Enabled = true; } }
DevNodeCategory _currNodeCategory = DevNodeCategory.MotionDaqDev; //当前点击的节点类型 private void tvDevs_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right)//判断右键 { Point ClickPoint = new Point(e.X, e.Y); TreeNode nodeClicked = tvDevs.GetNodeAt(ClickPoint); if (null == nodeClicked) { return; } tvDevs.SelectedNode = nodeClicked; DevNodeInfo nodeInfo = nodeClicked.Tag as DevNodeInfo; if (null == nodeInfo) { return; } if (nodeInfo.Categoty == DevNodeCategory.MotionDaqDev) { contextMenuDev.Items["ToolStripMenuItemResetDevsModuleCount"].Text = "修改模块数量"; if (JFHubCenter.Instance.InitorManager.GetIDs(typeof(IJFDevice_MotionDaq)).Contains(nodeInfo.DevID)) { contextMenuDev.Items["ToolStripMenuItemOpenCloseDev"].Enabled = true; IJFDevice_MotionDaq dev = JFHubCenter.Instance.InitorManager.GetInitor(nodeInfo.DevID) as IJFDevice_MotionDaq; if (dev.IsDeviceOpen) { contextMenuDev.Items["ToolStripMenuItemOpenCloseDev"].Text = "关闭设备"; } else { contextMenuDev.Items["ToolStripMenuItemOpenCloseDev"].Text = "打开设备"; } } else { contextMenuDev.Items["ToolStripMenuItemOpenCloseDev"].Enabled = false; contextMenuDev.Items["ToolStripMenuItemOpenCloseDev"].Text = "无效设备"; } } else if (nodeInfo.Categoty == DevNodeCategory.LightCtrlTDev || nodeInfo.Categoty == DevNodeCategory.TrigCtrlDev) { contextMenuDev.Items["ToolStripMenuItemResetDevsModuleCount"].Text = "修改通道数量"; if (JFHubCenter.Instance.InitorManager.GetIDs(typeof(IJFDevice_TrigController)).Contains(nodeInfo.DevID)) { contextMenuDev.Items["ToolStripMenuItemOpenCloseDev"].Enabled = true; IJFDevice_TrigController dev = JFHubCenter.Instance.InitorManager.GetInitor(nodeInfo.DevID) as IJFDevice_TrigController; if (dev.IsDeviceOpen) { contextMenuDev.Items["ToolStripMenuItemOpenCloseDev"].Text = "关闭设备"; } else { contextMenuDev.Items["ToolStripMenuItemOpenCloseDev"].Text = "打开设备"; } } else { contextMenuDev.Items["ToolStripMenuItemOpenCloseDev"].Enabled = false; contextMenuDev.Items["ToolStripMenuItemOpenCloseDev"].Text = "无效设备"; } } else if (nodeInfo.Categoty == DevNodeCategory.LightCtrlTDev) { contextMenuDev.Items["ToolStripMenuItemResetDevsModuleCount"].Text = "修改通道数量"; if (JFHubCenter.Instance.InitorManager.GetIDs(typeof(IJFDevice_LightControllerWithTrig)).Contains(nodeInfo.DevID)) { contextMenuDev.Items["ToolStripMenuItemOpenCloseDev"].Enabled = true; IJFDevice_LightControllerWithTrig dev = JFHubCenter.Instance.InitorManager.GetInitor(nodeInfo.DevID) as IJFDevice_LightControllerWithTrig; if (dev.IsDeviceOpen) { contextMenuDev.Items["ToolStripMenuItemOpenCloseDev"].Text = "关闭设备"; } else { contextMenuDev.Items["ToolStripMenuItemOpenCloseDev"].Text = "打开设备"; } } else { contextMenuDev.Items["ToolStripMenuItemOpenCloseDev"].Enabled = false; contextMenuDev.Items["ToolStripMenuItemOpenCloseDev"].Text = "无效设备"; } } } else if (e.Button == MouseButtons.Left) //左键 { Point ClickPoint = new Point(e.X, e.Y); TreeNode nodeClicked = tvDevs.GetNodeAt(ClickPoint); if (null == nodeClicked) { return; } DevNodeInfo nodeInfo = nodeClicked.Tag as DevNodeInfo; if (null == nodeInfo) { return; } panel1.Controls.Clear(); _currNodeCategory = nodeInfo.Categoty; switch (nodeInfo.Categoty) { case DevNodeCategory.MotionDaqDev: timer1.Enabled = false; break; case DevNodeCategory.DioModule: ucDioNames.UpdateChannelsInfo(nodeInfo.DevID, nodeInfo.ModuleIndex); panel1.Controls.Add(ucDioNames); ucDioNames.Dock = DockStyle.Fill; timer1.Enabled = true; break; case DevNodeCategory.MotionModule: timer1.Enabled = true; ucAxisNames.UpdateChannelsInfo(nodeInfo.DevID, nodeInfo.ModuleIndex); panel1.Controls.Add(ucAxisNames); ucAxisNames.Dock = DockStyle.Fill; timer1.Enabled = true; break; case DevNodeCategory.AioModule: ucAioNames.UpdateChannelsInfo(nodeInfo.DevID, nodeInfo.ModuleIndex); panel1.Controls.Add(ucAioNames); ucAioNames.Dock = DockStyle.Fill; timer1.Enabled = true; break; case DevNodeCategory.CmpTrigModule: ucCmpTrigNames.UpdateChannelsInfo(nodeInfo.DevID, nodeInfo.ModuleIndex); panel1.Controls.Add(ucCmpTrigNames); ucCmpTrigNames.Dock = DockStyle.Fill; timer1.Enabled = true; break; case DevNodeCategory.TrigCtrlDev: ucTrigCtrlNames.UpdateChannelsInfo(nodeInfo.DevID); panel1.Controls.Add(ucTrigCtrlNames); ucTrigCtrlNames.Dock = DockStyle.Fill; timer1.Enabled = true; break; case DevNodeCategory.LightCtrlTDev: ucLightCtrlNames.UpdateChannelsInfo(nodeInfo.DevID); panel1.Controls.Add(ucLightCtrlNames); ucLightCtrlNames.Dock = DockStyle.Fill; timer1.Enabled = true; break; } } }
/// <summary> /// 修改设备所属的模块数量 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ToolStripMenuItemResetDevsModuleCount_Click(object sender, EventArgs e) { TreeNode currNode = tvDevs.SelectedNode; DevNodeInfo nodeInfo = currNode.Tag as DevNodeInfo; JFDevCellNameManeger mgr = JFHubCenter.Instance.MDCellNameMgr; if (nodeInfo.Categoty == DevNodeCategory.MotionDaqDev) //更改运动控制器模块数量 { FormDevModuleInfo fm = new FormDevModuleInfo(); fm.DevID = nodeInfo.DevID; fm.MotionCount = mgr.GetAxisModuleCount(nodeInfo.DevID); fm.DioCount = mgr.GetDioModuleCount(nodeInfo.DevID); fm.AioCount = mgr.GetAioModuleCount(nodeInfo.DevID); fm.TrigCount = mgr.GetCmpTrigModuleCount(nodeInfo.DevID); fm.SettingMode = DevModuleSettingMode.Set; if (DialogResult.OK == fm.ShowDialog()) { mgr.SetAxisModuleCount(nodeInfo.DevID, fm.MotionCount); mgr.SetDioModuleCount(nodeInfo.DevID, fm.DioCount); mgr.SetAioModuleCount(nodeInfo.DevID, fm.AioCount); mgr.SetCmpTrigModuleCount(nodeInfo.DevID, fm.TrigCount); _UpdateModuleNode(currNode);//_UpdateCfg2UI(); } } else if (nodeInfo.Categoty == DevNodeCategory.TrigCtrlDev)//更改触发控制器通道数量 { FormAddMChnDev fm = new FormAddMChnDev(); fm.Text = "修改触发器通道数量"; string[] devIDs = JFHubCenter.Instance.InitorManager.GetIDs(typeof(IJFDevice_TrigController)); //所有触发控制设备ID,过滤掉其中的光源控制器 List <string> trigDevIDs = new List <string>(); fm.SetDeviceID(nodeInfo.DevID); fm.SettingMode = DevModuleSettingMode.Set; fm.SetChannelTypes(new string[] { "触发通道数量:" }); int nCurrChns = JFHubCenter.Instance.MDCellNameMgr.GetTrigCtrlChannelCount(nodeInfo.DevID); fm.ChannelCount = new int[] { nCurrChns }; if (DialogResult.OK != fm.ShowDialog()) { return; } JFHubCenter.Instance.MDCellNameMgr.SetTrigCtrlChannelCount(fm.DeviceID, fm.ChannelCount[0]); _UpdateModuleNode(currNode); } else if (nodeInfo.Categoty == DevNodeCategory.LightCtrlTDev) //更改光源控制器通道数量 { FormAddMChnDev fm = new FormAddMChnDev(); fm.Text = "修改光源通道数量"; // string[] devIDs = JFHubCenter.Instance.InitorManager.GetIDs(typeof(IJFDevice_TrigController)); //所有触发控制设备ID,过滤掉其中的光源控制器 //List<string> trigDevIDs = new List<string>(); fm.SetDeviceID(nodeInfo.DevID); fm.SettingMode = DevModuleSettingMode.Set; fm.SetChannelTypes(new string[] { "开关通道数量", "触发通道数量:" }); int lightChnCount = JFHubCenter.Instance.MDCellNameMgr.GetLightCtrlChannelCount(nodeInfo.DevID); int trigChnCount = JFHubCenter.Instance.MDCellNameMgr.GetTrigCtrlChannelCount(nodeInfo.DevID); fm.ChannelCount = new int[] { lightChnCount, trigChnCount }; if (DialogResult.OK != fm.ShowDialog()) { return; } JFHubCenter.Instance.MDCellNameMgr.SetLightCtrlChannelCount(fm.DeviceID, fm.ChannelCount[0]); JFHubCenter.Instance.MDCellNameMgr.SetTrigCtrlChannelCount(fm.DeviceID, fm.ChannelCount[1]); _UpdateModuleNode(currNode); } }
/// <summary> /// 更新控制卡的模块数量信息 /// </summary> /// <param name="nodeModule"></param> void _UpdateModuleNode(TreeNode nodeModule) { JFDevCellNameManeger mgr = JFHubCenter.Instance.MDCellNameMgr; DevNodeInfo nodeInfo = nodeModule.Tag as DevNodeInfo; if (nodeInfo.Categoty == DevNodeCategory.MotionDaqDev) //更新运动控制设备节点 { nodeModule.Nodes.Clear(); int motionModuleCount = mgr.GetAxisModuleCount(nodeInfo.DevID);//轴模块 if (motionModuleCount > 0) { TreeNode motionsNode = new TreeNode("轴模块"); motionsNode.Tag = new DevNodeInfo(nodeInfo.DevID, DevNodeCategory.Module, 0); nodeModule.Nodes.Add(motionsNode); for (int i = 0; i < motionModuleCount; i++) { TreeNode motionNode = new TreeNode("序号_" + i + ",轴数:" + mgr.GetAxisCount(nodeInfo.DevID, i)); motionNode.Tag = new DevNodeInfo(nodeInfo.DevID, DevNodeCategory.MotionModule, i); motionsNode.Nodes.Add(motionNode); motionNode.ContextMenuStrip = contextMenuModule; } } int dioModuleCount = mgr.GetDioModuleCount(nodeInfo.DevID);//数字IO模块 if (dioModuleCount > 0) { TreeNode diosNode = new TreeNode("Dio模块"); diosNode.Tag = new DevNodeInfo(nodeInfo.DevID, DevNodeCategory.Module, 0); nodeModule.Nodes.Add(diosNode); for (int i = 0; i < dioModuleCount; i++) { TreeNode dioNode = new TreeNode("序号_" + i + ",DI数:" + mgr.GetDiChannelCount(nodeInfo.DevID, i) + ",DO数:" + mgr.GetDoChannelCount(nodeInfo.DevID, i)); dioNode.Tag = new DevNodeInfo(nodeInfo.DevID, DevNodeCategory.DioModule, i); diosNode.Nodes.Add(dioNode); dioNode.ContextMenuStrip = contextMenuModule; } } int trigModuleCount = mgr.GetCmpTrigModuleCount(nodeInfo.DevID);//位置比较触发 if (trigModuleCount > 0) { TreeNode trigsNode = new TreeNode("位置比较触发模块"); trigsNode.Tag = new DevNodeInfo(nodeInfo.DevID, DevNodeCategory.Module, 0); nodeModule.Nodes.Add(trigsNode); for (int i = 0; i < trigModuleCount; i++) { TreeNode trigNode = new TreeNode("序号_" + i + ",通道数:" + mgr.GetCmpTrigCount(nodeInfo.DevID, i)); trigNode.Tag = new DevNodeInfo(nodeInfo.DevID, DevNodeCategory.CmpTrigModule, i); trigsNode.Nodes.Add(trigNode); trigNode.ContextMenuStrip = contextMenuModule; } } int aioModuleCount = mgr.GetAioModuleCount(nodeInfo.DevID); if (aioModuleCount > 0) { TreeNode aiosNode = new TreeNode("Aio模块"); aiosNode.Tag = new DevNodeInfo(nodeInfo.DevID, DevNodeCategory.Module, 0); nodeModule.Nodes.Add(aiosNode); for (int i = 0; i < aioModuleCount; i++) { TreeNode aioNode = new TreeNode("序号_" + i + ",AI数:" + mgr.GetAiChannelCount(nodeInfo.DevID, i) + ",AO数:" + mgr.GetAoChannelCount(nodeInfo.DevID, i)); aioNode.Tag = new DevNodeInfo(nodeInfo.DevID, DevNodeCategory.AioModule, i); aiosNode.Nodes.Add(aioNode); aioNode.ContextMenuStrip = contextMenuModule; } } } else if (nodeInfo.Categoty == DevNodeCategory.LightCtrlTDev) //光源控制器设备节点 { ucLightCtrlNames.UpdateChannelsInfo(nodeInfo.DevID); } else if (nodeInfo.Categoty == DevNodeCategory.TrigCtrlDev) //触发控制器设备节点 { ucTrigCtrlNames.UpdateChannelsInfo(nodeInfo.DevID); } }