You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
using DotNetty.Transport.Channels;
|
|
|
|
|
using log4net;
|
|
|
|
|
using Repository.Station;
|
|
|
|
|
using Service.Charger.Client;
|
|
|
|
|
using Service.Charger.Msg.Charger.Resp;
|
|
|
|
|
using Service.Charger.Server;
|
|
|
|
|
|
|
|
|
|
namespace Service.Charger.Handler;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 3.6.2.4 充放电机上传电池包基本信息(PGN:0x00F882)
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class BatteryBaseInfoHandler : SimpleChannelInboundHandler<BatteryBaseInfo>, IBaseHandler
|
|
|
|
|
{
|
|
|
|
|
private static readonly ILog Log = LogManager.GetLogger(typeof(BatteryBaseInfoHandler));
|
|
|
|
|
public BinInfoRepository BinInfoRepository { get; set; }
|
|
|
|
|
protected override void ChannelRead0(IChannelHandlerContext ctx, BatteryBaseInfo msg)
|
|
|
|
|
{
|
|
|
|
|
if (ServerMgr.TryGetClient(ctx.Channel, out string sn, out var client))
|
|
|
|
|
{
|
|
|
|
|
Log.Info($"receive {msg} from {sn}");
|
|
|
|
|
client.BatteryBaseInfo = msg;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float msgBatteryNominalEnergy = msg.RatedBatteryPack;
|
|
|
|
|
|
|
|
|
|
decimal? nominalEnergyValue = (decimal?)msgBatteryNominalEnergy;
|
|
|
|
|
|
|
|
|
|
BinInfoRepository.Update(t => t.NominalEnergy == nominalEnergyValue, t => t.No == client.BinNo);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|