using DotNetty.Transport.Channels; using HybirdFrameworkCore.Autofac.Attribute; using HybirdFrameworkDriver.Session; using Service.Charger.Common; namespace Service.Charger.Client; /// /// 示例程序 /// [Scope("SingleInstance")] public static class ClientMgr { private static readonly Dictionary Dictionary = new(); public static ChargerClient? GetBySn(int sn) { Dictionary.TryGetValue(sn, out var o); return o; } public static bool TryGetClient(IChannel channel, out string sn, out ChargerClient? client) { string? snt = ChannelUtils.GetAttr(channel, ChargerConst.ChargerSn); if (!string.IsNullOrWhiteSpace(snt)) { var chargerClient = GetBySn(int.Parse(snt)); if (chargerClient != null) { sn = snt; client = chargerClient; return true; } } sn = string.Empty; client = null; return false; } public static void AddBySn(int sn, ChargerClient client) { Dictionary[sn] = client; } //TODO 连接、鉴权,开始充电,结束充电,设置尖峰平谷,读取尖峰平谷,发送功率调节指令,发送辅助源控制指令,下发掉线停止充电, public static void InitClient() { } }