1
yanjinhui
2025-04-27 01c5166aad248cf4de78d7aeb53c31f961835f02
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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<Dt_Parameters, IRepository<Dt_Parameters>>, IParametersService
    {
        public IRepository<Dt_Parameters> Repository => BaseDal;
 
        public ParametersService(IRepository<Dt_Parameters> BaseDal) : base(BaseDal)
        {
        }
 
 
        /// <summary>
        /// 自动控制伸缩杆的伸出和缩回速度
        /// </summary>
        /// <param name="ExtendedState">伸/出状态</param>
        /// <returns></returns>
        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<int>("D500", ext);//速度
                    var button = liftotherDevice.Communicator.Write<bool>("M100", true);//伸出按钮
                    var rightvalues = rightotherDevice.Communicator.Write<int>("D500", ext);//速度
                    var rightbutton = rightotherDevice.Communicator.Write<bool>("M100", true);//伸出按钮
                    Console.WriteLine($"伸缩杆伸出{ext}");
                   
                }
                if (ExtendedState=="缩回")
                {
                    var values = liftotherDevice.Communicator.Write<int>("D501", ext);//速度
                    var button = liftotherDevice.Communicator.Write<bool>("M101", true);//缩回按钮
                    var rightvalues = rightotherDevice.Communicator.Write<int>("D501", ext);//速度
                    var rightbutton = rightotherDevice.Communicator.Write<bool>("M101", true);//缩回按钮
                    Console.WriteLine($"伸缩杆缩回{ret}");
                }
                return new WebResponseContent { Status = true, Message = "成功" };
            }
            catch (Exception ex)
            {
 
                return new WebResponseContent { Status = false, Message = ex.Message };
            }
        }
 
 
        /// <summary>
        /// 手动控制,伸缩杆的缩回和伸出速度
        /// </summary>
        /// <param name="position">伸缩杆的位置(左右)</param>
        /// <param name="ExtendedState">伸/缩状态</param>
        /// <returns></returns>
        /// 
        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<int>("D500", ext);//速度
                    var button = liftotherDevice.Communicator.Write<bool>("M100", true);//伸出按钮
                    Console.WriteLine($"{position}伸缩杆伸出{ext}");
                }
                if (position == "左" && ExtendedState == "缩回")
                {
                    var values = liftotherDevice.Communicator.Write<int>("D501", ret);
                    var button = liftotherDevice.Communicator.Write<bool>("M101", true);//缩回按钮
                    Console.WriteLine($"{position}伸缩杆缩回{ret}");
                }
                if (position == "右" && ExtendedState == "伸出")
                {
                    var values = rightotherDevice.Communicator.Write<int>("D500", ext);//速度
                    var button = rightotherDevice.Communicator.Write<bool>("M100", true);//伸出按钮
                    Console.WriteLine($"{position}伸缩杆伸出{ext}");
                }
                if (position == "右" && ExtendedState == "缩回")
                {
                    var values = rightotherDevice.Communicator.Write<int>("D501", ret);
                    var button = rightotherDevice.Communicator.Write<bool>("M101", true);//缩回按钮
                    Console.WriteLine($"{position}伸缩杆缩回{ret}");
                }
                return new WebResponseContent { Status = true, Message = "成功" };
            }
            catch (Exception ex)
            {
                return new WebResponseContent { Status = false, Message = ex.Message };
                
            }
        }
    }
   
}