/// <summary> /// 向UI更新工站的AI命名通道 /// </summary> void _UpdateAI() { JFDevCellNameManeger nameMgr = JFHubCenter.Instance.MDCellNameMgr; string[] allAIs = nameMgr.AllAiNames(); //系统中所有可用的AI命名通道 string[] aiNames = _station.AINames; //工站中已配置的AI通道 if (null == allAIs || 0 == allAIs.Length) { ShowTips("系统配置中不存在已命名的AI通道!"); btAdd.Enabled = false; } else { btAdd.Enabled = true; } if (null == aiNames || 0 == aiNames.Length) { btDel.Enabled = false; return; } else//if(null != chnNames) { btDel.Enabled = true; foreach (string aiName in aiNames) { DataGridViewRow row = new DataGridViewRow(); DataGridViewTextBoxCell cellName = new DataGridViewTextBoxCell(); cellName.Value = aiName; DataGridViewTextBoxCell cellInfo = new DataGridViewTextBoxCell(); JFDevCellInfo devInfo = nameMgr.GetAiCellInfo(aiName); if (null == devInfo) { cellName.Style.ForeColor = Color.Red; cellInfo.Value = "无效的通道名称,在配置中不存在!"; cellInfo.Style.ForeColor = Color.Red; } else { cellInfo.Value = string.Format("控制器:{0} - 模块:{1} - 通道:{2}", devInfo.DeviceID, devInfo.ModuleIndex, devInfo.ChannelIndex); } row.Cells.Add(cellName); row.Cells.Add(cellInfo); dgvNameInfos.Rows.Add(row); } } }
void _AddAINames() { string[] allChnNames = null; //系统中所有已命名的通道 string[] existChnNames = null; //已存在的通道名称 JFDevCellNameManeger nameMgr = JFHubCenter.Instance.MDCellNameMgr; allChnNames = nameMgr.AllAiNames(); //系统名称表中所有可用的DI通道名称 existChnNames = _station.AINames; //工站中已有的DI通道名称 if (null == allChnNames || 0 == allChnNames.Length) { MessageBox.Show("不存在" + _chnType.ToString() + "命名通道"); return; } List <string> lstAddNames = new List <string>(); //可供添加的DI通道名称 if (null == existChnNames || 0 == existChnNames.Length) { lstAddNames.AddRange(allChnNames); } else { foreach (string chnName in allChnNames) { if (!existChnNames.Contains(chnName)) { lstAddNames.Add(chnName); } } } if (lstAddNames.Count == 0) { MessageBox.Show("没有可供添加的" + _chnType.ToString() + "命名通道"); return; } List <string> lstAddInfos = new List <string>(); foreach (string addName in lstAddNames) { JFDevCellInfo chnInfo = nameMgr.GetAiCellInfo(addName); lstAddInfos.Add(string.Format("控制器:{0} - 模块:{1} - 通道:{2}", chnInfo.DeviceID, chnInfo.ModuleIndex, chnInfo.ChannelIndex)); } FormAddNames frm = new FormAddNames(); frm.Text = "为工站:" + _station.Name + " 添加Ai命名通道"; frm.SetAvailedNames(lstAddNames.ToArray(), lstAddInfos.ToArray()); if (DialogResult.OK == frm.ShowDialog()) { string[] chnNamesWillAdd = null; string[] chnInfosWillAdd = null; frm.GetSelectNameInfos(out chnNamesWillAdd, out chnInfosWillAdd); for (int i = 0; i < chnNamesWillAdd.Length; i++) { string chnName = chnNamesWillAdd[i]; _station.AddAI(chnName); } _station.SaveCfg(); UpdateStation2UI(); } }