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; /// /// 3.6.2.4 充放电机上传电池包基本信息(PGN:0x00F882) /// public class BatteryBaseInfoHandler : SimpleChannelInboundHandler, 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); } } }