|
|
|
|
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
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 电池包实时遥信上报(站内充电模式有电池包时周期性上传)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Order(8)]
|
|
|
|
|
[Scope("InstancePerDependency")]
|
|
|
|
|
public class RemoteSignalingHandler : SimpleChannelInboundHandler<RemoteSignaling>, 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<RedisHelper>();
|
|
|
|
|
|
|
|
|
|
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<string> lstAlarm = new List<string>();
|
|
|
|
|
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");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|