From 6c8b4c256053c61e848c3f9dd494feebf6ef0cea Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <1247017146@qq.com>
Date: 星期三, 21 五月 2025 14:25:50 +0800
Subject: [PATCH] 1
---
/dev/null | 1006 -----------------------------------------------
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json | 4
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/AGVService.cs | 80 ++-
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/SocketClientService.cs | 129 +++--
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/AGV/IAGVService.cs | 3
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Socket/ParseMessage.cs | 3
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/WIDESEA_StoragIntegrationServices.csproj | 1
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/AGVController.cs | 23
项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo | 0
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/ISocketClientServices.cs | 6
10 files changed, 148 insertions(+), 1,107 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo"
index a7edf7d..91c3958 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Socket/ParseMessage.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Socket/ParseMessage.cs"
index 3459c27..1511bdd 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Socket/ParseMessage.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Socket/ParseMessage.cs"
@@ -153,7 +153,8 @@
/// <summary>
/// 鏄惁鍚敤
/// </summary>
- public string StationEnable { get; set; }
+ public string WorkstationO { get; set; }
+ public string WorkstationT { get; set; }
}
public class Connection
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/AGV/IAGVService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/AGV/IAGVService.cs"
index edcbd9f..e461c8d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/AGV/IAGVService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/AGV/IAGVService.cs"
@@ -16,7 +16,8 @@
WebResponseContent AGVStartOrEndJob(string Status, int TaskNum);
//public WebResponseContent PallteLoadOrUnLoad(string Message, string PallteCode);
- WebResponseContent DeviceErrorResponse(string Message,int TaskNum);
+ WebResponseContent DeviceErrorResponse(string Message, int TaskNum);
+
WebResponseContent RequestOutTask(string PalletCode, string SourceAddress, string TargetAddress);
WebResponseContent InTask(string PalletCode, string SourceAddress, string TargetAddress);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/ISocketClientServices.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/ISocketClientServices.cs"
index 9f32bed..2c2d481 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/ISocketClientServices.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/ISocketClientServices.cs"
@@ -19,7 +19,7 @@
/// <param name="IP"></param>
/// <param name="Port"></param>
/// <returns></returns>
- void ConnectServer(string IP, int Port);
+ void ConnectServer(string IP, int Port);
/// <summary>
/// 鍙戦��
@@ -107,7 +107,7 @@
/// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
/// <param name="PallteCode">鎵樼洏鍙�</param>
/// <returns></returns>
- public void DeviceStationStatusReport(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, List<InStationStatus> inStation);
+ public void DeviceStationStatusReport(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, List<InStationStatus> inStation, string sGetSeqNo);
/// /// <summary>
/// 閲嶆柊鑾峰彇璐т綅淇℃伅 宸ュ簭105
@@ -168,7 +168,7 @@
/// HOST璁惧鐘舵�佽幏鍙� 宸ュ簭935
/// </summary>
/// <param name="message"></param>
- public void DeviceStationStatusInvite();
+ public void DeviceStationStatusInvite(string sSeqNo);
/// <summary>
/// 鎺ユ敹HOST閲嶆柊鍒嗛厤璐т綅 宸ュ簭106
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/IWorkTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/IWorkTaskService.cs"
deleted file mode 100644
index 26872f7..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/IWorkTaskService.cs"
+++ /dev/null
@@ -1,199 +0,0 @@
-锘縰sing 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_StorageSocketServices;
-
-namespace WIDESEA_IStorageSocketServices
-{
- public interface IWorkTaskService : IDependency
- {
- /// <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">鐘舵�乗銆丷杩愯</param>
- /// <returns></returns>
- public void DeviceStateReport(string Status);
-
- /// <summary>
- /// 璁惧鐘舵�佷笂鎶� 宸ュ簭917
- /// </summary>
- /// <param name="state">鐘舵�乗銆丆ontrolMode鑷姩銆丮aintenanceMode鎵嬪姩</param>
- public void DeviceAutoStatusReport(string Status);
-
- /// /// <summary>
- /// 浣滀笟寮�濮嬫垨缁撴潫 宸ュ簭905
- /// </summary>
- /// <param name="Status">鐘舵�� L鎸嘇GV灏嗘墭鐩樺弶鍒拌揣鍙変笂銆乁鎸嘇GV灏嗘墭鐩樻斁鍒板簱浣嶄笂</param>
- /// <param name="FormLocation">璧风偣</param>
- /// <param name="ToLocation">缁堢偣</param>
- /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</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鎸嘇GV灏嗘墭鐩樺弶鍒拌揣鍙変笂銆乁鎸嘇GV灏嗘墭鐩樻斁鍒板簱浣嶄笂</param>
- /// <param name="FormLocation">璧风偣</param>
- /// <param name="ToLocation">缁堢偣</param>
- /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</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鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</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鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
- /// <param name="PallteCode">鎵樼洏鍙�</param>
- /// <returns></returns>
- public void DeviceStationStatusReport(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, List<InStationStatus> inStation);
-
- /// /// <summary>
- /// 閲嶆柊鑾峰彇璐т綅淇℃伅 宸ュ簭105
- /// </summary>
- /// <param name="FormLocation">璧风偣</param>
- /// <param name="ToLocation">缁堢偣</param>
- /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</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鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</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();
-
- /// <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);
- }
-}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/AGVService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/AGVService.cs"
index 3c643e1..0a6e45e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/AGVService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/AGVService.cs"
@@ -27,11 +27,11 @@
private readonly ISys_ConfigService _configService;
private readonly IDt_StationManagerRepository _stationManagerRepository;
private readonly LogFactory LogFactory = new LogFactory();
- private readonly ISocketClientServices _Socket;
+ public SocketClientService _Socket { get; set; }
private readonly IMapper _mapper;
private readonly IDt_DeviceInfoRepository _deviceInfoRepository;
- public AGVService(ILocationInfoRepository locationRepository,IDt_TaskRepository taskRepository,IStockInfoRepository stockInfoRepository, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository,IDt_DeviceInfoRepository deviceInfoRepository, IMapper mapper, ISocketClientServices socketClientServices)
+ public AGVService(ILocationInfoRepository locationRepository, IDt_TaskRepository taskRepository, IStockInfoRepository stockInfoRepository, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository, IDt_DeviceInfoRepository deviceInfoRepository, IMapper mapper, SocketClientService socketClientService)
{
_locationRepository = locationRepository;
BaseDal = taskRepository;
@@ -40,7 +40,7 @@
_stationManagerRepository = stationManagerRepository;
_deviceInfoRepository = deviceInfoRepository;
_mapper = mapper;
- _Socket= socketClientServices;
+ _Socket = socketClientService;
}
#region 澶栭儴鎺ュ彛鏂规硶
@@ -67,38 +67,39 @@
return content.Error("璇ユ墭鐩樺凡瀛樺湪浠诲姟");
}
List<OutStationStatus> outStationStatus = new List<OutStationStatus>();
- foreach (var item in Outstation)
+ StationStatus stationOut = _Socket.GetStationStatus("B001");
+ var taskOutStationO = BaseDal.QueryFirst(x => x.SourceAddress == "B001::1" || x.TargetAddress == "B001::1");
+ var taskOutStationT = BaseDal.QueryFirst(x => x.SourceAddress == "B001::2" || x.TargetAddress == "B001::2");
+ outStationStatus.Add(new OutStationStatus()
{
- StationStatus station = _Socket.GetStationStatus(item.stationName);
- var taskStation = BaseDal.QueryFirst(x => x.SourceAddress == item.stationName || x.TargetAddress == item.stationName);
- outStationStatus.Add(new OutStationStatus()
- {
- StationName = item.HostName,
- StationEnable = station.StationEnable == "1" ? "0" : "1",
- IsDistributionTask = taskStation == null ? "0" : "1",
- Spare1 = "00"
- });
- }
+ StationName = "04",
+ StationEnable = stationOut.WorkstationO == "1" ? "0" : "1",
+ IsDistributionTask = taskOutStationO == null ? "0" : "1",
+ Spare1 = "00"
+ });
+ outStationStatus.Add(new OutStationStatus()
+ {
+ StationName = "03",
+ StationEnable = stationOut.WorkstationT == "1" ? "0" : "1",
+ IsDistributionTask = taskOutStationT == null ? "0" : "1",
+ Spare1 = "00"
+ });
AGVStatusRespone status = _Socket.GetAGVStatus();
HOSTAGVStatus AgvStatus = new HOSTAGVStatus()
{
RuntimeStatus = _Socket.CapitalizeFirstLetter(status.RuntimeStatus),
- AutoStatus = status.AutoStatus== "MaintenanceMode"?"1":"0",
+ AutoStatus = status.AutoStatus == "MaintenanceMode" ? "1" : "0",
Ready = status.AutoStatus == "MaintenanceMode" ? "0" : "1",
};
InStationStatus inStationStatus = new InStationStatus()
{
- StationName = Instation.stationName,
+ StationName = Instation.HostName,
StationEnable = "0",
IsDistributionTask = "0",
- PallteCode = task.PalletCode,
+ PallteCode = PalletCode,
};
_Socket.DeviceRequestInbound(AgvStatus, outStationStatus, inStationStatus);
return content.OK("宸蹭笅鍙戝叆搴撲换鍔�");
- }
- catch (Autofac.Core.DependencyResolutionException ex)
- {
- return content.Error(ex.Message);
}
catch (Exception ex)
{
@@ -161,12 +162,12 @@
switch (Status.AutoStatus)
{
case "MaintenanceMode":
- //鎵嬪姩
+ //杩愯
_Socket.DeviceAutoStatusReport("1");
Thread.Sleep(500);
break;
case "ControlMode":
- //鑷姩
+ //鍏虫満
_Socket.DeviceAutoStatusReport("0");
Thread.Sleep(500);
break;
@@ -191,7 +192,7 @@
}
}
-
+
public WebResponseContent AGVStartOrEndJob(string Status, int TaskNum)
{
WebResponseContent content = new WebResponseContent();
@@ -293,7 +294,7 @@
}
- public WebResponseContent DeviceErrorResponse(string Message,int TaskNum)
+ public WebResponseContent DeviceErrorResponse(string Message, int TaskNum)
{
WebResponseContent content = new WebResponseContent();
try
@@ -301,7 +302,7 @@
var task = BaseDal.QueryFirst(x => x.TaskNum == TaskNum);
if (task != null)
{
- switch(Message)
+ switch (Message)
{
case "RepeatInbound":
@@ -309,7 +310,7 @@
case "EmptyOutbound":
break;
- default:break;
+ default: break;
}
}
return content.OK();
@@ -319,6 +320,30 @@
return content.Error(ex.Message);
}
}
+
+ public WebResponseContent add()
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ task_call task_Call = new task_call()
+ {
+ d_task_type = 2,
+ d_floor = 1,
+ d_involed1 = "000004",
+ d_involed2 = "450101",
+ d_involed5 = 11,
+ };
+
+ var x = SqlSugarHelper.DbAGV.Insertable(task_Call).ExecuteCommand();
+ return content.OK(data: x);
+ }
+ catch (Exception ex)
+ {
+ return content.Error(ex.Message);
+ }
+ }
+
public WebResponseContent RequestOutTask(string PalletCode, string SourceAddress, string TargetAddress)
{
WebResponseContent content = new WebResponseContent();
@@ -395,6 +420,7 @@
return content.Error(ex.Message);
}
}
+
public WebResponseContent GetAGVStatus()
{
try
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/WIDESEA_StoragIntegrationServices.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/WIDESEA_StoragIntegrationServices.csproj"
index cf16f6a..17616aa 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/WIDESEA_StoragIntegrationServices.csproj"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/WIDESEA_StoragIntegrationServices.csproj"
@@ -14,6 +14,7 @@
<ProjectReference Include="..\WIDESEA_IStoragIntegrationServices\WIDESEA_IStoragIntegrationServices.csproj" />
<ProjectReference Include="..\WIDESEA_Services\WIDESEA_Services.csproj" />
<ProjectReference Include="..\WIDESEA_StorageBasicServices\WIDESEA_StorageBasicServices.csproj" />
+ <ProjectReference Include="..\WIDESEA_StorageSocketServices\WIDESEA_StorageSocketServices.csproj" />
</ItemGroup>
</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/SocketClientService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/SocketClientService.cs"
index 43d6f4f..8caa053 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/SocketClientService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/SocketClientService.cs"
@@ -22,7 +22,6 @@
using WIDESEA_Core.BaseRepository;
using AutoMapper;
using Mapster;
-using System.Threading.Tasks;
namespace WIDESEA_StorageSocketServices
{
@@ -45,9 +44,8 @@
private readonly ILocationInfoRepository _locationRepository;
- public SocketClientService(/*IDt_TaskService taskService*/IDt_TaskRepository TaskRepository, IDt_StationManagerRepository stationManagerRepository, ILogger<SocketClientService> logger)
+ public SocketClientService(IDt_TaskRepository TaskRepository, IDt_StationManagerRepository stationManagerRepository, ILogger<SocketClientService> logger)
{
- //_taskService = taskService;
BaseDal = TaskRepository;
_stationManagerRepository = stationManagerRepository;
_logger = logger;
@@ -143,7 +141,7 @@
}
else
{
- LogFactory.GetLog("Socket鎺ユ敹鏁版嵁").Error(true, "鏃犳晥鎶ユ枃鏍煎紡");
+ LogFactory.GetLog("Socket鎺ユ敹鏁版嵁").Error(true, $"鏃犳晥鎶ユ枃鏍煎紡:{JsonConvert.SerializeObject(Y)}");
}
}
catch
@@ -168,7 +166,7 @@
DataReportResponse(x.Substring(21, 1));
break;
case "935":
- DeviceStationStatusInvite();
+ DeviceStationStatusInvite(x.Substring(15, 5));
break;
case "103":
HOSTOutBoundTask(x);
@@ -230,7 +228,7 @@
public void clientSend(byte[] buffer)
{
var Y = Encoding.UTF8.GetString(buffer);
- LogFactory.GetLog("Socket鍙戦�佹暟鎹�").Error(true, Y);
+ LogFactory.GetLog("Socket鍙戦�佹暟鎹�").Info(true, Y);
socket.Send(buffer);
}
@@ -275,7 +273,7 @@
/// <summary>
/// 璁惧缂栧彿
/// </summary>
- public const string DeviceID = "0000000001";
+ public const string DeviceID = "0013130010";
/// <summary>
/// 鍙戦�佷笉闇�瑕佸洖澶�
/// </summary>
@@ -338,7 +336,7 @@
{
try
{
- string str = SendandReply + "101" + BaseDal.GetSeqNo().Result.ToString() + GetFieldsAsString(Agvstatus) + GetListStringOutStation(outStations) + "1" + GetFieldsAsString(inStation);
+ string str = SendandReply + "101" + BaseDal.GetSeqNo().Result.ToString("D5") + GetFieldsAsString(Agvstatus) + GetListStringOutStation(outStations) + "1" + GetFieldsAsString(inStation);
clientSend(MakeStringToByteMsg(str));
}
catch (Exception ex)
@@ -356,7 +354,7 @@
{
try
{
- string str = SendandReply + "925" + BaseDal.GetSeqNo().Result.ToString();
+ string str = SendandReply + "925" + BaseDal.GetSeqNo().Result.ToString("D5");
clientSend(MakeStringToByteMsg(str));
}
catch (Exception ex)
@@ -374,7 +372,7 @@
{
try
{
- string str = SendNotReply + "915" + BaseDal.GetSeqNo().Result.ToString() + Command;
+ string str = SendNotReply + "915" + BaseDal.GetSeqNo().Result.ToString("D5") + Command;
clientSend(MakeStringToByteMsg(str));
}
catch (Exception ex)
@@ -393,7 +391,7 @@
{
try
{
- string str = SendNotReply + "913" + BaseDal.GetSeqNo().Result.ToString() + Status;
+ string str = SendNotReply + "913" + BaseDal.GetSeqNo().Result.ToString("D5") + Status;
clientSend(MakeStringToByteMsg(str));
}
catch (Exception ex)
@@ -412,7 +410,7 @@
{
try
{
- string str = SendNotReply + "917" + BaseDal.GetSeqNo().Result.ToString() + Status;
+ string str = SendNotReply + "917" + BaseDal.GetSeqNo().Result.ToString("D5") + Status;
clientSend(MakeStringToByteMsg(str));
}
catch (Exception ex)
@@ -434,7 +432,7 @@
{
try
{
- string str = SendandReply + "905" + BaseDal.GetSeqNo().Result.ToString() + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
+ string str = SendandReply + "905" + BaseDal.GetSeqNo().Result.ToString("D5") + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
clientSend(MakeStringToByteMsg(str));
}
catch (Exception ex)
@@ -457,7 +455,7 @@
{
try
{
- string str = SendNotReply + "907" + BaseDal.GetSeqNo().Result.ToString() + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
+ string str = SendNotReply + "907" + BaseDal.GetSeqNo().Result.ToString("D5") + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
clientSend(MakeStringToByteMsg(str));
}
catch (Exception ex)
@@ -479,7 +477,7 @@
{
try
{
- string str = SendandReply + "901" + BaseDal.GetSeqNo().Result.ToString() + "0" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
+ string str = SendandReply + "901" + BaseDal.GetSeqNo().Result.ToString("D5") + "0" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
clientSend(MakeStringToByteMsg(str));
}
catch (Exception ex)
@@ -497,11 +495,14 @@
/// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
/// <param name="PallteCode">鎵樼洏鍙�</param>
/// <returns></returns>
- public void DeviceStationStatusReport(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, List<InStationStatus> inStation)
+ public void DeviceStationStatusReport(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, List<InStationStatus> inStation, string sGetSeqNo)
{
try
{
- string str = SendNotReply + "936" + BaseDal.GetSeqNo().Result.ToString() + GetFieldsAsString(Agvstatus) + GetListStringOutStation(outStations) + GetListStringInStation(inStation);
+ var agvstatus = GetFieldsAsString(Agvstatus);
+ var outstation = GetListStringOutStation(outStations);
+ var instation = GetListStringInStation(inStation);
+ string str = SendNotReply + "936" + sGetSeqNo + agvstatus + outstation + OutStationSpare2 + "2" + instation;
clientSend(MakeStringToByteMsg(str));
}
catch (Exception ex)
@@ -522,7 +523,7 @@
{
try
{
- string str = SendandReply + "105" + BaseDal.GetSeqNo().Result.ToString() + "R" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
+ string str = SendandReply + "105" + BaseDal.GetSeqNo().Result.ToString("D5") + "R" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
clientSend(MakeStringToByteMsg(str));
}
catch (Exception ex)
@@ -542,7 +543,7 @@
{
try
{
- string str = SendNotReply + "985" + BaseDal.GetSeqNo().Result.ToString() + Trouble + Level + Location;
+ string str = SendNotReply + "985" + BaseDal.GetSeqNo().Result.ToString("D5") + Trouble + Level + Location;
clientSend(MakeStringToByteMsg(str));
}
catch (Exception ex)
@@ -561,7 +562,7 @@
{
try
{
- string str = SendNotReply + "104" + BaseDal.GetSeqNo().Result.ToString() + Statues;
+ string str = SendNotReply + "104" + BaseDal.GetSeqNo().Result.ToString("D5") + Statues;
clientSend(MakeStringToByteMsg(str));
}
catch (Exception ex)
@@ -582,7 +583,7 @@
{
try
{
- string str = SendandReply + "107" + BaseDal.GetSeqNo().Result.ToString() + "1" + JobOrderID + priority + FormLocation + ToLocation + "O" + TrayCnt + PallteCode;
+ string str = SendandReply + "107" + BaseDal.GetSeqNo().Result.ToString("D5") + "1" + JobOrderID + priority + FormLocation + ToLocation + "O" + TrayCnt + PallteCode;
clientSend(MakeStringToByteMsg(str));
}
catch (Exception ex)
@@ -598,7 +599,8 @@
/// <param name="AgvStatus"></param>
public void DeviceStatusReportResponse(HOSTAGVStatus AgvStatus, string X, string Y)
{
- string str = SendNotReply + "910" + BaseDal.GetSeqNo().Result.ToString() + "1" + GetFieldsAsString(AgvStatus) + X + Y;
+ string str = SendNotReply + "910" + BaseDal.GetSeqNo().Result.ToString("D5") + GetFieldsAsString(AgvStatus) + X + Y;
+ clientSend(MakeStringToByteMsg(str));
}
#endregion
@@ -783,44 +785,47 @@
/// HOST璁惧鐘舵�佽幏鍙� 宸ュ簭935
/// </summary>
/// <param name="message"></param>
- public void DeviceStationStatusInvite()
+ public void DeviceStationStatusInvite(string sSeqNo)
{
try
{
//鍥炲936
- List<Dt_StationManager> Instation = _stationManagerRepository.QueryData(x => x.stationType == 1).ToList();
- List<Dt_StationManager> Outstation = _stationManagerRepository.QueryData(x => x.stationType == 2).ToList();
List<OutStationStatus> outStationStatus = new List<OutStationStatus>();
List<InStationStatus> inStationStatus = new List<InStationStatus>();
- foreach (var item in Instation)
+ StationStatus stationIn = GetStationStatus("B002");
+
+ inStationStatus.Add(new InStationStatus()
{
- inStationStatus.Add(new InStationStatus()
- {
- StationName = item.stationName,
- StationEnable = item.stationStatus,
- IsDistributionTask = item.stationHasTask,
- PallteCode = "0000000000",
- });
- }
- foreach (var item in Outstation)
+ StationName = "02",
+ StationEnable = stationIn.WorkstationO == "1" ? "0" : "1",
+ IsDistributionTask = "0",
+ PallteCode = "0000000000",
+ });
+ inStationStatus.Add(new InStationStatus()
{
- StationStatus station = GetStationStatus(item.stationName);
- var taskStation = BaseDal.QueryFirst(x => x.SourceAddress == item.stationName || x.TargetAddress == item.stationName);
- outStationStatus.Add(new OutStationStatus()
- {
- StationName = item.HostName,
- StationEnable = station.StationEnable == "1" ? "0" : "1",
- IsDistributionTask = taskStation == null ? "0" : "1",
- Spare1 = "00"
- });
- //outStationStatus.Add(new OutStationStatus()
- //{
- // StationName = item.stationName,
- // StationEnable = item.stationStatus,
- // IsDistributionTask = item.stationHasTask,
- // Spare1 = "00"
- //});
- }
+ StationName = "01",
+ StationEnable = stationIn.WorkstationT == "1" ? "0" : "1",
+ IsDistributionTask = "0",
+ PallteCode = "0000000000",
+ });
+
+ StationStatus stationOut = GetStationStatus("B001");
+ var taskOutStationO = BaseDal.QueryFirst(x => x.SourceAddress == "B001::1" || x.TargetAddress == "B001::1");
+ var taskOutStationT = BaseDal.QueryFirst(x => x.SourceAddress == "B001::2" || x.TargetAddress == "B001::2");
+ outStationStatus.Add(new OutStationStatus()
+ {
+ StationName = "04",
+ StationEnable = stationOut.WorkstationO == "1" ? "0" : "1",
+ IsDistributionTask = taskOutStationO == null ? "0" : "1",
+ Spare1 = "00"
+ });
+ outStationStatus.Add(new OutStationStatus()
+ {
+ StationName = "03",
+ StationEnable = stationOut.WorkstationT == "1" ? "0" : "1",
+ IsDistributionTask = taskOutStationT == null ? "0" : "1",
+ Spare1 = "00"
+ });
AGVStatusRespone status = GetAGVStatus();
HOSTAGVStatus AgvStatus = new HOSTAGVStatus()
{
@@ -828,7 +833,7 @@
AutoStatus = status.AutoStatus == "MaintenanceMode" ? "1" : "0",
Ready = status.AutoStatus == "MaintenanceMode" ? "0" : "1",
};
- DeviceStationStatusReport(AgvStatus, outStationStatus, inStationStatus);
+ DeviceStationStatusReport(AgvStatus, outStationStatus, inStationStatus, sSeqNo);
}
catch (Exception)
{
@@ -900,6 +905,7 @@
Ready = status.AutoStatus == "MaintenanceMode" ? "0" : "1",
};
string axis = "000000";
+
DeviceStatusReportResponse(AgvStatus, axis, axis);
}
#endregion
@@ -917,7 +923,6 @@
{
byte[] byt = Encoding.UTF8.GetBytes(Message); // 浣跨敤 UTF-8 閬垮厤缂栫爜闂
- LogFactory.GetLog("璇锋眰鎵樼洏浠诲姟").Error(true, BitConverter.ToString(byt));
string checksum = GetCheckSum(byt);
string str = Message + checksum;
@@ -939,6 +944,8 @@
// 澶嶅埗鍘熷鏁扮粍鐨勬墍鏈夋暟鎹埌鏂版暟缁勭殑涓棿閮ㄥ垎
Array.Copy(buffer, 0, newArray, 1, buffer.Length);
+ //var parseMessage = GetParse(str);
+ LogFactory.GetLog("Socket鍙戦�佹姤鏂�").Info(true, str);
return newArray;
}
catch (Exception ex)
@@ -946,17 +953,13 @@
throw new Exception(ex.Message);
}
}
- //public bool IsOnline()
- //{
-
- //}
public string GetListStringOutStation(List<OutStationStatus> outStationStatus)
{
return string.Join("", outStationStatus.Select(status => $"{status.StationName}{status.StationEnable}{status.IsDistributionTask}{status.Spare1}"));
}
public string GetListStringInStation(List<InStationStatus> inStationStatus)
{
- return string.Join("", inStationStatus.Select(status => $"{status.StationName}{status.StationEnable}{status.IsDistributionTask}{status.Spare1}"));
+ return string.Join("", inStationStatus.Select(status => $"{status.StationName}{status.StationEnable}{status.IsDistributionTask}{status.IsHasPallte}{status.Spare1}{status.StationPallteCount}{status.PallteCode}{status.Spare2}"));
}
/// <summary>
/// 灏嗗璞″�煎嚟鎷兼帴
@@ -1050,6 +1053,8 @@
}
else
{
+
+
Console.WriteLine("鏍¢獙澶辫触锛�");
return null;
}
@@ -1186,7 +1191,7 @@
}
public AGVStatusRespone GetAGVStatus()
{
- string urlnew = url + "/ilns/AGV/getAgvState";
+ string urlnew = url + "/ilns/AGV/getState";
var result = HttpsClient.PostAsync(urlnew, JsonConvert.DeserializeObject<Dictionary<string, object>>(new { getStatus = "1" }.ToJson())).Result;
return JsonConvert.DeserializeObject<AGVStatusRespone>(result.ToString());
@@ -1194,8 +1199,8 @@
public StationStatus GetStationStatus(string stationName)
{
- string urlnew = url + "/ilns/strl/getState";
- var result = HttpsClient.PostAsync(urlnew, JsonConvert.DeserializeObject<Dictionary<string, object>>(new { strlName = stationName }.ToJson())).Result;
+ string urlnew = url + "/ilns/ctrl/getState";
+ var result = HttpsClient.PostAsync(urlnew, JsonConvert.DeserializeObject<Dictionary<string, object>>(new { ctrlName = "B001" }.ToJson())).Result;
return JsonConvert.DeserializeObject<StationStatus>(result.ToString());
}
public string CapitalizeFirstLetter(string s)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/WorkTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/WorkTaskService.cs"
deleted file mode 100644
index 59b2d03..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/WorkTaskService.cs"
+++ /dev/null
@@ -1,1006 +0,0 @@
-锘縰sing AngleSharp.Dom;
-using AutoMapper;
-using LogLibrary.Log;
-using Newtonsoft.Json;
-using SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net.NetworkInformation;
-using System.Reflection;
-using System.Reflection.Metadata;
-using System.Text;
-using System.Threading.Tasks;
-using WIDESEA_Common;
-using WIDESEA_Core;
-using WIDESEA_Core.BaseRepository;
-using WIDESEA_Core.Enums;
-using WIDESEA_Core.Helper;
-using WIDESEA_DTO;
-using WIDESEA_DTO.AGV;
-using WIDESEA_IStorageBasicRepository;
-using WIDESEA_IStorageSocketServices;
-using WIDESEA_IStorageTaskRepository;
-using WIDESEA_IStorageTaskServices;
-using WIDESEA_Model.Models;
-using WIDESEA_Model.Models.AGV;
-using WIDESEA_StorageTaskRepository;
-using WIDESEAWCS_BasicInfoRepository;
-using WIDESEAWCS_Model.Models;
-using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
-
-namespace WIDESEA_StorageSocketServices
-{
- public class WorkTaskService:IWorkTaskService
- {
- private readonly IDt_TaskRepository _taskRepository;
- private readonly IDt_Task_HtyRepository _task_HtyRepository;
- private readonly IDt_TaskService _taskService;
- private readonly IMapper _mapper;
- private readonly IStockInfoRepository _stockInfoRepository;
- private readonly IUnitOfWorkManage _unitOfWorkManage;
- private readonly ILocationInfoRepository _locationRepository;
- private readonly IDt_StationManagerRepository _stationManagerRepository;
- private readonly LogFactory LogFactory = new LogFactory();
- private readonly ISocketClientServices _socket;
- string url = AppSettings.Configuration["AGVIP"];
- public WorkTaskService(IDt_TaskRepository dt_TaskRepository, ISocketClientServices socket, IDt_StationManagerRepository stationManagerRepository,IDt_TaskService taskService, IDt_Task_HtyRepository dt_Task_HtyRepository,ILocationInfoRepository locationRepository, IMapper mapper,IUnitOfWorkManage unitOfWorkManage,IStockInfoRepository stockInfoRepository)
- {
- _taskRepository = dt_TaskRepository;
- _socket = socket;
- _stationManagerRepository = stationManagerRepository;
- _taskService = taskService;
- _task_HtyRepository = dt_Task_HtyRepository;
- _locationRepository = locationRepository;
- _mapper = mapper;
- _unitOfWorkManage = unitOfWorkManage;
- _stockInfoRepository = stockInfoRepository;
- }
-
- #region 甯搁噺
- public const byte STX = 2;
- public const byte ETX = 3;
-
-
- /// <summary>
- /// 浣滀笟浠诲姟ID 棰勭暀
- /// </summary>
- public const string JobOrderID = "0000000000000000";
-
- /// <summary>
- /// 浼樺厛绾� 棰勭暀
- /// </summary>
- public const string priority = "1";
-
- /// <summary>
- /// 鎵樼洏涓暟 棰勭暀
- /// </summary>
- public const string TrayCnt = "1";
-
- /// <summary>
- /// 璁惧缂栧彿
- /// </summary>
- public const string DeviceID = "0000000001";
- /// <summary>
- /// 鍙戦�佷笉闇�瑕佸洖澶�
- /// </summary>
- public const string SendNotReply = "1" + DeviceID + "0";
- /// <summary>
- /// 鍙戦�侀渶瑕佸洖澶�
- /// </summary>
- public const string SendandReply = "1" + DeviceID + "1";
- /// <summary>
- /// 鍑哄簱绔欏彴鍚敤宸插垎閰嶄换鍔�
- /// </summary>
- public const string OutBoundStationEnableDistribution = "1000";
- /// <summary>
- /// 鍑哄簱绔欏彴鍚敤鏈垎閰嶄换鍔�
- /// </summary>
- public const string OutBoundStationEnableUndistributed = "1100";
- /// <summary>
- /// 鍑哄簱绔欏彴绂佺敤
- /// </summary>
- public const string OutBoundStationDisabled = "0000";
- /// <summary>
- /// 鍏ュ簱绔欏彴涓暟
- /// </summary>
- public const string InBoundStationCount = "1";
-
- /// <summary>
- /// 鍏ュ簱绔欏彴鐘舵��
- /// </summary>
- public const string InBoundStationStatus = "1010001";
- /// <summary>
- /// 棰勭暀
- /// </summary>
- public const string Spare1 = "0000000000000000000000000000000000000000000000000000000000000000000000";
-
- /// <summary>
- /// 鍑哄簱绔欏彴棰勭暀
- /// </summary>
- public const string OutStationSpare2 = "000000000000";
-
- /// <summary>
- /// 棰勭暀
- /// </summary>
- public const string Spare3 = "000";
-
- /// <summary>
- /// 鎵樼洏鍙�
- /// </summary>
- public const string Spare4 = "0000000000";
-
- #endregion
-
- #region WMS涓嬪彂HOST鏂规硶
-
- /// <summary>
- /// 璁惧璇锋眰鍏ュ簱 宸ュ簭101
- /// </summary>
- /// <param name="PallteCode">鎵樼洏鍙�</param>
- /// <param name="InStation">鍏ュ簱绔欏彴</param>
- public void DeviceRequestInbound(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, InStationStatus inStation)
- {
- try
- {
- string str = SendandReply + "101" + _taskRepository.GetSeqNo().Result.ToString() + GetFieldsAsString(Agvstatus) + GetListStringOutStation(outStations) +"1" + GetFieldsAsString(inStation);
- _socket.clientSend(MakeStringToByteMsg(str));
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
- }
-
- /// <summary>
- /// 璇锋眰閫氳 宸ュ簭925
- /// </summary>
- /// <param name="PallteCode">鎵樼洏鍙�</param>
- /// <param name="InStation">鍏ュ簱绔欏彴</param>
- public void RequestCommunication()
- {
- try
- {
- string str = SendandReply + "925" + _taskRepository.GetSeqNo().Result.ToString();
- _socket.clientSend(MakeStringToByteMsg(str));
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
- }
-
- /// <summary>
- /// 涓嶅厑璁镐笅鍙戜换鍔� 宸ュ簭915
- /// </summary>
- /// <param name="Command">鍛戒护</param>
- /// <returns></returns>
- public void JobReady(string Command)
- {
- try
- {
- string str = SendNotReply + "915" + _taskRepository.GetSeqNo().Result.ToString() + Command;
- _socket.clientSend(MakeStringToByteMsg(str));
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
-
- }
-
- /// <summary>
- /// 璁惧鐘舵�佷笂鎶� 宸ュ簭913
- /// </summary>
- /// <param name="state">鐘舵�乗銆丷杩愯</param>
- /// <returns></returns>
- public void DeviceStateReport(string Status)
- {
- try
- {
- string str = SendNotReply + "913" + _taskRepository.GetSeqNo().Result.ToString() + Status;
- _socket.clientSend(MakeStringToByteMsg(str));
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
-
- }
-
- /// <summary>
- /// 璁惧鐘舵�佷笂鎶� 宸ュ簭917
- /// </summary>
- /// <param name="state">鐘舵�乗銆丷杩愯</param>
- /// <returns></returns>
- public void DeviceAutoStatusReport(string Status)
- {
- try
- {
- string str = SendNotReply + "917" + _taskRepository.GetSeqNo().Result.ToString() + Status;
- _socket.clientSend(MakeStringToByteMsg(str));
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
-
- }
-
- /// /// <summary>
- /// 浣滀笟寮�濮嬫垨缁撴潫 宸ュ簭905
- /// </summary>
- /// <param name="Status">鐘舵�� L鎸嘇GV灏嗘墭鐩樺弶鍒拌揣鍙変笂銆乁鎸嘇GV灏嗘墭鐩樻斁鍒板簱浣嶄笂</param>
- /// <param name="FormLocation">璧风偣</param>
- /// <param name="ToLocation">缁堢偣</param>
- /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
- /// <param name="PallteCode">鎵樼洏鍙�</param>
- public void JobStartOrEnd(string Status, string FormLocation, string ToLocation, string TaskType, string PallteCode)
- {
- try
- {
- string str = SendandReply + "905" + _taskRepository.GetSeqNo().Result.ToString() + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
- _socket.clientSend(MakeStringToByteMsg(str));
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
-
- }
-
- /// <summary>
- /// 鎵樼洏鍔ㄤ綔涓婃姤 宸ュ簭907
- /// </summary>
- /// <param name="Status">鐘舵�� L鎸嘇GV灏嗘墭鐩樺弶鍒拌揣鍙変笂銆乁鎸嘇GV灏嗘墭鐩樻斁鍒板簱浣嶄笂</param>
- /// <param name="FormLocation">璧风偣</param>
- /// <param name="ToLocation">缁堢偣</param>
- /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
- /// <param name="PallteCode">鎵樼洏鍙�</param>
- /// <returns></returns>
- public void PalletActionReport(string Status, string FormLocation, string ToLocation, string TaskType, string PallteCode)
- {
- try
- {
- string str = SendNotReply + "907" + _taskRepository.GetSeqNo().Result.ToString() + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
- _socket.clientSend(MakeStringToByteMsg(str));
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
-
- }
-
- /// <summary>
- /// 浣滀笟瀹屾垚涓婃姤 宸ュ簭901
- /// </summary>
- /// <param name="FormLocation">璧风偣</param>
- /// <param name="ToLocation">缁堢偣</param>
- /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
- /// <param name="PallteCode">鎵樼洏鍙�</param>
- /// <returns></returns>
- public void PalletActionReport(string FormLocation, string ToLocation, string TaskType, string PallteCode)
- {
- try
- {
- string str = SendandReply + "901" + _taskRepository.GetSeqNo().Result.ToString() + "0" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
- _socket.clientSend(MakeStringToByteMsg(str));
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
-
- }
-
- /// <summary>
- /// 璁惧绔欏彴鐘舵�佷笂鎶� 宸ュ簭936
- /// </summary>
- /// <param name="FormLocation">璧风偣</param>
- /// <param name="ToLocation">缁堢偣</param>
- /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
- /// <param name="PallteCode">鎵樼洏鍙�</param>
- /// <returns></returns>
- public void DeviceStationStatusReport(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, List<InStationStatus> inStation)
- {
- try
- {
- string str = SendNotReply + "936" + _taskRepository.GetSeqNo().Result.ToString() + GetFieldsAsString(Agvstatus) + GetListStringOutStation(outStations) + GetListStringInStation(inStation);
- _socket.clientSend(MakeStringToByteMsg(str));
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
-
- }
-
- /// /// <summary>
- /// 閲嶆柊鑾峰彇璐т綅淇℃伅 宸ュ簭105
- /// </summary>
- /// <param name="FormLocation">璧风偣</param>
- /// <param name="ToLocation">缁堢偣</param>
- /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
- /// <param name="PallteCode">鎵樼洏鍙�</param>
- public void RecreateGetLocation(string FormLocation, string ToLocation, string TaskType, string PallteCode)
- {
- try
- {
- string str = SendandReply + "105" + _taskRepository.GetSeqNo().Result.ToString() + "R" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
- _socket.clientSend(MakeStringToByteMsg(str));
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
-
- }
-
- /// /// <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)
- {
- try
- {
- string str = SendNotReply + "985" + _taskRepository.GetSeqNo().Result.ToString() + Trouble + Level + Location;
- _socket.clientSend(MakeStringToByteMsg(str));
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
-
- }
-
- /// <summary>
- /// 鎺ユ敹HOST宸ュ簭103鍥為鍝嶅簲 宸ュ簭104
- /// </summary>
- /// <param name="Statues">0琛ㄧずOK鎺ユ敹浣滀笟銆�1琛ㄧず鎷掔粷銆�9琛ㄧず浣滀笟浠诲姟楠岃瘉鏈夎</param>
- /// <returns></returns>
- public void DeviceReceiveJobResponse(string Statues)
- {
- try
- {
- string str = SendNotReply + "104" + _taskRepository.GetSeqNo().Result.ToString() + Statues;
- _socket.clientSend(MakeStringToByteMsg(str));
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
-
- }
-
- /// /// <summary>
- /// 绌哄嚭搴� 宸ュ簭107
- /// </summary>
- /// <param name="FormLocation">璧风偣</param>
- /// <param name="ToLocation">缁堢偣</param>
- /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
- /// <param name="PallteCode">鎵樼洏鍙�</param>
- public void EmptyOutBound( string FormLocation, string ToLocation, string PallteCode)
- {
- try
- {
- string str = SendandReply + "107" + _taskRepository.GetSeqNo().Result.ToString() + "1" + JobOrderID + priority + FormLocation + ToLocation + "O" + TrayCnt + PallteCode;
- _socket.clientSend(MakeStringToByteMsg(str));
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
-
- }
-
- /// <summary>
- /// 鍥炲HOST909宸ュ簭 宸ュ簭910
- /// </summary>
- /// <param name="AgvStatus"></param>
- public void DeviceStatusReportResponse(HOSTAGVStatus AgvStatus,string X,string Y)
- {
- string str = SendNotReply + "910" + _taskRepository.GetSeqNo().Result.ToString() + "1" + GetFieldsAsString(AgvStatus)+X+Y;
- }
-
- #endregion
-
- #region WMS鎺ユ敹HOST鍥炰紶鏂规硶
-
- /// <summary>
- /// 鎺ユ敹HOST 鍝嶅簲璇锋眰 宸ュ簭102 鍥炲宸ュ簭101
- /// </summary>
- /// <param name="message"></param>
- public void ReceiveCommandResponse(string message)
- {
- var parseMessage = GetParse(message);
- switch (parseMessage.body.ret)
- {
- //OK
- case "0":
- //UpdateTaskLocation(parseMessage);
- InsertWMSTask(parseMessage);
- Thread.Sleep(500);
- //915
- JobReady("0");
- break;
- //NG
- case "1":
- break;
- //鏃犲簱浣嶅垎閰�
- case "2":
- break;
- //绔欏彴鍒扮珯鍙帮紝鍑哄簱绔欏彴鏈噯澶囧ソ
- case "3":
- break;
- //闈炲父娓╁伐绋�
- case "4":
- break;
-
- case "9":
- break;
- default:
- break;
- }
- }
-
- /// <summary>
- /// 鎺ユ敹HOST鍝嶅簲AGV浣滀笟寮�濮嬫垨鍚姩 宸ュ簭906 鍥炲宸ュ簭905
- /// </summary>
- public void AGVJobStartOrEndResponse(string status, string message)
- {
- switch (message)
- {
- //OK
- case "0":
- if (status == "E")
- {
- DeviceStateReport("I");
- Thread.Sleep(3000);
- JobReady("1");
- }
- break;
- //NG
- case "1":
- //璋冪敤AGV鏆傚仠鎺ュ彛
- break;
- case "9":
- break;
- default:
- break;
- }
- }
-
- /// <summary>
- /// 鏁版嵁鎶ュ憡鍝嶅簲 宸ュ簭902 鍥炲宸ュ簭901
- /// </summary>
- public void DataReportResponse(string message)
- {
- Dt_Task task = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskOutStatusEnum.AGV_OutFinish || x.TaskState == (int)TaskRelocationStatusEnum.AGV_RelocationFinish || x.TaskState == (int)TaskInStatusEnum.AGV_InFinish);
- if (task != null)
- {
- switch (task.TaskType)
- {
- case (int)TaskInboundTypeEnum.Inbound:
- //鍏ュ簱
- task.TaskState = (int)TaskInStatusEnum.AGV_InFinish;
- if (message == "0")
- {
- JobStartOrEnd("E", task.SourceAddress, task.TargetAddress, "O", task.PalletCode);
- }
- _taskService.CompleteInboundTask(task);
- break;
- case (int)TaskOutboundTypeEnum.Outbound:
- //鍑哄簱
- if (message == "0")
- {
- JobStartOrEnd("E", task.SourceAddress, task.TargetAddress, "O", task.PalletCode);
- }
- task.TaskState = (int)TaskOutStatusEnum.AGV_OutFinish;
- _taskService.CompleteOutboundTask(task);
- break;
- case (int)TaskRelocationTypeEnum.Relocation:
- if (message == "0")
- {
- JobStartOrEnd("E", task.SourceAddress, task.TargetAddress, "O", task.PalletCode);
- }
- task.TaskState = (int)TaskRelocationStatusEnum.AGV_RelocationFinish;
- _taskService.CompleteRelocationboundTask(task);
- break;
- case (int)TaskStationTypeEnum.StationToStation:
- if (message == "0")
- {
- JobStartOrEnd("E", task.SourceAddress, task.TargetAddress, "O", task.PalletCode);
- }
- task.TaskState = (int)TaskOutStatusEnum.AGV_OutFinish;
- _taskService.TaskMoveHty(task);
- break;
- default:
- break;
- }
-
- }
- }
- /// <summary>
- /// HOST涓嬪彂鍑哄簱浠诲姟 宸ュ簭103
- /// </summary>
- /// <param name="message"></param>
- public void HOSTOutBoundTask(string message)
- {
- try
- {
- var parseMessage = GetParse(message);
- switch (parseMessage.body.ret)
- {
- //OK
- case "0":
- var task=InsertWMSTask(parseMessage);
- _taskRepository.AddData(task);
- InsertAGVTask(task);
- Thread.Sleep(500);
- //915
- JobReady("0");
- Thread.Sleep(500);
- //104
- DeviceReceiveJobResponse("0");
- break;
- default:
- break;
- }
- }
- catch (Exception)
- {
- DeviceReceiveJobResponse("1");
- }
-
- }
-
- /// <summary>
- /// HOST璁惧鐘舵�佽幏鍙� 宸ュ簭935
- /// </summary>
- /// <param name="message"></param>
- public void DeviceStationStatusInvite()
- {
- try
- {
- //鍥炲936
- List<Dt_StationManager> Instation = _stationManagerRepository.QueryData(x => x.stationType == 1).ToList();
- List<Dt_StationManager> Outstation = _stationManagerRepository.QueryData(x => x.stationType == 2).ToList();
- List<OutStationStatus> outStationStatus = new List<OutStationStatus>();
- List<InStationStatus> inStationStatus = new List<InStationStatus>();
- foreach (var item in Instation)
- {
- inStationStatus.Add(new InStationStatus()
- {
- StationName = item.stationName,
- StationEnable = item.stationStatus,
- IsDistributionTask = item.stationHasTask,
- PallteCode = "0000000000",
- });
- }
- foreach (var item in Outstation)
- {
- StationStatus station = GetStationStatus(item.stationName);
- var taskStation = _taskRepository.QueryFirst(x => x.SourceAddress == item.stationName || x.TargetAddress == item.stationName);
- outStationStatus.Add(new OutStationStatus()
- {
- StationName = item.stationName,
- StationEnable = station.StationEnable == "1" ? "0" : "1",
- IsDistributionTask = taskStation == null ? "0" : "1",
- Spare1 = "00"
- });
- //outStationStatus.Add(new OutStationStatus()
- //{
- // StationName = item.stationName,
- // StationEnable = item.stationStatus,
- // IsDistributionTask = item.stationHasTask,
- // Spare1 = "00"
- //});
- }
- AGVStatusRespone status = GetAGVStatus();
- HOSTAGVStatus AgvStatus = new HOSTAGVStatus()
- {
- RuntimeStatus = CapitalizeFirstLetter(status.RuntimeStatus),
- AutoStatus = status.AutoStatus == "MaintenanceMode" ? "1" : "0",
- Ready = status.AutoStatus == "MaintenanceMode" ? "0" : "1",
- };
- DeviceStationStatusReport(AgvStatus, outStationStatus, inStationStatus);
- }
- catch (Exception)
- {
- DeviceReceiveJobResponse("1");
- }
-
- }
-
- /// <summary>
- /// 鎺ユ敹HOST閲嶆柊鍒嗛厤璐т綅 宸ュ簭106
- /// </summary>
- /// <param name="message"></param>
- public void RecreateGetLocation(string message)
- {
- try
- {
- var parseMessage = GetParse(message);
- switch (parseMessage.body.ret)
- {
- //OK
- case "0":
- UpdateTaskLocation(parseMessage);
- break;
- //NG
- case "1":
- break;
- //鏃犲簱浣嶅垎閰�
- case "2":
- break;
- case "9":
- break;
- default:
- break;
- }
- }
- catch (Exception)
- {
- DeviceReceiveJobResponse("1");
- }
-
- }
-
- /// <summary>
- /// HOST绌哄嚭搴撳搷搴� 宸ュ簭108
- /// </summary>
- /// <param name="message"></param>
- public void EmptyOutBoundResponse(string message)
- {
- if (message != null && message == "0")
- {
- DeviceStateReport("I");
- Thread.Sleep(500);
- JobReady("1");
-
- }
- }
-
- /// <summary>
- /// HOST鑾峰彇璁惧鐘舵�� 宸ュ簭909
- /// </summary>
- public void DeviceStatusReportRequest()
- {
- HOSTAGVStatus AgvStatus = new HOSTAGVStatus()
- {
- RuntimeStatus = "R",
- AutoStatus = "1",
- Ready="1"
- };
- string axis = "000000";
- DeviceStatusReportResponse(AgvStatus,axis,axis);
- }
- #endregion
-
- #region 鍏ㄥ眬鏂规硶
- /// <summary>
- /// 鎷兼帴鎶ユ枃
- /// </summary>
- /// <param name="Message"></param>
- /// <returns></returns>
- /// <exception cref="Exception"></exception>
- public byte[] MakeStringToByteMsg(string Message)
- {
- try
- {
- byte[] byt = Encoding.UTF8.GetBytes(Message); // 浣跨敤 UTF-8 閬垮厤缂栫爜闂
-
- LogFactory.GetLog("璇锋眰鎵樼洏浠诲姟").Error(true, BitConverter.ToString(byt));
- string checksum = GetCheckSum(byt);
-
- string str = Message + checksum;
-
- byte[] buffer = Encoding.UTF8.GetBytes(str);
-
- byte newFirstByte = 2; // 鏂扮殑绗竴浣嶆暟鎹�
- byte newLastByte = 3; // 鏂扮殑鏈�鍚庝竴浣嶆暟鎹�
-
- // 鍒涘缓涓�涓柊鏁扮粍锛岄暱搴︽瘮鍘熷鏁扮粍澶�2
- byte[] newArray = new byte[buffer.Length + 2];
-
- // 灏嗘柊鐨勬暟鎹彃鍏ュ埌鏂版暟缁勭殑绗竴浣�
- newArray[0] = newFirstByte;
-
- // 灏嗘柊鐨勬暟鎹彃鍏ュ埌鏂版暟缁勭殑鏈�鍚庝竴浣�
- newArray[newArray.Length - 1] = newLastByte;
-
- // 澶嶅埗鍘熷鏁扮粍鐨勬墍鏈夋暟鎹埌鏂版暟缁勭殑涓棿閮ㄥ垎
- Array.Copy(buffer, 0, newArray, 1, buffer.Length);
-
- return newArray;
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
- }
- //public bool IsOnline()
- //{
-
- //}
- public string GetListStringOutStation(List<OutStationStatus> outStationStatus)
- {
- return string.Join("", outStationStatus.Select(status =>$"{status.StationName}{status.StationEnable}{status.IsDistributionTask}{status.Spare1}"));
- }
- public string GetListStringInStation(List<InStationStatus> inStationStatus)
- {
- return string.Join("", inStationStatus.Select(status => $"{status.StationName}{status.StationEnable}{status.IsDistributionTask}{status.Spare1}"));
- }
- /// <summary>
- /// 灏嗗璞″�煎嚟鎷兼帴
- /// </summary>
- /// <param name="obj"></param>
- /// <returns></returns>
- public static string GetFieldsAsString(object obj)
- {
- if (obj == null)
- {
- return "Object is null";
- }
-
- StringBuilder builder = new StringBuilder();
- Type type = obj.GetType();
-
- foreach (PropertyInfo property in type.GetProperties())
- {
- if (property.CanRead)
- {
- object value = property.GetValue(obj);
- if (value != null)
- {
- builder.Append(value);
- }
- }
- }
- return builder.ToString();
- }
- /// <summary>
- /// 鑾峰彇CheckSum鍊�
- /// </summary>
- /// <param name="data"></param>
- /// <returns></returns>
- /// <exception cref="Exception"></exception>
- public string GetCheckSum(byte[] data)
- {
- int sum = 0;
- try
- {
- for (int i = 0; i < data.Length; i++)
- {
- sum += data[i];
- }
- string str = sum.ToString();
- return str.Substring(str.Length - 2);
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
- }
-
- public ParseMessage SubString(string Y)
- {
-
- const string STX = "0x02";
- const string ETX = "0x03";
-
- // 妫�鏌ユ槸鍚︿互 STX 寮�澶淬�丒TX 缁撳熬
- if (Y.Substring(0, 4) == STX && Y.Substring(Y.Length - 4) == ETX)
- {
- string str = Y.Substring(4, Y.Length - 8);
- byte[] message = Encoding.UTF8.GetBytes(str);
- int newLength = message.Length - 2;
-
- if (newLength < 0)
- {
- throw new ArgumentException("鏁扮粍闀垮害涓嶈冻锛屾棤娉曞幓鎺夋渶鍚庝袱浣嶃��");
- }
-
- byte[] newArray = new byte[newLength];
- Array.Copy(message, 0, newArray, 0, newLength);
- string calculatedChecksum = GetCheckSum(newArray);
-
- string receivedChecksum = str.Substring(str.Length - 2);
-
- if (calculatedChecksum == receivedChecksum)
- {
- var x = Encoding.UTF8.GetString(newArray);
- ParseMessage parseMessage = new ParseMessage()
- {
- bDir = x.Substring(0, 1),
- bObjID = x.Substring(2, 10),
- bReply = x.Substring(11, 1),
- bCmdID = x.Substring(12, 3),
- nSeqNo = x.Substring(15, 5),
- //Body = x.Substring(21),
- };
- return parseMessage;
- }
- else
- {
- Console.WriteLine("鏍¢獙澶辫触锛�");
- return null;
- }
- }
- else
- {
- Console.WriteLine("鏃犳晥鎶ユ枃鏍煎紡锛�");
- return null;
- }
- }
- #endregion
-
- #region 瀹氫箟瀵硅薄
-
-
- #endregion
-
- #region 绉佹湁鏂规硶
- private void UpdateTaskLocation(ParseMessage parseMessage)
- {
- var task = _taskRepository.QueryFirst(x => x.SeqNo == Convert.ToInt32(parseMessage.nSeqNo) && x.PalletCode.Contains(parseMessage.body.TrayIdList));
- if (task != null)
- {
- task.TargetAddress = parseMessage.body.ToLocation;
- task_call agvtask = SqlSugarHelper.DbAGV.Queryable<task_call>().Where(it => it.d_involed5 == task.TaskNum).First();
- _taskRepository.Update(task);
- SqlSugarHelper.DbAGV.Updateable(agvtask).ExecuteCommand();
- }
-
- }
-
- private Dt_Task InsertWMSTask(ParseMessage parseMessage)
- {
- //var task = _taskRepository.QueryFirst(x => x.PalletCode.Contains(parseMessage.body.TrayIdList));
- int taskType = 0;
- int taskState = 0;
- if (parseMessage.body.JobType == "I")
- {
- taskType = (int)TaskInboundTypeEnum.Inbound;
- taskState = (int)TaskInStatusEnum.InNew;
- }
- else if (parseMessage.body.JobType == "O")
- {
- taskType = (int)TaskOutboundTypeEnum.Outbound;
- taskState = (int)TaskOutStatusEnum.OutNew;
- }
- else if (parseMessage.body.JobType == "S")
- {
- taskType = (int)TaskStationTypeEnum.StationToStation;
- taskState = (int)TaskOutStatusEnum.OutNew;
- }
- else if (parseMessage.body.JobType == "R")
- {
- taskType = (int)TaskRelocationTypeEnum.Relocation;
- taskState = (int)TaskRelocationStatusEnum.RelocationNew;
- }
- else
- {
- throw new Exception("鏈煡搴撲綅");
- }
- return new Dt_Task()
- {
- TaskNum = _taskRepository.GetTaskNo().Result,
- SourceAddress = parseMessage.body.FromLocation,
- TargetAddress = parseMessage.body.ToLocation,
- PalletCode = parseMessage.body.TrayIdList.Substring(0, 10),
- TaskType = taskType,
- TaskState = taskState,
- Dispatchertime = DateTime.Now,
- SeqNo = Convert.ToInt32(parseMessage.nSeqNo),
- CommandID = Convert.ToInt32(parseMessage.bCmdID)
- };
-
- }
- /// <summary>
- /// 娣诲姞AGV浠诲姟
- /// </summary>
- /// <param name="task">浠诲姟瀵硅薄</param>
- /// <returns></returns>
- private int InsertAGVTask(Dt_Task task)
- {
- task_call task_Call = new task_call()
- {
- d_task_type = task.TaskType == (int)TaskTypeEnum.Inbound ? 1 : 2,
- d_floor = 1,
- d_involed1 = task.SourceAddress,
- d_involed2 = task.TargetAddress,
- d_involed5 = task.TaskNum,
- };
-
- return SqlSugarHelper.DbAGV.Insertable(task_Call).ExecuteCommand();
- }
- public ParseMessage GetParse(string x)
- {
- return new ParseMessage()
- {
- bDir = x.Substring(0, 1),
- bObjID = x.Substring(2, 10),
- bReply = x.Substring(11, 1),
- bCmdID = x.Substring(12, 3),
- nSeqNo = x.Substring(15, 5),
- body = new ReceiveBody
- {
- ret = x.Substring(21, 1),
- JobOrderID = x.Substring(22, 16),
- priority = x.Substring(39, 1),
- FromLocation = x.Substring(40, 6),
- ToLocation = x.Substring(47, 6),
- JobType = x.Substring(54, 1),
- TrayCnt = x.Substring(55, 1),
- TrayIdList = x.Substring(56)
- },
- };
- }
- public AGVStatusRespone GetAGVStatus()
- {
- string urlnew = url + "/ilns/AGV/getAgvState";
- var result = HttpsClient.PostAsync(urlnew, JsonConvert.DeserializeObject<Dictionary<string, object>>(new { getStatus = "1" }.ToJson())).Result;
-
- return JsonConvert.DeserializeObject<AGVStatusRespone>(result.ToString());
- }
-
- public StationStatus GetStationStatus(string stationName)
- {
- string urlnew = url + "/ilns/strl/getStat";
- var result = HttpsClient.PostAsync(urlnew, JsonConvert.DeserializeObject<Dictionary<string, object>>(new { strlName = stationName }.ToJson())).Result;
- return JsonConvert.DeserializeObject<StationStatus>(result.ToString());
- }
-
-
- //public string GetFirstUpper(string Status)
- //{
- // switch (Status)
- // {
- // case "Run":
- // //杩愯
- // return "R";
- // case "Idle":
- // //鍏虫満
- // return "I";
- // case "Trouble":
- // //鏁呴殰
- // return "T";
- // case "Pause":
- // //鏆傚仠
- // return "S";
- // case "Charge":
- // //鍏呯數
- // return "C";
- // case "PowerOn":
- // //寮�鏈�
- // return "P";
- // case "PowerOFF":
- // //鍏虫満
- // return "O";
- // case "MaintenanceMode":
- // //鍏虫満
- // return "1";
- // case "ControlMode":
- // //鍏虫満
- // return "0";
- // default: break;
- // }
- //}
- public string CapitalizeFirstLetter(string s)
- {
- if (string.IsNullOrEmpty(s))
- {
- return "";
- }
-
- char firstChar = s[0];
- return char.ToUpper(firstChar).ToString();
- }
- #endregion
- }
-}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/AGVController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/AGVController.cs"
index 0880976..efda1b9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/AGVController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/AGVController.cs"
@@ -1,4 +1,5 @@
锘縰sing Microsoft.AspNetCore.Mvc;
+using NewLife.Net;
using WIDESEA_DTO.AGV;
using WIDESEA_IStoragIntegrationServices;
@@ -25,7 +26,7 @@
/// <param name="TaskNum"></param>
/// <param name="SourceAddress"></param>
/// <returns></returns>
- [HttpGet,HttpPost, Route("RequestInTask"), AllowAnonymous]
+ [HttpGet, HttpPost, Route("RequestInTask"), AllowAnonymous]
public WebResponseContent RequestInTask(string PalletCode, string SourceAddress)
{
return _service.RequestInTask(PalletCode, SourceAddress);
@@ -54,6 +55,18 @@
return _service.AGVStartOrEndJob(Status, TaskNum);
}
+ ///// <summary>
+ ///// AGV鍙栬揣鎴栨斁璐�
+ ///// </summary>
+ ///// <param name="Message"></param>
+ ///// <param name="PallteCode"></param>
+ ///// <returns></returns>
+ //[HttpGet, Route("PallteLoadOrUnLoad"), AllowAnonymous]
+ //public WebResponseContent PallteLoadOrUnLoad(string Message, string PallteCode)
+ //{
+ // return _taskService.PallteLoadOrUnLoad(Message,PallteCode);
+ //}
+
/// <summary>
/// 璁惧鐘舵�佷笂鎶�
/// </summary>
@@ -61,18 +74,18 @@
/// <param name="PallteCode"></param>
/// <returns></returns>
[HttpGet, HttpPost, Route("DeviceErrorResponse"), AllowAnonymous]
- public WebResponseContent DeviceErrorResponse(string Message,int TaskNum)
+ public WebResponseContent DeviceErrorResponse(string Message, int TaskNum)
{
- return _service.DeviceErrorResponse(Message,TaskNum);
+ return _service.DeviceErrorResponse(Message, TaskNum);
}
- [HttpGet, Route("RequestOutTask"), AllowAnonymous]
+ [HttpGet, HttpPost, Route("RequestOutTask"), AllowAnonymous]
public WebResponseContent RequestOutTask(string PalletCode, string SourceAddress, string TargetAddress)
{
return _service.RequestOutTask(PalletCode, SourceAddress, TargetAddress);
}
- [HttpGet, Route("InTask"), AllowAnonymous]
+ [HttpGet, HttpPost, Route("InTask"), AllowAnonymous]
public WebResponseContent InTask(string PalletCode, string SourceAddress, string TargetAddress)
{
return _service.InTask(PalletCode, SourceAddress, TargetAddress);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
index 1647845..4c91340 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
@@ -43,8 +43,8 @@
"TransfertRows": "1,4,5,8",
"PDAVersion": "2",
"Connection": {
- "IP": "127.0.0.1",
- "Port": "1314"
+ "IP": "10.42.180.129",
+ "Port": "16001"
},
"AGVIP": "127.0.0.1:8370"
}
--
Gitblit v1.9.3