|
|
|
@ -42,36 +42,97 @@ public class HeartManagementTask : ITask
|
|
|
|
|
foreach (var waterCoolClient in waterCoolClients.Values)
|
|
|
|
|
{
|
|
|
|
|
if (waterCoolClient.Connected)
|
|
|
|
|
{
|
|
|
|
|
while (true)
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrWhiteSpace(waterCoolClient.ChargeSn))
|
|
|
|
|
{
|
|
|
|
|
var dictionary =
|
|
|
|
|
StaticStationInfo.RelationMap.Values.ToDictionary(i => i.WaterCoolerCode,
|
|
|
|
|
i => i.ChargeCode);
|
|
|
|
|
if(dictionary.Count!=0)
|
|
|
|
|
if (dictionary.Count != 0)
|
|
|
|
|
waterCoolClient.ChargeSn = dictionary[waterCoolClient.Sn];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var chargerClient = ClientMgr.GetBySn(waterCoolClient.ChargeSn);
|
|
|
|
|
if (chargerClient == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!waterCoolClient.StopFlag)
|
|
|
|
|
if (chargerClient.IsCharged)//充电状态
|
|
|
|
|
{
|
|
|
|
|
//充电冷却 Tmax>=28℃且Tmean>=24℃
|
|
|
|
|
if (chargerClient.BatteryPackDataVoltage?.CellTemperatureMax <= 28
|
|
|
|
|
&& chargerClient.BatteryPackDataVoltage?.CellTemperatureAverage >= 24)
|
|
|
|
|
{
|
|
|
|
|
if (waterCoolClient.WaterCoolStatus.ComeBackTemperature>=10)
|
|
|
|
|
{
|
|
|
|
|
waterCoolClient.ColdStrategyFlag = true;
|
|
|
|
|
waterCoolClient.HortStrategyFlag = false;
|
|
|
|
|
waterCoolClient.LoopStrategyFlag = false;
|
|
|
|
|
waterCoolClient.msg.BMSState = 1;
|
|
|
|
|
waterCoolClient.msg.ChargState = 1;
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
waterCoolClient.msg.HighTension = 0;
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
waterCoolClient.msg.Mode = 1;
|
|
|
|
|
}
|
|
|
|
|
if (waterCoolClient.WaterCoolStatus.ComeBackTemperature>=7&&waterCoolClient.WaterCoolStatus.ComeBackTemperature<=10)
|
|
|
|
|
{
|
|
|
|
|
//Tmin<=12℃且Tmean<=15℃
|
|
|
|
|
if (!waterCoolClient.HortStrategyFlag && chargerClient.BatteryPackDataVoltage
|
|
|
|
|
?.CellTemperatureMax <=
|
|
|
|
|
15
|
|
|
|
|
&& chargerClient.BatteryPackDataVoltage
|
|
|
|
|
?.CellTemperatureMin <=
|
|
|
|
|
12)
|
|
|
|
|
//自循环
|
|
|
|
|
if(waterCoolClient.msg.Mode ==0||waterCoolClient.msg.Mode==2||waterCoolClient.msg.Mode==3)
|
|
|
|
|
{
|
|
|
|
|
waterCoolClient.ColdStrategyFlag = false;
|
|
|
|
|
waterCoolClient.HortStrategyFlag = false;
|
|
|
|
|
waterCoolClient.LoopStrategyFlag = true;
|
|
|
|
|
waterCoolClient.msg.BMSState = 1;
|
|
|
|
|
waterCoolClient.msg.ChargState = 1;
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
waterCoolClient.msg.HighTension = 0;
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
waterCoolClient.msg.Mode = 1;
|
|
|
|
|
}
|
|
|
|
|
else //制冷模式
|
|
|
|
|
{
|
|
|
|
|
waterCoolClient.ColdStrategyFlag = true;
|
|
|
|
|
waterCoolClient.HortStrategyFlag = false;
|
|
|
|
|
waterCoolClient.LoopStrategyFlag = false;
|
|
|
|
|
waterCoolClient.msg.BMSState = 1;
|
|
|
|
|
waterCoolClient.msg.ChargState = 1;
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
waterCoolClient.msg.HighTension = 0;
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
waterCoolClient.msg.Mode = 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (waterCoolClient.WaterCoolStatus.ComeBackTemperature<=7)
|
|
|
|
|
{
|
|
|
|
|
waterCoolClient.ColdStrategyFlag = false;
|
|
|
|
|
waterCoolClient.HortStrategyFlag = true;
|
|
|
|
|
waterCoolClient.LoopStrategyFlag = false;
|
|
|
|
|
waterCoolClient.msg.BMSState = 1;
|
|
|
|
|
waterCoolClient.msg.ChargState = 1;
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
waterCoolClient.msg.HighTension = 0;
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
waterCoolClient.msg.Mode = 2;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else//冷却停止
|
|
|
|
|
{
|
|
|
|
|
waterCoolClient.ColdStrategyFlag = false;
|
|
|
|
|
waterCoolClient.HortStrategyFlag = false;
|
|
|
|
|
waterCoolClient.LoopStrategyFlag = false;
|
|
|
|
|
waterCoolClient.msg.BMSState = 0;
|
|
|
|
|
waterCoolClient.msg.HighTension = 1;
|
|
|
|
|
waterCoolClient.msg.ChargState = 0;
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
waterCoolClient.msg.Mode = 0;
|
|
|
|
|
}
|
|
|
|
|
if (waterCoolClient.HortStrategyFlag && (chargerClient.BatteryPackDataVoltage?.CellTemperatureMax >= 20
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
if (waterCoolClient.HortStrategyFlag &&
|
|
|
|
|
(chargerClient.BatteryPackDataVoltage?.CellTemperatureMax >= 20
|
|
|
|
|
|| chargerClient.BatteryPackDataVoltage?.CellTemperatureMin >= 17))
|
|
|
|
|
{
|
|
|
|
|
waterCoolClient.HortStrategyFlag = false;
|
|
|
|
@ -134,14 +195,7 @@ public class HeartManagementTask : ITask
|
|
|
|
|
Log.Info("<=7");
|
|
|
|
|
waterCoolClient.msg.Mode = 3;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//TODO:: 停止需要干什么事情
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}*/
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|