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.

120 lines
6.1 KiB

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