void _IB状态_健康状态变化(M设备 __设备, U按钮 __按钮, M概要状态 __概要状态) { if (this.InvokeRequired) { this.BeginInvoke(new Action <M设备, U按钮, M概要状态>(_IB状态_健康状态变化), __设备, __按钮, __概要状态); return; } __设备.概要状态 = __概要状态; __按钮.Text = string.Format("{0}({1})", __设备.设备标识, __设备.概要状态.未清除告警数量); switch (__概要状态.健康状态) { case E健康状态.优: __按钮.颜色 = Color.YellowGreen; break; case E健康状态.良: __按钮.颜色 = Color.FromArgb(38, 164, 221); break; case E健康状态.中: __按钮.颜色 = Color.Orange; break; case E健康状态.差: __按钮.颜色 = Color.Red; break; default: throw new ArgumentOutOfRangeException(); } }
void 访问入口_已断开(M设备 __设备, U按钮 __按钮) { if (this.InvokeRequired) { this.BeginInvoke(new Action <M设备, U按钮>(访问入口_已断开), __设备, __按钮); return; } __按钮.颜色 = Color.Gray; }
void 访问入口_已连接(M设备 __设备, U按钮 __按钮) { if (this.InvokeRequired) { this.BeginInvoke(new Action <M设备, U按钮>(访问入口_已连接), __设备, __按钮); return; } if (__设备.片 == null) { var __IB名片 = new B名片_C(__设备.访问入口); var __IB状态 = new B状态_C(__设备.访问入口); __IB状态.健康状态变化 += q => _IB状态_健康状态变化(__设备, __按钮, q); var __任务 = new Task(() => { Let.Us.Retry(10000, 100, null, null).Do(() => { __设备.片 = __IB名片.片; __设备.概要状态 = __IB状态.查询概要状态(); }); }); __任务.ContinueWith(task => { var __提示 = new StringBuilder(); __提示 .AppendFormat("IP: {0}", __设备.IP).AppendLine() .AppendFormat("端口号: {0}", __设备.端口号).AppendLine() .AppendFormat("版本号: {0}", __设备.片 == null ? "" : __设备.片.版本号).AppendLine() .AppendFormat("版本时间: {0}", __设备.片 == null ? "" : __设备.片.版本时间).AppendLine(); this.toolTip1.SetToolTip(__按钮, __提示.ToString()); _IB状态_健康状态变化(__设备, __按钮, __设备.概要状态); }, CancellationToken.None, TaskContinuationOptions.OnlyOnRanToCompletion, TaskScheduler.FromCurrentSynchronizationContext()); __任务.ContinueWith(task => { task.Exception.Handle(q => true); }, CancellationToken.None, TaskContinuationOptions.OnlyOnFaulted, TaskScheduler.FromCurrentSynchronizationContext()); __任务.Start(); } }
private List <M设备> 查询设备列表(string __文件路径) { var __设备列表 = new List <M设备>(); var __文件 = H路径.打开文件(__文件路径); var __XML文档 = XDocument.Load(__文件); __文件.Close(); var __根节点 = __XML文档.Root; foreach (XElement __节点 in __根节点.XPathSelectElements("./设备")) { var __IP = IPAddress.Parse(__节点.Attribute("IP").Value); var __端口号 = int.Parse(__节点.Attribute("端口号").Value); var __设备 = new M设备 { 分组 = __节点.Attribute("分类").Value, 设备标识 = __节点.Attribute("名称").Value, IP = __IP, 端口号 = __端口号 }; __设备列表.Add(__设备); } return(__设备列表); }
public F编辑设备(M设备 __设备) { InitializeComponent(); _设备 = __设备; }