using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using IoTClient; using IoTClient.Clients.PLC; using IoTClient.Common.Enums; using IoTClient.Enums; using Microsoft.Extensions.DependencyInjection; using Sunny.UI; namespace Scada { public static class Globals { public static ServiceProvider ServiceProvider; public static IniFile IniFile = new IniFile(Application.StartupPath+"\\config.ini"); public static string PlcVarConfigPath = string.Empty; public static string IpAddress = string.Empty; public static int Port; public static SiemensVersion CpuType; public static byte Slot; public static byte Rack; public static int ConnectTimeOut; public static int ReadTimeInterval; public static int ReConnectTimeInterval; public static SiemensClient SiemensClient; public static Dictionary ReadDic = new Dictionary(); public static Dictionary DataDic = new Dictionary(); public static Dictionary WriteDic = new Dictionary(); public static IList SaveList = new List(); public static string DelFilePath; public static string SaveDay; public static int SYTime; public static string SoftwareVersion; public static bool PlcWrite(string varName,dynamic value) { if(SiemensClient!=null && SiemensClient.Connected) { var address = WriteDic[varName]; Result result = SiemensClient.Write(address, value); if(result.IsSucceed) { return true; } else { return false; } } return false; } public static bool PlcWrite(string varName, string value,DataTypeEnum type) { if (SiemensClient != null && SiemensClient.Connected) { var address = WriteDic[varName]; Result result = SiemensClient.Write(address, value, type); if (result.IsSucceed) { return true; } else { return false; } } return false; } #region 获取所有控件 // 获取指定页面的所有控件 public static List GetAllControls(UIPage page) { List allControls = new List(); CollectControls(page.Controls, allControls); return allControls; } // 递归方法,用于收集控件 private static void CollectControls(Control.ControlCollection controls, List allControls) { foreach (Control control in controls) { allControls.Add(control); // 将当前控件添加到列表中 // 如果当前控件有子控件,则递归调用此方法 if (control.HasChildren) { CollectControls(control.Controls, allControls); } } } #endregion } }