| | |
| | | /// 启动程序自动开启调度服务 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public async Task StartAsync() |
| | | public virtual async Task StartAsync() |
| | | { |
| | | try |
| | | { |
| | |
| | | deviceInfos.ForEach(x => |
| | | { |
| | | if (!Storage.Devices.Exists(d => d.DeviceCode == x.DeviceCode)) |
| | | { |
| | | try |
| | | { |
| | | #region 连接PLC |
| | | // 加载程序集 |
| | |
| | | // 调用连接方法 |
| | | bool? connectResult = (bool)type.InvokeMember("Connect", BindingFlags.Default | BindingFlags.InvokeMethod, null, obj, new object[] { }); |
| | | // 判断连接结果 |
| | | if (connectResult ?? false) ConsoleHelper.WriteSuccessLine(x.DeviceCode + "连接成功"); else ConsoleHelper.WriteErrorLine(x.DeviceCode + "连接失败"); |
| | | if (connectResult ?? false) ConsoleHelper.WriteSuccessLine(type.Name + x.DeviceCode + "连接成功"); else ConsoleHelper.WriteErrorLine(type.Name + x.DeviceCode + "连接失败"); |
| | | #endregion |
| | | |
| | | |
| | | |
| | | #region 实例化设备对象 |
| | | List<DeviceProDTO> devicePros = x.ProtocolList.Select(d => new DeviceProDTO |
| | |
| | | |
| | | Storage.Devices.Add((IDevice)deviceInstance); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine("调度服务开启异常" + ex.ToString()); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | x.Device = Storage.Devices.FirstOrDefault(d => d.DeviceCode == x.DeviceCode); |