using System; using System.Collections.Generic; using System.DirectoryServices; using System.Linq; using System.Text; using System.Threading.Tasks; using AutoMapper; using SqlSugar; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_Core.BaseServices; using WIDESEAWCS_ITelescopicService; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob; namespace WIDESEAWCS_TelescopicService { public class ParametersService : ServiceBase>, IParametersService { public IRepository Repository => BaseDal; public ParametersService(IRepository BaseDal) : base(BaseDal) { } /// /// 自动控制伸缩杆的伸出和缩回速度 /// /// 伸/出状态 /// public WebResponseContent automation(string ExtendedState) { try { OtherDevice liftotherDevice = (OtherDevice)Storage.Devices.Find(x => x.DeviceName == "左汇川PLC"); OtherDevice rightotherDevice = (OtherDevice)Storage.Devices.Find(x => x.DeviceName == "右汇川PLC"); //找到Dt_Parameters中的最新一条数据 var para=BaseDal.QueryData().OrderBy(x=>x.CreateDate).FirstOrDefault(); int ext= (int)para.ExtendSpeed;//自动伸出速度 int ret= (int)para.RetractionSpeed;//自动缩回速度 if (ExtendedState == "伸出") { var values = liftotherDevice.Communicator.Write("D500", ext);//速度 var button = liftotherDevice.Communicator.Write("M100", true);//伸出按钮 var rightvalues = rightotherDevice.Communicator.Write("D500", ext);//速度 var rightbutton = rightotherDevice.Communicator.Write("M100", true);//伸出按钮 Console.WriteLine($"伸缩杆伸出{ext}"); } if (ExtendedState=="缩回") { var values = liftotherDevice.Communicator.Write("D501", ext);//速度 var button = liftotherDevice.Communicator.Write("M101", true);//缩回按钮 var rightvalues = rightotherDevice.Communicator.Write("D501", ext);//速度 var rightbutton = rightotherDevice.Communicator.Write("M101", true);//缩回按钮 Console.WriteLine($"伸缩杆缩回{ret}"); } return new WebResponseContent { Status = true, Message = "成功" }; } catch (Exception ex) { return new WebResponseContent { Status = false, Message = ex.Message }; } } /// /// 手动控制,伸缩杆的缩回和伸出速度 /// /// 伸缩杆的位置(左右) /// 伸/缩状态 /// /// public WebResponseContent ManualOperation(string position, string ExtendedState) { try { //俩个plc左右各一个 OtherDevice liftotherDevice = (OtherDevice)Storage.Devices.Find(x => x.DeviceName == "左汇川PLC"); OtherDevice rightotherDevice = (OtherDevice)Storage.Devices.Find(x => x.DeviceName == "右汇川PLC"); //找到Dt_Parameters中的最新一条数据 var para = BaseDal.QueryData().OrderBy(x => x.CreateDate).FirstOrDefault(); int ext = (int)para.ManualExtend;//自动伸出速度 int ret = (int)para.ManualRetraction;//自动缩回速度 if (position == "左" && ExtendedState == "伸出") { var values = liftotherDevice.Communicator.Write("D500", ext);//速度 var button = liftotherDevice.Communicator.Write("M100", true);//伸出按钮 Console.WriteLine($"{position}伸缩杆伸出{ext}"); } if (position == "左" && ExtendedState == "缩回") { var values = liftotherDevice.Communicator.Write("D501", ret); var button = liftotherDevice.Communicator.Write("M101", true);//缩回按钮 Console.WriteLine($"{position}伸缩杆缩回{ret}"); } if (position == "右" && ExtendedState == "伸出") { var values = rightotherDevice.Communicator.Write("D500", ext);//速度 var button = rightotherDevice.Communicator.Write("M100", true);//伸出按钮 Console.WriteLine($"{position}伸缩杆伸出{ext}"); } if (position == "右" && ExtendedState == "缩回") { var values = rightotherDevice.Communicator.Write("D501", ret); var button = rightotherDevice.Communicator.Write("M101", true);//缩回按钮 Console.WriteLine($"{position}伸缩杆缩回{ret}"); } return new WebResponseContent { Status = true, Message = "成功" }; } catch (Exception ex) { return new WebResponseContent { Status = false, Message = ex.Message }; } } } }