using System.Text; using DotNetty.Transport.Channels; using HybirdFrameworkCore.Autofac.Attribute; using log4net; using Service.Charger.Client; using Service.Charger.Handler; using Service.Charger.Msg.Charger.Req; using Service.Charger.Msg.Host.Resp; namespace HybirdFrameworkServices.Charger.Handler { /// /// 充放电机上送充电启动完成帧 /// /// 1,保存充电机是否充电 /// 2,保存日志到log /// 3,监控平台应答充电启动完成帧 /// 4,保存应答日志 /// /// [Order(8)] [Scope("InstancePerDependency")] public class FinishStartChargingHandler : SimpleChannelInboundHandler, IBaseHandler { private static readonly ILog Log = LogManager.GetLogger(typeof(FinishStartChargingHandler)); protected override void ChannelRead0(IChannelHandlerContext ctx, FinishStartCharging msg) { if (ClientMgr.TryGetClient(ctx.Channel, out var sn, out var client)) { Log.Info($"receive {msg} from {sn}"); msg.VehIdeNum = Encoding.ASCII.GetString(msg.Vin); if (msg.Result == 0) { client.IsCharged = true; } else if (msg.Result == 1) { client.IsCharged = false; } StartChargingFinishedRes msgRespond = new StartChargingFinishedRes(0, 0); ctx.Channel.WriteAndFlushAsync(msgRespond); } else { StartChargingFinishedRes msgRespond = new StartChargingFinishedRes(1, 2); ctx.Channel.WriteAndFlushAsync(msgRespond); } } } }