diff --git a/WcsMain/Business/Convey/ConnectPlcServe.cs b/WcsMain/Business/Convey/ConnectPlcServe.cs deleted file mode 100644 index c1daff9..0000000 --- a/WcsMain/Business/Convey/ConnectPlcServe.cs +++ /dev/null @@ -1,106 +0,0 @@ -using WcsMain.Business.Convey.DataHandler; -using WcsMain.Common; -using WcsMain.DataBase.Dao; -using WcsMain.DataBase.TableEntity; -using WcsMain.Enum.General; -using WcsMain.Enum.Tcp; -using WcsMain.Tcp.Client; -using WcsMain.Tcp.Entity; -using WcsMain.Tcp.Entity.Message; -using WcsMain.WcsAttribute.AutoFacAttribute; - -namespace WcsMain.Business.Convey; - -/// -/// 连接并接收 PLC 的信息 -/// -[Component] -public class ConnectPlcServe(AppTcpDao tcpDao, BaseConveyDataHandler conveyDataHandler) -{ - - public void SetBaseAction() - { - CommonTool.PlcTcpClient = new PlcTcpClient(); - CommonTool.PlcTcpClient.SetConnecting((tcpData) => ConsoleLog.Info($"{tcpData} 正在连接")); - CommonTool.PlcTcpClient.SetConnectFailAction((tcpData, ex) => ConsoleLog.Warning($"{tcpData} 连接失败,参考信息:{ex.Message}")); - CommonTool.PlcTcpClient.SetConnectSuccess((tcpData) => ConsoleLog.Success($"{tcpData} 连接成功")); - CommonTool.PlcTcpClient.SetConnectOffline((tcpData) => ConsoleLog.Warning($"{tcpData} 失去连接")); - CommonTool.PlcTcpClient.GetMessage(GetMessage); - } - - /// - /// 连接PLC服务 - /// - public void ConnectPlc() - { - Task.Factory.StartNew(() => - { - List? tcps = default; - while (true) - { - tcps = tcpDao.Query(new AppTcp { TcpStatus = (int)TrueFalseEnum.TRUE, TcpType = (int)TcpType.PLC }); - if (tcps != default) break; - Thread.Sleep(5000); - continue; - } - if (tcps.Count == 0) return; - CommonTool.PlcTcpClient.SetBaseTcpServe(tcps); - CommonTool.PlcTcpClient.Connect(); - }, TaskCreationOptions.LongRunning); - } - - /// - /// 收到信息时的处理 - /// - /// - /// - private void GetMessage(TcpServeConnectionData tcpServe, string msg) - { - ConsoleLog.Tcp($"{tcpServe} 收到信息:{msg}"); - MsgHeader? header = CommonTool.PlcTcpClient.GetMsgHeader(msg); - if(header == default) { return; } - switch(header.MsgType) - { - case "SEND": - GetRequest(tcpServe, header, msg); - return; - case "RESP": - GetResponse(); - return; - default: - return; - } - } - - /***************************** 请求和响应事件 *****************************/ - - - private void GetResponse() - { - - } - - - private void GetRequest(TcpServeConnectionData tcpServe, MsgHeader header, string msg) - { - switch(header.MsgTag) - { - case "GTROUTER": // plc向WCS请求路向 ---- 箱式线 - conveyDataHandler.GetRouter(tcpServe.DisplayName, msg); - return; - - - } - - - } - - - /****************************** 请求事件 ******************************/ - - - - - - -} diff --git a/WcsMain/Business/Convey/DataHandler/BaseConveyDataHandler.cs b/WcsMain/Business/Convey/DataHandler/BaseConveyDataHandler.cs deleted file mode 100644 index 7e5518e..0000000 --- a/WcsMain/Business/Convey/DataHandler/BaseConveyDataHandler.cs +++ /dev/null @@ -1,138 +0,0 @@ -using Autofac; -using System.Reflection; -using WcsMain.Business.Convey.DataHandler.GetRouter.I; -using WcsMain.DataBase.Dao; -using WcsMain.DataBase.TableEntity; -using WcsMain.Tcp.Entity.Convey; -using WcsMain.WcsAttribute.AutoFacAttribute; - -namespace WcsMain.Business.Convey.DataHandler; - -/// -/// 输送线收到的数据处理基础类 -/// -[Component] -public class BaseConveyDataHandler(AppRouterMethodDao routerMethodDao, IComponentContext componentContext) -{ - private readonly IComponentContext _componentContext = componentContext; - private readonly AppRouterMethodDao _routerMethodDao = routerMethodDao; - - private Dictionary? methodConfig; - - /// - /// 处理 PLC 请求分拣路向逻辑 - /// - /// - /// - public void GetRouter(string? displayName, string msg) - { - LoadingMethodConfig(); // 加载配置信息,仅第一次加载 - if(methodConfig == default) - { - ConsoleLog.Warning("路由处理参数尚未加载,可能是和数据库服务连接存在异常"); - return; - } - GetRouterData? routerData = FormatGetRouterData(msg); - if(routerData == default ) - { - ConsoleLog.Warning($"数据不能正常识别,数据:{msg}"); - return; - } - var getInstance = methodConfig.TryGetValue(routerData.Area ?? "", out var instance); - if(!getInstance || instance == default) - { - ConsoleLog.Warning($"点位:{routerData.Area} 未配置处理逻辑或者处理逻辑不可用"); - return; - } - if(routerData.Code == "NoRead") - { - instance.ReadFail(routerData, displayName, msg); - } - else - { - instance.ReadSuccess(routerData, displayName, msg); - } - } - - /*************************/ - - /// - /// 加载获取路由的参数 - /// - private void LoadingMethodConfig() - { - if (methodConfig != default) return; - List? appRouters = _routerMethodDao.Query(); - if (appRouters == default) return; - methodConfig = []; - // 扫描创建继承 BaseGetRouter 的类的实例 - Dictionary classInstances = []; - var assembly = Assembly.GetExecutingAssembly(); - var assTypes = assembly.GetTypes(); - foreach (var assType in assTypes) - { - var interfaces = assType.GetInterfaces(); - foreach (var inteface in interfaces) - { - if (inteface.GetType() != typeof(IBaseGetRouter)) continue; - var instance = Activator.CreateInstance(inteface.GetType()); - if (instance == default) continue; - classInstances.Add(assType.Name, (IBaseGetRouter)instance); - } - } - // 将实例和请求点位绑定 - foreach (var appRouter in appRouters) - { - if(string.IsNullOrEmpty(appRouter.ClassName)) continue; - bool isGetInstance = classInstances.TryGetValue(appRouter.ClassName, out var inst); - if (!isGetInstance) continue; - methodConfig.TryAdd(appRouter.Area ?? "", inst); - } - } - - - - /****************************** 格式化数据 ***************************/ - - /// - /// PLC请求WCS路向的请求体格式化 - /// - /// - /// - private GetRouterData? FormatGetRouterData(string msg) - { - if (string.IsNullOrEmpty(msg)) return default; - msg = msg.Trim().TrimStart('<').TrimEnd('>'); - string[] datas = msg.Split(';'); - if (datas.Length != 14) return default; - try - { - return new GetRouterData - { - MsgType = datas[0], - ClientId = datas[1], - MsgId = datas[2], - MsgTag = datas[3], - Area = datas[4], - SortStatus = datas[5], - Code = datas[6], - Size = datas[7], - Weight = Convert.ToDecimal(string.IsNullOrEmpty(datas[8]) ? 0 : datas[8]), - Length = Convert.ToDecimal(string.IsNullOrEmpty(datas[9]) ? 0 : datas[9]), - Width = Convert.ToDecimal(string.IsNullOrEmpty(datas[10]) ? 0 : datas[10]), - Hight = Convert.ToDecimal(string.IsNullOrEmpty(datas[11]) ? 0 : datas[11]), - Spare1 = datas[12], - Spare2 = datas[13], - }; - } - catch (Exception ex) // 防止转换decimal失败 - { - _ = ex; - return default; - } - - - } - - -} diff --git a/WcsMain/Business/Convey/DataHandler/GetRouter/DeliverGetRouter.cs b/WcsMain/Business/Convey/DataHandler/GetRouter/DeliverGetRouter.cs deleted file mode 100644 index e18e299..0000000 --- a/WcsMain/Business/Convey/DataHandler/GetRouter/DeliverGetRouter.cs +++ /dev/null @@ -1,20 +0,0 @@ -using WcsMain.Business.Convey.DataHandler.GetRouter.I; -using WcsMain.Tcp.Entity.Convey; - -namespace WcsMain.Business.Convey.DataHandler.GetRouter; - -/// -/// 发货获取路向 -/// -public class DeliverGetRouter : IBaseGetRouter -{ - public void ReadFail(GetRouterData routerData, string? disPlayName, string msg) - { - throw new NotImplementedException(); - } - - public void ReadSuccess(GetRouterData routerData, string? disPlayName, string msg) - { - throw new NotImplementedException(); - } -} diff --git a/WcsMain/Business/Convey/DataHandler/GetRouter/I/IBaseGetRouter.cs b/WcsMain/Business/Convey/DataHandler/GetRouter/I/IBaseGetRouter.cs deleted file mode 100644 index 80f4766..0000000 --- a/WcsMain/Business/Convey/DataHandler/GetRouter/I/IBaseGetRouter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using WcsMain.Tcp.Entity.Convey; - -namespace WcsMain.Business.Convey.DataHandler.GetRouter.I; - -public interface IBaseGetRouter -{ - /// - /// 读码失败 - /// - /// - /// - /// - /// - void ReadFail(GetRouterData routerData, string? disPlayName, string msg); - - /// - /// 不是读码失败 - /// - /// - /// - /// - /// - void ReadSuccess(GetRouterData routerData, string? disPlayName, string msg); -} diff --git a/WcsMain/Business/Convey/DataHandler/GetRouter/LoginGetRouter.cs b/WcsMain/Business/Convey/DataHandler/GetRouter/LoginGetRouter.cs deleted file mode 100644 index 761b4f6..0000000 --- a/WcsMain/Business/Convey/DataHandler/GetRouter/LoginGetRouter.cs +++ /dev/null @@ -1,20 +0,0 @@ -using WcsMain.Business.Convey.DataHandler.GetRouter.I; -using WcsMain.Tcp.Entity.Convey; - -namespace WcsMain.Business.Convey.DataHandler.GetRouter; - -/// -/// 注册口获取路向 -/// -public class LoginGetRouter : IBaseGetRouter -{ - public void ReadFail(GetRouterData routerData, string? disPlayName, string msg) - { - throw new NotImplementedException(); - } - - public void ReadSuccess(GetRouterData routerData, string? disPlayName, string msg) - { - throw new NotImplementedException(); - } -} diff --git a/WcsMain/Business/Convey/DataHandler/GetRouter/PickGetRouter.cs b/WcsMain/Business/Convey/DataHandler/GetRouter/PickGetRouter.cs deleted file mode 100644 index 9de528f..0000000 --- a/WcsMain/Business/Convey/DataHandler/GetRouter/PickGetRouter.cs +++ /dev/null @@ -1,20 +0,0 @@ -using WcsMain.Business.Convey.DataHandler.GetRouter.I; -using WcsMain.Tcp.Entity.Convey; - -namespace WcsMain.Business.Convey.DataHandler.GetRouter; - -/// -/// 拣选请求获取路向 -/// -public class PickGetRouter : IBaseGetRouter -{ - public void ReadFail(GetRouterData routerData, string? disPlayName, string msg) - { - throw new NotImplementedException(); - } - - public void ReadSuccess(GetRouterData routerData, string? disPlayName, string msg) - { - throw new NotImplementedException(); - } -} diff --git a/WcsMain/Business/Convey/DataHandler/GetRouter/RecheckGetRouter.cs b/WcsMain/Business/Convey/DataHandler/GetRouter/RecheckGetRouter.cs deleted file mode 100644 index 290cd64..0000000 --- a/WcsMain/Business/Convey/DataHandler/GetRouter/RecheckGetRouter.cs +++ /dev/null @@ -1,20 +0,0 @@ -using WcsMain.Business.Convey.DataHandler.GetRouter.I; -using WcsMain.Tcp.Entity.Convey; - -namespace WcsMain.Business.Convey.DataHandler.GetRouter; - -/// -/// 复核获取路向 -/// -public class RecheckGetRouter : IBaseGetRouter -{ - public void ReadFail(GetRouterData routerData, string? disPlayName, string msg) - { - throw new NotImplementedException(); - } - - public void ReadSuccess(GetRouterData routerData, string? disPlayName, string msg) - { - throw new NotImplementedException(); - } -} diff --git a/WcsMain/Business/Convey/DataHandler/GetRouter/ReplenishGetRouter.cs b/WcsMain/Business/Convey/DataHandler/GetRouter/ReplenishGetRouter.cs deleted file mode 100644 index b44bd1f..0000000 --- a/WcsMain/Business/Convey/DataHandler/GetRouter/ReplenishGetRouter.cs +++ /dev/null @@ -1,20 +0,0 @@ -using WcsMain.Business.Convey.DataHandler.GetRouter.I; -using WcsMain.Tcp.Entity.Convey; - -namespace WcsMain.Business.Convey.DataHandler.GetRouter; - -/// -/// 补货获取路向 -/// -public class ReplenishGetRouter : IBaseGetRouter -{ - public void ReadFail(GetRouterData routerData, string? disPlayName, string msg) - { - throw new NotImplementedException(); - } - - public void ReadSuccess(GetRouterData routerData, string? disPlayName, string msg) - { - throw new NotImplementedException(); - } -} diff --git a/WcsMain/Business/Convey/DataHandler/Readme.txt b/WcsMain/Business/Convey/DataHandler/Readme.txt deleted file mode 100644 index cceefff..0000000 --- a/WcsMain/Business/Convey/DataHandler/Readme.txt +++ /dev/null @@ -1,3 +0,0 @@ - - -该文件夹是给 TCP 通讯的 PLC 预留的功能 \ No newline at end of file diff --git a/WcsMain/Enum/Convey/ConveyStandTypeEnum.cs b/WcsMain/Enum/Convey/ConveyStandTypeEnum.cs index f954bd3..2bac404 100644 --- a/WcsMain/Enum/Convey/ConveyStandTypeEnum.cs +++ b/WcsMain/Enum/Convey/ConveyStandTypeEnum.cs @@ -1,6 +1,4 @@ -using WcsMain.Business.Convey.DataHandler.GetRouter; - -namespace WcsMain.Enum.Convey; +namespace WcsMain.Enum.Convey; /// /// 箱式线站台类型 diff --git a/WcsMain/StartAction/ServiceStart.cs b/WcsMain/StartAction/ServiceStart.cs index 3b82dde..c3a1b83 100644 --- a/WcsMain/StartAction/ServiceStart.cs +++ b/WcsMain/StartAction/ServiceStart.cs @@ -18,7 +18,7 @@ namespace WcsMain.StartAction; /// [Component] public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs, SocketOperation socketOperation, - AppStackerDao appStackerDao, AppLocationDao appLocationDao, AppConfigDao appConfigDao, ConnectPlcServe connectPlcServe, + AppStackerDao appStackerDao, AppLocationDao appLocationDao, AppConfigDao appConfigDao, ConnectOprServe connectOprServe, AppElTagLocationDao appElTagBaseDao, AppConveyStandDao conveyStandDao, AppApiBaseInfoDao appApiBaseInfoDao) { private static string _errMsg = string.Empty; @@ -91,15 +91,6 @@ public class ServiceStart(WcsCirculation wcsCirculation, ConnectPLCs connectPLCs } } - - - public void CreateTcpClient() - { - connectPlcServe.SetBaseAction(); - connectPlcServe.ConnectPlc(); - } - - /// /// 创建并启用定时器 ///