From 08790cb902c3a119188a04886ea57a3c9ea668d1 Mon Sep 17 00:00:00 2001 From: xjl <2595686544@qq.com> Date: Mon, 28 Oct 2024 12:38:12 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=B0=E5=9C=BA=E8=B0=83=E8=AF=95=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Service/Charger/ChargerService.cs | 116 +++++++++++++++--- Service/Charger/Client/ChargerClient.cs | 62 +++++++--- Service/Charger/Codec/Decoder.cs | 5 +- .../Handler/UploadTelemetryDataHandler.cs | 4 +- .../Msg/Charger/Req/VoltageCurrentSoc.cs | 12 +- .../Msg/Charger/Resp/QueryBatterySnRes.cs | 1 + Service/Charger/Msg/Charger/Resp/UpAlarm.cs | 54 ++++---- .../Charger/Msg/Host/Req/AuxiliaryPower.cs | 2 +- .../Charger/Msg/Host/Req/Bms/QueryBattery.cs | 6 +- .../Msg/Host/Req/OutSideAllowChargingSoc.cs | 23 +++- Service/Charger/MyTask/AutoChargeTask.cs | 3 +- .../Charger/MyTask/QueryBatteryInfoTask.cs | 6 +- Service/Station/BinInfoService.cs | 22 +++- WebStarter/Controllers/ChargeController.cs | 41 ++++++- WebStarter/Program.cs | 2 +- WebStarter/appsettings.dev.json | 4 +- WebStarter/appsettings.prod.json | 8 +- 17 files changed, 283 insertions(+), 88 deletions(-) diff --git a/Service/Charger/ChargerService.cs b/Service/Charger/ChargerService.cs index 4236382..c076e1a 100644 --- a/Service/Charger/ChargerService.cs +++ b/Service/Charger/ChargerService.cs @@ -51,6 +51,7 @@ public class ChargerService float? chargePower = EquipInfoRepository.QueryPowerByCode(binInfo.ChargerNo); float? power = chargePower == null ? StaticStationInfo.ChargePower : chargePower; + power = power * 10; return chargerClient.StartCharge(chargeSoc, (float)power, 1); } @@ -79,19 +80,23 @@ public class ChargerService } // - WaterCoolClientMgr.Dictionary.TryGetValue(StaticStationInfo.RelationMap[chargerClient.Sn].WaterCoolerCode, - out WaterCoolClient client); - if (client == null) - { - return Result.Fail("未初始化液冷"); - } + #region 水冷判断先屏蔽 + //WaterCoolClientMgr.Dictionary.TryGetValue(StaticStationInfo.RelationMap[chargerClient.Sn].WaterCoolerCode, + // out WaterCoolClient client); + //if (client == null) + //{ + // return Result.Fail("未初始化液冷"); + //} + + //if (!client.HeartManageStop()) + //{ + // return Result.Fail("液冷系统断开失败"); + //} + //client.StopFlag = true; + + #endregion - if (!client.HeartManageStop()) - { - return Result.Fail("液冷系统断开失败"); - } - client.StopFlag = true; chargerClient.SendRemoteStopCharging(); @@ -253,11 +258,13 @@ public class ChargerService chargerClient.SendAuxiliaryPower(openFlag); return Result.Success(true); } - + /// - /// 监控平台下发辅源控制指令 + /// 监控平台下发电池仓的状态 /// - /// 打开辅助电源标志 1:电池包辅助电源导通 0:电池包辅助电源断开 + /// 是否有电池 0:无电池 1:有电池 + /// 电接头连接状态 0:未连接 1: 已连接 + /// 水接头状态 0:未连接 1: 已连接 public Result SendBatteryHolderStatus(string binNo, byte battery, byte connectionState, byte waterCondition) { BinInfo? binInfo = BinInfoRepository.QueryByBinNo(binNo); @@ -279,4 +286,85 @@ public class ChargerService chargerClient.SendBatteryHolderStatus(battery,connectionState,waterCondition); return Result.Success(true); } + + + /// + /// 监控平台下发掉线停止充电 + /// + /// 0:不使能 1:使能 + public Result SendOfflineStopCharging(string binNo, byte Value) + { + BinInfo? binInfo = BinInfoRepository.QueryByBinNo(binNo); + if (binInfo == null) + { + return Result.Fail(@"充电仓不存在"); + } + + if (string.IsNullOrWhiteSpace(binInfo.ChargerNo)) + { + return Result.Fail(@"充电仓未配置充电机编号"); + } + ChargerClient? chargerClient = ClientMgr.GetBySn(binInfo.ChargerNo); + if (chargerClient == null || !chargerClient.Connected) + { + return Result.Fail(@"充电机未连接"); + } + + chargerClient.SendOfflineStopCharging(Value); + return Result.Success(true); + } + + /// + /// 监控平台下发站外允许充电 SOC + /// + /// + /// + /// + public Result SendOutSideAllowChargingSoc(string binNo, byte Value) + { + BinInfo? binInfo = BinInfoRepository.QueryByBinNo(binNo); + if (binInfo == null) + { + return Result.Fail(@"充电仓不存在"); + } + + if (string.IsNullOrWhiteSpace(binInfo.ChargerNo)) + { + return Result.Fail(@"充电仓未配置充电机编号"); + } + ChargerClient? chargerClient = ClientMgr.GetBySn(binInfo.ChargerNo); + if (chargerClient == null || !chargerClient.Connected) + { + return Result.Fail(@"充电机未连接"); + } + + chargerClient.SendOutSideAllowChargingSoc(Value); + return Result.Success(true); + } + + /// + /// 站控设备切换站内/站外充电切换 + /// + /// 00:无效 01:站内 02:站外 + public Result SendChangeChargeMode(string binNo, byte Value) + { + BinInfo? binInfo = BinInfoRepository.QueryByBinNo(binNo); + if (binInfo == null) + { + return Result.Fail(@"充电仓不存在"); + } + + if (string.IsNullOrWhiteSpace(binInfo.ChargerNo)) + { + return Result.Fail(@"充电仓未配置充电机编号"); + } + ChargerClient? chargerClient = ClientMgr.GetBySn(binInfo.ChargerNo); + if (chargerClient == null || !chargerClient.Connected) + { + return Result.Fail(@"充电机未连接"); + } + + chargerClient.SendChangeChargeMode(Value); + return Result.Success(true); + } } \ No newline at end of file diff --git a/Service/Charger/Client/ChargerClient.cs b/Service/Charger/Client/ChargerClient.cs index 399b58c..118d5df 100644 --- a/Service/Charger/Client/ChargerClient.cs +++ b/Service/Charger/Client/ChargerClient.cs @@ -239,7 +239,10 @@ public class ChargerClient : TcpClient _chargeOrderRepository = chargeOrderRepository; _binInfoRepository = binInfoRepository; } + public ChargerClient() + { + } private ILog Log() { var name = "Charger" + this.Sn; @@ -300,9 +303,9 @@ public class ChargerClient : TcpClient /// /// SOC限制.百分比 /// 功率调节指令类型.默认1 绝对功率值 - /// 1kw/位,默认3600 + /// 1kw/位,默认2400 /// 充电流水号 - public Result SendRemoteStartCharging(byte socLimit, float changePower = 360, byte changePowerCmdType = 1, + public Result SendRemoteStartCharging(byte socLimit, float changePower = 2400, byte changePowerCmdType = 1, string? chargeOrderNo = null) { if (!Connected) @@ -321,11 +324,11 @@ public class ChargerClient : TcpClient CurrentCmd = JsonConvert.SerializeObject(remoteStartCharging, Formatting.Indented) + "\r\n" + BitUtls.BytesToHexStr(remoteStartCharging.ToBytes()); - AuxiliaryPower auxiliaryPower0 = new AuxiliaryPower(0); + AuxiliaryPower auxiliaryPower0 = new AuxiliaryPower(2); AuxiliaryPower auxiliaryPower1 = new AuxiliaryPower(1); - this.Channel.WriteAndFlushAsync(auxiliaryPower0); - Thread.Sleep(3000); - this.Channel.WriteAndFlushAsync(auxiliaryPower1); + //this.Channel.WriteAndFlushAsync(auxiliaryPower0); + //Thread.Sleep(3000); + //this.Channel.WriteAndFlushAsync(auxiliaryPower1); this.Channel.WriteAndFlushAsync(remoteStartCharging); return Result.Success(chargeOrderNo); } @@ -358,7 +361,6 @@ public class ChargerClient : TcpClient { return Result.Fail($"charger-{BinNo} disconnect"); } - PowerRegulation powerRegulation = new PowerRegulation(expectedOperatingPower); this.Channel.WriteAndFlushAsync(powerRegulation); return Result.Success(); @@ -501,7 +503,23 @@ public class ChargerClient : TcpClient this.Channel.WriteAndFlushAsync(offlineStopCharging); return Result.Success(); } + /// + /// 3.4.9 监控平台下发站外允许充电 SOC + /// + /// + public Result SendOutSideAllowChargingSoc(byte enabled) + { + if (!Connected) + { + return Result.Fail($"charger-{BinNo} disconnect"); + } + OutSideAllowChargingSoc offlineStopCharging = new OutSideAllowChargingSoc(enabled); + CurrentCmd = JsonConvert.SerializeObject(offlineStopCharging, Formatting.Indented) + "\r\n" + + BitUtls.BytesToHexStr(offlineStopCharging.ToBytes()); + this.Channel.WriteAndFlushAsync(offlineStopCharging); + return Result.Success(); + } /// /// 3.4.12 站控设备切换站内/站外充电切换 /// @@ -592,7 +610,7 @@ public class ChargerClient : TcpClient } /// - /// + ///查询电池信息 /// public Result SendQueryBattery() { @@ -652,19 +670,23 @@ public class ChargerClient : TcpClient //判断水冷继电器状态为断开 - var relation = StaticStationInfo.RelationMap[Sn]; - var waterCoolClient = WaterCoolClientMgr.GetBySn(relation.WaterCoolerCode) - ; - if (waterCoolClient == null) - { - return Result.Fail($"液冷机组未初始化"); - } + #region 水冷判断先屏蔽 + // TODO 水冷判断先屏蔽 + //var relation = StaticStationInfo.RelationMap[Sn]; + //var waterCoolClient = WaterCoolClientMgr.GetBySn(relation.WaterCoolerCode) + // ; + //if (waterCoolClient == null) + //{ + // return Result.Fail($"液冷机组未初始化"); + //} - if (!waterCoolClient.WaitIsClose()) - { - return Result.Fail($"继电器未断开"); - } + //if (!waterCoolClient.WaitIsClose()) + //{ + // return Result.Fail($"继电器未断开"); + //} + #endregion + RedisHelper redisHelper = AppInfo.Container.Resolve(); @@ -693,7 +715,7 @@ public class ChargerClient : TcpClient BatteryNo = BatteryNo, CmdStatus = 0, ChargerNo = BinNo, - ChargeMode = 1, + ChargeMode = 0, SwapOrderSn = swapOrder?.SwapOrderSn, StartMode = 1, StartType = startType diff --git a/Service/Charger/Codec/Decoder.cs b/Service/Charger/Codec/Decoder.cs index 6826491..5d71465 100644 --- a/Service/Charger/Codec/Decoder.cs +++ b/Service/Charger/Codec/Decoder.cs @@ -133,6 +133,9 @@ public class Decoder : ByteToMessageDecoder ASDU asdu = cmd switch { 5 => ModelConvert.Decode(bytes), + 11 => ModelConvert.Decode(bytes), + 42 => ModelConvert.Decode(bytes), + #region 45 45 => recordType switch { @@ -255,8 +258,6 @@ public class Decoder : ByteToMessageDecoder }, #endregion - 42 => ModelConvert.Decode(bytes), - 11 => ModelConvert.Decode(bytes), 49 => ModelConvert.Decode(bytes), 50 => ModelConvert.Decode(bytes), diff --git a/Service/Charger/Handler/UploadTelemetryDataHandler.cs b/Service/Charger/Handler/UploadTelemetryDataHandler.cs index c74a34d..1392303 100644 --- a/Service/Charger/Handler/UploadTelemetryDataHandler.cs +++ b/Service/Charger/Handler/UploadTelemetryDataHandler.cs @@ -34,7 +34,9 @@ namespace Service.Charger.Handler client.UploadTelemetryData = msg; //充电机实时充电功率 - client.RealTimeChargePower = msg.HighVoltageAcquisitionCurrent * msg.HighVoltageAcquisitionVoltage; + //client.RealTimeChargePower = msg.HighVoltageAcquisitionCurrent * msg.HighVoltageAcquisitionVoltage; + client.RealTimeChargePower = msg.DcMeterCurrent * msg.DcMeterVoltage; + } } } diff --git a/Service/Charger/Msg/Charger/Req/VoltageCurrentSoc.cs b/Service/Charger/Msg/Charger/Req/VoltageCurrentSoc.cs index 2244024..79bc2ea 100644 --- a/Service/Charger/Msg/Charger/Req/VoltageCurrentSoc.cs +++ b/Service/Charger/Msg/Charger/Req/VoltageCurrentSoc.cs @@ -44,13 +44,13 @@ namespace Service.Charger.Msg.Charger.Req /// /// 当前SOH 分辨率:1%/位,偏移量:0%,数值范围 0%~100% /// - [Property(80, 8, scale: 0.01)] + [Property(80, 8)] public float SOH { get; set; } - ///// - ///// 保留 - ///// - //[Property(88, 8)] - //public byte Reserve { get; set; } + /// + /// 保留 + /// + [Property(88, 8)] + public byte Reserve { get; set; } } } diff --git a/Service/Charger/Msg/Charger/Resp/QueryBatterySnRes.cs b/Service/Charger/Msg/Charger/Resp/QueryBatterySnRes.cs index 18f84d9..031e9e2 100644 --- a/Service/Charger/Msg/Charger/Resp/QueryBatterySnRes.cs +++ b/Service/Charger/Msg/Charger/Resp/QueryBatterySnRes.cs @@ -43,4 +43,5 @@ public class QueryBatterySnRes : ASDU /// [Property(start: 48, length: 27, PropertyReadConstant.Byte)] public byte[] BatterSnBytes { get; set; } + } \ No newline at end of file diff --git a/Service/Charger/Msg/Charger/Resp/UpAlarm.cs b/Service/Charger/Msg/Charger/Resp/UpAlarm.cs index 5907982..f113dea 100644 --- a/Service/Charger/Msg/Charger/Resp/UpAlarm.cs +++ b/Service/Charger/Msg/Charger/Resp/UpAlarm.cs @@ -29,107 +29,107 @@ namespace Service.Charger.Msg.Charger.Resp /// /// 单体蓄电池或蓄电池模块电压越限 /// - [Property(32, 16)] - public short SingleBattery { get; set; } + [Property(32, 2)] + public byte SingleBattery { get; set; } /// /// 电压偏差越限 /// - [Property(48, 16)] - public short VoltageOvershoot { get; set; } + [Property(34, 2)] + public byte VoltageOvershoot { get; set; } /// /// 温度越限 /// - [Property(64, 16)] - public short TemperatureExceedance { get; set; } + [Property(36, 2)] + public byte TemperatureExceedance { get; set; } /// /// 温度偏差越限 /// - [Property(80, 16)] - public short TemperatureDifference { get; set; } + [Property(38, 2)] + public byte TemperatureDifference { get; set; } /// /// SOC 低 /// - [Property(96, 16)] - public short LowSOC { get; set; } + [Property(40, 2)] + public byte LowSOC { get; set; } /// /// 放电电流越限 /// - [Property(112, 16)] + [Property(42, 2)] public short DischargeCurrent { get; set; } /// /// 充电电流限 /// - [Property(128, 16)] + [Property(44, 2)] public short ChargingCurrentLimit { get; set; } /// /// 总正负极柱温度越限 /// - [Property(144, 16)] + [Property(46, 2)] public short TotalTemp { get; set; } /// - /// 电池系统故障码 + /// 电池系统故障码 2字节 /// - [Property(160, 16)] + [Property(48, 16)] public short BatteryFaultCode { get; set; } /// /// 高压绝缘低 /// - [Property(176, 16)] + [Property(64, 2)] public short HighVoltageLow { get; set; } /// /// 单体蓄电池或蓄电池模块电压越极限 /// - [Property(192, 16)] + [Property(66, 2)] public short MonomerLimit { get; set; } /// /// 电压偏差越极限a /// - [Property(200, 16)] + [Property(68, 2)] public short VoltageDifference { get; set; } /// /// 温度越极限 /// - [Property(216, 16)] + [Property(70, 2)] public short TemperatureOvershoot { get; set; } /// /// 温度偏差越极限 /// - [Property(232, 16)] + [Property(72 ,2)] public short TempDifference { get; set; } /// /// SOC 极低 /// - [Property(248, 16)] + [Property(74, 2)] public short VeryLowSOC { get; set; } /// /// 放电电流越极限 /// - [Property(264, 16)] + [Property(76, 2)] public short DischargeCurrentLimit { get; set; } /// /// 充电电流越极限 /// - [Property(280, 16)] + [Property(78, 2)] public short ChargingCurrent { get; set; } /// /// 总正负极柱温度越极限 /// - [Property(296, 16)] + [Property(80, 2)] public short TotalTempLimit { get; set; } /// /// 高压绝缘极低 /// - [Property(312, 16)] + [Property(82, 2)] public short highVoltageInsulation { get; set; } /// /// 硬件故障 /// - [Property(328, 16)] + [Property(84, 2)] public short HardwareFailure { get; set; } /// /// 保留 /// - [Property(344, 16)] + [Property(86, 2)] public short Reserve { get; set; } } } diff --git a/Service/Charger/Msg/Host/Req/AuxiliaryPower.cs b/Service/Charger/Msg/Host/Req/AuxiliaryPower.cs index 7fb9433..9b38dbb 100644 --- a/Service/Charger/Msg/Host/Req/AuxiliaryPower.cs +++ b/Service/Charger/Msg/Host/Req/AuxiliaryPower.cs @@ -13,7 +13,7 @@ namespace Service.Charger.Msg.Host.Req [Property(0, 8)] public byte RecordType { get; set; } /// - ///打开辅助电源标志 1:电池包辅助电源导通 0:电池包辅助电源断开 + ///打开辅助电源标志 1:电池包辅助电源导通 2:电池包辅助电源断开 /// [Property(8, 8)] public byte OpenFlag { get; set; } diff --git a/Service/Charger/Msg/Host/Req/Bms/QueryBattery.cs b/Service/Charger/Msg/Host/Req/Bms/QueryBattery.cs index d044fcf..ea2eae5 100644 --- a/Service/Charger/Msg/Host/Req/Bms/QueryBattery.cs +++ b/Service/Charger/Msg/Host/Req/Bms/QueryBattery.cs @@ -3,7 +3,7 @@ namespace Service.Charger.Msg.Host.Req.Bms { /// - /// 3.4.1 监控平台发送功率调节指令 + /// 3.6.2.1 监控平台下发(PGN)查询电池信息(PGN:0x00F82C) /// public class QueryBattery : ASDU { @@ -14,13 +14,13 @@ namespace Service.Charger.Msg.Host.Req.Bms public byte RecordType { get; set; } /// - /// 记录类型 + /// PGN 码 /// [Property(8, 3, PropertyReadConstant.Byte)] public byte[] Pgn { get; set; } = { 0x00, 0xf8, 0x2c }; /// - /// 记录类型 + /// 要查询的PGN /// [Property(32, 3, PropertyReadConstant.Byte)] public byte[] QueryPgn { get; set; } diff --git a/Service/Charger/Msg/Host/Req/OutSideAllowChargingSoc.cs b/Service/Charger/Msg/Host/Req/OutSideAllowChargingSoc.cs index 5ff0da9..1fb789f 100644 --- a/Service/Charger/Msg/Host/Req/OutSideAllowChargingSoc.cs +++ b/Service/Charger/Msg/Host/Req/OutSideAllowChargingSoc.cs @@ -7,11 +7,32 @@ namespace Service.Charger.Msg.Host.Req /// public class OutSideAllowChargingSoc : ASDU { + /// - /// SOC 限制值 + /// 记录类型 /// [Property(0, 8)] + public byte RecordType { get; set; } + + /// + /// SOC 限制值 + /// + [Property(8, 8)] public byte SocValue { get; set; } + + public OutSideAllowChargingSoc(byte enabled) + { + FrameTypeNo = 45; + MsgBodyCount = 1; + TransReason = 3; + PublicAddr = 0; + MsgBodyAddr = new byte[] { 0, 0, 0 }; + + RecordType = 45; + SocValue = enabled; + } } + + } \ No newline at end of file diff --git a/Service/Charger/MyTask/AutoChargeTask.cs b/Service/Charger/MyTask/AutoChargeTask.cs index 01c9f36..6274185 100644 --- a/Service/Charger/MyTask/AutoChargeTask.cs +++ b/Service/Charger/MyTask/AutoChargeTask.cs @@ -33,7 +33,8 @@ public class AutoChargeTask : ITask public int Interval() { - return 1000 * 10; + //充电机说启动失败不要频繁发,商定1分钟 + return 1000 * 60; } public void Handle() diff --git a/Service/Charger/MyTask/QueryBatteryInfoTask.cs b/Service/Charger/MyTask/QueryBatteryInfoTask.cs index 679d661..f297e14 100644 --- a/Service/Charger/MyTask/QueryBatteryInfoTask.cs +++ b/Service/Charger/MyTask/QueryBatteryInfoTask.cs @@ -5,6 +5,9 @@ using Service.Charger.Client; namespace Service.Charger.MyTask; +/// +/// 查询电池信息任务 +/// [Scope] public class QueryBatteryInfoTask : ITask { @@ -27,7 +30,8 @@ public class QueryBatteryInfoTask : ITask { foreach (var (key, client) in ClientMgr.Dictionary) { - client.SendQueryBattery(); + //取消查询,充电机会主动上报 + //client.SendQueryBattery(); } } catch (Exception e) diff --git a/Service/Station/BinInfoService.cs b/Service/Station/BinInfoService.cs index d8b93e9..addf6d3 100644 --- a/Service/Station/BinInfoService.cs +++ b/Service/Station/BinInfoService.cs @@ -43,9 +43,27 @@ public class BinInfoService : BaseServices if (chargerClient.BatteryPackTotalElectricity != null) binInfoResp.OnceElectricCharge = chargerClient.BatteryPackTotalElectricity.OnceElectricCharge; binInfoResp.BmsNeedVoltage = chargerClient.UploadTelemetryData.BmsNeedVoltage; - binInfoResp.BmsNeedCurrent = chargerClient.UploadTelemetryData.BmsNeedCurrent; + //binInfoResp.BmsNeedCurrent = chargerClient.UploadTelemetryData.BmsNeedCurrent; + //if (chargerClient.BatteryPackData != null) + // binInfoResp.TotalCurrent = chargerClient.BatteryPackData.TotalCurrent; + #region 正负显示统一 + if (binInfoResp.ChargeStatus == 1) + { + binInfoResp.BmsNeedCurrent = chargerClient.UploadTelemetryData.BmsNeedCurrent; + binInfoResp.BmsNeedCurrent = 0 - binInfoResp.BmsNeedCurrent; + } + else + { binInfoResp.BmsNeedCurrent = 0; } + if (chargerClient.BatteryPackData != null) - binInfoResp.TotalCurrent = chargerClient.BatteryPackData.TotalCurrent; + { + if (binInfoResp.ChargeStatus == 1) + { binInfoResp.TotalCurrent = chargerClient.BatteryPackData.TotalCurrent; } + else + { binInfoResp.TotalCurrent = 0; } + } + #endregion + if (chargerClient.BatteryPackDataVoltage != null) binInfoResp.CellTemperatureMax = chargerClient.BatteryPackDataVoltage.CellTemperatureMax; if (chargerClient.BatteryPackDataVoltage != null) diff --git a/WebStarter/Controllers/ChargeController.cs b/WebStarter/Controllers/ChargeController.cs index d7f1370..ce48769 100644 --- a/WebStarter/Controllers/ChargeController.cs +++ b/WebStarter/Controllers/ChargeController.cs @@ -72,9 +72,9 @@ public class ChargeController : ControllerBase [Route("SendPowerRegulation/{code}/{power}")] public Result SendPowerRegulation(string code, float power) { - if (power <=0 || power > 360) + if (power <=0 || power > 240) { - return Result.Fail("功率值范围1到360"); + return Result.Fail("功率值范围1到240"); } string _code = _binInfoService.QueryByClause(i => i.Code == code).ChargerNo; @@ -198,4 +198,41 @@ public class ChargeController : ControllerBase { return _chargerService.SendBatteryHolderStatus( binNo,battery,connectionState,waterCondition); } + + + /// + /// 下发掉线停止充电 + /// + /// + [HttpGet] + [Route("SendOfflineStopCharging")] + public Result SendOfflineStopCharging(string binNo, byte openFlag) + { + + return _chargerService.SendOfflineStopCharging(binNo, openFlag); + } + + /// + /// 站控设备切换站内/站外充电切换 + /// + /// 00:无效 01:站内 02:站外 + [HttpGet] + [Route("SendChangeChargeMode")] + public Result SendChangeChargeMode(string binNo, byte Value) + { + + return _chargerService.SendChangeChargeMode(binNo, Value); + } + + /// + /// 监控平台下发站外允许充电 SOC + /// + /// 限制值 + [HttpGet] + [Route("SendOutSideAllowChargingSoc")] + public Result SendOutSideAllowChargingSoc(string binNo, byte Value) + { + + return _chargerService.SendOutSideAllowChargingSoc(binNo, Value); + } } \ No newline at end of file diff --git a/WebStarter/Program.cs b/WebStarter/Program.cs index eb5d766..1ed65e9 100644 --- a/WebStarter/Program.cs +++ b/WebStarter/Program.cs @@ -119,6 +119,6 @@ StaticStationInfo.Init(); // 水冷连接 -WaterCoolClientMgr.InitClient(); +//WaterCoolClientMgr.InitClient(); app.Run(); diff --git a/WebStarter/appsettings.dev.json b/WebStarter/appsettings.dev.json index a6fd422..633c030 100644 --- a/WebStarter/appsettings.dev.json +++ b/WebStarter/appsettings.dev.json @@ -2,7 +2,7 @@ "ConnectionStrings": { "ConfigId": "master", "DbType": "MySql", - "SqlConnection": "server=180.76.133.253;Port=16306;Database=nhet_dev;Uid=root;Pwd=Rszn123;Charset=utf8;" + "SqlConnection": "server=127.0.0.1;Port=3306;Database=nhet_cn_dev;Uid=root;Pwd=123456;Charset=utf8;" }, "Update": { "AutoUpdate": "false", @@ -10,7 +10,7 @@ "Url": "http://121.4.95.243:8090/Updates/AutoUpdaterStarter.xml" }, "Redis": { - "Connection": "192.168.2.2:6379,password=dev", + "Connection": "127.0.0.1:6379,password=123456", "InstanceName": "local", "DefaultDB": "8" }, diff --git a/WebStarter/appsettings.prod.json b/WebStarter/appsettings.prod.json index 3ac71ca..3efd520 100644 --- a/WebStarter/appsettings.prod.json +++ b/WebStarter/appsettings.prod.json @@ -2,7 +2,7 @@ "ConnectionStrings": { "ConfigId": "master", "DbType": "MySql", - "SqlConnection": "server=localhost;Port=3306;Database=huanneng_dev;Uid=root;Pwd=123456;Charset=utf8;" + "SqlConnection": "server=localhost;Port=3306;Database=nhet_cn_dev;Uid=root;Pwd=123456;Charset=utf8;" }, "Update": { "AutoUpdate": "false", @@ -35,8 +35,8 @@ "Job": { "Enabled": false }, - "Task": { - "Disabled": "UploadTelemetryData" - }, + //"Task": { + // "Disabled": "UploadTelemetryData" + //}, "AllowedHosts": "*" }