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.

32 lines
1.1 KiB

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