From bd401e20fddf75e27b7553ac0da3c6b156defe98 Mon Sep 17 00:00:00 2001 From: smartwyy <645583145@qq.com> Date: Sun, 19 May 2024 01:21:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=85=E7=94=B5=E6=9C=BA=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ConsoleStarter/ConsoleStarter.csproj | 3 + ConsoleStarter/Program.cs | 34 +- ConsoleStarter/log4net.config | 32 ++ Entity/Entity.csproj | 4 + .../HybirdFrameworkCore.csproj | 4 + .../HybirdFrameworkDriver.csproj | 5 + .../TcpClient/ClientListenerHandler.cs | 10 +- HybirdFrameworkDriver/TcpClient/TcpClient.cs | 46 +- Repository/Repository.csproj | 4 + Repository/Station/EquipInfoRepository.cs | 2 +- Service/Charger/Client/ChargerClient.cs | 18 +- Service/Charger/Client/ClientMgr.cs | 45 +- Service/Charger/Codec/Decoder.cs | 13 +- Service/Charger/Codec/Encoder.cs | 32 +- Service/Charger/Handler/AuthResHandler.cs | 4 +- Service/Charger/Msg/APCI.cs | 7 +- .../Msg/Host/Req/RemoteStartCharging.cs | 2 +- .../Msg/Host/Req/RemoteStopCharging.cs | 2 +- Service/Service.csproj | 4 + .../Test/WeatherForecastController.cs | 14 +- WebStarter/WebStarter.csproj | 4 + WinFormStarter/Form2.Designer.cs | 432 +++++++++++++++++- WinFormStarter/Form2.cs | 208 ++++++++- WinFormStarter/WinFormStarter.csproj | 4 + ...crosoft.Extensions.DependencyInjection.dll | Bin 74120 -> 81536 bytes .../Microsoft.Extensions.Logging.dll | Bin 42376 -> 44656 bytes .../Microsoft.Extensions.Options.dll | Bin 54664 -> 59008 bytes WinFormStarter/log4net.config | 32 ++ .../WinFormStarter.designer.deps.json | 370 ++++++++++++--- ...WinFormStarter.designer.runtimeconfig.json | 6 +- WpfStarter/MainWindow.xaml | 7 +- 31 files changed, 1239 insertions(+), 109 deletions(-) create mode 100644 ConsoleStarter/log4net.config create mode 100644 WinFormStarter/log4net.config diff --git a/ConsoleStarter/ConsoleStarter.csproj b/ConsoleStarter/ConsoleStarter.csproj index 5849726..c6dee9f 100644 --- a/ConsoleStarter/ConsoleStarter.csproj +++ b/ConsoleStarter/ConsoleStarter.csproj @@ -31,6 +31,9 @@ Always + + Always + diff --git a/ConsoleStarter/Program.cs b/ConsoleStarter/Program.cs index 19fc46a..8d9621f 100644 --- a/ConsoleStarter/Program.cs +++ b/ConsoleStarter/Program.cs @@ -1,14 +1,42 @@ // See https://aka.ms/new-console-template for more information -using ConsoleStarter; +using DotNetty.Codecs; +using DotNetty.Common.Internal.Logging; +using DotNetty.Handlers.Logging; +using DotNetty.Handlers.Timeout; +using DotNetty.Transport.Bootstrapping; +using DotNetty.Transport.Channels; +using DotNetty.Transport.Channels.Sockets; using log4net.Config; +using Microsoft.Extensions.Logging; +using LogLevel = DotNetty.Handlers.Logging.LogLevel; internal class Program { public static void Main(string[] args) { XmlConfigurator.ConfigureAndWatch(new FileInfo(AppDomain.CurrentDomain.BaseDirectory + @"\log4net.xml")); - var exportDb = new ExportDb(); - exportDb.Export(); + InternalLoggerFactory.DefaultFactory.AddProvider(new Log4NetProvider()); + + Bootstrap bootstrap = new Bootstrap(); + bootstrap + .Group(new MultithreadEventLoopGroup()) + .Channel() + .Option(ChannelOption.TcpNodelay, true) + .Handler(new ActionChannelInitializer(channel => + { + + var pipeline = channel.Pipeline; + pipeline.AddLast(new StringDecoder()); + pipeline.AddLast(new StringEncoder()); + // 监听器 + pipeline.AddLast(new LoggingHandler(LogLevel.TRACE)); + pipeline.AddLast("idleStateHandler", new IdleStateHandler(30, 0, 0)); // 触发读取超时 + + })); + + Task task = bootstrap.ConnectAsync("127.0.0.1", 9998); + IChannel channel = task.Result; + channel.WriteAndFlushAsync("1111111111"); } } \ No newline at end of file diff --git a/ConsoleStarter/log4net.config b/ConsoleStarter/log4net.config new file mode 100644 index 0000000..0cdbee3 --- /dev/null +++ b/ConsoleStarter/log4net.config @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Entity/Entity.csproj b/Entity/Entity.csproj index e72fe21..b49ee37 100644 --- a/Entity/Entity.csproj +++ b/Entity/Entity.csproj @@ -7,6 +7,10 @@ True + + bin\Debug\Entity.xml + + diff --git a/HybirdFrameworkCore/HybirdFrameworkCore.csproj b/HybirdFrameworkCore/HybirdFrameworkCore.csproj index e36a488..f8142b8 100644 --- a/HybirdFrameworkCore/HybirdFrameworkCore.csproj +++ b/HybirdFrameworkCore/HybirdFrameworkCore.csproj @@ -7,6 +7,10 @@ True + + bin\Debug\HybirdFrameworkCore.xml + + diff --git a/HybirdFrameworkDriver/HybirdFrameworkDriver.csproj b/HybirdFrameworkDriver/HybirdFrameworkDriver.csproj index 02708b7..310ba74 100644 --- a/HybirdFrameworkDriver/HybirdFrameworkDriver.csproj +++ b/HybirdFrameworkDriver/HybirdFrameworkDriver.csproj @@ -6,6 +6,10 @@ enable + + bin\Debug\HybirdFrameworkDriver.xml + + @@ -17,6 +21,7 @@ + diff --git a/HybirdFrameworkDriver/TcpClient/ClientListenerHandler.cs b/HybirdFrameworkDriver/TcpClient/ClientListenerHandler.cs index 188d354..ceb36be 100644 --- a/HybirdFrameworkDriver/TcpClient/ClientListenerHandler.cs +++ b/HybirdFrameworkDriver/TcpClient/ClientListenerHandler.cs @@ -11,10 +11,13 @@ public class ClientListenerHandler : ChannelHandlerAdapter where TH where TE : ChannelHandlerAdapter, new() { private static readonly ILog Log = LogManager.GetLogger(typeof(ClientListenerHandler)); + + private bool AutoReconnect { get; set; } - public ClientListenerHandler(TcpClient client) + public ClientListenerHandler(TcpClient client, bool autoReconnect) { Client = client; + AutoReconnect = autoReconnect; } public TcpClient Client { get; set; } @@ -47,7 +50,10 @@ public class ClientListenerHandler : ChannelHandlerAdapter where TH context.Channel.CloseAsync().Wait(); context.Channel.CloseCompletion.Wait(); - new Thread(Client.BaseConnect).Start(); + if (AutoReconnect) + { + new Thread(Client.BaseConnect).Start(); + } } public override void UserEventTriggered(IChannelHandlerContext context, object evt) diff --git a/HybirdFrameworkDriver/TcpClient/TcpClient.cs b/HybirdFrameworkDriver/TcpClient/TcpClient.cs index d22cd64..49fc129 100644 --- a/HybirdFrameworkDriver/TcpClient/TcpClient.cs +++ b/HybirdFrameworkDriver/TcpClient/TcpClient.cs @@ -1,8 +1,9 @@ -using System.Net; using System.Reflection; using Autofac; using Autofac.Core; using DotNetty.Codecs; +using DotNetty.Common.Internal.Logging; +using DotNetty.Handlers.Logging; using DotNetty.Handlers.Timeout; using DotNetty.Transport.Bootstrapping; using DotNetty.Transport.Channels; @@ -10,37 +11,55 @@ using DotNetty.Transport.Channels.Sockets; using HybirdFrameworkCore.Autofac; using HybirdFrameworkCore.Autofac.Attribute; using log4net; +using Microsoft.Extensions.Logging; +using LogLevel = DotNetty.Handlers.Logging.LogLevel; namespace HybirdFrameworkDriver.TcpClient; -public class TcpClient where TH : IChannelHandler +public class TcpClient : IDisposable where TH : IChannelHandler where TD : ByteToMessageDecoder, new() where TE : ChannelHandlerAdapter, new() { private static readonly ILog Log = LogManager.GetLogger(typeof(TcpClient)); + private Bootstrap? _bootstrap; - - public IChannel Channel { get; set; } + private IEventLoopGroup? _eventLoopGroup; + public IChannel? Channel { get; set; } public bool Connected { get; set; } public string Host { get; set; } public int Port { get; set; } + + public bool AutoReconnect { get; set; } + public LogLevel? LogLevel { get; set; } + public void InitBootstrap(string host, int port, Action? channelInactiveHandler = null) { Host = host; Port = port; + + if (LogLevel != null) + { + InternalLoggerFactory.DefaultFactory.AddProvider(new Log4NetProvider()); + } + _bootstrap = new Bootstrap(); + _eventLoopGroup = new MultithreadEventLoopGroup(); _bootstrap - .Group(new MultithreadEventLoopGroup()) + .Group(_eventLoopGroup) .Channel() .Option(ChannelOption.TcpNodelay, true) .Handler(new ActionChannelInitializer(channel => { - var clientListenerHandler = new ClientListenerHandler(this); + var clientListenerHandler = new ClientListenerHandler(this, AutoReconnect); var pipeline = channel.Pipeline; + if (LogLevel != null) + { + pipeline.AddLast(new LoggingHandler(LogLevel.Value)); + } // 监听器 pipeline.AddLast(clientListenerHandler); pipeline.AddLast("idleStateHandler", new IdleStateHandler(30, 0, 0)); // 触发读取超时 @@ -114,7 +133,7 @@ public class TcpClient where TH : IChannelHandler { try { - Task task = _bootstrap!.ConnectAsync(new IPEndPoint(IPAddress.Parse(Host), Port)); + Task task = _bootstrap!.ConnectAsync(Host, Port); Channel = task.Result; Connected = Channel.Open; } @@ -127,4 +146,17 @@ public class TcpClient where TH : IChannelHandler Thread.Sleep(1000); } } + + public void Close() + { + this.Channel?.CloseAsync().Wait(); + this.Channel?.CloseCompletion.Wait(); + _eventLoopGroup?.ShutdownGracefullyAsync().Wait(); + } + + public void Dispose() + { + this.Close(); + this.Connected = false; + } } \ No newline at end of file diff --git a/Repository/Repository.csproj b/Repository/Repository.csproj index 7e55f6e..4121957 100644 --- a/Repository/Repository.csproj +++ b/Repository/Repository.csproj @@ -6,6 +6,10 @@ enable + + bin\Debug\Repository.xml + + diff --git a/Repository/Station/EquipInfoRepository.cs b/Repository/Station/EquipInfoRepository.cs index 1080680..d6583ff 100644 --- a/Repository/Station/EquipInfoRepository.cs +++ b/Repository/Station/EquipInfoRepository.cs @@ -4,7 +4,7 @@ using SqlSugar; namespace Repository.Station; [Scope("SingleInstance")] -public class EquipInfoRepository:BaseRepository +public class EquipInfoRepository: BaseRepository { public EquipInfoRepository(ISqlSugarClient sqlSugar) : base(sqlSugar) { diff --git a/Service/Charger/Client/ChargerClient.cs b/Service/Charger/Client/ChargerClient.cs index 96869a1..b3dece0 100644 --- a/Service/Charger/Client/ChargerClient.cs +++ b/Service/Charger/Client/ChargerClient.cs @@ -1,7 +1,8 @@ using HybirdFrameworkCore.Autofac.Attribute; +using HybirdFrameworkCore.Utils; using HybirdFrameworkDriver.Session; using HybirdFrameworkDriver.TcpClient; -using HybirdFrameworkServices.Charger.Handler; +using Newtonsoft.Json; using Service.Charger.Codec; using Service.Charger.Common; using Service.Charger.Handler; @@ -116,6 +117,9 @@ public class ChargerClient : TcpClient /// 远程升级-监控网关上送升级完成确认帧 /// public UplinkUpgrade UplinkUpgrade { get; set; } + + public string? CurrentCmd { get; set; } + #region 发送指令 private ushort IncreAuthTimes() @@ -131,6 +135,7 @@ public class ChargerClient : TcpClient return AuthTimes; } + /// /// 发送鉴权 @@ -140,6 +145,7 @@ public class ChargerClient : TcpClient byte authCodeKey = ChargerUtils.GetByteRandomNum(); //鉴码KEY[随机数] byte[] authCodes = ChargerUtils.GetAuthCodesResult(ChargerConst.AuthCode, authCodeKey); //鉴权码 Auth auth = new Auth(IncreAuthTimes(), authCodes, authCodeKey); + CurrentCmd = JsonConvert.SerializeObject(auth)+ "\r\n" + BitUtls.BytesToHexStr(auth.ToBytes()); this.Channel.WriteAndFlushAsync(auth); } @@ -158,6 +164,7 @@ public class ChargerClient : TcpClient chargeOrderNo = ChargerUtils.GenChargeOrderSn(); } var remoteStartCharging = new RemoteStartCharging(socLimit, changePowerCmdType, changePower, chargeOrderNo); + CurrentCmd = JsonConvert.SerializeObject(remoteStartCharging)+ "\r\n" + BitUtls.BytesToHexStr(remoteStartCharging.ToBytes()); this.Channel.WriteAndFlushAsync(remoteStartCharging); } @@ -168,6 +175,7 @@ public class ChargerClient : TcpClient public void SendRemoteStopCharging(byte reason) { RemoteStopCharging remoteStopCharging = new RemoteStopCharging(reason); + CurrentCmd = JsonConvert.SerializeObject(remoteStopCharging) + "\r\n" + BitUtls.BytesToHexStr(remoteStopCharging.ToBytes()); this.Channel.WriteAndFlushAsync(remoteStopCharging); } @@ -244,11 +252,11 @@ public class ChargerClient : TcpClient #endregion - public void SessionAttr(int sn, int eqmTypeNo, string eqmCode, string destAddr) + public void SessionAttr(string sn, string destAddr) { - ChannelUtils.AddAttr(Channel, ChargerConst.ChargerSn, sn.ToString()); - ChannelUtils.AddAttr(Channel, ChargerConst.EqmTypeNo, eqmTypeNo.ToString()); - ChannelUtils.AddAttr(Channel, ChargerConst.EqmCode, eqmCode); + ChannelUtils.AddAttr(Channel, ChargerConst.ChargerSn, sn); + ChannelUtils.AddAttr(Channel, ChargerConst.EqmTypeNo, sn); + ChannelUtils.AddAttr(Channel, ChargerConst.EqmCode, sn); ChannelUtils.AddAttr(Channel, ChargerConst.DestAddr, destAddr); } } \ No newline at end of file diff --git a/Service/Charger/Client/ClientMgr.cs b/Service/Charger/Client/ClientMgr.cs index ff71616..c9e9eed 100644 --- a/Service/Charger/Client/ClientMgr.cs +++ b/Service/Charger/Client/ClientMgr.cs @@ -1,7 +1,13 @@ -using DotNetty.Transport.Channels; +using Autofac; +using DotNetty.Transport.Channels; +using Entity.DbModel.Station; +using HybirdFrameworkCore.Autofac; using HybirdFrameworkCore.Autofac.Attribute; using HybirdFrameworkDriver.Session; +using log4net; +using Repository.Station; using Service.Charger.Common; +using Service.Equipment; namespace Service.Charger.Client; @@ -11,9 +17,12 @@ namespace Service.Charger.Client; [Scope("SingleInstance")] public static class ClientMgr { - private static readonly Dictionary Dictionary = new(); - public static ChargerClient? GetBySn(int sn) + private static readonly ILog Log = LogManager.GetLogger(typeof(ClientMgr)); + + private static readonly Dictionary Dictionary = new(); + + public static ChargerClient? GetBySn(string sn) { Dictionary.TryGetValue(sn, out var o); return o; @@ -25,7 +34,7 @@ public static class ClientMgr if (!string.IsNullOrWhiteSpace(snt)) { - var chargerClient = GetBySn(int.Parse(snt)); + var chargerClient = GetBySn(snt); if (chargerClient != null) { sn = snt; @@ -39,7 +48,7 @@ public static class ClientMgr return false; } - public static void AddBySn(int sn, ChargerClient client) + public static void AddBySn(string sn, ChargerClient client) { Dictionary[sn] = client; } @@ -47,5 +56,31 @@ public static class ClientMgr //TODO 连接、鉴权,开始充电,结束充电,设置尖峰平谷,读取尖峰平谷,发送功率调节指令,发送辅助源控制指令,下发掉线停止充电, public static void InitClient() { + EquipInfoRepository equipInfoRepository = AppInfo.Container.Resolve(); + EquipNetInfoRepository netInfoRepository = AppInfo.Container.Resolve(); + List equipInfos = equipInfoRepository.QueryListByClause(it => it.TypeCode == (int)EquipmentType.Charger); + if (equipInfos.Count > 0) + { + Dictionary set = equipInfos.ToDictionary(it => it.Code, it => it); + List equipNetInfos = netInfoRepository.QueryListByClause(it => set.ContainsKey(it.Code)); + foreach (EquipNetInfo netInfo in equipNetInfos) + { + Task.Run(() => + { + ConnClient(netInfo); + }); + } + } + } + + private static void ConnClient(EquipNetInfo netInfo) + { + Log.Info($"begin to connect {netInfo.Code} {netInfo.NetAddr}:{netInfo.NetPort}"); + ChargerClient client = AppInfo.Container.Resolve(); + client.InitBootstrap(netInfo.NetAddr, int.Parse(netInfo.NetPort)); + client.Connect(); + client.SessionAttr(netInfo.Code, netInfo.NetAddr); + AddBySn(netInfo.Code, client); + Log.Info($"connected {netInfo.Code} {netInfo.NetAddr}:{netInfo.NetPort}"); } } \ No newline at end of file diff --git a/Service/Charger/Codec/Decoder.cs b/Service/Charger/Codec/Decoder.cs index 52cc868..cd9c1e1 100644 --- a/Service/Charger/Codec/Decoder.cs +++ b/Service/Charger/Codec/Decoder.cs @@ -2,6 +2,9 @@ using DotNetty.Codecs; using DotNetty.Transport.Channels; using HybirdFrameworkCore.Utils; +using HybirdFrameworkDriver.Session; +using log4net; +using Newtonsoft.Json; using Service.Charger.Common; using Service.Charger.Msg; using Service.Charger.Msg.Bms; @@ -13,6 +16,8 @@ namespace Service.Charger.Codec; public class Decoder : ByteToMessageDecoder { + + private static readonly ILog Log = LogManager.GetLogger(typeof(Decoder)); private readonly IByteBuffer[] _delimiters = { Unpooled.CopiedBuffer(ChargerConst.StartChar) }; @@ -49,7 +54,9 @@ public class Decoder : ByteToMessageDecoder return; } - output.Add(Parse(buffer, totalFrameLength)); + ASDU asdu = Parse(buffer, totalFrameLength, out var data); + Log.Info($"receive {JsonConvert.SerializeObject(asdu)}:{data} from {ChannelUtils.GetAttr(context.Channel, ChargerConst.ChargerSn)}"); + output.Add(asdu); buffer.Clear(); } } @@ -92,9 +99,9 @@ public class Decoder : ByteToMessageDecoder return -1; } - public ASDU Parse(IByteBuffer byteBuffer, int totalFrameLength) + public ASDU Parse(IByteBuffer byteBuffer, int totalFrameLength, out byte[] data) { - byte[] data = new byte[totalFrameLength]; + data = new byte[totalFrameLength]; byteBuffer.ReadBytes(data); //TODO bug length取值不对 diff --git a/Service/Charger/Codec/Encoder.cs b/Service/Charger/Codec/Encoder.cs index cc3d81d..5599dca 100644 --- a/Service/Charger/Codec/Encoder.cs +++ b/Service/Charger/Codec/Encoder.cs @@ -1,16 +1,38 @@ using DotNetty.Buffers; using DotNetty.Codecs; using DotNetty.Transport.Channels; -using HybirdFrameworkDriver.Common; +using HybirdFrameworkCore.Utils; using HybirdFrameworkDriver.Session; +using log4net; +using Newtonsoft.Json; +using Service.Charger.Common; +using Service.Charger.Msg; namespace Service.Charger.Codec; -public class Encoder : MessageToByteEncoder +/// +/// +/// +public class Encoder : MessageToByteEncoder { - protected override void Encode(IChannelHandlerContext context, IToBytes obj, IByteBuffer output) + private static readonly ILog Log = LogManager.GetLogger(typeof(Encoder)); + /// + /// + /// + /// + /// + /// + protected override void Encode(IChannelHandlerContext context, APCI obj, IByteBuffer output) { - int sn = (int)SessionMgr.GetAttrByKey(context.Channel.Id.ToString(), "charger_sn"); - output.WriteBytes(obj.ToBytes()); + string? s = ChannelUtils.GetAttr(context.Channel, ChargerConst.DestAddr); + if (s != null) + { + byte[] destAddr = s.Split(",").Select(b => Convert.ToByte(b)).ToArray(); + obj.DestAddr = destAddr; + } + + byte[] bytes = obj.ToBytes(); + Log.Info($"send {JsonConvert.SerializeObject(obj)}:{BitUtls.BytesToHexStr(bytes)} to {ChannelUtils.GetAttr(context.Channel, ChargerConst.ChargerSn)}"); + output.WriteBytes(bytes); } } \ No newline at end of file diff --git a/Service/Charger/Handler/AuthResHandler.cs b/Service/Charger/Handler/AuthResHandler.cs index b277079..ce21d50 100644 --- a/Service/Charger/Handler/AuthResHandler.cs +++ b/Service/Charger/Handler/AuthResHandler.cs @@ -3,10 +3,9 @@ using HybirdFrameworkCore.Autofac.Attribute; using log4net; using Service.Charger.Client; using Service.Charger.Common; -using Service.Charger.Handler; using Service.Charger.Msg.Charger.Resp; -namespace HybirdFrameworkServices.Charger.Handler +namespace Service.Charger.Handler { /// /// 接收到鉴权帧 @@ -26,7 +25,6 @@ namespace HybirdFrameworkServices.Charger.Handler { if (ClientMgr.TryGetClient(ctx.Channel, out string sn, out var client)) { - Log.Info($"receive {msg} from {sn}"); if (msg.ConnSeq == client.AuthTimes) { if (msg.AuthResult == 0) diff --git a/Service/Charger/Msg/APCI.cs b/Service/Charger/Msg/APCI.cs index 9d02e84..56c9505 100644 --- a/Service/Charger/Msg/APCI.cs +++ b/Service/Charger/Msg/APCI.cs @@ -18,7 +18,7 @@ public abstract class APCI : IToBytes /// /// 目标地址 /// - public byte[] DestAddr { get; set; } + public byte[]? DestAddr { get; set; } /// /// 源地址 @@ -33,7 +33,10 @@ public abstract class APCI : IToBytes list.AddRange(ChargerConst.StartChar); list.AddRange(BitConverter.GetBytes(bodyBytes.Length + 12)); list.AddRange(BitConverter.GetBytes(CtlArea)); - list.AddRange(DestAddr); + if (DestAddr != null) + { + list.AddRange(DestAddr); + } list.AddRange(BitConverter.GetBytes(SrcAddr)); list.AddRange(bodyBytes); diff --git a/Service/Charger/Msg/Host/Req/RemoteStartCharging.cs b/Service/Charger/Msg/Host/Req/RemoteStartCharging.cs index e6c2a86..6d92313 100644 --- a/Service/Charger/Msg/Host/Req/RemoteStartCharging.cs +++ b/Service/Charger/Msg/Host/Req/RemoteStartCharging.cs @@ -5,7 +5,7 @@ namespace Service.Charger.Msg.Host.Req /// /// 3.3.5 监控平台远程启动充电 /// - public class RemoteStartCharging + public class RemoteStartCharging: ASDU { public RemoteStartCharging(byte socLimit, byte changePowerCmdType, float changePower, string chargeOrderNo) diff --git a/Service/Charger/Msg/Host/Req/RemoteStopCharging.cs b/Service/Charger/Msg/Host/Req/RemoteStopCharging.cs index 2882321..5300102 100644 --- a/Service/Charger/Msg/Host/Req/RemoteStopCharging.cs +++ b/Service/Charger/Msg/Host/Req/RemoteStopCharging.cs @@ -5,7 +5,7 @@ namespace Service.Charger.Msg.Host.Req /// /// 3.3.7 监控平台远程停止充电 /// - public class RemoteStopCharging + public class RemoteStopCharging: ASDU { /// ///停止原因 0 正常停机 1 服务器发现桩异常,强制停机 diff --git a/Service/Service.csproj b/Service/Service.csproj index 2a621c7..ce4df4b 100644 --- a/Service/Service.csproj +++ b/Service/Service.csproj @@ -6,6 +6,10 @@ enable + + bin\Debug\Service.xml + + diff --git a/WebStarter/Controllers/Test/WeatherForecastController.cs b/WebStarter/Controllers/Test/WeatherForecastController.cs index bd80138..8400c0f 100644 --- a/WebStarter/Controllers/Test/WeatherForecastController.cs +++ b/WebStarter/Controllers/Test/WeatherForecastController.cs @@ -1,4 +1,8 @@ +using System.Text; +using Autofac; +using HybirdFrameworkCore.Autofac; using Microsoft.AspNetCore.Mvc; +using Service.Charger.Client; using Service.System; namespace WebStarter.Controllers.Test; @@ -25,13 +29,19 @@ public class WeatherForecastController : ControllerBase [HttpGet(Name = "GetWeatherForecast")] public IEnumerable Get() { - var sysUsers = _sysUserServices.Query(); _logger.LogInformation("this is a hello world"); + + + ChargerClient client = AppInfo.Container.Resolve(); + client.InitBootstrap("127.0.0.1", 9998); + client.BaseConnect(); + client.SessionAttr("1", "3"); + client.Channel.WriteAndFlushAsync(Encoding.ASCII.GetBytes("ddddddddddd")); + _logger.LogInformation("this is two hello world"); return Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), - TemperatureC = sysUsers.Count, Summary = Summaries[Random.Shared.Next(Summaries.Length)] }) .ToArray(); diff --git a/WebStarter/WebStarter.csproj b/WebStarter/WebStarter.csproj index 80beba0..00e10cf 100644 --- a/WebStarter/WebStarter.csproj +++ b/WebStarter/WebStarter.csproj @@ -7,6 +7,10 @@ True + + bin\Debug\WebStarter.xml + + diff --git a/WinFormStarter/Form2.Designer.cs b/WinFormStarter/Form2.Designer.cs index a7dba3b..d5a6326 100644 --- a/WinFormStarter/Form2.Designer.cs +++ b/WinFormStarter/Form2.Designer.cs @@ -31,11 +31,435 @@ partial class Form2 /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "Form2"; + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.grpData = new System.Windows.Forms.GroupBox(); + this.rTxtData = new System.Windows.Forms.RichTextBox(); + this.grpMsg = new System.Windows.Forms.GroupBox(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.groupBox6 = new System.Windows.Forms.GroupBox(); + this.rTxtSend = new System.Windows.Forms.RichTextBox(); + this.groupBox7 = new System.Windows.Forms.GroupBox(); + this.rTxtReceive = new System.Windows.Forms.RichTextBox(); + this.grpCmd = new System.Windows.Forms.GroupBox(); + this.btnReadBatteryInfo = new System.Windows.Forms.Button(); + this.btnChangeInOrOut = new System.Windows.Forms.Button(); + this.btnSetPrice = new System.Windows.Forms.Button(); + this.btnSendOutEnableCharge = new System.Windows.Forms.Button(); + this.btnOfflineStopCharge = new System.Windows.Forms.Button(); + this.btnSetChargeRate = new System.Windows.Forms.Button(); + this.btnChangePower = new System.Windows.Forms.Button(); + this.btnSendAuxiliaryPower = new System.Windows.Forms.Button(); + this.btnStopCharge = new System.Windows.Forms.Button(); + this.btnStartCharge = new System.Windows.Forms.Button(); + this.btnSendBinStatus = new System.Windows.Forms.Button(); + this.btnAuth = new System.Windows.Forms.Button(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.lblConnStatus = new System.Windows.Forms.Label(); + this.btnConn = new System.Windows.Forms.Button(); + this.txtDestAddr = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.txtPort = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.txtIp = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.groupBox1.SuspendLayout(); + this.grpData.SuspendLayout(); + this.grpMsg.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + this.groupBox6.SuspendLayout(); + this.groupBox7.SuspendLayout(); + this.grpCmd.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.grpData); + this.groupBox1.Controls.Add(this.grpMsg); + this.groupBox1.Controls.Add(this.grpCmd); + this.groupBox1.Controls.Add(this.groupBox2); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox1.Location = new System.Drawing.Point(0, 0); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(1118, 1150); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "充电机测试程序"; + // + // grpData + // + this.grpData.Controls.Add(this.rTxtData); + this.grpData.Dock = System.Windows.Forms.DockStyle.Fill; + this.grpData.Location = new System.Drawing.Point(3, 718); + this.grpData.Name = "grpData"; + this.grpData.Size = new System.Drawing.Size(1112, 429); + this.grpData.TabIndex = 3; + this.grpData.TabStop = false; + this.grpData.Text = "数据展示"; + // + // rTxtData + // + this.rTxtData.Dock = System.Windows.Forms.DockStyle.Fill; + this.rTxtData.Location = new System.Drawing.Point(3, 19); + this.rTxtData.Name = "rTxtData"; + this.rTxtData.Size = new System.Drawing.Size(1106, 407); + this.rTxtData.TabIndex = 0; + this.rTxtData.Text = ""; + // + // grpMsg + // + this.grpMsg.Controls.Add(this.splitContainer1); + this.grpMsg.Dock = System.Windows.Forms.DockStyle.Top; + this.grpMsg.Location = new System.Drawing.Point(3, 326); + this.grpMsg.Name = "grpMsg"; + this.grpMsg.Size = new System.Drawing.Size(1112, 392); + this.grpMsg.TabIndex = 2; + this.grpMsg.TabStop = false; + this.grpMsg.Text = "报文展示"; + // + // splitContainer1 + // + this.splitContainer1.Cursor = System.Windows.Forms.Cursors.VSplit; + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.Location = new System.Drawing.Point(3, 19); + this.splitContainer1.Name = "splitContainer1"; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.groupBox6); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.groupBox7); + this.splitContainer1.Size = new System.Drawing.Size(1106, 370); + this.splitContainer1.SplitterDistance = 563; + this.splitContainer1.TabIndex = 0; + // + // groupBox6 + // + this.groupBox6.Controls.Add(this.rTxtSend); + this.groupBox6.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox6.Location = new System.Drawing.Point(0, 0); + this.groupBox6.Name = "groupBox6"; + this.groupBox6.Size = new System.Drawing.Size(563, 370); + this.groupBox6.TabIndex = 0; + this.groupBox6.TabStop = false; + this.groupBox6.Text = "发送报文"; + // + // rTxtSend + // + this.rTxtSend.Dock = System.Windows.Forms.DockStyle.Fill; + this.rTxtSend.Location = new System.Drawing.Point(3, 19); + this.rTxtSend.Name = "rTxtSend"; + this.rTxtSend.Size = new System.Drawing.Size(557, 348); + this.rTxtSend.TabIndex = 1; + this.rTxtSend.Text = ""; + // + // groupBox7 + // + this.groupBox7.Controls.Add(this.rTxtReceive); + this.groupBox7.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox7.Location = new System.Drawing.Point(0, 0); + this.groupBox7.Name = "groupBox7"; + this.groupBox7.Size = new System.Drawing.Size(539, 370); + this.groupBox7.TabIndex = 0; + this.groupBox7.TabStop = false; + this.groupBox7.Text = "接收报文"; + // + // rTxtReceive + // + this.rTxtReceive.Dock = System.Windows.Forms.DockStyle.Fill; + this.rTxtReceive.Location = new System.Drawing.Point(3, 19); + this.rTxtReceive.Name = "rTxtReceive"; + this.rTxtReceive.Size = new System.Drawing.Size(533, 348); + this.rTxtReceive.TabIndex = 0; + this.rTxtReceive.Text = ""; + // + // grpCmd + // + this.grpCmd.Controls.Add(this.btnReadBatteryInfo); + this.grpCmd.Controls.Add(this.btnChangeInOrOut); + this.grpCmd.Controls.Add(this.btnSetPrice); + this.grpCmd.Controls.Add(this.btnSendOutEnableCharge); + this.grpCmd.Controls.Add(this.btnOfflineStopCharge); + this.grpCmd.Controls.Add(this.btnSetChargeRate); + this.grpCmd.Controls.Add(this.btnChangePower); + this.grpCmd.Controls.Add(this.btnSendAuxiliaryPower); + this.grpCmd.Controls.Add(this.btnStopCharge); + this.grpCmd.Controls.Add(this.btnStartCharge); + this.grpCmd.Controls.Add(this.btnSendBinStatus); + this.grpCmd.Controls.Add(this.btnAuth); + this.grpCmd.Dock = System.Windows.Forms.DockStyle.Top; + this.grpCmd.Location = new System.Drawing.Point(3, 115); + this.grpCmd.Name = "grpCmd"; + this.grpCmd.Size = new System.Drawing.Size(1112, 211); + this.grpCmd.TabIndex = 1; + this.grpCmd.TabStop = false; + this.grpCmd.Text = "操作指令"; + // + // btnReadBatteryInfo + // + this.btnReadBatteryInfo.Location = new System.Drawing.Point(379, 153); + this.btnReadBatteryInfo.Name = "btnReadBatteryInfo"; + this.btnReadBatteryInfo.Size = new System.Drawing.Size(130, 23); + this.btnReadBatteryInfo.TabIndex = 18; + this.btnReadBatteryInfo.Text = "读取电池信息"; + this.btnReadBatteryInfo.UseVisualStyleBackColor = true; + this.btnReadBatteryInfo.Click += new System.EventHandler(this.btnReadBatteryInfo_Click); + // + // btnChangeInOrOut + // + this.btnChangeInOrOut.Location = new System.Drawing.Point(218, 153); + this.btnChangeInOrOut.Name = "btnChangeInOrOut"; + this.btnChangeInOrOut.Size = new System.Drawing.Size(130, 23); + this.btnChangeInOrOut.TabIndex = 17; + this.btnChangeInOrOut.Text = "切换站内外充电"; + this.btnChangeInOrOut.UseVisualStyleBackColor = true; + this.btnChangeInOrOut.Click += new System.EventHandler(this.btnChangeInOrOut_Click); + // + // btnSetPrice + // + this.btnSetPrice.Location = new System.Drawing.Point(63, 153); + this.btnSetPrice.Name = "btnSetPrice"; + this.btnSetPrice.Size = new System.Drawing.Size(130, 23); + this.btnSetPrice.TabIndex = 16; + this.btnSetPrice.Text = "设置尖峰平谷"; + this.btnSetPrice.UseVisualStyleBackColor = true; + this.btnSetPrice.Click += new System.EventHandler(this.btnSetPrice_Click); + // + // btnSendOutEnableCharge + // + this.btnSendOutEnableCharge.Location = new System.Drawing.Point(526, 99); + this.btnSendOutEnableCharge.Name = "btnSendOutEnableCharge"; + this.btnSendOutEnableCharge.Size = new System.Drawing.Size(165, 23); + this.btnSendOutEnableCharge.TabIndex = 15; + this.btnSendOutEnableCharge.Text = "下发站外允许充电SOC"; + this.btnSendOutEnableCharge.UseVisualStyleBackColor = true; + this.btnSendOutEnableCharge.Click += new System.EventHandler(this.btnSendOutEnableCharge_Click); + // + // btnOfflineStopCharge + // + this.btnOfflineStopCharge.Location = new System.Drawing.Point(379, 99); + this.btnOfflineStopCharge.Name = "btnOfflineStopCharge"; + this.btnOfflineStopCharge.Size = new System.Drawing.Size(130, 23); + this.btnOfflineStopCharge.TabIndex = 14; + this.btnOfflineStopCharge.Text = "掉线停止充电"; + this.btnOfflineStopCharge.UseVisualStyleBackColor = true; + this.btnOfflineStopCharge.Click += new System.EventHandler(this.btnOfflineStopCharge_Click); + // + // btnSetChargeRate + // + this.btnSetChargeRate.Location = new System.Drawing.Point(218, 99); + this.btnSetChargeRate.Name = "btnSetChargeRate"; + this.btnSetChargeRate.Size = new System.Drawing.Size(130, 23); + this.btnSetChargeRate.TabIndex = 13; + this.btnSetChargeRate.Text = "充电速率设置"; + this.btnSetChargeRate.UseVisualStyleBackColor = true; + this.btnSetChargeRate.Click += new System.EventHandler(this.btnSetChargeRate_Click); + // + // btnChangePower + // + this.btnChangePower.Location = new System.Drawing.Point(63, 99); + this.btnChangePower.Name = "btnChangePower"; + this.btnChangePower.Size = new System.Drawing.Size(130, 23); + this.btnChangePower.TabIndex = 12; + this.btnChangePower.Text = "功率调节"; + this.btnChangePower.UseVisualStyleBackColor = true; + this.btnChangePower.Click += new System.EventHandler(this.btnChangePower_Click); + // + // btnSendAuxiliaryPower + // + this.btnSendAuxiliaryPower.Location = new System.Drawing.Point(316, 43); + this.btnSendAuxiliaryPower.Name = "btnSendAuxiliaryPower"; + this.btnSendAuxiliaryPower.Size = new System.Drawing.Size(130, 23); + this.btnSendAuxiliaryPower.TabIndex = 11; + this.btnSendAuxiliaryPower.Text = "下发辅助源控制"; + this.btnSendAuxiliaryPower.UseVisualStyleBackColor = true; + this.btnSendAuxiliaryPower.Click += new System.EventHandler(this.btnSendAuxiliaryPower_Click); + // + // btnStopCharge + // + this.btnStopCharge.Location = new System.Drawing.Point(633, 43); + this.btnStopCharge.Name = "btnStopCharge"; + this.btnStopCharge.Size = new System.Drawing.Size(130, 23); + this.btnStopCharge.TabIndex = 10; + this.btnStopCharge.Text = "停止充电"; + this.btnStopCharge.UseVisualStyleBackColor = true; + this.btnStopCharge.Click += new System.EventHandler(this.btnStopCharge_Click); + // + // btnStartCharge + // + this.btnStartCharge.Location = new System.Drawing.Point(479, 43); + this.btnStartCharge.Name = "btnStartCharge"; + this.btnStartCharge.Size = new System.Drawing.Size(130, 23); + this.btnStartCharge.TabIndex = 9; + this.btnStartCharge.Text = "开始充电"; + this.btnStartCharge.UseVisualStyleBackColor = true; + this.btnStartCharge.Click += new System.EventHandler(this.btnStartCharge_Click); + // + // btnSendBinStatus + // + this.btnSendBinStatus.Location = new System.Drawing.Point(159, 43); + this.btnSendBinStatus.Name = "btnSendBinStatus"; + this.btnSendBinStatus.Size = new System.Drawing.Size(130, 23); + this.btnSendBinStatus.TabIndex = 8; + this.btnSendBinStatus.Text = "下发电池仓状态"; + this.btnSendBinStatus.UseVisualStyleBackColor = true; + this.btnSendBinStatus.Click += new System.EventHandler(this.btnSendBinStatus_Click); + // + // btnAuth + // + this.btnAuth.Location = new System.Drawing.Point(63, 43); + this.btnAuth.Name = "btnAuth"; + this.btnAuth.Size = new System.Drawing.Size(75, 23); + this.btnAuth.TabIndex = 7; + this.btnAuth.Text = "鉴权"; + this.btnAuth.UseVisualStyleBackColor = true; + this.btnAuth.Click += new System.EventHandler(this.btnAuth_Click); + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.lblConnStatus); + this.groupBox2.Controls.Add(this.btnConn); + this.groupBox2.Controls.Add(this.txtDestAddr); + this.groupBox2.Controls.Add(this.label3); + this.groupBox2.Controls.Add(this.txtPort); + this.groupBox2.Controls.Add(this.label2); + this.groupBox2.Controls.Add(this.txtIp); + this.groupBox2.Controls.Add(this.label1); + this.groupBox2.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox2.Location = new System.Drawing.Point(3, 19); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(1112, 96); + this.groupBox2.TabIndex = 0; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "充电机连接"; + // + // lblConnStatus + // + this.lblConnStatus.AutoSize = true; + this.lblConnStatus.Location = new System.Drawing.Point(1018, 32); + this.lblConnStatus.Name = "lblConnStatus"; + this.lblConnStatus.Size = new System.Drawing.Size(46, 15); + this.lblConnStatus.TabIndex = 7; + this.lblConnStatus.Text = "未连接"; + // + // btnConn + // + this.btnConn.Location = new System.Drawing.Point(908, 28); + this.btnConn.Name = "btnConn"; + this.btnConn.Size = new System.Drawing.Size(75, 23); + this.btnConn.TabIndex = 6; + this.btnConn.Text = "连接"; + this.btnConn.UseVisualStyleBackColor = true; + this.btnConn.Click += new System.EventHandler(this.btnConn_Click); + // + // txtDestAddr + // + this.txtDestAddr.Location = new System.Drawing.Point(657, 29); + this.txtDestAddr.Name = "txtDestAddr"; + this.txtDestAddr.Size = new System.Drawing.Size(202, 23); + this.txtDestAddr.TabIndex = 5; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(592, 32); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(59, 15); + this.label3.TabIndex = 4; + this.label3.Text = "DestAddr:"; + // + // txtPort + // + this.txtPort.Location = new System.Drawing.Point(354, 29); + this.txtPort.Name = "txtPort"; + this.txtPort.Size = new System.Drawing.Size(202, 23); + this.txtPort.TabIndex = 3; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(300, 32); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(48, 15); + this.label2.TabIndex = 2; + this.label2.Text = "PORT:"; + // + // txtIp + // + this.txtIp.Location = new System.Drawing.Point(63, 29); + this.txtIp.Name = "txtIp"; + this.txtIp.Size = new System.Drawing.Size(202, 23); + this.txtIp.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(27, 32); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(30, 15); + this.label1.TabIndex = 0; + this.label1.Text = "IP:"; + // + // Form2 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1118, 1150); + this.Controls.Add(this.groupBox1); + this.Name = "Form2"; + this.Text = "Form2"; + this.groupBox1.ResumeLayout(false); + this.grpData.ResumeLayout(false); + this.grpMsg.ResumeLayout(false); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.groupBox6.ResumeLayout(false); + this.groupBox7.ResumeLayout(false); + this.grpCmd.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.ResumeLayout(false); + } #endregion + + private GroupBox groupBox1; + private GroupBox grpCmd; + private Button btnChangeInOrOut; + private Button btnSetPrice; + private Button btnSendOutEnableCharge; + private Button btnOfflineStopCharge; + private Button btnSetChargeRate; + private Button btnChangePower; + private Button btnSendAuxiliaryPower; + private Button btnStopCharge; + private Button btnStartCharge; + private Button btnSendBinStatus; + private Button btnAuth; + private GroupBox groupBox2; + private Label lblConnStatus; + private Button btnConn; + private TextBox txtDestAddr; + private Label label3; + private TextBox txtPort; + private Label label2; + private TextBox txtIp; + private Label label1; + private Button btnReadBatteryInfo; + private GroupBox grpMsg; + private SplitContainer splitContainer1; + private GroupBox groupBox6; + private GroupBox groupBox7; + private RichTextBox rTxtReceive; + private RichTextBox rTxtSend; + private GroupBox grpData; + private RichTextBox rTxtData; } \ No newline at end of file diff --git a/WinFormStarter/Form2.cs b/WinFormStarter/Form2.cs index ef85d94..05b6929 100644 --- a/WinFormStarter/Form2.cs +++ b/WinFormStarter/Form2.cs @@ -1,9 +1,215 @@ -namespace WinFormStarter; +using Autofac; +using DotNetty.Handlers.Logging; +using HybirdFrameworkCore.Autofac; +using Service.Charger.Client; + +namespace WinFormStarter; public partial class Form2 : Form { + private ChargerClient? _chargerClient; + public Form2() { InitializeComponent(); + Init(); + } + + private void Init() + { + this.txtIp.Text = @"127.0.0.1"; + this.txtPort.Text = @"9998"; + this.txtDestAddr.Text = @"03,01,01,02"; + + this.grpCmd.Enabled = false; + this.grpData.Enabled = false; + + this.rTxtSend.Enabled = false; + this.rTxtReceive.Enabled = false; + } + + #region ui invoke + + private void EnableUi(Control control, bool enabled) + { + if (control.InvokeRequired) + { + void Enable() + { + control.Enabled = enabled; + } + + control.Invoke((MethodInvoker)Enable); + } + else + { + control.Enabled = enabled; + } + } + + private void AppendText(RichTextBox rtxt, string t) + { + if (rtxt.InvokeRequired) + { + void Mi() + { + rtxt.AppendText(t); + } + + rtxt.Invoke((MethodInvoker)Mi); + } + else + { + rtxt.AppendText(t); + } + } + + private void SetText(TextBox textBox, string t) + { + if (textBox.InvokeRequired) + { + void Mi() + { + textBox.Text = t; + } + + textBox.Invoke((MethodInvoker)Mi); + } + else + { + textBox.Text = t; + } + } + + private void SetText(Button button, string t) + { + if (button.InvokeRequired) + { + void Mi() + { + button.Text = t; + } + + button.Invoke((MethodInvoker)Mi); + } + else + { + button.Text = t; + } + } + + private void SetText(Label label, string t) + { + if (label.InvokeRequired) + { + void Mi() + { + label.Text = t; + } + + label.Invoke((MethodInvoker)Mi); + } + else + { + label.Text = t; + } + } + + #endregion + + private void btnChangeInOrOut_Click(object sender, EventArgs e) + { + } + + private void btnConn_Click(object sender, EventArgs e) + { + string ip = txtIp.Text; + var port = int.Parse(txtPort.Text); + string destAddr = txtDestAddr.Text; + + + Task.Run(() => + { + if (_chargerClient is not { Connected: true }) + { + _chargerClient = AppInfo.Container.Resolve(); + _chargerClient.AutoReconnect = false; + _chargerClient.LogLevel = LogLevel.TRACE; + _chargerClient.InitBootstrap(ip, port); + _chargerClient.BaseConnect(); + if (_chargerClient.Connected) + { + _chargerClient.SessionAttr("1", destAddr); + SetText(lblConnStatus, @"连接成功"); + SetText(btnConn, @"断开连接"); + EnableUi(this.grpCmd, true); + EnableUi(this.grpData, true); + EnableUi(this.rTxtSend, true); + EnableUi(this.rTxtReceive, true); + ClientMgr.AddBySn("1", _chargerClient); + } + } + else + { + _chargerClient.Close(); + _chargerClient = null; + SetText(lblConnStatus, @"未连接"); + SetText(btnConn, @"连接"); + EnableUi(this.grpCmd, false); + EnableUi(this.grpData, false); + EnableUi(this.rTxtSend, false); + EnableUi(this.rTxtReceive, false); + } + }); + } + + private void btnAuth_Click(object sender, EventArgs e) + { + _chargerClient?.SendAuth(); + AppendText(this.rTxtSend, _chargerClient.CurrentCmd); + } + + private void btnSendBinStatus_Click(object sender, EventArgs e) + { + } + + private void btnSendAuxiliaryPower_Click(object sender, EventArgs e) + { + } + + private void btnStartCharge_Click(object sender, EventArgs e) + { + } + + private void btnStopCharge_Click(object sender, EventArgs e) + { + } + + private void btnChangePower_Click(object sender, EventArgs e) + { + } + + private void btnSetChargeRate_Click(object sender, EventArgs e) + { + } + + private void btnOfflineStopCharge_Click(object sender, EventArgs e) + { + } + + private void btnSendOutEnableCharge_Click(object sender, EventArgs e) + { + } + + private void btnSetPrice_Click(object sender, EventArgs e) + { + } + + private void button1_Click(object sender, EventArgs e) + { + } + + private void btnReadBatteryInfo_Click(object sender, EventArgs e) + { } } \ No newline at end of file diff --git a/WinFormStarter/WinFormStarter.csproj b/WinFormStarter/WinFormStarter.csproj index 9d65814..0bfa329 100644 --- a/WinFormStarter/WinFormStarter.csproj +++ b/WinFormStarter/WinFormStarter.csproj @@ -12,6 +12,7 @@ + @@ -40,6 +41,9 @@ Always + + Always + diff --git a/WinFormStarter/bin/Debug/net6.0-windows/Microsoft.Extensions.DependencyInjection.dll b/WinFormStarter/bin/Debug/net6.0-windows/Microsoft.Extensions.DependencyInjection.dll index 1034ee6b9a7165ef68f26b374d4471391ecf00de..97525f7ebe94ff3f49b572e342f70f0deb853f04 100644 GIT binary patch literal 81536 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 S!wycGxc$0CyN~Vx`u_k1-yXC8 literal 74120 zcmb@v34B!5**|{Hy?5?xnJ_b%tZWG+;WF755EPNHNn~F{K@ma-5DmF7lPD0ACbHBO z_YJioqNsJP)}<~lv=p^!i*>h(pw_*Mds`L%-{(1ZCKI6T`+k1^(LDEjpYxpOJm)#j zS?;-ahUp706S@$>z~7HQ3h^ke^clzWKa*}`rw{&Bx_HR@LcybQ+6x8qRyN1;SI6uX zv4&OojSa1>c3b|^ru?<&Y5P55;wy6lu8Z3rR7L`2X8ae$sR<;Q^kKQntLUX>A*D?Ux|P-? z)K9(;OUh&MSREdybgL2VU#W>IR0;(l3+*>c-Fi`(R;)!MJ_~(oYBs{j=i9Fr?-zQhUo-6@ z;8IPGno%m}^ndywq2~f_S4whYP`Enhl593m+g_BdZ?}rcculv4(e+^^IFJQ%`v?~0 z7)fEnvPk-OO1glh^Nx@%%60XYa9P8t$h~@Lu_~3VaWN)3TVcU;Hl>8G(c6z^wGOLO z4JjqrUmeYCC0Ufy$A~f#e^rSO>0@`Vcu{V8N)4`b!z!mzzc5ONIi~BqrW<`sH>?U0 z)uUZq7+OYASyu5r^q*!`f*nVf`iiXw zH>83WQ$a{eDYGaQ>`VnNJt-zK5Q{m8DTHe%R)>tRu&U9JGCiwAn%z#k>f$lTAcjNP zemyc7Hf7bxcksP$qunb0A?N14~2@eeOdnfi1W4XQjf0L zBaty%pH-HpirB{hmj;kQ3alY;8gfggI=Q1LcdP?O19ZXX25T=J=9D=W>@-irI*w$+ z9(xR3eY!`VWgU;??BuwSm=nAsggYJW!Pp*)%;@-icEaXvQXNIc36!x=D-CJ(I3)F~ z?7<}#Mx_~zL^CQ)QGoJrPAFc7T%W1w1|lgwK?>6!mKKJqY1-pS2jns;UE)4m5gH-g z=H^6n8$sdoX}W1{X*Othno-@J2wtfd$|&s2XqN|-=wWG3Qhc{P8Hr*Do=A)=!!mn2>6`Hn==t3wdnt68mIa{O+vE^uA7XP?p=C4}oG-Fo{f< zuMHlf6qsoxV>H9F6*<(~p6pXy<-^c+l?yI)O<9_OjIG>VWnOJ?zRCqJ&Eu-xr41gd z802SNEW-Sa9uLJ&L6tspUn~)ou}d*9?Nh-u_r;UU>wB3ilgwLtnOKh1K#bkf%WO|F zAL(VDon$`U%RDE^e5IGUHpx8L%UqXae%#BXRfwm7*q6P`^+~2Qk}c{;G6TKL<|H$> zmw9fIIjoo2nPgV=GP{z@Z_+&O+oKzy4yYt zpx7D8)JF}F_d&j&7Mlvqy8SUa-1Q!)Xw(;JkXnaIWzWSvf}gyI~?PXls&k*JUV=a@#1C;as+%RdKs7K4UAG3R-3wlrVNp`{$j9CqZN zNoik4Qs)1~k;_rh=UmZVl(ZMY9>>h`_;7H#(fwGlwJz+c3=1oe8I7rhK`-;ieniRm z87Q+}(>u}eM%1TAN9tM!r7g@tW^{&@FDxNC)4_I%iZbFOaK%>)y|XA($Cp4C^frBCK6LX(|J zS^+NZCq)0=!Zzh&Pf$rWfzD_dU*=i)h%n6)0qR}kU zZA>|)3MQIkuz3;KpM*5TUq4qO{`y9vh1s393h}#96zj4U-%kn6)ZxHr+;WbB7XQZRB9GQnxq43dEg4hALpc2&TP> zau5Yv2ndbo(N7p-0UF;2D8u5h`(=gqKJ)~RIpslDXv4^x!+|;v^J56c{ ztv#FRf{vx}m)uqM$Jl=X<>4~6OK<`XBL{F#V>{8 zPV6q6A*IDbu(&ga7`mmQk)2rDkcrs@lVpGFUq_+o=w|qda_m+p@Qv~@)4CkM@3ybN z#kvwC&0}AMOX+I2eKoFhZxbnTaaM*aAu^WmvLLKgfI?+XjX>?vj{m?U}#M0=T7QpdB*fJkZW?0N6l>sPm=QAch`kg!O3!F) z(1dQ2l6^IaEiRAH(Y2hj136h+akm}64XHGfYcI1^?Pge46)(=paFt9C>mir51h!`& z!&;0)$h9DQL55oknWhnPb9*v8nmgpNKZOYy-msVVj@Bw5zX$BwQAx;^eJTwNM@RJ? zC7oFra3Xp}E!j}%FF8XoLVjMfGt#tB8tU+I9Ytm7#SYG5H)I4tfzslT4~l)LK5+Ev z1FCvI=@0p{DsJ-FJ7JIYD%ondv&(gNS--I1*0bX8fn~i05;9DWeFvoCm^{sl^!`Z1ZObBIZt%SMlo-m_G#~7yYE>fDyFZK=OF(5{^E33sdgwY zlD0p9TYa~x5>e`*_N#Nq5)nB;`0D^EZtsP!a#3%(fvp4uuFJj~s(cZ@xuq;*!BwWq zqKVS6cT012&3H3wYlZ<+?|~$R(w4HI4je~!A~@eZ4LUVCUqPr@YrykUt~-u?r0g-s zHoM?hwfbR3$LhBN;T*pg`iiEU8sSS(WOTS@gj!1Ym%o`tipf z6PAapNV2$+)D2I>B{S0v zc(E21<8;Yotw41FZ&?;`v6C1KSnBnlA8%0^IS8h(6$bDa7O#9gD7ropHQnCrXoTOL zZr~pHE|d0BJO>**2jdxMzyx0I;Ub=LxuL&5XrIDfvUPIAwCdwJ3>dumh0IiG6!dZ2{ooF zOye1AsThQ^Sw5F7q1=zs=RtG2vAE3R#v=49m>@7e&`ce`T>K|o!K?ETZ9#CL51xalZa)vYrP+E4D#`H!;C5mq+@5B7-1h$E{GC{fKkL-~{49=e4Z()BfXRToFAX!&NiOk;2lx2NI>@aHukZ68$ZV8dHz` z8B?_NTX0eW-$Edpx|x#a149i}Rfo>^2nDEv?#Cz=>2`e(9U*C6gAL6vU@2FnhYVlx zAn7fRxxVGessD%allx&qeHLPkh7tUnT=ULCyXm91m%?AAS|o}dI1_@UQ!K1GX7c2N zeTJFK$#!5)Z-a3f68kdYneCQ8+5AM6#meu_iIO^3!fiEHM_(s(i)KATh9&RS_+H@I zq^*Wn3pu_hi6aPUkLad7q8dMmLo%N^3F`*$ePJ5yQ)&E)l0q^M z-lWG_hK-$sO8h>N_yZ;4`#{%IjA4UK`$xq4Cuks)dcn}}hXF0%LVlimEUxoY{-z*Z zGEdXn(EFM}x3*MC8`=W&M+d{aMQ>c6JmAUO;u%xFgRJcP;TXqcv1U#ZL2)Q^P-h)xzDAD|U<){3(T zcmrd;2)RDZ`htNPT5m$BNm{E&>o;0XXEpaQj5e(gL5$LTScZwsSC(yI0l<+FH9}WI z>Ut#Ch?zJa z(CAQ66v1cl7IGHutFD2FsdrvWm#og~=yJ$hh0OTdsGAGp1}ka%iEKG+xAr5O&W~oI z=bh8c_&eZrPKFMgicFx3(K(SWuFgqx!RWwTXT}eZ7&P(uogvzxvzTM~Q{>WpBVxfU zD~a1M!|&EQNEMDpNr&Brtj?`SxeuAElV++hmMEHCQ=oN_8NF;;y0i|eQ@1fxN)Y$f z1K=h4Bp)^mqgc|dUx4lF!r)9y(AGF`O#5B(2i=FA3t9LPV=vX-?3xp@FPVldYf)C$ z2`Ich=MoGMLMU!v#)4|BIOcZiJt#_wj-^b?r%a02e@5QEY?R~Y9NDxcnn#medZbsZ z56Hl3wOA^U*G1~-juKuSpj8=j1t@sCLkJ}4CX!c*p{wqQ3zk%QcB877dade|h(rbIhiBx<*sax~(t4!(pV;36b7Tz+G_2 zph+2bRh}-aFbU}lGbL`Ff#6OK0st_v3HNsEAEe5i@(i*kVN-^u z>p1Agp@8*I67qJ9A!z-JfG_05aRTYWow^5i{iHD??MNF!p6!Wv2>C;4)_0IowZhei z3rXipv}EG3{P)Ofn~RReLyjMijxJXoDEG&1plR+k@YZ*YhZU-lTb0kfk8V;d?Cty3f;lL)7B^}Es~^=8q*_K%EokA94N68*Z!M`+ z=O$X2X70o7iccv?wlXmzQiUF6LvEjz7Uh5)B0Iul2gTyi>`3d4=>KAe&$Cbe&vrPz zNZ5fJVgw~_inr6zc?sR_mUL5;r#N_EqLsdss4Yt{{gHi`|9rh(PqfFAMx$lliOCSGBMS|9qnl>Y-YBvVB))E10eXGS zR=SxHUi$!;@Lloa=PDo~`9}&Ojoe!04oG=;7S1-hi zyhg_RgPWlM8-s0hIb@zqYx>)W2s8_OSau-hRld%nE1KC!4EUV!R?RvH_5CDY)Xis5 zv))xax*U?xEIgg#eA^Gts1VHB@fCd+C+xwamboA&CdN>MVGG7(PklVhWacr9hcu{eYr)M@+Jr6R`{cqR8=$cT2qhw5Z^I}(S?^{|x3Qc*YMU<|}zysxtn zAQ|S%CTc|PrlD{1f3u>_K;YjhhgJY(#X2laLu zA!Rf!09k50#ls z?^BzW2SlB8xlz=eRq-2oR;!DPp}#s+Kb}=5^v`xwqwsD*yqVB?XiuM>AccnYd@-oaPB^LD-(ojduO*|~$S=PEHe zSS$$(M%G{yr|B>`yL4hk!gPp=o#_y9g%_7P5&4Htha^c6N)mJ>5$Y$6pNDF&&&r4T zY~TJIysEBsG$TKs-ixi!vZC<-F6W8|;2t|7?ccNK;ramd73kuQ!T zAv~?296E`~qpeYY5US4|8)OX!wFjUG?g&bdrenNP zT+8qr6!%;{yBwq#%nDr7_V-KZTEM#AN5uF;f(ejw?!A%A3Kz!>H zys_G$Ow6qs=G!yLF|Fa^DZIFi>$?hTi6r+X3q3K|1@bhCIhTMu*vZ?z`XYqmK2#C8RSncw9Eui=!91 zSEm}uMWi4)D39g@T(h04gO6^{^Zyrnh71lWooHu-?M5hBHPqhnIJ(>HW-qAuh2ow* znuQ12ho4#Lo#((`aPL~WxH{L-B|ZXzo$D!yRe3b@#YYmS100&?4gM|&hW%k@KsdAN zfiRs}kye~pkver|^$VnMW_2DZdmBTaZupA+ULka9@ov5!TTjg5>+kA)^ff7meh6(w#Wz4md) zZzJ4E4GtUL&inalc0Pb>$cWyh&T&e!@x~;yQ#j!r#&8a90xm`4)tj`8l$$cl%sb%l-UzN96S+8vx8c0PvUyUYUs>u zXosWwq{9nFqHj8^$%pAW5xBQUV-wKp^scebu4m1N30=Gn8?l3duV|cYDa%i>Lp?L& zQ#&?h)IAV(@=t<_#N#o0DuBbE#(chuAwOpMN>)2L(*aXkN*eIiC(Bda=2pMvc6!MD zZ+gh#lV(Tj3@)Fn&&)p6huGw{G*@q;?@#FBHkeHx!$vQgWqu<*6Qyiu!M=@q|7f1; zic<-4l_Nw3D;4%EDxcEo*}(hq6ERJi6NQe}zg?IhRre}&>fqI$gHp+Nu`#guqf=vU=a&4B+Kdk?E9r3q{+ zX8lxKVdf$zR(0EF^w#0{&Ppl27`Y*Q2cuWW>4+2=_Ah43K6SWL>sZoTyiZ#>IJz2; z%T2|R3|z;Hk>k~5R=gYCT*Q9GtAgr{(4{EXiOJUhpQf+`zmfR&5?||}ZA$0eAb7i6 z)s~DloM$Nx`v|)eWk1i2*eCMGNIrc|2hPJ^G5$&_^{!pyZi^I9ApD@PDuOtfWr83lAlg825xvTiO)tef4mBBW%jNoLTryANAmHL=7tQHDXPXin^% zohpF&8-w$l132v{PsD#h zCDdNG0BtU$y+{W!|HCtJ`tC_LM6l)Up^MRZ9$oN6c>}I=V@A1jrEI!VK3zHgY!v?~ z7$~=yF0Rgvbjj|7<5`NhBuzr}iallPb{m|E0u!BWx1)8%Noy0|UF>VE z^SwoK&H3aSI$7g{>OUHhCs63HShKK9(RVPiPqnZ{nK}wuXOkD9-~v*B>xFcs zJ4IrkM;MpKG2@!u7bzL_tyHQ*@~a`^PzMfMFGd~o)EqO08GTdh*aB&Kv6!y>-I%PZ zT!m72_!8zyl#6N|mymKek*;O9J;ygdsHFP#F2B6zJ2m<+PVF%3n$`Z;AK$nt|urc z6!|-e?~Yg4EcKR*%I@!Zy1AeCqZ!pAud^>-5A zjU&jLapm`Zw2o~^@?C{#ze(Mus}tL$j*xN~2`Puc4*1IK-VRQ(0ob0?xgqulVglE{ z1G#)InSC5?IfQoZ?Ov_V2R+P z$iB8@xWX=F%vdcuVNA%CYK==-v%gcBlHoeKEiSgD#P97r<5bqr8~r%#{Q zFADF^#oPUZ52^NZ!}0XK2kqIP(U)zV2WFJt5k^DlyV?Rr7y`#>^sYDE*UOR0bGo&G zM9bqFap~Sf>E1x0IDuO!Rzi9kPPqDG8@L%Vru|c<=Y!f8q!vmPM%dDsOjL}YdlL3g zs2HC#{GDA}URhpKSyMHdI4;owdL05`D7hWwpJUE!PT!D8`X9(4J;Tb0K9|Yq3Zj#WN#`*IM8~nrgd*ZU876v6A?bWC^VJfc zctO9(FvS%`uT|mw3%2=#(2E0o;z#W!BOP7dlbb) z0on6&jav7fMw~R%Ws2djr&x^kZ>@-8_d|4B5z&1EwpN(p3GUN7@<{TmbfRu<*EIHk z-j6sj_TFl?WV=P2QuaoXN$IcH8*iXbO|f+V(OInL5vF6|VMH%m@;KKuj?>38Kg#J7 zm_D3Ak}seYS>nMGiiF9-N5Y?9v2A|}Q;V+QHhvCTE^ZDyU05zI(4H3 z?Tmot35{jW=UBSFjBMM>@;}s&|Mfvs*Q#PlHokl&fUqv81TrJvNv-5_CxdUg@W>cJG5asy~59cn({HA1f5}kn9AVf1(Pz=NP zn~gLI0L^2hV}9%gT4A*3FG7y#pce-!M6==NIok&;Le5~$>nJAV=BGW-GK`|qi+2ra zUpln52U>iz`-9FIX+8P3;Fk)H;c{zADK8+#vE-8&^MvX|4l$VY< zl60;sBNXHluAn$}P*>q1yzxbIXHfj5hEPN_p*}oI@^=;H%3Ohs6wuzmgbEo2#nr>Q z3iDuPoA989Db-zt7XWp$WWfNEED;-7XFsc}a1g$OxDmNQajQ->RNyxk2;JPTtMCp{ z$!~85#V3)j!fkl+xsA)+!Kj8$F@xefNVcHmcXQq!i@FMj0O8~uTHa(WQ^X!dlQT(6 zz1Yhrm$gh2&#~6CASv+MT`w}4*k7TSxeavzYQs$NDwlhbb6bW79X-?jBA)L{=#`ONO=py=bU#Lqb2N>pcurKH3=VrD=037cNdA3A|1XBiVKSg zohibS{OPZx`py&)mV64nj$+l#X5@xsxrm8EE*FO97vT+D9Ku1%cWm`fM4j|Q%bYT- zm9T1p3;F0{nNX)C+>*dP9gs_}1NNoYysw@-7i) zNF7>m3WmH(MPrKO<)VpecqW4+uNG&rBm^OOjc8$n(+Qxh!e-Qu(GB5jlNf!W=IhdqzIOva+`V zBgON12k@@QH@WYFlUM#BXj$-c&;sk5K#llo#aqbD^zH_Yn!CZDGU#8>wzjHQ{-ZQk zdV%<5VF+}q|1+0qo^QM#nBP6Qc0l_4?x!rGXH*isFhI1Xi0HRLqAQqRm`3ScHAK^g z4oFXExTGqdC5e`25N!_TBe>o)3qd=)!;_NV28Sc}lB(gbVczgE$C3i^H}@!{m%5J! zooWsM{iS;x=qcVwpldgXAU9hE18 z-ou=N^o7uQ&#=XyFV{4Jei1AL9THdxdQ(OR=x0TjgUEVY)7c_kRsC$4B2uN}lie5V?1opMxq3do|DQ9)f zm1iL69xvJXyk`jbpA}KhUcoWB74cahKJ*YB=6N3UuhDAAKQNFu?|8{que!&8^DU=? z9^z2DMvBQsUB4_*Bqt;Hxq+vGHk5uCFvasFFQsGmHfT{ll4*d0I^xZLBR;rWuwK^Iq3dU@srtZfUIx-wa6gmxYCZ-wR$ z#C71mlRBh@{1HgjL>~ve z%pg6dR6h+m+W$N#*)uC2(}vibbGJpifm4&{EwpBJ5*-BkNfJ@smL$qVxtkbWF0Lrw ztVywh(Us!dyiBhYUpeTL@~802ZvzViK39rQ%J*OwF*S*v!#AV5lIRhv@^>ZCn|Oud z*+KjA2px2gpSAqeK^=^~bI{F233q$G!kNsO+<&E;`&h?vgk8u4lR zSN#gbvLyOfzhZHfDkr+bMzBQ8Dk7biiwA(p#r+PN8VUug#G|+~KpxvN5~~2A9*&oh zqLk5Q^yZM@NO3x&J>oHIc<>nUyo0Pk)xptX#c(ROM=You6Fg3Aa!`5Eq~P)5dS`N<6GSQQS`)TR5~CO?PfQY%l4w<1G%v%9-J(i z9F$XZZtz4AXQbLNMf_AD@m9sA;1uxyqs=1I42o&uaR=S!x+FMV>~+wy6_*6Dze-A8 zh+nq*%t3EeTp64r+DpjJ&EnaL8-w%2rHqsZ=ZhN|T_f&u-5Q)PUS{-x_lwFlxj-Cr zP)|(`(EAQ*8F+7Sf%w8f?E`-qTqtBI)$oCQ30tJoMY@AlmOdFgT?}y0kfD2mi$sZo z?#O*IxLAyK&|>R_;1V&F(Lw2Qy$-a%LF23wMFVC%Rm1SScY+PVcF=WIzYH!FT@HG* z+$ENYiy5hYXc9Lwx<=?l9|W7k-AVM<;Bv7miM|c46dvr|gxEl_6gpGvVf2AC(q7V5 zi9b4se&4oLyu;|A9GejiwTizuXi9Ew$QJH$W#HXVYJz^HJT&Whyf0|Cz>hN zh$08Q=*y8YQRbjO`!cc99H|h;bzF>Pq=3W-;$FBEaH-a&WdUWogI z3mmk@H6+w7?qJj-u1t%D&JiCu=%0C&p|#@WiiFP5q4gqINvKEs4_ezHR%4e3zleR2 zNudsLcM{DEb&8J|^@!QX`-zx`{VtUg6_Y|eVxxl|H712Nh&>LvCNL?qNi4zn6-nMV zcwy+LqQya?qA_%VFh;1nM~yY1OT@Vj+8*f+T_NVtK@-Z&DY-Osjo8a*vsmN0GI)b{ z#mUYF~C8OSr3M86&((m9=I!Xo4C$Fdm*_~ zyv(Raj0`*;x>L}%LDa1AZ0H_wzJtn(UJTtQE_cx5HE)I<5ZfHIDezwCLGc#{)zy9$ z`Xyc>CM~M}9uZ!JJgvd6Lyw4%gVqMW1Ilwypi~P#Duy^{aH$)pR3R}g5)M5kRyye8 zA%XC(#Pf`3=F1H~Dbnzmo~+&!7#jW`G1WoS1Lfh}Vu^$Hrj>_(BVKdRg38h1--PtPBm1pNfcsCWZ+WI7s-r z!=H-bj5c^C6>b8ma*$PW5zuHx&3j_&afrgBDc29{xf6%0cBt2g5&#-41%Z=F_m0zjshw?bl&l z{@p>F0zZabGF~U}p>g~Buv=ch=t{A7s5iqaZ)VgZ2Bn8Gd~%N?`IwcT5s)LtQ@P8< z%~iuQ`pMOd_K3aE5|-N-^@xiHjmU_|w| zko?X;)MJCBK85Pr;3?-kzk@Wy#2}f$h-zP#F-TT1QaTIdYzL9f0(pjmNN0g0jflv= z`@zi_N#uH<|HUcjdH?IdAqh#>RaoPOCehEZ#uduttn(UAQ}D`+V!4VDt((^abu%K% zwr5y!pF*Ci2j87hB42mV_Q4MT9dwYl=8=q2`LTmSHBSP4!APxmWzwi8tCg?IWRQ{a zb-6sA(KVjcwRb6rw}Z=F<2p&G5SC*Ed5$CW*+`y@-5WBY(~1HhZ2(dp)B@{?0*92XY|k zIVsU1DQe^xMymg6ksRDB()mESS?z)Mk3EA^>l%R$+QD5#Zbj6RSQ1taA74x(KU-cI7r9v97g z$H;4)JlYeDl0SD4?R!SaU5qveBkjA4Q8GM@3VtB>qP}CL#i&QTGR%k^D=%e4eH)G( zC+}pm!Lw|5Ze)ynK;?Os^eY56JjIPgnJkWn<+N z4kF9O%4IVsuSX2d7!esO_b|E=r=eqkvS(5r*&=bCHT#ylTrmxCU&u882@ZrbeE0G3yw}XtpE0Lvg z#az{fSJU=K8s$|Edd&JL(j+~iIV7`P9&k`mO*HcyIpq|U_f2(e z<~n)pLPD2|F9PE-JLH`XdK>6mxrbO_e(U^b>hMBju$YS$De1s}nOb zd*n%sHha#sPRraN=Q!v>s{!aV2aPHp5!omk9W=RoW#&fN;-G?PEOV1=b5KQe0}y=) zFA?*b<)$PW9oj7KV5DZ+pUPK~c~@tiFTYaA^GbS-yjXtkpgYP48H-q_=XBilTrATZ z7;{F#Gj*0@^Uo|N2^ zd9{3)k?QGd<*$=@Qd}#aXS4zDB0QIQt^7#kd45^-M&@;L@M7g%x<|iGp5P$5E5A;z zRtWcO?*y-x_d95f>z&N4(!GSsv7I-_evCGVm*q#9H^`xklr1;P3Px%kyitx~v_bqv z{5|tVxyV6b?O&NclT8kqt^X_YX1Pk0^L#%`7tITJ#LEH$*Tcwqfw?kGsc~8m_89U_3j8q$LlMN}7x5?%{ zsLd%ywcjT9IB1OK&bnQ`%}8n4DL+mrw^M%ZNd8^8vv$g_7#)pxwet4J}9RI zF9X`lNNKrKUcpGU=uUYfqYYw{2>9-lPp9PFCI8R|z2-<#+wYR}NGrD{7}Ufqd6a&) zoZhuKR_~kE1%9pG`J~Dyz9H}v^U1PLmr!~x&et^7rn5Fx_(;CdNAuyORIba>pPH*` zd97GOE#0gIcIvCVNXEYcz#Ba-jL6*EnB=c# z9}?AYeoma{2NL}QbGC4<;-pd~uQ*DBvYee7)Nq{=uhaWA4F*%TcXmWLBo@d!)5**e=Z_i6N@;` z2e2NJ)LDZeHdc|Iqw`(jUH0nmexyN_BAbmqwG$_y?K8xoOJw;;C$&oxUPMSDeG1#G zVodobjbmnUHOZ(rROuxgS4XB*S>o#=8y+@95o(b_#j285v8vK4R#jTXs!FR^RcX~b zil)XGS*VLIxgV8n?`Ke5N{>n_J5~A<``fDk4h^WR9dy`$T9eT<)@D2 z|CjOmKF7?}95WQ{ePf$uEu3oydZS`N;n6sTIDu!>R1M0*_hJUq#49zu9#;HRni>QD zoBmDhQ{^|+zp3ftI9e1(^>07SA&GfU$EJRhyl#02J~ zwlvj0GirPNLpC6K*)xCaPkb7EeLbu+t8rHc{ZgnjjVaw3v#D{LTCW;+YFw|t8lieh z@=3fDsWsAw?pyEAIocJU=C{NQth|&DYc)LIBpXT*?Ku0-Cr$}gSY5oyE3e|HsLtlu zjHo956r?AZ${sc9RkWu@tm<*aSEEU#|6d|mMb!T$-u|6cDq8;kwTiSQRw$LGC`!cP zbrz*njfxUSb5^(1bZYFS#)C?yMg{FCH0&a%r+$lB8sBYB*+n!|5dUwy(y1By5agvG zny^#p#4DTNAIEzSn)#*pEsuS*ZmLLDRIO_?hiKwjo=KFXqDq^Ja}_Nrt;Uf`E6FWf z_Ee6>hj}jgA?U{&Y3X>+C!PNbgZ>tOS$M1Hdi)*4-(~pwvlt3I6nH4o!|=VTD1Lb& z3SJbvD0oqEJl+y}Ta*BofL{XM1hGnb1)X_>KwWsZm(qC00zU~@1scRRxrx?+X5uX` zO3!Ax05lKJ=7`hGbPdyWOnaDK!1Qva*Ms7%2he=H4@T+FLGy%HQhGGgdQkk%H>cNt z2JySbYg~1B19>r?1LkUX<6okw1C^ql>5HHjiZ?Xcg}8DJ;hMz7^KO}ZT=Y?W{{$ZX^;#@yB2ecLU zbO*)!+5)8M^#7nZ5Xu1^&Ggg!0dkF=5iSE~DP#_cj|b++DlNC7RzAiS_UMIa$02<& z^hj>+V`59*NsydZJ|Fba>KwUDJeRW!x&QR70_U3I9C?BMd^*Xz0xD&C|2A2#6P5B| z|61^`Vr~EQ{S@g{1Bm}m-xj1jCY6!tfaHR zt62UjaZ=3!t%_T871w?h+j$i%d<>p>rTlN2l=c0-)oz4*l|I_Ix%wD=2iJQy*ZYw0 z);z2|BzEUqq?7z*`V*{q57W`cQ&sos=dxsvq*LR1i%5F%7m@VbFe2%B zVMNk%!ic2jgBNfNL?p#Io(m!73)zx`;_smrJTH8G;5lX~*ENxCs8#kbr&hMOo-`-Q zr_vwR8sv%r|1cZmWroi^kz3RtKA4QOeFd$zGOFy1|lOEt&`D$alm)wn=A(ccQ0 zmg@6C>G_4!ULSZh(l=M#2zo~4%b?AHw?V%h@B!$+LH_`4tTH@QV*vE~fw`P60{wQt zXr@y@7uL-4tkM2bz1(xXM&q|ZzEJ!&Ea^;N%Q721l)l3=k9|H*(hP7=Z1S64k_>no zG@5g0w#)=)XKjDb%ZwuLL2)ah_c4BIayqxDkbUx^{At=rlE%~=Zy`M6HcGjdzh}QK zL%I&{s8YYQpe{<&%+MlfW_Uw3;cb&Qi>cFpS%{dNqXC?O-?rOJ0FtHSI%Xt{%Ks3F~Ik+v9;zjpV!qC zY{0L8ep0c*CtWM5SNS%gu4{c4%YV3XWP$6}^gDgSU3LBFOu65Hhx?6n!g3}$pXyG zuatk{Z|0WLNDqqLdd|=v{LQX4mEN@3h>9wGjqCb>{nFl$7gbD5JE(nMJT>iOjr#g? z?VxKm(iCH#Yo`xsO8Z=^<}~dh?q;2Lb1Xe1D|O89@*Vvm{UJHf*pc=GV)&P7Vc`|+ z0UbM(Siplf2iiebGHns-kzOr+0@@}vg02-8fSxP1fOd;3K{tx)K+hL9fnF@OgJR7I zXxQaFjP!M^;YMiC@N|ke+n@($f8tTl+rZJqom}tzEcp=EwN37XJ6V8avu(7B?A=}k-@1U*eW3)(2&2R(}=<01zKJslznx*KR?fW@xx@1JaPDt8_W*v=czoXb%n_2(h75z|bGnez8;G!#p&O0`aPz?L*COpq;n|K2}~QAZeaQz(*iHa)G=*f z+Qak~rn{LQWQwo7LQ?wJPEHqadK{29VX_#ikUNPNjOpJ@TpahyAj({)Uj zFl}JEo9RKOGDI2*nAS1fh&O~T$-gB`{O$~*+n9<7bC_;px{GOkCh?ar-R02lz!{hQ zbMf?`B{`J4i>b(^^f;zVn07N2c`U;;zyE`f$?wmSOqVcc38%Z6iUE|HKY%4UJ&x1k zIK5;b8 zo9Q;DyO850akYlv~K@aSkO;ca%#p6(uAoN{Exs>3mL)Dfh+u#z5m(qt)m% zE;EjGO>s?kt#ZX&TV20)z3lqj6*Om>o#sR4AI&e!G46BRJKak>EuLy`y?3Fv&D-OB z$osr^itj$(F5mmUzxamuC;3?d|I+`hUrWnQD@|LQ=EfOEy6A_~0Q~%gh+r+q z!U~ry1|n4;@-c@NilO-CSrOKaVff{7OH=}l02(Dq@XJc2VjMUVL^ZxCT#IiLkH8u+ zQcTBp$7bLpVHS4zbMX*pQgKEWzH2=s2lRlS=nI@)TR`cee4@{}h`yXhv>)f*$@EsH z_l1amE>oF7=|xooKsVLogYF$z2>L*j(jWVXej6+S9a>ri8YmtKT97*i^qJ5&&?#Y} zA^#-M`ofbyOG{>f9+^A2_LQUYt678jZ%Ta>Y(%N%U^D0&gKf|`HEp2h)vgD9lFR;t z?LV@{`GIc86r@utj?C>Gz8U<#)LajG)3Bd`UQ$IZRW+_0ek;<&!Fxe#iXH+zQp2RQ zUxB~H+68)2`CgKY{sHt2uJP_Ns&@%{vUu15q!(6@pEHZ!2Tf<2M-&rB`S7u-Pmor9 zp?V>G=-;z6oKNXOLsYpy!}#{4hP{RtG=iOnhF`1=fMy}?G{jm6Gza+_PNOnG^T5*( zf4QIoaMciv13~NXjZRIBM_l4W8c`_`b3>6{fasKBAt;_YAxi13^kGPMBT^;a-x!Yc zd5Bhtok$7NHzAHS?64|8x8u}H6Srcoqlq1eUfOLP1A056SHqs`IMBNg=bHFAejh}` zw;t<2pF#bacvegT{T-qn=f*fI)5PuWM#K+iIY2p)nXB5v3#R|~RaQ>!= zzhbAQiNA?epnn%O=ofg;ToYf4IOtdSS57qXwKxa#8?g>l$_`LXc7hu6C!l`W1DYl` zfCg{}g}#tK1wB??0IQAz)x;Qi5z@zlYIwWq5~NQ6)x<=3Dd;45Ip}10CFqIrYS4Ol zE$B(|deC|D2FRZbs^OcDH-RpYH-nxbZvkD5y_6=F$lE~Alsh4L7HB&5#m9hN1OEr{ zZNoe8?ZSKU%LGyJSGhw@5Z`DM;QN1QlW^WyfjMY8{=uQ;cuRjR`uSS)>FM%!a)P!- zyGMImdq>OHm*}hYZvA?FhyJ}j)MzsH7@rwAu8Um{xPIq)&-G8&Y32s=67y#BJ+t2Z zlxLK8xp$TK6K{s^Qr|7UXML~u&h@vXU7B`hn$buQ!DPm zJsVxW;kKMFTpHo?#YA1>>zO!D$2(hcGhYX5Du1x1@&{`wzd$?72+28mf!w7J(khL` z@-3rDhFojpLf0V8G}p*A=5O%#tQ_EOk|(>@$n)IK%Bwux_n`O*CzN*)-Lqf+8Xmi?JeU+?Q}eq6Jy3UE?zvbIlj83 zVcmq5hIqVcaithDFShQ)rnZSq%NyET+U7U3v^R}iv3T)>SW`n=6T^AyRyUo?qUDWk zc5Lj@#fz(|spS0Tcyrr?hL)DO&23G@X6_M{)R64h(Tf*zVorPO%+^V(R=2I2+t$!{ z78PSY*=5I@>f-BK8_9sWa~hi4&aE1eC|os?Qp&6ec5A#X)=t)>RoxlOUN zn;V>BKHN};i{f0mZuRP>)@5^=;&w}WTeICdtD$WrS<9Kdo;ZdLJj}62 zWmb(!X+etDMiYB{dvnV&QjheUriPa0^-Yf94wIc-KdH5SRa2~CX$$)svgo>07l1Ri zm6S|d)?zo}I=4+-r!8xUtpJ`^rTPNCLh8S{Ga-C5n<%dxq2N?iQCc@6Qiz?-yobqt*b=L6I=QZJC?1iPiBDS;-~ zt5!F}n&X^BUelo%s#sr7ENxTh*}2;G@weX zXlh$r-`2FMioT(Aa(!!CO*MT3i9;FgL+Zb|uiEiVwd0#=F}c09aY=QeE!ARb(>fkw zvl^OX;3vA0I~!J4i~5Pp+|mZvg?ziUu{{=RYHjPohPl;AbF0PbM7=dmy)`fz5n8jP zMj22e=C!Xz$KdL6O?lFObo~bGj+O9b*LJ|m@%nYeP@!f%l<<>9M?S*)oA)IWtBHgiTWn&N-_I z>G-5p3h-sh+wqC(S{qh1H%_pZHBl5dQ_kXLY93sc68!UGO-XmZn63`uO2^MiU$kf2i4!r@6C%=iAN8FtcL>5r1@v?wRI{k)xOd z&!V&J)+4i0*1G!E<@S*R+(S*VBQu;njs05zo`#Psry_$III*dvc@@_7qbYB1ZEIfD zl&IrKEl$85kHy)uYk+`y@Z;po12bOxW2WqrG1$iG0ly$8e#}Aw1ML6 zDAI{g=MXwdzGFgSWuRh5{w zY&m8jTA&l%=gd?B9yo%hc5*CE^Hy?|Wze=VW}j2PJYnw)yKS=F4k1!Ly{T=by-Yas zw1cKMoRx?zhm)L}lempW&*YfBYDz=vvX&-?Pb$#_2l4jz#P)_5CVfnsjc2Je3Dw7W z*;wAt*d*pOVY`ki@i~N76G}AOiB8T{3xYGa5*dB>lC&-*a^h;{=c0*;Td0LL3E7xF z^IkIRD2w5wvoSl)wcBGbFs?4BkM>=(#EF@!`9eCUV^`O(qRFXlLUXLKy`>@6t8&uX z#-`P@u}BC~AzniSZ;g1creJ5uSDeL-&gNP{p8jUoDS$dB!C-X>usBZZNMcS)(XW!o zz%5b=n+A%4jkLaDu|L~Bi#jLPOzV7d2P_u1I(uPde#&;ZcX!jf8>USk-3+mgdcGq{ zVJKIuZflPrk=uI;ZvLE-b9rsV)|YokYUi394V*~q zBE)iMJCV>#{=vO24I9x)WFq!7^I$9&o7TL%i7Zd-fs(i-nV~kNP74JYHM6xzsQF|X z_9x1YrgM^MwQUjg&LB(NSvYKGA~||yVhecmT*ro^XZGGF#g8sfKW!4$@uTO()jV*R zsf(L<1141XVXkUxnvNK!HsdC$560xxn@Q10do=b84^y6!RVv{Yg^p@Yq6pu!_q9o7 zsToS8F}0|~%0z;yr%|cci(|=ToJKYqMIpxt+7mnH2u;hJ`wGrXnc-7}Qzc*+ohGER zc$!IyJ8eti`aY8=u`yd?^9~EnZi-b9NMh~#kAhC;_0|(t1C`oHs|flA`|+8} zlL8Z)8ZpyiNHGT^@MPT4#9G!RICQI$6i#f01@?fvD^`9xqAjBNNEY=(a%aRE9j7HK zPFyFcT{T1Ud|fQour9SgFQbi`b=U#Y1Ur_TgC^t53X_#kGtKx0{3C+nW6S@)_PzwX zsiN!uCQWy`rR=m23P{<~o2Kak6eyIXKxw5#c1yM{&^B$7QVIf11!R?dm8B@FAW(4w z*^$KsMG!$05M&V*K>>(R51@CP{*e)0=1mSgcGMv5MAYks*N`jM*_C2%b4fzd7R~(>UX9 z(~%Qqb~>7zAj#%%0tD2ZQJb`gaY952OMQ33MFbv!ixo;z>GJMz#u{K?UT2ML8h6HA zq9am(6^Fn%bJ(qVEb3vdI3XggOmXxO96`=B5#JiqvLDK8l&GF$vzZGF`DI{6J=W6t zBs;ECHk4p^x)&JCCX?CZf{41`>a-+XNp41!3+N0DAT!Dt;|3I>r=~ozob>q_B}L4A zCfZQ0T>Z=?=zl)hIb^HZ`sxdFN~+b9Y&MkS;nR#~ij7-cJPl_{! zt3)O|Rj}b{MOJFDj&dak4VtaJ@<5nE7u@N6ae<^(d%$1v3`CRMPfpTGiL_L<7O<7N zKL4?~B(F`iDwydF^4W-|K!Hq)t9o&LpNfGsTU}tORWUg!KTmISrS{0z=eR|Mv1X|C zH|Oieu#j82Xe5A*$^@Ua*(9{*mPcw35@doK+|`zp(9Kd*X3fjVbxZ2jH-nl6ZiQ}8 z%+-v;TvbSJTL_WeJjN|6)8tBYmn>y2~H$vA- zNtwBr!c1-eaV*uM+))ZfOHwz&t@0cU9(KJvC5a)Cg~o{kvB3*^C$vPu4u2b!p=82taM)(xk%3!9(i0pXeGl)4hzVKR#G$* z(0u(E!`_+vFEtX>DTUDF%n{~nfR-T62wUhfw7M7CVE1H{WM}6YX;$k##%yF=g&GFd zVDIkahlaHwygd-W4_Q*us!ilWEBUH8tSg<1aoq0@2(y!Fg7wIQ*32&xa$!`Ns_3sT z9K~o&Ye#Zh2&+g=utUvgL!VEPyaGIHB%h>@kt-X^kG^_?89DXVQ9{W1;-H`i%Z@@j zUQHmK>9oEu-SU~aRCCQPe}l`PZ_3Zd`ys67MyVMC=Ghq?ZR#-v`HwKXT44QjizOfL zAYiu@;3Wim5O0$8%oaZ^Ac~$e<&bRymjO!>T=q|wm`lt9U}_A+%*fzb*?Cr*T_|nW zTLpp&DS1@4&~?Zzv}#@sd$mBTYesH**HBWxbp>i>eIb{UotbMc1TC-{z*{*o5HjJa zC`7oLd|in3VuW{7Za`rkbptqO2sap0C{V0!An1ka zF~-_%AQCX=yGmGLcw6Td?+U@F1~9ww5~Gk1(1zQ8P|I(v*Eb;8U{b&cX(gAhs;x{!71UDx|Tk;~nd;7mU-+n45) zniC+fmeMo>y}c6`crNwE!S_oxvxU~%fOHk+r0NUd7P2{~F;|8pYYtw@7uwTG zFnL1X<(OS*L{hMWU`C2B>S&SY%8`_lV`b|-7YNJt$7pg_9;s2X)?82$e^(4LfblS4 z;H+#+Tq%T>XkQcx{x!UNs-B!wV1Vb(QsQ!wSgfubJ(zXvio*zVMI_u@5LbKR=FN{Tbi3i>IO}F^?oh#(EShz0xlvZo zKD33#4NgiRU-CRNbdi%-O+X#G0v3W0CWTGYh!7JtQ@GRsg9@6G1)VyQ#b_i2{ld22 zFqqM0f(a$8uw1Qnyd?(-;kMwCONyR+1{T$h;6K6paOazK5h70bn4*ihZkXJx9Hu3! zQ$t8j1!2gm`!>aC=OLizQG5t0yk~d_m?H4KvyCEg=LlO)2b_|nQdV9-S5QWDHbImair)0UNn1_=DU+}}wj-BjTf)5Hkz=Q>- zAZwDnBjzl$VaJIAX>+JUcnqwZEz2tEcL`##=K@aVUIykZ+9!e-_>jEtz0CRG4324G zF-#1VB6(7syatowArst{#1xk+S|q*TrA1PWZ!6FuNeyi%Ly#J*;T1QTm$U<}rldl) zS3-2o32($<7*l1^Y}_0Bj|AQzs7PGr>ua)EhS@q z!*(6J_zH_MBj&U%5GA6EDh4quGu>i2w9khjAZ}$r4z|Az-?Sl1G)P@ah7&a=CT!X{ zLxd{KVe*R1E}4)ZB5_=nH`-^f7u+B&EyI!I&`MBmb#~cp@hhw>KtuSiOg6l^Wvg_t z37bN}PF>zlKSu*Ig0nTcBN}(jyLea-;Vqh<=xxBxzDT7f>cs_i>KPYE5I)J= zalr+h@AQPZjiJ-}PPdXC$r}w!C5IdH6EfY45fLJ68Joez9Tpa`xsCQF+TiSu$;z_l z<~gf&V^Q#u$;=dl4e2hUyBe4}S#47a8}I56kwt|?F4|U;Qnzv9I176e$Wh95$JR|e zvS?LmBQ;D@7qQnP`{mp^8X3N|+HF}6Sk2_|+! zvKl0CmPITh>HuLv{F}05dz>8ENZ~q}*2X!Rl_daY^o<#8PJVYOKMb5p{nKx?*TmTxdyBK>69eO?QB(?(>W!o34Zbw6KyC8+0ma&nkHYCip{>?8I1D zD03OPmXdsvFx!g0JuxC_I5A2*4(EtCu5LRm#$cGqvn4D9;ffRkaEn>(QW$<5 zGxe0xSJ+;~B4QANU}ZZ3#khrSz;Y>Ur?9i7c3*PGmzwF@WvMWuog;=aEqyJeW-F~I zvA3nrPAemc3*6>sN`ZG+c(q1~LZHth29dN*5xh>cc*byy&a+wySvXT-5mI(+ZOzCo zIxi)1xd|s!p0qKV8)$_ZVtPg>MD_s-Ijsez>Rhox$%=qiaZGj3DKjoO7}M_VQ~_ut zr@9yf@r4jP2&^gES4R@bp5jQbu#FOEcxdelXCe3vWWp50cmnP+VJJZgq{0!w^7hr+ zKvoOwTF2THEq~I*q>BN~3ET$tB}@^jLTj zxgf@rU!a%})H6W0T(fc1qs{=TlGaO|ag%1}0qVt=z>$cfCql6thp^ZspVw&_)3~oY$WlUC5p^zZ1^quQi zW(P??_r++nge}k!C|E zpBs%(20m7V@>m%zt{XyDgiDaFM<|)qgneVUv5LNpIMG-`3mpa^jSey7BUdJBPeM*= ze>9+W1}g(bc zlL_1j2X|_8Mf_o0O*k0c4}GYazNxHEBW@t!bQ!?Y!s^7a2H>6n{NO-l7|>`G*3{q5 z?xm`ah6!ixtSDE2QL^A4=7UG+)hAh`0#W#%tSiOUN8%8uUG$EgL>D2AxWo#G85}?( zTYX$4nsUSc7VV{6|8VW#ej7%Q_>X!I%MO@e5g>A0b)4LDm^m&r10_jH%%H2<$^Rwj z70HPWumSicS#af(#zo522kDf``Hn`*d7uU7Ye0zPh(cwoe$JQpg5-t^B6%?)X942K z6JSE#5)og{KN~O$QtbF)Z{is|eF;L`!v$E7ZzL-ZxW5fCv3`Vek&DKI3lJn<;5g2g zWP{b?PqHi3M0&zmq6J~|IQfvqhzlkBNy|twgkIMp`ndFjGq3L`)+(ssZ$xjX_n^2p z$!IoUB>nlQ2{2rHn8#>T04@^bkn@Eh&yA&2e<=-Z1yH-Vtqy%ay+I^jk|slHNOepA z8JvNfR7S-{(S@ZA5b6u12)d8rf{s$5P7B}$mP%4wU6T^GbNC%Do*R#w7shcKJaNp{ zSB0~&ols6zkH*)A9+S2r3~5w=jV=W>3H>H6c^D@ZV2_sL0^H@83w>0Na6L(O^6`&q z6sSdg5GbhvhJ>jKDb#DJw>Hqe2>%3*VSQ>sa|Q7U@dCCCGHj&T0DK!l^m5G)ph5%U zCL_+g4+I8S+TnW?@)UAh32AIWXAlKQR6(U5G7BnsAp~t1727HX*4hgq3CNW&76nDeYzdPz7{K{~-!^6F+t~oG%O{-G` zN5jx3cb?*kyCY6onlLN{pXOmyh{s%`PI4{CC5;iu#FO!X3b!W+BiRzCwP{p|?_^C= z9>OA>wNJA)aT7)@ygJs^apoGhxT^;!Dp?AkN2q%|4|Rb8p%2dqfHf0FT9RC8mg zg?er&i;*K&9;Pg>LclRx7E->PDpD3x0i~lrNDe9A#RAImqqqo);T1^8$?;RJ^1#6G zFi(1f;aB1D9p=p`=pjS{1HA!N76gX*08Gy?U(Qnq0K}5QQ3OqfI5whkIjWQg2Fty? zJ>+s_F~}lUpi{-(04s|b05u~!aO8k_F&dZQ;o~h=mODbqkE2AOx3@>QvY4pG;fY?4 zN7+Chm0TXm1&7MeIphsQP9I;D0znTCA0LIc&~1u(tEe&$A5U*2_$WB^6y5dl@KJeC zK_4GqZ<$yrvV!iRGO7K~K&kRssK3%zB@d-%C>P+Zz@UXA?1PWLw+CV&V@1;CK<8(=sZf{^mBSVInhz=7y1_|*~N?a68cN_IHqRi5Hs$XszhSCBd- z6Gu8M%nuoVBhJHsN}aeI5-h{`gGkP1J^hGKjl8{4&jX2O4&v(a%St>QGU9Op_%kxz z1%oXOW5oEDnn0YI2qK;drM}$7sD;Xq0Tr-pm9-$DNgl}7i*WIiLan`n&`Ksl2MNdy z)&igHCtjl_;5AfFa-wZYqY%Jmu{lu5^SD&*Fh{VCiB8 zD53J<$`VQfmqNfCAvE&J5>)S~gHDD72Ft*1L>t5#b3_|Qh%X7SBZNYz4*e}r77N2i z<3{AHHhf-wEC*zlHSGs|#Il5P2x82UI~4Z_ae)Eeo`Pf%{lXx{A;Ubq<>6sIUcoXB zNO<_k!U9!_u#gIkvO*UgrmRSyOe2)uUZ`d~q-%Lt7`h)a40;7T6)Z`NGP*y-6lo2@3N9+U!5zj=cr%yRfkEFnQwpl_@l27KBr18cmz3JgyT(MUSU6-Y3&?_Qr6rD`e$3)K*f9H~s* zR$&5?dZ1x>T7^^$$Lt#8P?&HTapD;$JQ#bg$q7RJjk;R?A}`;9rM$H^fTvy>Ins2UDxmnAcM0rfz= ziS-c+RV)nl_JmO=={B+tNf+$Gf093@J3<`wN#c_*wUE|8RMZ!aun;Il$6RDqIuVs6Qn8Wj3_O&@(2XpBX^044 zpGF4>PB58QO2@1~Ct#MBx11(N;t;9`XkysdNYJF*&>M+INwYbYI{$|_R^UI)jsP;F z#<4=I5OCHcC9?`Wk)W)oLVq;1U?{k31fW;`8FdIYWH?#UWWvF?A=}aiNQEgKtzgai z1p6>+*U>7hHZiZL$DM(C-o8E|j*<{ZF=JJP%5MN=VoSilJz%^NKVB{;#tUvNgBoPn zYZ00x5f~PU)#@@WJx$;xf&1v2^!+111q>rO6(%K5e2T7wGBd?zTj#8aA*cM>`@FWJ zEWXvbEhEY+aXBQXDCclz8^?Lc@r8K*j3f^7KQvp!utXetYJGzmnQ|WrtV4tlhBQkqNgC zna@3Y#k0@cPmJ$&9QjUX>!$WwuO|i_JPH^ zA^a={%me%enOC@{+zbEZ9$rd4K44uBABZzsb08jxPclBd+{=dvJegqo$q1MUsL4;v z3O?{Bbs!p>F7Ra!uaI_eeaJhr3`dUQGWy|{zct0@d zMS&lv3`|mxO6nSnP)eypmN5u8T2X8&g)sig@+DF}%yI-oeNgH|hZ__s!QhAadxZ9TN7aF0^Ygu5h|t(wE+Y&l#km&-kBarjw|a)+`w z7|YmT&Qpkx$w>eRFQ&6f$XuAx4m|=T1M!CuPZ}jmS>yz*afY@zLsOlhNeB@x%4D{1 zTu43yXtnaC2zaX$a5b>yr3?>fGqxt6l_ZexBlLKJkYNO}`jEbZ;vw$>blQF@00!Le z<0q~Zg(S*~9F)4&4hn z6f-c<${*RJa-?@*?_q`HCxlQ{FXV)wjeh~O)Q2^=pECFasyy9da;y*#C8duhl)Zvg zY*8UZU?IvyYC`}~AEWy)AVecE4D|{CB!-M&(4vrGLbf$hV4D<}Dg`ECokFYM%|b^v zL%W8Ippgj~;SXA%>GE^WkbMFPJ zq^WK*p)Cw<7`2{G85|*OO$RpxkPztM2nhmXNMTYj48cL9PRcijQhn}rKGNAhR3Q)s zGJs!{MPU+XjWe{(8Jgq_O=Yei7_-HJx83%)uOhKBHk7E!39#QbxyMupZGW zlZ_O`PyR7^h%hHwU5*06s#zHt&JEE141%tVQ|`7)fa*jY6o75V_Ci9>l{1BkwMH0;l8>?& z!${6G(UZl73#t($xl9_6coQlLz3_poF>xbVFJbv0jqsV3Ll?mD0ILJ`gbx?!5y|=B zBln6#+5JAAk)$;gk)$pt_#V>25XDReSUSNV#F6mGKu{xv0jK`4%;!9Ph^r}QCIG~> z1X#|(3zRH-bv{LPeUV)`$d3|5PDH$X1FLW;%7bqx47#)OL|if8Bqeb4VEG;Fdq4ZG z^pSC7T5;e`Oq7}Ox&y8HB0A|TT`R;kpxb1~$0k$GQI1QS$GWyk{++FYnb;3*YpW6t zJ!2C{BF{(1@bniG&mIXvjOSzdXa*3|bI)Y zqqRuW8+Dp^UX!gc8549o4ooKS8k1fdV~W-%n6(DI-el0kX!M#mV_cj$TWi$C>P#k` z*{tJrF@^+A|~Dt7Ykgo4ZJ~PYUC9Ak)&HO3eXaq+qsP&dY)H^gf6S_25ho1?XcY_maU z(3*|f1fItT#AtNdSbdyXYc!Y=;<9zwe2g)h&yLr{X>>Y$d_r`*S&tzz8?sFr5X@lE zn?Tq&-kfdL$KhH_ZFF=j2pDhD#_{?Xqe;tylA4&9_*g@%*k$ z&PKgPV?wk(CRU?0@)+lAJq9HfK(m=Q8qB(EZLC%c#?WJ2V>Izvoh~6;V=!k&#~6*# z2^h*)Q-Vfo*6MX&FtC%x#Oq86xM(6e+Mta$g2Xx*S6|()dnVnOf=ys;#pBtDqjhTB zaGV)f+j%d8+rCzqi)3rIlW~zxDjpmMBh}Mf*ls`u$KltJ>rkW4y0PVtU5f$ftRv(6 z#XVNEuUwHyr|TIs-3mHlw;?u2iO`0q$BBRnUBEFt;h-U>m2v6=8&x%?s#Qt(`6_l3 zf=z{eUf9@VHsLo9Lu6bnbXy(Gt92R(9&V&ZEd=4)7_*~w@p=tdme-pS_}GLP1T=hn zwniHlt26Uv3|)M-4%b7Y1HsN_4{T9UM>#H9#s%QkHVZCC#?Gq&*8C1xPp}HfbvP=4n+4Y z=;9RtYPJuPox^UcdVIFFDv1}_2&nnCs&2x8wZuZ= z?YS!KK{uLJILM~TRGBPhTVYGPAPy)t%4}7!t9O}{+0-R6uE?nbp76S0@p33p`AG)@ zgj?d+R?aqm=Ne<~DH%6u6ke;sx(R@avy`SnVDfN7EdahLg*bwTUC<`V*0=T(Wh0UK zd$q+db1G0lM|xb-K|7bV)UJku6}~b~kwVuMa4@%s`RQ*1?6Z$QxVeX%WOMP!7nK8T zDrTpg)KZAH%bKliRRuPq#hRaIaOsK|($-I;E8^nxIv6>c1T9Rc_=IMUHs(5PN3CPu zJCP#*ANosAN~ZtIzqnVvZi#lyj#nzSeAM8(;~IIZOM{xGT>XikeeaF@!25Ta2G^Qd zxjbU;o++*FF7J|f{($|NZB!5bBGBj;&T<@ZvdNs=WWEtLkipf z6PsR94T}Gxy9Rrsc%-mh@$YY&eFd3g|FNC3KcQ%^hd0~^?f%aig#klrMJ^8-gpHZ-rd%@~kvYupX zZ*z!8YiW;_JM-1NOWBU>?f>zO*E>;M)=RjSL1nk7=+GD4psupR5>mAs$B%ERR^h%B zRW=TuSxRZ9a5H{vDqI$z!rk@4^$6`{16c{7Ftf0nw;|e8!u6TLRTE_6s#Un*MI~N6 zkwgc@2?3LE=R2El=okgg7MQJSSzi~5bVLD%EmY!me_&>H!)xxD z<22}yEGbE46ffF^O(&hqQm&N>DBoY@3gX5)4U6VJ>_AJnF6N=?S$)Z3eK=h=EaaYr~{s zhYBTX+Ek3a$hwoN2T25>W8)~Tco>u0uv)~72pxCx-Mt+J`>#`gpGwtHFRo-&bh?MG z7fy_LQadn01vdd*$dMTFh%EvIA;2UH2o5HjvjD>>F@i3li(qH~k*4k1NsB9~j7?o* zH5eVbTaGP-nVqG=k`4?6mIeP3$zW}PTF61- zUWx@(jIK)*BPvI>iclGFXe=?pW-l>B2wF}gwyWtVYFl7|D2WFU?HDC82k}eHj#t0P zX|PG%{LHtDmo=WVV)3xww+4M2VZIjsQiE>Uxtf;OW@c%x%uj33=fKmaKJ$*rJK1$| zT%X2owA=Dpo3;}+7*}*`h3lkx@@71yS&UV8P!G*I=4)SML*-Qx};GTt=^?Xk9EPBD6R`M2I?_(Xd|G zOI0~uujhPJggtc5J~X1R${DQ|2yn~Cak%2fnw+1{ExIuCm5e*exKAi~R1t%~Gh7CKUGN#4>FSSA3eK?g zLp%lFJrJh9-HMxkvX|P}RwiB1v<=N2BViMDRYaLPpb7lRWQpaIS) zwE~=$Fa`KW=R)jg1;?&X6P=Esb6OT)Lp$^7G#l;nCp?5xd35?J84x;`=YGbJdLW&E z63_3U&c0k-XIn+AKV_hvp0!JTd9+Ox!^|q4fpPEoScbRMPr`xDm`JC2Tx~vD=Re<% z_E=QQoTK#&+NQHZt~Pa`3Xe}T`_|zUNCHB{LmbXawL@8=4^h&JC!MTuQQ=>WubQ3j z5QM%QIKh>Ic5_&(H0nh-S3^|G!8sQ@@Y@Kb@F)(C8wWLVCjoyt*W{|j#$q%g)WgyE zHlbzs3|QaO#GJ&b)OTqNDMlPv6CeC@W9CkSF3<`x{Jt)6wuuwY-MXk>Q`=k68#P9# zJI+o~AEF*9|1bwg$sfXikS;anyqkNb2Ii3wpFoJQ0iU7!jgDJRZ3{ppAO8>hVN-i8bd%TqAL#4<@8TmA znA!{=xt!xGnw5C@ww}^!%C7-3Z+T@!vuuD2a+ypM#0Pl!j+oL*X7*6XWu6>A%*(Hh zmrNn6h?C0{mHqg>d_6Zv5bx_D<0=&|%gZ^u;;vp+p}Lp5wPQ$7%Z(eKo>u>UoT{rT z#;c)i#PFxuf864yrNc@?D=PvVe1+#-FrpZN=g7D~Fvp`2LG2`O~J) zKDes5<;v#TbG_R8ym;n{cINRGGw;1Lv&E_=Z)&?`eiHt1`2KI#Zr?vC;;sGN_Z%JS z^J4z)(X&kV42|#Ve4<)@n)CgYra@ng-kEw%-8p`*e@X1c^yw$2y*JrDerSj;{A__| zKlQ8Kc6xpPY1?B_uXa45eIaW8;;H&=&#zxItw{Hm`LuD@!aBzuyftt|;OEBP+M(mZ zZJ#I>%fYC!S1M!^K#{S06O46u3q^gtu9KVl`pCR|!0VnkEa$<8Q-(lAT}ACFGw$Uy z+kJhrsl~}=>pQ%4Y{17YKIGFWIYg1d_gvGR@1|+Rwae7EN8gHf8k;4T#oaTS#=97+t(JUMFDGj4&#%-K)@aCEfF6#jEw=;v(KG*ziG# zd?BAnO*T=a@_qP}%AS?or*zA;+l%nZxwN!YUEusFOM3HMG%C+hWQ#Id^J%#SE(Q;S zeTjRs=&Kzc*N%@@Bc0bveU`}-1NaR7X(`Ujr*!|j4WL`Lzte=BuSJN5%4B~juO51C?&%kGyexWZ z@#sVEr0*QE$1nEH_<-3zcn(>Yx2KE$z4PaGX0Gc{yr%D~{WqoA#`DUc?>l^Xwe`s9 zmD^8VcsI&s9N?v&wfJVjh98>@yx+mU@%zW?em6g>cX8cIOr%Auq_G7Dn;T;FuGY!44sq5EaGvh*HYdw3j&X;GW&A;ROOqqAY z=yIQdniIQ!|6X%!aN_B)(@SpjlV4e}_q%JOH*yh{CjB#Ww$5nSE3!k;l+X65R-Jx! zTl&iP-kJ0DiJ#7Y(BQzBvi+8(zjj~ht!%epLeAIA`zu?_Imdf1G@1LoP~f|MMLqBK z8|KZwUAA(&E$i!}6~{hkF(UMG+Ps9%x*i>V>Ooqx@2_u-i}mmH#CPq>m^{@UD}{6AYA`{3MXX`hTd{r-U+!`jTv9(6cx@8^YY z8T@zoCcQes>jm>02NLQZ>AtysV$+M`{@i{~xi)?HrPs#Zxndr3{hc%V7cWmZqiy%# z)Rqal>(g*A)2y>iRyUmawg0mtH5Eg50b(5+a_*>X&VOAxT;AaByzO~Fb z31BLS_s#lRzwsYIutN$0w-@`J>Z;oTdXgrUS^_rdz*TgTvIXohf{^A~-c> z=g)5qYPzaxqt>IY4@rOZ9k2L?ij*Fb_2jgG zGSdqa7K~_~zjbBG^6RNAlqkF|cSZ2xx3vuAGH=r;HHFUGw-Zc3vs zI#taa{_V81NezEq9X0s!oDS`_Xa^m7yVIZ1C%1bfR=vJ;Ui^d;E6Us6?f1;wrn(jf z6ADceGj=WydaXgTNgv+X=`m&2uUWT__uo5n!3(?gHMO_Msvr5*M=c}cTP#WF9s9|1 zRr9ulHCw+i`v-lKkryLVR%A`R)MEI_rhPi~fA7tKott~y`gH8js8h|pDHQ z_qdC@Hp?rrzT8)5`|d`c4d`<%VRg{;W+}Vszmxo2_sjbaTE~8Ez1IA~-X2R2-8>LB z@XP0C{g9f%uiy0Ig&&5l+Is)ow(Lv$7dyt?`20qnYbmYPheobjKR&1Y>U6`Htk}sFZ{Le-Wb)OwxPpEEL_$p zO*`rAwyE{buk3ec(Y9SZD)X0|`1wK`6uW04fkttw^ac=WpjgwIW zXMx&sMXknu@UGD9FWtB#-k;Qckbla@b4+xrNk1Se=ty7O%~U zj%JhHv(n^-$*w=2&i9kznC!a#t;sIRD9v<#qkcQ@SVhRI6pqEbV*&4&>m-uegLgd7 zcb1xy%j#-Bw0>If{GWR|f9v-_hrK;FzH&S7OXJ=M-P*;&&6DPgpV1?Iz?oX}o;%U7 zPuT5_U1#(^zU{%NZ#sFaTfKBOvC-Pk-V85YkZ|d`>HXxyF=LzE4jsR4j{W&rcRqYd z-lO$_>A~-=+2~p8r5m}w=c*T0w(i_|)Swh&6W_eTAxjore*VtB*|&SNIe)*y@!h(c zg)O#R+1m2P@pHEWw=Rubyd*U+(f?eJl^#YY#nY&fy%PRo1e+qPHbEqQ(LwA@0=`nT-|yLfu7leLcQRM9y!HQRsR z_SCx{pc%QTAN=vIK01M%E54B?BXdG&fdQFbKTX;T3$T1cJc8ahZ~c= z8S1_Kg-%|jUY~kZl{BfnN3VbL)>nrcDfV1QIuaQ9<9Tz`4~u_UJ#5h#?(@|>b`QS2 zc&%@rUcpPtn;hp_9jbb1ZRhT#jdh1ly!`U2v122C@3pYWrayW%E5Ez)-riAf_gQ@D z`;svYfA}tLX<7X~e|^5aS#HVIt-s%&@x6cfcX=JQ-sf*9`o4JKLP>#fZsMmap6Qpi zw|rp4>M9$@~i6n$A*vA4Bx+c>PrKQpXt}D`@XL4zchNNUwN-l56V{U-(65J z^8Nm{(15Y&$21jna`=imMlAn$$HM>g#P!$}pxdIf(y@hy0utARz8;!dP9q+RRIKw{ zOICkPAnZ?9ybd4bDyYyzC{*KL`0;G5ZR3mg=UWHunK7mGT7mW53ys#?m#0s=+I7eN zNqkqg;pxDW-NggC@3yGj>NVd(OJv z=h&LS^*1suJ!Sd0?&ejUzq+~X&aaxmnycHp1T|PxwxWyto9)9-j{PyY&JNFcIgrtkJEEbsmKTMM^1I`8XOl=rSD zpFX|GZ-JWMTD5DqvQf&U4e<}YT^Tj&(wd3mB7R<2Ik(my15I&B5j*@RZ`knB&wU5Z zTV0|2iLX%Ja1z(UL#C-vo&)R)=LnH+LiqtehvhPlM|~3&vH@QH5*Gx+Jy9V`25q}w zO6v%27OS2#*v~^&gL7iq=3c84ZNDu4tU*M#h4V80R2~>Ja>Vt!_V~~>YukKedsgn1 zHMMk?Jhy&mH1_vv=!328G4bm7gxDdxqFgS!Q|b6@jpI|^@$tXKEd3uWDxcz;W9Gs7 zGdwd_kITDNnHd?X?iu~s$0SGhXxCkvoZPN!_wGG3E%;`X&m%Oo%bE5COy63$iV9_e%+#T z|MmL^G#l>up1!Qv`mtW0$!GGzzWhTsJzQ~mcz^DT@xRWwU)QT+*_Oi3$4+`VudC-f z=U!eH{guaiX}Mjz=GFSH9^Z6x*WDMkR2Xu?oBi2Y+4-liloyVkysv-y3ec07&)vVG}#`eReYv$bUHtx9|jSgvZhfFRQ zz&|5crD;6eFO_h=IDI2eW|cz5AYouua=-A*{i0zO=@7}HgGEZt)!tGZ7HOx)O(*2v zaap8~srzBSODOfAg`yVkCpF>W^N7oJW%|Uw4xhegx*a~F(ac&6mfUDFa&C8Z)`CyF4;uH;=>Z$nS3@su z59zt$qgm@qbUmIrp4n{oR~fr%k9+^w=Nv7wqE{XMXn9(l$n7bgHOr2S%)5Vg;p|pX zXD$`|HYoMX^d0k~qj&t!xXZVzy?QlB+_QO8{WDvGN49Q$VI6;=LHg?{k>7WZiq||7 zc=eOTouBfrmHfw{{RSiQoE2ka^h znciOY!~M|3cYmLlw_ub#Gx*e6Kdxf(A2*)M?b9~v(7`ME1Eb&Wl-*|NtvVSk6`CeV zjT$Zt|JXP5#pm?=;3_^j=%*1=CuMf4bvpH(c%SWE&&}Wbxs4zARK+XZ1CD=px2NOS z-sU5s2aV|Q^Prwnq9--B>vQI2IWnt0ncsKb{`b}m|5P7Z7_AyOMH&hLOP}(H%*1(d@yQg`?fTMV9j`?t?_7W9E7R^Zvi&OG`D2dV-?i`k z3D7KT7%P;lP6k(dtaUUbik#e40YrLTt7`)k;5&(_l|Y5q(f`^~PwN4M^sczEK^apQ+{4*Pj&S?{_1xvlX* z_3lQMIm};dd~?+0BOm|r!C21Hhfi)E(eaZT9%~oP9^7izTMrZ$i&jPVZuwxq)~G+< zy7Hp-T|?HgF9&wH{?o@xv**nGYouY~xkJ7E=RS2Q;fDsji;XMBH7z)}{FRqG{yuU1 zqLFjPtSdNiartlI_v6njxN~@|-=ZmNcCT!>MbY*7cit?2DI#9=W{WGPAAY^FcY<+n zi=eUUgn^@9E`HT(deF4GJN4^BK3sMtu;;S!L&uM;KYnxk^S3T`DE7TD+`c5jM}Kx( zdSlD(pDuD2u4%m2%y0jzx#yT~?``O{>DTkt3Hni%(v6M}*ZXcxc=w0HAD*dr!+I?I z&O5l$sQiyc(^_XHygu~o(SQL<$G%|e;B$3JyYFUwtyL>q-Q5?J*|O=cM>qF78~IMv z#xEDWzP{_r?|;%DDfR0qzqMZWN=P<;@?Cp$p9{uucb86&YILOO*1>OX`6{{N;`HLv zt4|yn@J-(Nf%`u_&+mKi(bd#H0`?A1yS}1vgZQXjpA7O;-wdcs*PXrT+cNCb_6fSi zK0D9Get9x$_Idl%6y@p)`3bmYJFqqQ{nh_FmlZEJ^Mi}Q+sm^}pohGnM;$J?R_wf> zYk#Hue!SE9Mp0u2ztAmhT_yZvj`B4V{=;*Y+gmD6+$847eG`AVijSxtB&`ME_}6N* zL!1B{9c2K%6beT0H(=qZkZGb|?)ixokYm*kUvjysR1RmTHw!Bp2^reQYA8djTX8wP zmUcQYXeBGJ^y7V~n1}aj)oLj$n^Ng+o&aSJhl3k;s&~(@=ge=Ees|*H2*WQM_MR_a zb69h5n}%2_gJTeG+J&N3#<&-MywG%@jwH@~R8dQ#$M zRr{z}^{b{F&7B$C3o!{(p8v1;0`aOIUZmQiZHH-_YrOfMY43nt$OD z-%&xYp54ua@C(Hbu_QV|X7vEAYKJ(SvV;n2e7ELbLE(%fk6=)7g|@>?q=O^`qnKR>PYjxie#baNC1@Ezxu9Vs}! z^rc1>A6wV1?{Pn|R^;)fvwEcsiu&v2tBblEF6yzX?y*l*ol`zpvG2jlZ{E7MqSerO T*IS)W%}_n~>m*x9aNPd`Yivf; diff --git a/WinFormStarter/bin/Debug/net6.0-windows/Microsoft.Extensions.Logging.dll b/WinFormStarter/bin/Debug/net6.0-windows/Microsoft.Extensions.Logging.dll index 6df35e186ad2ea3616845ddc1523e09d2ad49fe1..9e2d7f9451715198c68c9839e31746cb7a31c4e6 100644 GIT binary patch literal 44656 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 Y9~0O)H`C{8o*-K`O`EhwC9^`rA8YdN00000 literal 42376 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 DhnCQ+ diff --git a/WinFormStarter/bin/Debug/net6.0-windows/Microsoft.Extensions.Options.dll b/WinFormStarter/bin/Debug/net6.0-windows/Microsoft.Extensions.Options.dll index 8a2a8c84849c365f154c5f182a70eeff7dd81151..604b60275e68f681d9766c9b06b1128b8c68e3b2 100644 GIT binary patch literal 59008 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 BpRND^ literal 54664 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 diff --git a/WinFormStarter/log4net.config b/WinFormStarter/log4net.config new file mode 100644 index 0000000..b022a3d --- /dev/null +++ b/WinFormStarter/log4net.config @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WinFormStarter/obj/Debug/net6.0-windows/WinFormStarter.designer.deps.json b/WinFormStarter/obj/Debug/net6.0-windows/WinFormStarter.designer.deps.json index 44914b5..9113efb 100644 --- a/WinFormStarter/obj/Debug/net6.0-windows/WinFormStarter.designer.deps.json +++ b/WinFormStarter/obj/Debug/net6.0-windows/WinFormStarter.designer.deps.json @@ -8,7 +8,7 @@ ".NETCoreApp,Version=v6.0": { "Autofac/7.1.0": { "dependencies": { - "System.Diagnostics.DiagnosticSource": "4.7.1" + "System.Diagnostics.DiagnosticSource": "6.0.0" }, "runtime": { "lib/net6.0/Autofac.dll": { @@ -29,6 +29,17 @@ } } }, + "AutoMapper/12.0.1": { + "dependencies": { + "Microsoft.CSharp": "4.7.0" + }, + "runtime": { + "lib/netstandard2.1/AutoMapper.dll": { + "assemblyVersion": "12.0.0.0", + "fileVersion": "12.0.1.0" + } + } + }, "DotNetty.Buffers/0.7.5": { "dependencies": { "DotNetty.Common": "0.7.5", @@ -71,7 +82,7 @@ }, "DotNetty.Common/0.7.5": { "dependencies": { - "Microsoft.Extensions.Logging": "5.0.0", + "Microsoft.Extensions.Logging": "6.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" }, "runtime": { @@ -107,6 +118,18 @@ } } }, + "HslCommunication/11.1.1": { + "dependencies": { + "Newtonsoft.Json": "13.0.3", + "System.IO.Ports": "4.7.0" + }, + "runtime": { + "lib/netstandard2.1/HslCommunication.dll": { + "assemblyVersion": "11.1.1.0", + "fileVersion": "11.1.1.0" + } + } + }, "log4net/2.0.15": { "dependencies": { "System.Configuration.ConfigurationManager": "6.0.0" @@ -118,7 +141,7 @@ } } }, - "Microsoft.CSharp/4.5.0": {}, + "Microsoft.CSharp/4.7.0": {}, "Microsoft.Data.SqlClient/2.1.4": { "dependencies": { "Microsoft.Data.SqlClient.SNI.runtime": "2.1.1", @@ -127,7 +150,7 @@ "Microsoft.IdentityModel.Protocols.OpenIdConnect": "6.8.0", "Microsoft.Win32.Registry": "4.7.0", "System.Configuration.ConfigurationManager": "6.0.0", - "System.Diagnostics.DiagnosticSource": "4.7.1", + "System.Diagnostics.DiagnosticSource": "6.0.0", "System.Runtime.Caching": "4.7.0", "System.Security.Principal.Windows": "4.7.0", "System.Text.Encoding.CodePages": "5.0.0" @@ -217,6 +240,17 @@ } } }, + "Microsoft.Extensions.Configuration.Binder/6.0.0": { + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "7.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, "Microsoft.Extensions.Configuration.FileExtensions/7.0.0": { "dependencies": { "Microsoft.Extensions.Configuration": "7.0.0", @@ -247,14 +281,15 @@ } } }, - "Microsoft.Extensions.DependencyInjection/5.0.0": { + "Microsoft.Extensions.DependencyInjection/6.0.0": { "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" }, "runtime": { - "lib/net5.0/Microsoft.Extensions.DependencyInjection.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" + "lib/net6.0/Microsoft.Extensions.DependencyInjection.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" } } }, @@ -298,37 +333,53 @@ } } }, - "Microsoft.Extensions.Logging/5.0.0": { + "Microsoft.Extensions.Logging/6.0.0": { "dependencies": { - "Microsoft.Extensions.DependencyInjection": "5.0.0", + "Microsoft.Extensions.DependencyInjection": "6.0.0", "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "5.0.0", - "Microsoft.Extensions.Options": "5.0.0" + "Microsoft.Extensions.Logging.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0", + "System.Diagnostics.DiagnosticSource": "6.0.0" }, "runtime": { "lib/netstandard2.1/Microsoft.Extensions.Logging.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" } } }, - "Microsoft.Extensions.Logging.Abstractions/5.0.0": { + "Microsoft.Extensions.Logging.Abstractions/6.0.0": { "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "Microsoft.Extensions.Logging.Log4Net.AspNetCore/8.0.0": { + "dependencies": { + "Microsoft.Extensions.Configuration": "7.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", + "Microsoft.Extensions.Configuration.Binder": "6.0.0", + "Microsoft.Extensions.Logging": "6.0.0", + "log4net": "2.0.15" + }, + "runtime": { + "lib/net6.0/Microsoft.Extensions.Logging.Log4Net.AspNetCore.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.0.0" } } }, - "Microsoft.Extensions.Options/5.0.0": { + "Microsoft.Extensions.Options/6.0.0": { "dependencies": { "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", "Microsoft.Extensions.Primitives": "7.0.0" }, "runtime": { - "lib/net5.0/Microsoft.Extensions.Options.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" + "lib/netstandard2.1/Microsoft.Extensions.Options.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" } } }, @@ -396,7 +447,7 @@ }, "Microsoft.IdentityModel.Tokens/6.8.0": { "dependencies": { - "Microsoft.CSharp": "4.5.0", + "Microsoft.CSharp": "4.7.0", "Microsoft.IdentityModel.Logging": "6.8.0", "System.Security.Cryptography.Cng": "4.5.0" }, @@ -491,6 +542,61 @@ } } }, + "Pipelines.Sockets.Unofficial/2.2.8": { + "dependencies": { + "System.IO.Pipelines": "5.0.1" + }, + "runtime": { + "lib/net5.0/Pipelines.Sockets.Unofficial.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "2.2.8.1080" + } + } + }, + "runtime.linux-arm.runtime.native.System.IO.Ports/4.7.0": { + "runtimeTargets": { + "runtimes/linux-arm/native/System.IO.Ports.Native.so": { + "rid": "linux-arm", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "runtime.linux-arm64.runtime.native.System.IO.Ports/4.7.0": { + "runtimeTargets": { + "runtimes/linux-arm64/native/System.IO.Ports.Native.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "runtime.linux-x64.runtime.native.System.IO.Ports/4.7.0": { + "runtimeTargets": { + "runtimes/linux-x64/native/System.IO.Ports.Native.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "runtime.native.System.IO.Ports/4.7.0": { + "dependencies": { + "runtime.linux-arm.runtime.native.System.IO.Ports": "4.7.0", + "runtime.linux-arm64.runtime.native.System.IO.Ports": "4.7.0", + "runtime.linux-x64.runtime.native.System.IO.Ports": "4.7.0", + "runtime.osx-x64.runtime.native.System.IO.Ports": "4.7.0" + } + }, + "runtime.osx-x64.runtime.native.System.IO.Ports/4.7.0": { + "runtimeTargets": { + "runtimes/osx-x64/native/System.IO.Ports.Native.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, "SQLitePCLRaw.bundle_e_sqlite3/2.1.4": { "dependencies": { "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", @@ -656,7 +762,7 @@ } } }, - "SqlSugarCore/5.1.4.95": { + "SqlSugarCore/5.1.4.115": { "dependencies": { "Microsoft.Data.SqlClient": "2.1.4", "Microsoft.Data.Sqlite": "7.0.5", @@ -671,8 +777,8 @@ }, "runtime": { "lib/netstandard2.1/SqlSugar.dll": { - "assemblyVersion": "5.1.4.94", - "fileVersion": "5.1.4.94" + "assemblyVersion": "5.1.4.115", + "fileVersion": "5.1.4.115" } } }, @@ -695,6 +801,18 @@ } } }, + "StackExchange.Redis/2.7.33": { + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "6.0.0", + "Pipelines.Sockets.Unofficial": "2.2.8" + }, + "runtime": { + "lib/net6.0/StackExchange.Redis.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.7.33.41805" + } + } + }, "System.Collections/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "5.0.0", @@ -740,11 +858,14 @@ } } }, - "System.Diagnostics.DiagnosticSource/4.7.1": { + "System.Diagnostics.DiagnosticSource/6.0.0": { + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + }, "runtime": { - "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll": { - "assemblyVersion": "4.0.5.0", - "fileVersion": "4.700.20.21406" + "lib/net6.0/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" } } }, @@ -868,6 +989,46 @@ "System.Threading.Tasks": "4.3.0" } }, + "System.IO.Pipelines/5.0.1": { + "runtime": { + "lib/netcoreapp3.0/System.IO.Pipelines.dll": { + "assemblyVersion": "5.0.0.1", + "fileVersion": "5.0.120.57516" + } + } + }, + "System.IO.Ports/4.7.0": { + "dependencies": { + "Microsoft.Win32.Registry": "4.7.0", + "runtime.native.System.IO.Ports": "4.7.0" + }, + "runtime": { + "lib/netstandard2.0/System.IO.Ports.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.700.19.56404" + } + }, + "runtimeTargets": { + "runtimes/linux/lib/netstandard2.0/System.IO.Ports.dll": { + "rid": "linux", + "assetType": "runtime", + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.700.19.56404" + }, + "runtimes/osx/lib/netstandard2.0/System.IO.Ports.dll": { + "rid": "osx", + "assetType": "runtime", + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.700.19.56404" + }, + "runtimes/win/lib/netstandard2.0/System.IO.Ports.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.700.19.56404" + } + } + }, "System.Memory/4.5.3": {}, "System.Reflection/4.3.0": { "dependencies": { @@ -1167,6 +1328,13 @@ "path": "autofac.extensions.dependencyinjection/8.0.0", "hashPath": "autofac.extensions.dependencyinjection.8.0.0.nupkg.sha512" }, + "AutoMapper/12.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hvV62vl6Hp/WfQ24yzo3Co9+OPl8wH8hApwVtgWpiAynVJkUcs7xvehnSftawL8Pe8FrPffBRM3hwzLQqWDNjA==", + "path": "automapper/12.0.1", + "hashPath": "automapper.12.0.1.nupkg.sha512" + }, "DotNetty.Buffers/0.7.5": { "type": "package", "serviceable": true, @@ -1209,6 +1377,13 @@ "path": "dotnetty.transport/0.7.5", "hashPath": "dotnetty.transport.0.7.5.nupkg.sha512" }, + "HslCommunication/11.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+HUfjin0STcIuiSsZ7ksohWBbeTFW7XbkDR+/jK19/ikmzCoRwwB8688dWc4szTruuF00URB998SU8snPxtIKQ==", + "path": "hslcommunication/11.1.1", + "hashPath": "hslcommunication.11.1.1.nupkg.sha512" + }, "log4net/2.0.15": { "type": "package", "serviceable": true, @@ -1216,12 +1391,12 @@ "path": "log4net/2.0.15", "hashPath": "log4net.2.0.15.nupkg.sha512" }, - "Microsoft.CSharp/4.5.0": { + "Microsoft.CSharp/4.7.0": { "type": "package", "serviceable": true, - "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", - "path": "microsoft.csharp/4.5.0", - "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + "sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==", + "path": "microsoft.csharp/4.7.0", + "hashPath": "microsoft.csharp.4.7.0.nupkg.sha512" }, "Microsoft.Data.SqlClient/2.1.4": { "type": "package", @@ -1265,6 +1440,13 @@ "path": "microsoft.extensions.configuration.abstractions/7.0.0", "hashPath": "microsoft.extensions.configuration.abstractions.7.0.0.nupkg.sha512" }, + "Microsoft.Extensions.Configuration.Binder/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", + "path": "microsoft.extensions.configuration.binder/6.0.0", + "hashPath": "microsoft.extensions.configuration.binder.6.0.0.nupkg.sha512" + }, "Microsoft.Extensions.Configuration.FileExtensions/7.0.0": { "type": "package", "serviceable": true, @@ -1279,12 +1461,12 @@ "path": "microsoft.extensions.configuration.json/7.0.0", "hashPath": "microsoft.extensions.configuration.json.7.0.0.nupkg.sha512" }, - "Microsoft.Extensions.DependencyInjection/5.0.0": { + "Microsoft.Extensions.DependencyInjection/6.0.0": { "type": "package", "serviceable": true, - "sha512": "sha512-Rc2kb/p3Ze6cP6rhFC3PJRdWGbLvSHZc0ev7YlyeU6FmHciDMLrhoVoTUEzKPhN5ZjFgKF1Cf5fOz8mCMIkvpA==", - "path": "microsoft.extensions.dependencyinjection/5.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.5.0.0.nupkg.sha512" + "sha512": "sha512-k6PWQMuoBDGGHOQTtyois2u4AwyVcIwL2LaSLlTZQm2CYcJ1pxbt6jfAnpWmzENA/wfrYRI/X9DTLoUkE4AsLw==", + "path": "microsoft.extensions.dependencyinjection/6.0.0", + "hashPath": "microsoft.extensions.dependencyinjection.6.0.0.nupkg.sha512" }, "Microsoft.Extensions.DependencyInjection.Abstractions/6.0.0": { "type": "package", @@ -1314,26 +1496,33 @@ "path": "microsoft.extensions.filesystemglobbing/7.0.0", "hashPath": "microsoft.extensions.filesystemglobbing.7.0.0.nupkg.sha512" }, - "Microsoft.Extensions.Logging/5.0.0": { + "Microsoft.Extensions.Logging/6.0.0": { "type": "package", "serviceable": true, - "sha512": "sha512-MgOwK6tPzB6YNH21wssJcw/2MKwee8b2gI7SllYfn6rvTpIrVvVS5HAjSU2vqSku1fwqRvWP0MdIi14qjd93Aw==", - "path": "microsoft.extensions.logging/5.0.0", - "hashPath": "microsoft.extensions.logging.5.0.0.nupkg.sha512" + "sha512": "sha512-eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "path": "microsoft.extensions.logging/6.0.0", + "hashPath": "microsoft.extensions.logging.6.0.0.nupkg.sha512" }, - "Microsoft.Extensions.Logging.Abstractions/5.0.0": { + "Microsoft.Extensions.Logging.Abstractions/6.0.0": { "type": "package", "serviceable": true, - "sha512": "sha512-NxP6ahFcBnnSfwNBi2KH2Oz8Xl5Sm2krjId/jRR3I7teFphwiUoUeZPwTNA21EX+5PtjqmyAvKaOeBXcJjcH/w==", - "path": "microsoft.extensions.logging.abstractions/5.0.0", - "hashPath": "microsoft.extensions.logging.abstractions.5.0.0.nupkg.sha512" + "sha512": "sha512-/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==", + "path": "microsoft.extensions.logging.abstractions/6.0.0", + "hashPath": "microsoft.extensions.logging.abstractions.6.0.0.nupkg.sha512" }, - "Microsoft.Extensions.Options/5.0.0": { + "Microsoft.Extensions.Logging.Log4Net.AspNetCore/8.0.0": { "type": "package", "serviceable": true, - "sha512": "sha512-CBvR92TCJ5uBIdd9/HzDSrxYak+0W/3+yxrNg8Qm6Bmrkh5L+nu6m3WeazQehcZ5q1/6dDA7J5YdQjim0165zg==", - "path": "microsoft.extensions.options/5.0.0", - "hashPath": "microsoft.extensions.options.5.0.0.nupkg.sha512" + "sha512": "sha512-NShPLGSM/PBGJIOK/cmlh3a+QlrtCLcSpb+vfqwxRmZK38Cy4prsOjuODpAIvqWL93zt9PZOTcHOVqyaQRNuEg==", + "path": "microsoft.extensions.logging.log4net.aspnetcore/8.0.0", + "hashPath": "microsoft.extensions.logging.log4net.aspnetcore.8.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Options/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "path": "microsoft.extensions.options/6.0.0", + "hashPath": "microsoft.extensions.options.6.0.0.nupkg.sha512" }, "Microsoft.Extensions.Primitives/7.0.0": { "type": "package", @@ -1440,6 +1629,48 @@ "path": "oracle.manageddataaccess.core/3.21.100", "hashPath": "oracle.manageddataaccess.core.3.21.100.nupkg.sha512" }, + "Pipelines.Sockets.Unofficial/2.2.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==", + "path": "pipelines.sockets.unofficial/2.2.8", + "hashPath": "pipelines.sockets.unofficial.2.2.8.nupkg.sha512" + }, + "runtime.linux-arm.runtime.native.System.IO.Ports/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pCaX07mRrO11GfUb+whjn2AJgCofx26slw0sI3XC9v0pEZO8101iK6q4ymZOiI2M4a9sQxLr2LawAEDvF4RNXg==", + "path": "runtime.linux-arm.runtime.native.system.io.ports/4.7.0", + "hashPath": "runtime.linux-arm.runtime.native.system.io.ports.4.7.0.nupkg.sha512" + }, + "runtime.linux-arm64.runtime.native.System.IO.Ports/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/J6A4bexUUJciGUwrhtzrFW4tIHqoJYlCsz5RudRmqUaqvuG2tjrbn6bEopOFs7CU4gZqAKWcU9pkp180c3DkQ==", + "path": "runtime.linux-arm64.runtime.native.system.io.ports/4.7.0", + "hashPath": "runtime.linux-arm64.runtime.native.system.io.ports.4.7.0.nupkg.sha512" + }, + "runtime.linux-x64.runtime.native.System.IO.Ports/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-aaaiH4ttfkLizo0OKf++5kPN0yxKbgzcyAD3w52Y3YP96aB/M79fm0r06SedXJGv86Iou6ipj3wUQBMFaL8LnQ==", + "path": "runtime.linux-x64.runtime.native.system.io.ports/4.7.0", + "hashPath": "runtime.linux-x64.runtime.native.system.io.ports.4.7.0.nupkg.sha512" + }, + "runtime.native.System.IO.Ports/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yidiZEGEIOyGnRkZvoV6XbeqzEBg9L47PyZNBymLIsu9HHseF98wiOxR6RnHmMqQMTBlc/EONfw4NT3pw0S6YQ==", + "path": "runtime.native.system.io.ports/4.7.0", + "hashPath": "runtime.native.system.io.ports.4.7.0.nupkg.sha512" + }, + "runtime.osx-x64.runtime.native.System.IO.Ports/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c1h87v6gopjfeAu3WhVGguUhzCdpZFqX8oXrevO1ciuH4g/mFrxnzlo5POlp+TtZdQ1i8yu0ZzBMKbmX2bJJ0g==", + "path": "runtime.osx-x64.runtime.native.system.io.ports/4.7.0", + "hashPath": "runtime.osx-x64.runtime.native.system.io.ports.4.7.0.nupkg.sha512" + }, "SQLitePCLRaw.bundle_e_sqlite3/2.1.4": { "type": "package", "serviceable": true, @@ -1475,12 +1706,12 @@ "path": "sqlsugar.ioc/2.0.0", "hashPath": "sqlsugar.ioc.2.0.0.nupkg.sha512" }, - "SqlSugarCore/5.1.4.95": { + "SqlSugarCore/5.1.4.115": { "type": "package", "serviceable": true, - "sha512": "sha512-7+xQXOZhe0dHplO6AJC3V9VAcO7XPhprrgpjMsrj+LUUJ/k1yVrbag8vHVFZyPyC3PfvHTcpJsepuTJMruUPEw==", - "path": "sqlsugarcore/5.1.4.95", - "hashPath": "sqlsugarcore.5.1.4.95.nupkg.sha512" + "sha512": "sha512-D/1b4vxR0rECaRsIDqk3tkkAwf7wEEkO1+VAAnHLECu5mbPESS6T5o+l/DCDvdWDgD0koCHgKhlU1c/SYR9Sig==", + "path": "sqlsugarcore/5.1.4.115", + "hashPath": "sqlsugarcore.5.1.4.115.nupkg.sha512" }, "SqlSugarCore.Dm/1.2.0": { "type": "package", @@ -1496,6 +1727,13 @@ "path": "sqlsugarcore.kdbndp/7.4.0", "hashPath": "sqlsugarcore.kdbndp.7.4.0.nupkg.sha512" }, + "StackExchange.Redis/2.7.33": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2kCX5fvhEE824a4Ab5Imyi8DRuGuTxyklXV01kegkRpsWJcPmO6+GAQ+HegKxvXAxlXZ8yaRspvWJ8t3mMClfQ==", + "path": "stackexchange.redis/2.7.33", + "hashPath": "stackexchange.redis.2.7.33.nupkg.sha512" + }, "System.Collections/4.3.0": { "type": "package", "serviceable": true, @@ -1524,12 +1762,12 @@ "path": "system.data.common/4.3.0", "hashPath": "system.data.common.4.3.0.nupkg.sha512" }, - "System.Diagnostics.DiagnosticSource/4.7.1": { + "System.Diagnostics.DiagnosticSource/6.0.0": { "type": "package", "serviceable": true, - "sha512": "sha512-j81Lovt90PDAq8kLpaJfJKV/rWdWuEk6jfV+MBkee33vzYLEUsy4gXK8laa9V2nZlLM9VM9yA/OOQxxPEJKAMw==", - "path": "system.diagnostics.diagnosticsource/4.7.1", - "hashPath": "system.diagnostics.diagnosticsource.4.7.1.nupkg.sha512" + "sha512": "sha512-frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", + "path": "system.diagnostics.diagnosticsource/6.0.0", + "hashPath": "system.diagnostics.diagnosticsource.6.0.0.nupkg.sha512" }, "System.Diagnostics.PerformanceCounter/6.0.1": { "type": "package", @@ -1580,6 +1818,20 @@ "path": "system.io/4.3.0", "hashPath": "system.io.4.3.0.nupkg.sha512" }, + "System.IO.Pipelines/5.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qEePWsaq9LoEEIqhbGe6D5J8c9IqQOUuTzzV6wn1POlfdLkJliZY3OlB0j0f17uMWlqZYjH7txj+2YbyrIA8Yg==", + "path": "system.io.pipelines/5.0.1", + "hashPath": "system.io.pipelines.5.0.1.nupkg.sha512" + }, + "System.IO.Ports/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tNHiZcdskfRpxU7LBBlA69YYgBqWMBE/JDdmrEIDa4iw944VK1u4+B0FeSls1FUm+Pm4X/Fl0fSGqi8MDhb8/Q==", + "path": "system.io.ports/4.7.0", + "hashPath": "system.io.ports.4.7.0.nupkg.sha512" + }, "System.Memory/4.5.3": { "type": "package", "serviceable": true, diff --git a/WinFormStarter/obj/Debug/net6.0-windows/WinFormStarter.designer.runtimeconfig.json b/WinFormStarter/obj/Debug/net6.0-windows/WinFormStarter.designer.runtimeconfig.json index 1749421..5a350b4 100644 --- a/WinFormStarter/obj/Debug/net6.0-windows/WinFormStarter.designer.runtimeconfig.json +++ b/WinFormStarter/obj/Debug/net6.0-windows/WinFormStarter.designer.runtimeconfig.json @@ -12,9 +12,9 @@ } ], "additionalProbingPaths": [ - "C:\\Users\\CZ\\.dotnet\\store\\|arch|\\|tfm|", - "C:\\Users\\CZ\\.nuget\\packages", - "D:\\vs2019\\共享组件\\NuGetPackages" + "C:\\Users\\64558\\.dotnet\\store\\|arch|\\|tfm|", + "C:\\Users\\64558\\.nuget\\packages", + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" ], "configProperties": { "Microsoft.NETCore.DotNetHostPolicy.SetAppPaths": true diff --git a/WpfStarter/MainWindow.xaml b/WpfStarter/MainWindow.xaml index 22145df..71817b8 100644 --- a/WpfStarter/MainWindow.xaml +++ b/WpfStarter/MainWindow.xaml @@ -6,7 +6,10 @@ mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> -