/// <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; } }