diff --git a/SlnMesnac.Extensions/PlcFactorySetup.cs b/SlnMesnac.Extensions/PlcFactorySetup.cs
index 383e7e1..3298593 100644
--- a/SlnMesnac.Extensions/PlcFactorySetup.cs
+++ b/SlnMesnac.Extensions/PlcFactorySetup.cs
@@ -48,34 +48,47 @@ namespace SlnMesnac.Extensions
try
{
- if (appConfig.plcConfig != null)
+ do
{
- foreach (var item in appConfig.plcConfig)
+ if (!HslCommunication.Authorization.SetAuthorizationCode("1839541f-8fb4-42c4-a13f-733b027fe5af"))
{
- if (item.isFlage)
- {
- PlcAbsractFactory _plc = InitPlc(x, item.plcType);
+ Log.Information("HslCommunication激活失败,可用时长为24小时");
+ break;
+ }
+ else
+ {
+ Log.Information("HslCommunication激活成功");
+ }
- var connectResult = _plc.Connect(item.plcIp, item.plcPort);
- if (connectResult)
+ if (appConfig.plcConfig != null)
+ {
+ foreach (var item in appConfig.plcConfig)
+ {
+ if (item.isFlage)
{
- Log.Information($"PLC:{item.plcIp}:{item.plcPort};连接成功,时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
- _plc.ConfigKey = item.plcKey;
+ PlcAbsractFactory _plc = InitPlc(x, item.plcType);
- if(absractFactories.Contains(_plc))
+ var connectResult = _plc.Connect(item.plcIp, item.plcPort);
+ if (connectResult)
{
- absractFactories.Remove(_plc);
- }
+ Log.Information($"PLC:{item.plcIp}:{item.plcPort};连接成功,时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
+ _plc.ConfigKey = item.plcKey;
- absractFactories.Add(_plc);
- }
- else
- {
- Log.Information($"PLC:{item.plcIp}:{item.plcPort};连接失败,时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
+ if (absractFactories.Contains(_plc))
+ {
+ absractFactories.Remove(_plc);
+ }
+
+ absractFactories.Add(_plc);
+ }
+ else
+ {
+ Log.Information($"PLC:{item.plcIp}:{item.plcPort};连接失败,时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
+ }
}
}
}
- }
+ }while(false);
}
catch (Exception e)
{
diff --git a/SlnMesnac.Serilog/SerilogExtensions.cs b/SlnMesnac.Serilog/SerilogExtensions.cs
index d65e0b6..6f9b303 100644
--- a/SlnMesnac.Serilog/SerilogExtensions.cs
+++ b/SlnMesnac.Serilog/SerilogExtensions.cs
@@ -46,9 +46,9 @@ namespace SlnMesnac.Serilog
#endregion
Log.Logger = new LoggerConfiguration().MinimumLevel.Information().WriteTo.Console()
- .WriteTo.File(Path.Combine(logPath, "Info.log"), LogEventLevel.Information, fileSizeLimitBytes: 5 * 1024)
- .WriteTo.File(Path.Combine(logPath, "Error.log"), LogEventLevel.Error, fileSizeLimitBytes: 5 * 1024)
- .WriteTo.File(Path.Combine(logPath, "Warn.log"), LogEventLevel.Warning, fileSizeLimitBytes: 5 * 1024)
+ .WriteTo.File(Path.Combine(logPath, "Info.log"), LogEventLevel.Information)
+ .WriteTo.File(Path.Combine(logPath, "Error.log"), LogEventLevel.Error)
+ .WriteTo.File(Path.Combine(logPath, "Warn.log"), LogEventLevel.Warning)
//.WriteTo.File(Path.Combine(logPath, "Debug.log"), LogEventLevel.Debug, fileSizeLimitBytes: 5 * 1024)
.CreateLogger();
app.UseSerilogRequestLogging();
diff --git a/SlnMesnac.TouchSocket/ApiServer.cs b/SlnMesnac.TouchSocket/ApiServer.cs
new file mode 100644
index 0000000..d704959
--- /dev/null
+++ b/SlnMesnac.TouchSocket/ApiServer.cs
@@ -0,0 +1,109 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using TouchSocket.Rpc;
+using TouchSocket.WebApi;
+
+#region << 版 本 注 释 >>
+/*--------------------------------------------------------------------
+* 版权所有 (c) 2024 WenJY 保留所有权利。
+* CLR版本:4.0.30319.42000
+* 机器名称:T14-GEN3-7895
+* 命名空间:SlnMesnac.TouchSocket
+* 唯一标识:649766cc-308e-4bf3-8d69-dea48ec40642
+*
+* 创建者:WenJY
+* 电子邮箱:
+* 创建时间:2024-09-04 10:51:54
+* 版本:V1.0.0
+* 描述:
+*
+*--------------------------------------------------------------------
+* 修改人:
+* 时间:
+* 修改说明:
+*
+* 版本:V1.0.0
+*--------------------------------------------------------------------*/
+#endregion << 版 本 注 释 >>
+namespace SlnMesnac.TouchSocket
+{
+ public class ApiServer: RpcServer
+ {
+
+ public delegate void RefreshScanInfoInCenterStart();
+ ///
+ /// 入库开始事件刷新
+ ///
+ public event RefreshScanInfoInCenterStart RefreshScanInfoInCenterStartEvent;
+
+ public delegate void RefreshScanInfoInCenterStop();
+ ///
+ /// 入库结束事件刷新
+ ///
+ public event RefreshScanInfoInCenterStop RefreshScanInfoInCenterStopEvent;
+
+ public delegate void RefreshScanInfoOutCenterStart();
+ ///
+ /// 出库开始事件刷新
+ ///
+ public event RefreshScanInfoOutCenterStart RefreshScanInfoOutCenterStartEvent;
+
+ public delegate void RefreshScanInfoOutCenterStop();
+ ///
+ /// 出库结束事件刷新
+ ///
+ public event RefreshScanInfoOutCenterStop RefreshScanInfoOutCenterStopEvent;
+
+ ///
+ /// 入库开始
+ ///
+ ///
+ ///
+ [EnableCors("cors")]
+ [WebApi(HttpMethodType.POST)]
+ public object getScanInfoInCenterStart(string messageHeader)
+ {
+ RefreshScanInfoInCenterStartEvent?.Invoke();
+ return true;
+ }
+
+ ///
+ /// 入库结束
+ ///
+ ///
+ ///
+ [EnableCors("cors")]
+ [WebApi(HttpMethodType.POST)]
+ public object getScanInfoInCenterStop(string messageHeader)
+ {
+ RefreshScanInfoInCenterStopEvent?.Invoke();
+ return true;
+ }
+
+ ///
+ /// 出库开始
+ ///
+ ///
+ ///
+ [WebApi(HttpMethodType.POST)]
+ public object getScanInfoOutCenterStart(string messageHeader)
+ {
+ RefreshScanInfoOutCenterStartEvent?.Invoke();
+ return true;
+ }
+
+ ///
+ /// 出库结束
+ ///
+ ///
+ ///
+ [WebApi(HttpMethodType.POST)]
+ public object getScanInfoOutCenterStop(string messageHeader)
+ {
+ RefreshScanInfoOutCenterStopEvent?.Invoke();
+ return true;
+ }
+
+ }
+}
diff --git a/SlnMesnac.TouchSocket/SlnMesnac.TouchSocket.csproj b/SlnMesnac.TouchSocket/SlnMesnac.TouchSocket.csproj
index 790191c..94f69ee 100644
--- a/SlnMesnac.TouchSocket/SlnMesnac.TouchSocket.csproj
+++ b/SlnMesnac.TouchSocket/SlnMesnac.TouchSocket.csproj
@@ -6,7 +6,9 @@
-
+
+
+
diff --git a/SlnMesnac.TouchSocket/TouchSocketSetup.cs b/SlnMesnac.TouchSocket/TouchSocketSetup.cs
index 31ca7db..637d77f 100644
--- a/SlnMesnac.TouchSocket/TouchSocketSetup.cs
+++ b/SlnMesnac.TouchSocket/TouchSocketSetup.cs
@@ -39,6 +39,9 @@ namespace SlnMesnac.TouchSocket
{
var _server = app.ApplicationServices.GetService();
_server.Init(20108);
+
+ var _apiServer = app.ApplicationServices.GetService();
+ _apiServer.Init();
return app;
}
}
diff --git a/SlnMesnac.TouchSocket/WebApiServer.cs b/SlnMesnac.TouchSocket/WebApiServer.cs
new file mode 100644
index 0000000..7c85740
--- /dev/null
+++ b/SlnMesnac.TouchSocket/WebApiServer.cs
@@ -0,0 +1,112 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading.Tasks;
+using TouchSocket.Core;
+using TouchSocket.Http;
+using TouchSocket.Rpc;
+using TouchSocket.Sockets;
+using TouchSocket.WebApi.Swagger;
+
+#region << 版 本 注 释 >>
+/*--------------------------------------------------------------------
+* 版权所有 (c) 2024 WenJY 保留所有权利。
+* CLR版本:4.0.30319.42000
+* 机器名称:T14-GEN3-7895
+* 命名空间:SlnMesnac.TouchSocket
+* 唯一标识:4e47989b-9d43-426e-b67a-529de3b1b0e8
+*
+* 创建者:WenJY
+* 电子邮箱:
+* 创建时间:2024-09-04 10:51:29
+* 版本:V1.0.0
+* 描述:
+*
+*--------------------------------------------------------------------
+* 修改人:
+* 时间:
+* 修改说明:
+*
+* 版本:V1.0.0
+*--------------------------------------------------------------------*/
+#endregion << 版 本 注 释 >>
+namespace SlnMesnac.TouchSocket
+{
+ public class WebApiServer
+ {
+ private ApiServer _apiServer;
+
+ public WebApiServer(ApiServer apiServer)
+ {
+ _apiServer = apiServer;
+ }
+
+ public void Init()
+ {
+ try
+ {
+ var service = new HttpService();
+ service.Setup(new TouchSocketConfig()
+ .SetListenIPHosts(7789)
+ .ConfigureContainer(a =>
+ {
+ a.AddRpcStore(store =>
+ {
+
+ store.RegisterServer(_apiServer);//注册服务
+ });
+
+ a.AddCors(corsOption =>
+ {
+ corsOption.Add("cors", corsBuilder =>
+ {
+ corsBuilder.AllowAnyMethod()
+ .AllowAnyOrigin();
+ });
+ });
+
+ a.AddLogger(logger =>
+ {
+ logger.AddConsoleLogger();
+ logger.AddFileLogger();
+ });
+ })
+ .ConfigurePlugins(a =>
+ {
+ a.UseCheckClear();
+
+ a.Add();
+
+ a.UseWebApi()
+ .ConfigureConverter(converter =>
+ {
+ converter.AddJsonSerializerFormatter(new Newtonsoft.Json.JsonSerializerSettings() { Formatting = Newtonsoft.Json.Formatting.None });
+ });
+
+ a.UseSwagger();//使用Swagger页面
+ //.UseLaunchBrowser();
+
+ a.UseDefaultHttpServicePlugin();
+ }));
+ service.Start();
+
+ Console.WriteLine("以下连接用于测试webApi");
+ Console.WriteLine($"使用:http://127.0.0.1:7789/swagger/index.html");
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine(ex.ToString());
+ }
+
+ //Console.ReadLine();
+ }
+ }
+
+ internal class AuthenticationPlugin : PluginBase, IHttpPlugin
+ {
+ public async Task OnHttpRequest(IHttpSocketClient client, HttpContextEventArgs e)
+ {
+ await e.InvokeNext();
+ }
+ }
+}
diff --git a/SlnMesnac.WPF/App.xaml.cs b/SlnMesnac.WPF/App.xaml.cs
index ea819ab..ec3de3a 100644
--- a/SlnMesnac.WPF/App.xaml.cs
+++ b/SlnMesnac.WPF/App.xaml.cs
@@ -43,7 +43,7 @@ namespace SlnMesnac.WPF
await host.StartAsync();
var appConfig = host.Services.GetService();
- var logPath = $"{appConfig.logPath}/Logs/{DateTime.UtcNow:yyyy-MM-dd}/";
+ var logPath = $"{appConfig.logPath}/Logs/{DateTime.UtcNow:yyyy-MM-dd}/";
Log.Information($"系统初始化完成,日志存放路径:{appConfig.logPath}");
}
diff --git a/SlnMesnac.WPF/Startup.cs b/SlnMesnac.WPF/Startup.cs
index f65ebe7..e4251dc 100644
--- a/SlnMesnac.WPF/Startup.cs
+++ b/SlnMesnac.WPF/Startup.cs
@@ -12,6 +12,7 @@ using SlnMesnac.Rfid;
using SlnMesnac.Ioc;
using SlnMesnac.Plc;
using SlnMesnac.Extensions;
+using SlnMesnac.TouchSocket;
namespace SlnMesnac.WPF
{
@@ -71,6 +72,8 @@ namespace SlnMesnac.WPF
//启用Serilog中间件
app.UseSerilogExtensions();
+ app.UseTouchSocketExtensions();
+
app.UseRouting();
app.UseAuthorization();