1
huangxiaoqiang
2025-05-26 41702c7ce4c88ad70f52d83d153dd4c596ff69d5
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core;
using WIDESEA_DTO;
using WIDESEA_DTO.AGV;
using WIDESEA_Model.Models;
using WIDESEA_StorageSocketServices;
 
namespace WIDESEA_IStorageSocketServices
{
    public interface ISocketClientServices : IDependency
    {
        /// <summary>
        /// 连接Socket
        /// </summary>
        /// <param name="IP"></param>
        /// <param name="Port"></param>
        /// <returns></returns>
        void ConnectServer(string IP, int Port);
 
        /// <summary>
        /// 是否在线
        /// </summary>
        /// <returns></returns>
        bool Socketonline();
 
        /// <summary>
        /// 发送
        /// </summary>
        /// <param name="msg"></param>
        void clientSend(byte[] msg);
 
        /// <summary>
        /// 设备请求入库  工序101
        /// </summary>
        /// <param name="PallteCode">托盘号</param>
        /// <param name="InStation">入库站台</param>
        public void DeviceRequestInbound(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, InStationStatus inStation);
 
        /// <summary>
        /// 请求通讯  工序925
        /// </summary>
        /// <param name="PallteCode">托盘号</param>
        /// <param name="InStation">入库站台</param>
        public void RequestCommunication();
 
        /// <summary>
        /// 不允许下发任务  工序915
        /// </summary>
        /// <param name="Command">命令</param>
        /// <returns></returns>
        public void JobReady(string Command);
 
        /// <summary>
        /// 设备状态上报 工序913
        /// </summary>
        /// <param name="state">状态\、R运行</param>
        /// <returns></returns>
        public void DeviceStateReport(string Status);
 
        /// <summary>
        /// 设备状态上报 工序917
        /// </summary>
        /// <param name="state">状态\、ControlMode自动、MaintenanceMode手动</param>
        public void DeviceAutoStatusReport(string Status);
 
        /// /// <summary>
        /// 作业开始或结束 工序905
        /// </summary>
        /// <param name="Status">状态 L指AGV将托盘叉到货叉上、U指AGV将托盘放到库位上</param>
        /// <param name="FormLocation">起点</param>
        /// <param name="ToLocation">终点</param>
        /// <param name="TaskType">任务类型 I入库、O出库、S站台到站台、R移库</param>
        /// <param name="PallteCode">托盘号</param>
        public void JobStartOrEnd(string Status, string FormLocation, string ToLocation, string TaskType, string PallteCode);
 
 
        /// <summary>
        /// 托盘动作上报 工序907
        /// </summary>
        /// <param name="Status">状态 L指AGV将托盘叉到货叉上、U指AGV将托盘放到库位上</param>
        /// <param name="FormLocation">起点</param>
        /// <param name="ToLocation">终点</param>
        /// <param name="TaskType">任务类型 I入库、O出库、S站台到站台、R移库</param>
        /// <param name="PallteCode">托盘号</param>
        /// <returns></returns>
        public void PalletActionReport(string Status, string FormLocation, string ToLocation, string TaskType, string PallteCode);
 
        /// <summary>
        /// 作业完成上报 工序901
        /// </summary>
        /// <param name="FormLocation">起点</param>
        /// <param name="ToLocation">终点</param>
        /// <param name="TaskType">任务类型 I入库、O出库、S站台到站台、R移库</param>
        /// <param name="PallteCode">托盘号</param>
        /// <returns></returns>
        public void PalletActionReport(string FormLocation, string ToLocation, string TaskType, string PallteCode);
 
        /// <summary>
        /// 回复HOST909工序  工序910
        /// </summary>
        /// <param name="AgvStatus"></param>
        public void DeviceStatusReportResponse(HOSTAGVStatus AgvStatus, string X, string Y);
 
        /// <summary>
        /// 设备站台状态上报 工序936
        /// </summary>
        /// <param name="FormLocation">起点</param>
        /// <param name="ToLocation">终点</param>
        /// <param name="TaskType">任务类型 I入库、O出库、S站台到站台、R移库</param>
        /// <param name="PallteCode">托盘号</param>
        /// <returns></returns>
        public void DeviceStationStatusReport(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, List<InStationStatus> inStation, string sGetSeqNo);
 
        /// /// <summary>
        /// 重新获取货位信息 工序105
        /// </summary>
        /// <param name="FormLocation">起点</param>
        /// <param name="ToLocation">终点</param>
        /// <param name="TaskType">任务类型 I入库、O出库、S站台到站台、R移库</param>
        /// <param name="PallteCode">托盘号</param>
        public void RecreateGetLocation(string FormLocation, string ToLocation, string TaskType, string PallteCode);
 
        /// /// <summary>
        ///  异常上报  工序985
        /// </summary>
        /// <param name="FormLocation">起点</param>
        /// <param name="ToLocation">终点</param>
        /// <param name="Location">00表示AGV错误、01-08表示站台错误、99表示作业接收前数据错误</param>
        public void ErrorReport(string Trouble, string Level, string Location);
 
        /// <summary>
        /// 接收HOST工序103回馈响应  工序104
        /// </summary>
        /// <param name="Statues">0表示OK接收作业、1表示拒绝、9表示作业任务验证有误</param>
        /// <returns></returns>
        public void DeviceReceiveJobResponse(string Statues);
 
        /// /// <summary>
        /// 空出库 工序107
        /// </summary>
        /// <param name="FormLocation">起点</param>
        /// <param name="ToLocation">终点</param>
        /// <param name="TaskType">任务类型 I入库、O出库、S站台到站台、R移库</param>
        /// <param name="PallteCode">托盘号</param>
        public void EmptyOutBound(string FormLocation, string ToLocation, string PallteCode);
 
        /// <summary>
        /// 接收HOST 响应请求  工序102 回复工序101
        /// </summary>
        /// <param name="message"></param>
        public void ReceiveCommandResponse(string message);
 
        /// <summary>
        /// 接收HOST响应AGV作业开始或启动 工序906 回复工序905
        /// </summary>
        public void AGVJobStartOrEndResponse(string status, string message);
 
        /// <summary>
        /// 数据报告响应 工序902 回复工序901
        /// </summary>
        public void DataReportResponse(string message);
 
        /// <summary>
        /// HOST下发出库任务  工序103
        /// </summary>
        /// <param name="message"></param>
        public void HOSTOutBoundTask(string message);
 
        /// <summary>
        /// HOST设备状态获取  工序935
        /// </summary>
        /// <param name="message"></param>
        public void DeviceStationStatusInvite(string sSeqNo);
 
        /// <summary>
        /// 接收HOST重新分配货位  工序106
        /// </summary>
        /// <param name="message"></param>
        public void RecreateGetLocation(string message);
 
        /// <summary>
        ///  HOST空出库响应 工序108
        /// </summary>
        /// <param name="message"></param>
        public void EmptyOutBoundResponse(string message);
 
        /// <summary>
        /// HOST获取设备状态  工序909
        /// </summary>
        public void DeviceStatusReportRequest();
 
        /// <summary>
        /// 拼接报文
        /// </summary>
        /// <param name="Message"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public byte[] MakeStringToByteMsg(string Message);
 
        /// <summary>
        /// 获取CheckSum值
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public string GetCheckSum(byte[] data);
 
        public string GetListStringOutStation(List<OutStationStatus> outStationStatus);
        public string GetListStringInStation(List<InStationStatus> inStationStatus);
 
        public AGVStatusRespone GetAGVStatus();
 
        public string CapitalizeFirstLetter(string s);
        public StationStatus GetStationStatus(string stationName);
 
        //Dt_Task_Hty CreateHistoricalTask(Dt_Task task, bool isHand = false);
        //bool Delete(int id);
        //WebResponseContent TaskMoveHty(Dt_Task task);
        //WebResponseContent CompleteOutboundTask(Dt_Task task);
        //WebResponseContent CompleteInboundTask(Dt_Task task);
        //WebResponseContent CompleteRelocationboundTask(Dt_Task task);
 
        public string InsertHyphenEveryTwoChars(string input);
 
    }
}