|
|
|
|
using DotNetty.Transport.Channels;
|
|
|
|
|
using HybirdFrameworkCore.Autofac.Attribute;
|
|
|
|
|
using HybirdFrameworkDriver.Session;
|
|
|
|
|
using Service.Charger.Common;
|
|
|
|
|
|
|
|
|
|
namespace Service.Charger.Client;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 示例程序
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Scope("SingleInstance")]
|
|
|
|
|
public static class ClientMgr
|
|
|
|
|
{
|
|
|
|
|
private static readonly Dictionary<int, ChargerClient> 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()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
}
|