using DotNetty.Transport.Channels; using HybirdFrameworkCore.Autofac.Attribute; using log4net; using Service.Charger.Client; using Service.Charger.Common; using Service.Charger.Msg.Charger.Req; using Service.Charger.Msg.Charger.Resp; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Aliyun.OSS.Util; using Autofac; using Common.Const; using Common.Util; using HybirdFrameworkCore.Autofac; using HybirdFrameworkCore.Entity; using HybirdFrameworkCore.Redis; using Service.Init; namespace Service.Charger.Handler { /// /// 电池包实时遥信上报(站内充电模式有电池包时周期性上传) /// [Order(8)] [Scope("InstancePerDependency")] public class RemoteSignalingHandler : SimpleChannelInboundHandler, IBaseHandler { private static readonly ILog Log = LogManager.GetLogger(typeof(RemoteSignalingHandler)); protected override void ChannelRead0(IChannelHandlerContext ctx, RemoteSignaling msg) { if (ClientMgr.TryGetClient(ctx.Channel, out string sn, out var client)) { Log.Info($"receive {msg} from {sn}"); client.RemoteSignaling = msg; if (StaticStationInfo.AutoFireRelocation == 1) { if (msg.MaximumAlarmLevel == 3|| msg.FireAlarm==1 || msg.SmokeAlarm==1 ) { Log.Info($"receive msg.MaximumAlarmLevel = {msg.MaximumAlarmLevel} 触发自动消防移仓"); RedisHelper redisHelper = AppInfo.Container.Resolve(); string? lockKey = redisHelper.GetStrValue($"AutoFire"); if (!string.IsNullOrWhiteSpace(lockKey)) { redisHelper.SetKeyValueStr($"AutoFire", DateTime.Now.ToString("f"), TimeSpan.FromSeconds(10)); HttpUtil.SendPostRequest(client.BinNo,HttpUtil.MAIN_UER+$"api/SwapMonitor/FireProtectionRelocation/{client.BinNo}"); } } } List lstAlarm = new List(); if (msg.CurrentBMS==1) { lstAlarm.Add("52"); } if (msg.CurrentStatusBMS==3) { lstAlarm.Add("53"); } if (msg.ChargingState==3) { lstAlarm.Add("54"); } if (msg.PackUndervoltage==1) { lstAlarm.Add("55"); } if (msg.PackUndervoltage==2) { lstAlarm.Add("56"); } if (msg.PackUndervoltage==3) { lstAlarm.Add("57"); } if (msg.PackOvervoltage==1) { lstAlarm.Add("58"); } if (msg.PackOvervoltage==2) { lstAlarm.Add("59"); } if (msg.PackOvervoltage==3) { lstAlarm.Add("60"); } if (msg.ExcessiveTemperature==1) { lstAlarm.Add("61"); } if (msg.ExcessiveTemperature==2) { lstAlarm.Add("62"); } if (msg.ExcessiveTemperature==3) { lstAlarm.Add("63"); } if (msg.AbnormalTemperatureDifference==1) { lstAlarm.Add("64"); } if (msg.AbnormalTemperatureDifference==2) { lstAlarm.Add("65"); } if (msg.AbnormalTemperatureDifference==3) { lstAlarm.Add("66"); } if (msg.InsulationAlarm==1) { lstAlarm.Add("67"); } if (msg.InsulationAlarm==2) { lstAlarm.Add("68"); } if (msg.InsulationAlarm==3) { lstAlarm.Add("69"); } if (msg.UndervoltageAlarm==1) { lstAlarm.Add("70"); } if (msg.UndervoltageAlarm==2) { lstAlarm.Add("71"); } if (msg.UndervoltageAlarm==3) { lstAlarm.Add("72"); } if (msg.VoltageTooHigh==1) { lstAlarm.Add("73"); } if (msg.VoltageTooHigh==2) { lstAlarm.Add("74"); } if (msg.VoltageTooHigh==3) { lstAlarm.Add("75"); } if (msg.LowSOCAlarm==1) { lstAlarm.Add("76"); } if (msg.LowSOCAlarm==2) { lstAlarm.Add("77"); } if (msg.LowSOCAlarm==3) { lstAlarm.Add("78"); } if (msg.LowTemperature==1) { lstAlarm.Add("79"); } if (msg.LowTemperature==2) { lstAlarm.Add("80"); } if (msg.LowTemperature==3) { lstAlarm.Add("81"); } if (msg.ExcessiveDischargeCurrent==1) { lstAlarm.Add("82"); } if (msg.ExcessiveDischargeCurrent==2) { lstAlarm.Add("83"); } if (msg.ExcessiveDischargeCurrent==3) { lstAlarm.Add("84"); } if (msg.ExcessiveChargingCurrent==1) { lstAlarm.Add("85"); } if (msg.ExcessiveChargingCurrent==2) { lstAlarm.Add("86"); } if (msg.ExcessiveChargingCurrent==3) { lstAlarm.Add("87"); } if (msg.IndividualPressureDifference==1) { lstAlarm.Add("88"); } if (msg.IndividualPressureDifference==2) { lstAlarm.Add("89"); } if (msg.IndividualPressureDifference==3) { lstAlarm.Add("90"); } if (msg.BMSSystemMismatchAlarm==1) { lstAlarm.Add("91"); } if (msg.BMSCommunicationFailure==1) { lstAlarm.Add("92"); } if (msg.SOCJumpAlarm==1) { lstAlarm.Add("93"); } if (msg.SOCHighAlarm==1) { lstAlarm.Add("94"); } if (msg.BMSHardwareFailure==1) { lstAlarm.Add("95"); } if (msg.BMSHardwareFailure==2) { lstAlarm.Add("96"); } if (msg.BMSHardwareFailure==3) { lstAlarm.Add("97"); } if (msg.BranchPressureDifference==1) { lstAlarm.Add("98"); } if (msg.BranchPressureDifference==2) { lstAlarm.Add("99"); } if (msg.BranchPressureDifference==3) { lstAlarm.Add("100"); } if (msg.CurrentTimeOccurrence==1) { lstAlarm.Add("101"); } if (msg.FireAlarm==1) { lstAlarm.Add("102"); } if (msg.SmokeAlarm==1) { lstAlarm.Add("103"); } if (msg.HighVoltageInterlockAlarm==1) { lstAlarm.Add("104"); } new FaultHandling().SaveAlarmInfo(lstAlarm, EquipmentType.Charger, "0", false, "2"); } } } }