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);
}
}
}