diff --git a/ConsoleStarter/ExportDb.cs b/ConsoleStarter/ExportDb.cs index ea1fe73..8769c6d 100644 --- a/ConsoleStarter/ExportDb.cs +++ b/ConsoleStarter/ExportDb.cs @@ -36,7 +36,7 @@ public class ExportDb private readonly SqlSugarClient Db = new(new ConnectionConfig { ConnectionString = - "server=106.12.36.89;Database=chassis_track_swap0;Uid=remote_user;Pwd=Rszn123;Charset=utf8;", + "server=180.76.133.253;Port=16306;Database=huanneng_dev;Uid=root;Pwd=Rszn123;Charset=utf8;", DbType = DbType.MySql, IsAutoCloseConnection = true, InitKeyType = InitKeyType.Attribute @@ -54,5 +54,30 @@ public class ExportDb foreach (var columnInfo in columnInfos) Log.Info($" {columnInfo.DbColumnName}:{columnInfo.ColumnDescription}"); } + + Db.DbFirst + .Where(it => it.Contains("charge_order")) + .IsCreateAttribute() //创建sqlsugar自带特性 + .FormatFileName(ToPascalCase) //格式化文件名(文件名和表名不一样情况) + .FormatClassName(ToPascalCase) //格式化类名 (类名和表名不一样的情况) + .FormatPropertyName(ToPascalCase) //格式化属性名 (属性名和字段名不一样情况) + .CreateClassFile("D:\\vsproject\\hn_back_charger\\Entity\\DbModel\\Station", + "Entity.DbModel.Station"); + } + + static string ToPascalCase(string input) + { + if (string.IsNullOrEmpty(input)) + return input; + string[] strings = input.Split("_"); + string res = ""; + foreach (var s in strings) + { + string first = s.First().ToString().ToUpper(); + string te = first + s.Substring(1); + res += te; + } + + return res; } } \ No newline at end of file diff --git a/Entity/DbModel/Station/ChargeOrder.cs b/Entity/DbModel/Station/ChargeOrder.cs index 5d7a8e4..d80d0a1 100644 --- a/Entity/DbModel/Station/ChargeOrder.cs +++ b/Entity/DbModel/Station/ChargeOrder.cs @@ -63,6 +63,22 @@ namespace Entity.DbModel.Station [SugarColumn(ColumnName="charger_gun_no")] public string ChargerGunNo {get;set;} + /// + /// Desc:0:站内充电 1:站外充电 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="charge_mode")] + public int? ChargeMode {get;set;} + + /// + /// Desc:1:站控启动 2:本地启动 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="start_mode")] + public int? StartMode {get;set;} + /// /// Desc:充电开始时间 /// Default: @@ -111,6 +127,14 @@ namespace Entity.DbModel.Station [SugarColumn(ColumnName="elec_count")] public decimal? ElecCount {get;set;} + /// + /// Desc:交流电表量 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="ac_elec_count")] + public decimal? AcElecCount {get;set;} + /// /// Desc:充电开始交流表电量 /// Default: @@ -183,6 +207,38 @@ namespace Entity.DbModel.Station [SugarColumn(ColumnName="valley_elec_count")] public decimal? ValleyElecCount {get;set;} + /// + /// Desc:尖时段交流电量 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="ac_sharp_elec_count")] + public decimal? AcSharpElecCount {get;set;} + + /// + /// Desc:峰时段交流电量 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="ac_peak_elec_count")] + public decimal? AcPeakElecCount {get;set;} + + /// + /// Desc:平时段交流电量 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="ac_flat_elec_count")] + public decimal? AcFlatElecCount {get;set;} + + /// + /// Desc:谷时段交流电量 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="ac_valley_elec_count")] + public decimal? AcValleyElecCount {get;set;} + /// /// Desc:电价版本号 /// Default: diff --git a/Service/Charger/Client/ChargerClient.cs b/Service/Charger/Client/ChargerClient.cs index 4d76746..2c2b3b9 100644 --- a/Service/Charger/Client/ChargerClient.cs +++ b/Service/Charger/Client/ChargerClient.cs @@ -90,8 +90,10 @@ public class ChargerClient : TcpClient /// 心跳-桩状态 /// public byte PileState { get; set; } - - + /// + /// 电池编码 + /// + public string BatterSn { get; set; } #region 发送指令 diff --git a/Service/Charger/Codec/Decoder.cs b/Service/Charger/Codec/Decoder.cs index 9d97f7a..e743e90 100644 --- a/Service/Charger/Codec/Decoder.cs +++ b/Service/Charger/Codec/Decoder.cs @@ -116,13 +116,14 @@ public class Decoder : ByteToMessageDecoder 10 => ModelConvert.Decode(bytes), 11 => ModelConvert.Decode(bytes), 13 => ModelConvert.Decode(bytes), + 21 => ModelConvert.Decode(bytes), 25 => ModelConvert.Decode(bytes), //40 => ModelConvert.Decode(bytes), //41 => ModelConvert.Decode(bytes), 44 => ModelConvert.Decode(bytes), //46 => ModelConvert.Decode(bytes), - 48 => ModelConvert.Decode(bytes), - 50 => ModelConvert.Decode(bytes), + 48 => ModelConvert.Decode(bytes), + 50 => ModelConvert.Decode(bytes), 75 => ModelConvert.Decode(bytes), 82 => ModelConvert.Decode(bytes), @@ -202,6 +203,7 @@ public class Decoder : ByteToMessageDecoder 57 => ModelConvert.Decode(bytes), 58 => ModelConvert.Decode(bytes), 59 => ModelConvert.Decode(bytes), + 81 => ModelConvert.Decode(bytes), 142 => ModelConvert.Decode(bytes), 143 => ModelConvert.Decode(bytes), 144 => ModelConvert.Decode(bytes), @@ -213,7 +215,7 @@ public class Decoder : ByteToMessageDecoder }, #endregion - 42 => ModelConvert.Decode(bytes), + 42 => ModelConvert.Decode(bytes), 11 => ModelConvert.Decode(bytes), 49 => ModelConvert.Decode(bytes), 50 => ModelConvert.Decode(bytes), diff --git a/Service/Charger/Common/ChargerConst.cs b/Service/Charger/Common/ChargerConst.cs index ae3cb5e..a59be89 100644 --- a/Service/Charger/Common/ChargerConst.cs +++ b/Service/Charger/Common/ChargerConst.cs @@ -4,6 +4,7 @@ namespace Service.Charger.Common; public static class ChargerConst { + public static readonly AttributeKey ChargerSn = AttributeKey.ValueOf("charger_sn"); public static readonly AttributeKey EqmTypeNo = AttributeKey.ValueOf("eqm_type_no"); public static readonly AttributeKey EqmCode = AttributeKey.ValueOf("eqm_code"); @@ -12,6 +13,10 @@ public static class ChargerConst public static readonly byte[] StartChar = { 0x68 /* ,0xEE*/ }; public static readonly string AuthCode = "szhckj01"; + + public static readonly byte[] BatteryBasicInfo2 = { 0x00, 0xF8, 0x02 }; + public static readonly byte[] BatteryNo = { 0x00, 0xF8, 0x81 }; + public static readonly byte[] BatteryBasicInfo = { 0x00, 0xF8, 0x82 }; } /// diff --git a/Service/Charger/Handler/AdjustChargeRateResHandler.cs b/Service/Charger/Handler/AdjustChargeRateResHandler.cs new file mode 100644 index 0000000..3d5027f --- /dev/null +++ b/Service/Charger/Handler/AdjustChargeRateResHandler.cs @@ -0,0 +1,28 @@ +using DotNetty.Transport.Channels; +using HybirdFrameworkCore.Autofac.Attribute; +using log4net; +using Service.Charger.Client; +using Service.Charger.Msg.Charger.Resp; + +namespace Service.Charger.Handler +{ + /// + /// 3.4.4 充放电机应答辅助控制 + /// + /// 1,保存日志到log + /// + /// + [Order(8)] + [Scope("InstancePerDependency")] + public class AdjustChargeRateResHandler : SimpleChannelInboundHandler, IBaseHandler + { + private static readonly ILog Log = LogManager.GetLogger(typeof(AdjustChargeRateResHandler)); + protected override void ChannelRead0(IChannelHandlerContext ctx, AdjustChargeRateRes msg) + { + if (ClientMgr.TryGetClient(ctx.Channel, out var sn, out var client)) + { + Log.Info($"receive {msg} from {sn}"); + } + } + } +} diff --git a/Service/Charger/Handler/ChangeChargeModeResHandler.cs b/Service/Charger/Handler/ChangeChargeModeResHandler.cs new file mode 100644 index 0000000..48223d4 --- /dev/null +++ b/Service/Charger/Handler/ChangeChargeModeResHandler.cs @@ -0,0 +1,29 @@ +using DotNetty.Transport.Channels; +using HybirdFrameworkCore.Autofac.Attribute; +using log4net; +using Service.Charger.Client; +using Service.Charger.Msg.Charger.Resp; + +namespace Service.Charger.Handler +{ + /// + /// 3.4.4 充放电机应答辅助控制 + /// + /// 1,保存日志到log + /// + /// + [Order(8)] + [Scope("InstancePerDependency")] + public class ChangeChargeModeResHandler : SimpleChannelInboundHandler, IBaseHandler + { + private static readonly ILog Log = LogManager.GetLogger(typeof(ChangeChargeModeResHandler)); + + protected override void ChannelRead0(IChannelHandlerContext ctx, ChangeChargeModeRes msg) + { + if (ClientMgr.TryGetClient(ctx.Channel, out var sn, out var client)) + { + Log.Info($"receive {msg} from {sn}"); + } + } + } +} \ No newline at end of file diff --git a/Service/Charger/Handler/OfflineStopChargingResHandler.cs b/Service/Charger/Handler/OfflineStopChargingResHandler.cs new file mode 100644 index 0000000..2fad37d --- /dev/null +++ b/Service/Charger/Handler/OfflineStopChargingResHandler.cs @@ -0,0 +1,29 @@ +using DotNetty.Transport.Channels; +using HybirdFrameworkCore.Autofac.Attribute; +using log4net; +using Service.Charger.Client; +using Service.Charger.Msg.Charger.Resp; + +namespace Service.Charger.Handler +{ + /// + /// 充放电机应答监控平台掉线停止充电 + /// + /// 1,保存日志到log + /// + /// + [Order(8)] + [Scope("InstancePerDependency")] + public class OfflineStopChargingResHandler : SimpleChannelInboundHandler, IBaseHandler + { + private static readonly ILog Log = LogManager.GetLogger(typeof(OfflineStopChargingResHandler)); + + protected override void ChannelRead0(IChannelHandlerContext ctx, OfflineStopChargingRes msg) + { + if (ClientMgr.TryGetClient(ctx.Channel, out var sn, out var client)) + { + Log.Info($"receive {msg} from {sn}"); + } + } + } +} \ No newline at end of file diff --git a/Service/Charger/Handler/QueryBatteryBasicInfo2ResHandler.cs b/Service/Charger/Handler/QueryBatteryBasicInfo2ResHandler.cs new file mode 100644 index 0000000..b5228c1 --- /dev/null +++ b/Service/Charger/Handler/QueryBatteryBasicInfo2ResHandler.cs @@ -0,0 +1,38 @@ +using System.Text; +using DotNetty.Transport.Channels; +using HybirdFrameworkCore.Autofac.Attribute; +using log4net; +using Service.Charger.Client; +using Service.Charger.Msg.Charger.Resp; + +namespace Service.Charger.Handler +{ + /// + /// 3.4.4 充放电机应答辅助控制 + /// + /// 1,保存日志到log + /// + /// + [Order(8)] + [Scope("InstancePerDependency")] + public class QueryBatteryBasicInfo2ResHandler : SimpleChannelInboundHandler, IBaseHandler + { + private static readonly ILog Log = LogManager.GetLogger(typeof(QueryBatteryBasicInfo2ResHandler)); + + protected override void ChannelRead0(IChannelHandlerContext ctx, QueryBatterySnRes msg) + { + if (ClientMgr.TryGetClient(ctx.Channel, out var sn, out var client)) + { + StringBuilder sb = new StringBuilder(27); + foreach (var b in msg.BatterSnBytes) + { + sb.Append(Convert.ToChar(b)); + } + + client.BatterSn = sb.ToString(); + + Log.Info($"receive {msg} from {sn}"); + } + } + } +} \ No newline at end of file diff --git a/Service/Charger/Handler/RecordChargeHandler.cs b/Service/Charger/Handler/RecordChargeHandler.cs new file mode 100644 index 0000000..4628e3b --- /dev/null +++ b/Service/Charger/Handler/RecordChargeHandler.cs @@ -0,0 +1,60 @@ +using Autofac; +using DotNetty.Transport.Channels; +using HybirdFrameworkCore.Autofac; +using HybirdFrameworkCore.Autofac.Attribute; +using HybirdFrameworkCore.Redis; +using log4net; +using Service.Charger.Msg.Charger.Req; + +namespace Service.Charger.Handler +{ + /// + /// 主动上送充电记录 + /// + /// 1,保存到Redis-7 + /// 2,保存日志到log + /// 3,回复主动上送充电记录 + /// 4,保存充电记录日志 + /// 5,保存 充电记录保存到云平台记录标识 + /// + /// + [Order(8)] + [Scope("InstancePerDependency")] + public class RecordChargeHandler : SimpleChannelInboundHandler, IBaseHandler + { + private static readonly ILog Log = LogManager.GetLogger(typeof(RecordChargeHandler)); + protected override void ChannelRead0(IChannelHandlerContext ctx, RecordCharge? msg) + { + + msg.StartTime = (msg.StartYear+1900) + "-" + msg.StartMonth + "-" + msg.StartDay + " " + msg.StartHour + ":" + msg.StartMinute + ":" + msg.StartSecond; + msg.EndTime = (msg.EndYear+1900) + "-" + msg.EndMonth + "-" + msg.EndDay + " " + msg.EndHour + ":" + msg.EndMinute + ":" + msg.EndSecond; + + + + float[] powersPeriods = new float[4] { 0, 0, 0, 0 }; //元素索引顺序代表值;1:尖;2:峰;3:平;4:谷 + if (msg.FlagOfTime1 >= 1 && msg.FlagOfTime1 <= 4){powersPeriods[msg.FlagOfTime1 - 1] += msg.ChargingPowerOfTime1;} + if (msg.FlagOfTime2 >= 1 && msg.FlagOfTime2 <= 4){powersPeriods[msg.FlagOfTime2 - 1] += msg.ChargingPowerOfTime2;} + if (msg.FlagOfTime3 >= 1 && msg.FlagOfTime3 <= 4){powersPeriods[msg.FlagOfTime3 - 1] += msg.ChargingPowerOfTime3;} + if (msg.FlagOfTime4 >= 1 && msg.FlagOfTime4 <= 4){powersPeriods[msg.FlagOfTime4 - 1] += msg.ChargingPowerOfTime4;} + if (msg.FlagOfTime5 >= 1 && msg.FlagOfTime5 <= 4){powersPeriods[msg.FlagOfTime5 - 1] += msg.ChargingPowerOfTime5;} + if (msg.FlagOfTime6 >= 1 && msg.FlagOfTime6 <= 4){powersPeriods[msg.FlagOfTime6 - 1] += msg.ChargingPowerOfTime6;} + if (msg.FlagOfTime7 >= 1 && msg.FlagOfTime7 <= 4){powersPeriods[msg.FlagOfTime7 - 1] += msg.ChargingPowerOfTime7;} + if (msg.FlagOfTime8 >= 1 && msg.FlagOfTime8 <= 4){powersPeriods[msg.FlagOfTime8 - 1] += msg.ChargingPowerOfTime8;} + + float[] acPowersPeriods = new float[4] { 0, 0, 0, 0 }; //元素索引顺序代表值;1:尖;2:峰;3:平;4:谷 + if (msg.AcFlagOfTime1 >= 1 && msg.AcFlagOfTime1 <= 4){acPowersPeriods[msg.AcFlagOfTime1 - 1] += msg.AcChargingPowerOfTime1;} + if (msg.AcFlagOfTime2 >= 1 && msg.AcFlagOfTime2 <= 4){acPowersPeriods[msg.AcFlagOfTime2 - 1] += msg.AcChargingPowerOfTime2;} + if (msg.AcFlagOfTime3 >= 1 && msg.AcFlagOfTime3 <= 4){acPowersPeriods[msg.AcFlagOfTime3 - 1] += msg.AcChargingPowerOfTime3;} + if (msg.AcFlagOfTime4 >= 1 && msg.AcFlagOfTime4 <= 4){acPowersPeriods[msg.AcFlagOfTime4 - 1] += msg.AcChargingPowerOfTime4;} + if (msg.AcFlagOfTime5 >= 1 && msg.AcFlagOfTime5 <= 4){acPowersPeriods[msg.AcFlagOfTime5 - 1] += msg.AcChargingPowerOfTime5;} + if (msg.AcFlagOfTime6 >= 1 && msg.AcFlagOfTime6 <= 4){acPowersPeriods[msg.AcFlagOfTime6 - 1] += msg.AcChargingPowerOfTime6;} + if (msg.AcFlagOfTime7 >= 1 && msg.AcFlagOfTime7 <= 4){acPowersPeriods[msg.AcFlagOfTime7 - 1] += msg.AcChargingPowerOfTime7;} + if (msg.AcFlagOfTime8 >= 1 && msg.AcFlagOfTime8 <= 4){acPowersPeriods[msg.AcFlagOfTime8 - 1] += msg.AcChargingPowerOfTime8;} + + + RedisHelper redisHelper = AppInfo.Container.Resolve(); + var hlpChannelARedis = redisHelper.GetDatabase(7); + + } + } +} \ No newline at end of file diff --git a/Service/Charger/Handler/SetPeakVallyTimeResHandler.cs b/Service/Charger/Handler/SetPeakVallyTimeResHandler.cs new file mode 100644 index 0000000..08b74e6 --- /dev/null +++ b/Service/Charger/Handler/SetPeakVallyTimeResHandler.cs @@ -0,0 +1,29 @@ +using DotNetty.Transport.Channels; +using HybirdFrameworkCore.Autofac.Attribute; +using log4net; +using Service.Charger.Client; +using Service.Charger.Msg.Charger.Resp; + +namespace Service.Charger.Handler +{ + /// + /// 充放电机应答监控平台掉线停止充电 + /// + /// 1,保存日志到log + /// + /// + [Order(8)] + [Scope("InstancePerDependency")] + public class SetPeakVallyTimeResHandler : SimpleChannelInboundHandler, IBaseHandler + { + private static readonly ILog Log = LogManager.GetLogger(typeof(SetPeakVallyTimeResHandler)); + + protected override void ChannelRead0(IChannelHandlerContext ctx, SetPeakVallyTimeRes msg) + { + if (ClientMgr.TryGetClient(ctx.Channel, out var sn, out var client)) + { + Log.Info($"receive {msg} from {sn}"); + } + } + } +} \ No newline at end of file diff --git a/Service/Charger/Msg/Charger/Req/RecordCharg.cs b/Service/Charger/Msg/Charger/Req/RecordCharg.cs deleted file mode 100644 index 4c337b6..0000000 --- a/Service/Charger/Msg/Charger/Req/RecordCharg.cs +++ /dev/null @@ -1,802 +0,0 @@ -using HybirdFrameworkCore.Autofac.Attribute; - -namespace Service.Charger.Msg.Charger.Req -{ - /// - /// 3.5.5 主动上送充电记录 - /// - public class RecordCharg : ASDU - { - /// - /// 充电开始时间-秒 - /// - [Property(0, 8)] - public byte StartSecond { get; set; } - - /// - /// 充电开始时间-分 - /// - [Property(8, 8)] - public byte StartMinute { get; set; } - - /// - /// 充电开始时间-时 - /// - [Property(16, 8)] - public byte StartHour { get; set; } - - /// - /// 充电开始时间-日 - /// - [Property(24, 8)] - public byte StartDay { get; set; } - - /// - /// 充电开始时间-月 - /// - [Property(32, 8)] - public byte StartMonth { get; set; } - - /// - /// 充电开始时间-年 - /// - [Property(40, 8)] - public byte StartYear { get; set; } - - /// - /// 充电结束时间-秒 - /// - [Property(48, 8)] - public byte EndSecond { get; set; } - - /// - /// 充电结束时间-分 - /// - [Property(56, 8)] - public byte EndMinute { get; set; } - - /// - /// 充电结束时间-时 - /// - [Property(64, 8)] - public byte EndHour { get; set; } - - /// - /// 充电结束时间-日 - /// - [Property(72, 8)] - public byte EndDay { get; set; } - - /// - /// 充电结束时间-月 - /// - [Property(80, 8)] - public byte EndMonth { get; set; } - - /// - /// 充电结束时间-年 - /// - [Property(88, 8)] - public byte EndYear { get; set; } - - /// - /// 充电开始时间 秒-分-时-日-月-年 - /// - public string StartTime { get; set; } - - /// - /// 充电结束时间 - /// - public string EndTime { get; set; } - - /// - /// 1 枪充电前电能表数据 - /// - [Property(96, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float FirstGunEnergyMeterDataBefore { get; set; } - - /// - /// 1 枪充电后电能表数据 - /// - [Property(128, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float FirstGunEnergyMeterDataAfter { get; set; } - - /// - /// 2 枪充电前电能表数据 - /// - [Property(160, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float SecondGunEnergyMeterDataBefore { get; set; } - - /// - /// 2 枪充电后电能表数据 - /// - [Property(192, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float SecondGunEnergyMeterDataAfter { get; set; } - - /// - /// 充电电量 - /// - [Property(224, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPower { get; set; } - - /// - /// 充电前SOC - /// - [Property(256, 8)] - public byte SocBefore { get; set; } - - /// - /// 充电后SOC - /// - [Property(264, 8)] - public byte SocAfter { get; set; } - - /// - /// 充电时段数量 - /// - [Property(272, 8)] - public byte ChargingTimeCount { get; set; } - - /// - /// 时段1 开始时间 时 - /// - [Property(280, 8)] - public byte StartTime1 { get; set; } - - /// - /// 时段1 开始时间 分 - /// - [Property(288, 8)] - public byte StartTimeMinute1 { get; set; } - - /// - /// 时段1 电量 - /// - [Property(296, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime1 { get; set; } - - /// - /// 时段1 标识 - /// - [Property(328, 8)] - public byte FlagOfTime1 { get; set; } - - /// - /// 时段2 开始时间 时 - /// - [Property(280 + 56, 8)] - public byte StartTime2 { get; set; } - - /// - /// 时段2 开始时间 分 - /// - [Property(288 + 56, 8)] - public byte StartTimeMinute2 { get; set; } - - /// - /// 时段2 电量 - /// - [Property(296 + 56, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime2 { get; set; } - - /// - /// 时段2 标识 - /// - [Property(328 + 56, 8)] - public byte FlagOfTime2 { get; set; } - - /// - /// 时段3 开始时间 时 - /// - [Property(280 + 56 * 2, 8)] - public byte StartTime3 { get; set; } - - /// - /// 时段3 开始时间 分 - /// - [Property(288 + 56 * 2, 8)] - public byte StartTimeMinute3 { get; set; } - - /// - /// 时段3 电量 - /// - [Property(296 + 56 * 2, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime3 { get; set; } - - /// - /// 时段3 标识 - /// - [Property(328 + 56 * 2, 8)] - public byte FlagOfTime3 { get; set; } - - /// - /// 时段4 开始时间 时 - /// - [Property(280 + 56 * 3, 8)] - public byte StartTime4 { get; set; } - - /// - /// 时段4 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute4 { get; set; } - - /// - /// 时段4 电量 - /// - [Property(296 + 56 * 3, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime4 { get; set; } - - /// - /// 时段4 标识 - /// - [Property(328 + 56 * 3, 8)] - public byte FlagOfTime4 { get; set; } - - /// - /// 时段5 开始时间 时 - /// - [Property(280 + 56 * 4, 8)] - public byte StartTime5 { get; set; } - - /// - /// 时段5 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute5 { get; set; } - - /// - /// 时段5 电量 - /// - [Property(296 + 56 * 4, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime5 { get; set; } - - /// - /// 时段5 标识 - /// - [Property(328 + 56 * 4, 8)] - public byte FlagOfTime5 { get; set; } - - /// - /// 时段6 开始时间 时 - /// - [Property(280 + 56 * 5, 8)] - public byte StartTime6 { get; set; } - - /// - /// 时段6 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute6 { get; set; } - - /// - /// 时段6 电量 - /// - [Property(296 + 56 * 5, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime6 { get; set; } - - /// - /// 时段6 标识 - /// - [Property(328 + 56 * 5, 8)] - public byte FlagOfTime6 { get; set; } - - /// - /// 时段7 开始时间 时 - /// - [Property(280 + 56 * 6, 8)] - public byte StartTime7 { get; set; } - - /// - /// 时段7 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute7 { get; set; } - - /// - /// 时段7 电量 - /// - [Property(296 + 56 * 6, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime7 { get; set; } - - /// - /// 时段7 标识 - /// - [Property(328 + 56 * 6, 8)] - public byte FlagOfTime7 { get; set; } - - /// - /// 时段8 开始时间 时 - /// - [Property(280 + 56 * 7, 8)] - public byte StartTime8 { get; set; } - - /// - /// 时段8 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute8 { get; set; } - - /// - /// 时段8 电量 - /// - [Property(296 + 56 * 7, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime8 { get; set; } - - /// - /// 时段8 标识 - /// - [Property(328 + 56 * 7, 8)] - public byte FlagOfTime8 { get; set; } - - /// - /// 时段9 开始时间 时 - /// - [Property(280 + 56 * 8, 8)] - public byte StartTime9 { get; set; } - - /// - /// 时段9 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute9 { get; set; } - - /// - /// 时段9 电量 - /// - [Property(296 + 56 * 8, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime9 { get; set; } - - /// - /// 时段9 标识 - /// - [Property(328 + 56 * 8, 8)] - public byte FlagOfTime9 { get; set; } - - /// - /// 时段10 开始时间 时 - /// - [Property(280 + 56 * 9, 8)] - public byte StartTime10 { get; set; } - - /// - /// 时段10 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute10 { get; set; } - - /// - /// 时段10 电量 - /// - [Property(296 + 56 * 9, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime10 { get; set; } - - /// - /// 时段10 标识 - /// - [Property(328 + 56 * 9, 8)] - public byte FlagOfTime10 { get; set; } - - /// - /// 时段11 开始时间 时 - /// - [Property(280 + 56 * 10, 8)] - public byte StartTime11 { get; set; } - - /// - /// 时段11 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute11 { get; set; } - - /// - /// 时段11 电量 - /// - [Property(296 + 56 * 10, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime11 { get; set; } - - /// - /// 时段11 标识 - /// - [Property(328 + 56 * 10, 8)] - public byte FlagOfTime11 { get; set; } - - /// - /// 时段12 开始时间 时 - /// - [Property(280 + 56 * 11, 8)] - public byte StartTime12 { get; set; } - - /// - /// 时段12 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute12 { get; set; } - - /// - /// 时段12 电量 - /// - [Property(296 + 56 * 11, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime12 { get; set; } - - /// - /// 时段12 标识 - /// - [Property(328 + 56 * 11, 8)] - public byte FlagOfTime12 { get; set; } - - /// - /// 时段13 开始时间 时 - /// - [Property(280 + 56 * 12, 8)] - public byte StartTime13 { get; set; } - - /// - /// 时段13 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute13 { get; set; } - - /// - /// 时段13 电量 - /// - [Property(296 + 56 * 12, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime13 { get; set; } - - /// - /// 时段13 标识 - /// - [Property(328 + 56 * 12, 8)] - public byte FlagOfTime13 { get; set; } - - /// - /// 时段14 开始时间 时 - /// - [Property(280 + 56 * 13, 8)] - public byte StartTime14 { get; set; } - - /// - /// 时段14 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute14 { get; set; } - - /// - /// 时段14 电量 - /// - [Property(296 + 56 * 13, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime14 { get; set; } - - /// - /// 时段14 标识 - /// - [Property(328 + 56 * 13, 8)] - public byte FlagOfTime14 { get; set; } - - /// - /// 时段15 开始时间 时 - /// - [Property(280 + 56 * 14, 8)] - public byte StartTime15 { get; set; } - - /// - /// 时段15 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute15 { get; set; } - - /// - /// 时段15 电量 - /// - [Property(296 + 56 * 14, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime15 { get; set; } - - /// - /// 时段15 标识 - /// - [Property(328 + 56 * 14, 8)] - public byte FlagOfTime15 { get; set; } - - /// - /// 时段16 开始时间 时 - /// - [Property(280 + 56 * 15, 8)] - public byte StartTime16 { get; set; } - - /// - /// 时段16 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute16 { get; set; } - - /// - /// 时段16 电量 - /// - [Property(296 + 56 * 15, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime16 { get; set; } - - /// - /// 时段16 标识 - /// - [Property(328 + 56 * 15, 8)] - public byte FlagOfTime16 { get; set; } - - /// - /// 时段17 开始时间 时 - /// - [Property(280 + 56 * 16, 8)] - public byte StartTime17 { get; set; } - - /// - /// 时段17 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute17 { get; set; } - - /// - /// 时段17 电量 - /// - [Property(296 + 56 * 16, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime17 { get; set; } - - /// - /// 时段17 标识 - /// - [Property(328 + 56 * 16, 8)] - public byte FlagOfTime17 { get; set; } - - /// - /// 时段18 开始时间 时 - /// - [Property(280 + 56 * 17, 8)] - public byte StartTime18 { get; set; } - - /// - /// 时段18 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute18 { get; set; } - - /// - /// 时段18 电量 - /// - [Property(296 + 56 * 17, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime18 { get; set; } - - /// - /// 时段18 标识 - /// - [Property(328 + 56 * 17, 8)] - public byte FlagOfTime18 { get; set; } - - /// - /// 时段19 开始时间 时 - /// - [Property(280 + 56 * 18, 8)] - public byte StartTime19 { get; set; } - - /// - /// 时段19 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute19 { get; set; } - - /// - /// 时段19 电量 - /// - [Property(296 + 56 * 18, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime19 { get; set; } - - /// - /// 时段19 标识 - /// - [Property(328 + 56 * 18, 8)] - public byte FlagOfTime19 { get; set; } - - /// - /// 时段20 开始时间 时 - /// - [Property(280 + 56 * 19, 8)] - public byte StartTime20 { get; set; } - - /// - /// 时段20 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute20 { get; set; } - - /// - /// 时段20 电量 - /// - [Property(296 + 56 * 19, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime20 { get; set; } - - /// - /// 时段20 标识 - /// - [Property(328 + 56 * 19, 8)] - public byte FlagOfTime20 { get; set; } - - /// - /// 时段21 开始时间 时 - /// - [Property(280 + 56 * 20, 8)] - public byte StartTime21 { get; set; } - - /// - /// 时段21 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute21 { get; set; } - - /// - /// 时段21 电量 - /// - [Property(296 + 56 * 20, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime21 { get; set; } - - /// - /// 时段21 标识 - /// - [Property(328 + 56 * 20, 8)] - public byte FlagOfTime21 { get; set; } - - /// - /// 时段22 开始时间 时 - /// - [Property(280 + 56 * 21, 8)] - public byte StartTime22 { get; set; } - - /// - /// 时段22 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute22 { get; set; } - - /// - /// 时段22 电量 - /// - [Property(296 + 56 * 21, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime22 { get; set; } - - /// - /// 时段22 标识 - /// - [Property(328 + 56 * 21, 8)] - public byte FlagOfTime22 { get; set; } - - /// - /// 时段23 开始时间 时 - /// - [Property(280 + 56 * 22, 8)] - public byte StartTime23 { get; set; } - - /// - /// 时段23 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute23 { get; set; } - - /// - /// 时段23 电量 - /// - [Property(296 + 56 * 22, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime23 { get; set; } - - /// - /// 时段23 标识 - /// - [Property(328 + 56 * 22, 8)] - public byte FlagOfTime23 { get; set; } - - /// - /// 时段24 开始时间 时 - /// - [Property(280 + 56 * 23, 8)] - public byte StartTime24 { get; set; } - - /// - /// 时段24 开始时间 分 - /// - [Property(288 + 56 * 3, 8)] - public byte StartTimeMinute24 { get; set; } - - /// - /// 时段24 电量 - /// - [Property(296 + 56 * 23, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float ChargingPowerOfTime24 { get; set; } - - /// - /// 时段24 标识 - /// - [Property(328 + 56 * 23, 8)] - public byte FlagOfTime24 { get; set; } - - /// - /// 充电前交流表值 - /// - [Property(1624, 32, PropertyReadConstant.Bit, 0.01, 2)] - - public float AcMeterDataBefore { get; set; } - - /// - /// 充电后交流表值 - /// - [Property(1656, 32, PropertyReadConstant.Bit, 0.01, 2)] - public float AcMeterDataAfter { get; set; } - - /// - /// 启动模式 - /// - [Property(1688, 8)] - public byte BootMode { get; set; } - - /// - /// 充电流水号 - /// - [Property(1696, 16, PropertyReadConstant.Byte)] - public byte[] ChargingWater { get; set; } - - /// - /// 充电流水号 - /// - public string ChargingSn { get; set; } - - /// - /// 车辆 VIN - /// - [Property(1712, 17, PropertyReadConstant.Byte)] - public byte[] VehicleVIN { get; set; } - - /// - /// 车辆 VIN - /// - public string VehicleVin { get; set; } - - public string time01 { get; set; } - public string time02 { get; set; } - public string time03 { get; set; } - public string time04 { get; set; } - public string time05 { get; set; } - public string time06 { get; set; } - public string time07 { get; set; } - public string time08 { get; set; } - public string time09 { get; set; } - public string time10 { get; set; } - public string time11 { get; set; } - public string time12 { get; set; } - public string time13 { get; set; } - public string time14 { get; set; } - public string time15 { get; set; } - public string time16 { get; set; } - public string time17 { get; set; } - public string time18 { get; set; } - public string time19 { get; set; } - public string time20 { get; set; } - public string time21 { get; set; } - public string time22 { get; set; } - public string time23 { get; set; } - public string time24 { get; set; } - - /// - /// 尖时间段电量 - /// - public float SharpPeriodPower { get; set; } - - /// - /// 峰时间段电量 - /// - public float PeakPeriodPower { get; set; } - - /// - /// 平时间段电量 - /// - public float FlatPeriodPower { get; set; } - - /// - /// 谷时间段电量 - /// - public float ValleyPeriodPower { get; set; } - } -} \ No newline at end of file diff --git a/Service/Charger/Msg/Charger/Req/RecordCharge.cs b/Service/Charger/Msg/Charger/Req/RecordCharge.cs new file mode 100644 index 0000000..dd80e0f --- /dev/null +++ b/Service/Charger/Msg/Charger/Req/RecordCharge.cs @@ -0,0 +1,582 @@ +using HybirdFrameworkCore.Autofac.Attribute; + +namespace Service.Charger.Msg.Charger.Req +{ + /// + /// 3.5.5 主动上送充电记录 + /// + public class RecordCharge : ASDU + { + /// + /// 充电开始时间-秒 + /// + [Property(0, 256, PropertyReadConstant.Byte)] + public string ChargerOrderNo { get; set; } + + /// + /// 充电开始时间-秒 + /// + [Property(256, 8)] + public byte StartSecond { get; set; } + + /// + /// 充电开始时间-分 + /// + [Property(264, 8)] + public byte StartMinute { get; set; } + + /// + /// 充电开始时间-时 + /// + [Property(272, 8)] + public byte StartHour { get; set; } + + /// + /// 充电开始时间-日 + /// + [Property(280, 8)] + public byte StartDay { get; set; } + + /// + /// 充电开始时间-月 + /// + [Property(288, 8)] + public byte StartMonth { get; set; } + + /// + /// 充电开始时间-年 + /// + [Property(296, 8)] + public byte StartYear { get; set; } + + /// + /// 充电结束时间-秒 + /// + [Property(304, 8)] + public byte EndSecond { get; set; } + + /// + /// 充电结束时间-分 + /// + [Property(312, 8)] + public byte EndMinute { get; set; } + + /// + /// 充电结束时间-时 + /// + [Property(320, 8)] + public byte EndHour { get; set; } + + /// + /// 充电结束时间-日 + /// + [Property(328, 8)] + public byte EndDay { get; set; } + + /// + /// 充电结束时间-月 + /// + [Property(336, 8)] + public byte EndMonth { get; set; } + + /// + /// 充电结束时间-年 + /// + [Property(344, 8)] + public byte EndYear { get; set; } + + /// + /// 充电开始时间 秒-分-时-日-月-年 + /// + public string StartTime { get; set; } + + /// + /// 充电结束时间 + /// + public string EndTime { get; set; } + + /// + /// 1 枪充电前电能表数据 + /// + [Property(352, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float FirstGunEnergyMeterDataBefore { get; set; } + + /// + /// 1 枪充电后电能表数据 + /// + [Property(384, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float FirstGunEnergyMeterDataAfter { get; set; } + + /// + /// 2 枪充电前电能表数据 + /// + [Property(416, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float SecondGunEnergyMeterDataBefore { get; set; } + + /// + /// 2 枪充电后电能表数据 + /// + [Property(448, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float SecondGunEnergyMeterDataAfter { get; set; } + + /// + /// 充电电量 + /// + [Property(480, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float ChargingPower { get; set; } + + /// + /// 充电前SOC + /// + [Property(512, 8)] + public byte SocBefore { get; set; } + + /// + /// 充电后SOC + /// + [Property(520, 8)] + public byte SocAfter { get; set; } + + /// + /// 充电时段数量 + /// + [Property(528, 8)] + public byte ChargingTimeCount { get; set; } + + #region 直流峰谷电 + + /// + /// 时段1 开始时间 时 + /// + [Property(536, 8)] + public byte StartTime1 { get; set; } + + /// + /// 时段1 开始时间 分 + /// + [Property(544, 8)] + public byte StartTimeMinute1 { get; set; } + + /// + /// 时段1 电量 + /// + [Property(552, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float ChargingPowerOfTime1 { get; set; } + + /// + /// 时段1 标识 + /// + [Property(584, 8)] + public byte FlagOfTime1 { get; set; } + + /// + /// 时段2 开始时间 时 + /// + [Property(536 + 56, 8)] + public byte StartTime2 { get; set; } + + /// + /// 时段2 开始时间 分 + /// + [Property(544 + 56, 8)] + public byte StartTimeMinute2 { get; set; } + + /// + /// 时段2 电量 + /// + [Property(552 + 56, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float ChargingPowerOfTime2 { get; set; } + + /// + /// 时段2 标识 + /// + [Property(584 + 56, 8)] + public byte FlagOfTime2 { get; set; } + + /// + /// 时段3 开始时间 时 + /// + [Property(536 + 56 * 2, 8)] + public byte StartTime3 { get; set; } + + /// + /// 时段3 开始时间 分 + /// + [Property(544 + 56 * 2, 8)] + public byte StartTimeMinute3 { get; set; } + + /// + /// 时段3 电量 + /// + [Property(552 + 56 * 2, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float ChargingPowerOfTime3 { get; set; } + + /// + /// 时段3 标识 + /// + [Property(584 + 56 * 2, 8)] + public byte FlagOfTime3 { get; set; } + + /// + /// 时段4 开始时间 时 + /// + [Property(536 + 56 * 3, 8)] + public byte StartTime4 { get; set; } + + /// + /// 时段4 开始时间 分 + /// + [Property(544 + 56 * 3, 8)] + public byte StartTimeMinute4 { get; set; } + + /// + /// 时段4 电量 + /// + [Property(552 + 56 * 3, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float ChargingPowerOfTime4 { get; set; } + + /// + /// 时段4 标识 + /// + [Property(584 + 56 * 3, 8)] + public byte FlagOfTime4 { get; set; } + + /// + /// 时段5 开始时间 时 + /// + [Property(536 + 56 * 4, 8)] + public byte StartTime5 { get; set; } + + /// + /// 时段5 开始时间 分 + /// + [Property(544 + 56 * 4, 8)] + public byte StartTimeMinute5 { get; set; } + + /// + /// 时段5 电量 + /// + [Property(552 + 56 * 4, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float ChargingPowerOfTime5 { get; set; } + + /// + /// 时段5 标识 + /// + [Property(584 + 56 * 4, 8)] + public byte FlagOfTime5 { get; set; } + + /// + /// 时段6 开始时间 时 + /// + [Property(536 + 56 * 5, 8)] + public byte StartTime6 { get; set; } + + /// + /// 时段6 开始时间 分 + /// + [Property(544 + 56 * 5, 8)] + public byte StartTimeMinute6 { get; set; } + + /// + /// 时段6 电量 + /// + [Property(552 + 56 * 5, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float ChargingPowerOfTime6 { get; set; } + + /// + /// 时段6 标识 + /// + [Property(584 + 56 * 5, 8)] + public byte FlagOfTime6 { get; set; } + + /// + /// 时段7 开始时间 时 + /// + [Property(536 + 56 * 6, 8)] + public byte StartTime7 { get; set; } + + /// + /// 时段7 开始时间 分 + /// + [Property(544 + 56 * 6, 8)] + public byte StartTimeMinute7 { get; set; } + + /// + /// 时段7 电量 + /// + [Property(552 + 56 * 6, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float ChargingPowerOfTime7 { get; set; } + + /// + /// 时段7 标识 + /// + [Property(584 + 56 * 6, 8)] + public byte FlagOfTime7 { get; set; } + + /// + /// 时段8 开始时间 时 + /// + [Property(536 + 56 * 7, 8)] + public byte StartTime8 { get; set; } + + /// + /// 时段8 开始时间 分 + /// + [Property(544 + 56 * 7, 8)] + public byte StartTimeMinute8 { get; set; } + + /// + /// 时段8 电量 + /// + [Property(552 + 56 * 7, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float ChargingPowerOfTime8 { get; set; } + + /// + /// 时段8 标识 + /// + [Property(584 + 56 * 7, 8)] + public byte FlagOfTime8 { get; set; } + + #endregion + + /// + /// 充电模式 0:站内充电 1:站外充电 + /// + [Property(984, 8)] + public byte ChargeMode { get; set; } + + /// + /// 启动模式 0: 站控启动 1:本地启动 + /// + [Property(992, 8)] + public byte StartMode { get; set; } + + /// + /// 充电前直流表值 + /// + [Property(1000, 32, PropertyReadConstant.Bit, 0.01, 2)] + + public float DcMeterDataBefore { get; set; } + + /// + /// 充电后直流表值 + /// + [Property(1032, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float DcMeterDataAfter { get; set; } + + /// + /// 充电前交流表值 + /// + [Property(1064, 32, PropertyReadConstant.Bit, 0.01, 2)] + + public float AcMeterDataBefore { get; set; } + + /// + /// 充电后交流表值 + /// + [Property(1096, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float AcMeterDataAfter { get; set; } + + /// + /// 交流表充电量 + /// + [Property(1128, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float AcMeterElecCount { get; set; } + + #region 交流峰谷电 + + /// + /// 时段1 开始时间 时 + /// + [Property(1160, 8)] + public byte AcStartTime1 { get; set; } + + /// + /// 时段1 开始时间 分 + /// + [Property(1168, 8)] + public byte AcStartTimeMinute1 { get; set; } + + /// + /// 时段1 电量 + /// + [Property(1176, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float AcChargingPowerOfTime1 { get; set; } + + /// + /// 时段1 标识 + /// + [Property(1208, 8)] + public byte AcFlagOfTime1 { get; set; } + + /// + /// 时段2 开始时间 时 + /// + [Property(1160 + 56, 8)] + public byte AcStartTime2 { get; set; } + + /// + /// 时段2 开始时间 分 + /// + [Property(1168 + 56, 8)] + public byte AcStartTimeMinute2 { get; set; } + + /// + /// 时段2 电量 + /// + [Property(1176 + 56, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float AcChargingPowerOfTime2 { get; set; } + + /// + /// 时段2 标识 + /// + [Property(1208 + 56, 8)] + public byte AcFlagOfTime2 { get; set; } + + /// + /// 时段3 开始时间 时 + /// + [Property(1160 + 56 * 2, 8)] + public byte AcStartTime3 { get; set; } + + /// + /// 时段3 开始时间 分 + /// + [Property(1168 + 56 * 2, 8)] + public byte AcStartTimeMinute3 { get; set; } + + /// + /// 时段3 电量 + /// + [Property(1176 + 56 * 2, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float AcChargingPowerOfTime3 { get; set; } + + /// + /// 时段3 标识 + /// + [Property(1208 + 56 * 2, 8)] + public byte AcFlagOfTime3 { get; set; } + + /// + /// 时段4 开始时间 时 + /// + [Property(1160 + 56 * 3, 8)] + public byte AcStartTime4 { get; set; } + + /// + /// 时段4 开始时间 分 + /// + [Property(1168 + 56 * 3, 8)] + public byte AcStartTimeMinute4 { get; set; } + + /// + /// 时段4 电量 + /// + [Property(1176 + 56 * 3, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float AcChargingPowerOfTime4 { get; set; } + + /// + /// 时段4 标识 + /// + [Property(1208 + 56 * 3, 8)] + public byte AcFlagOfTime4 { get; set; } + + /// + /// 时段5 开始时间 时 + /// + [Property(1160 + 56 * 4, 8)] + public byte AcStartTime5 { get; set; } + + /// + /// 时段5 开始时间 分 + /// + [Property(1168 + 56 * 4, 8)] + public byte AcStartTimeMinute5 { get; set; } + + /// + /// 时段5 电量 + /// + [Property(1176 + 56 * 4, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float AcChargingPowerOfTime5 { get; set; } + + /// + /// 时段5 标识 + /// + [Property(1208 + 56 * 4, 8)] + public byte AcFlagOfTime5 { get; set; } + + /// + /// 时段6 开始时间 时 + /// + [Property(1160 + 56 * 5, 8)] + public byte AcStartTime6 { get; set; } + + /// + /// 时段6 开始时间 分 + /// + [Property(1168 + 56 * 5, 8)] + public byte AcStartTimeMinute6 { get; set; } + + /// + /// 时段6 电量 + /// + [Property(1176 + 56 * 5, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float AcChargingPowerOfTime6 { get; set; } + + /// + /// 时段6 标识 + /// + [Property(1208 + 56 * 5, 8)] + public byte AcFlagOfTime6 { get; set; } + + /// + /// 时段7 开始时间 时 + /// + [Property(1160 + 56 * 6, 8)] + public byte AcStartTime7 { get; set; } + + /// + /// 时段7 开始时间 分 + /// + [Property(1168 + 56 * 6, 8)] + public byte AcStartTimeMinute7 { get; set; } + + /// + /// 时段7 电量 + /// + [Property(1176 + 56 * 6, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float AcChargingPowerOfTime7 { get; set; } + + /// + /// 时段7 标识 + /// + [Property(1208 + 56 * 6, 8)] + public byte AcFlagOfTime7 { get; set; } + + /// + /// 时段8 开始时间 时 + /// + [Property(1160 + 56 * 7, 8)] + public byte AcStartTime8 { get; set; } + + /// + /// 时段8 开始时间 分 + /// + [Property(1168 + 56 * 7, 8)] + public byte AcStartTimeMinute8 { get; set; } + + /// + /// 时段8 电量 + /// + [Property(1176 + 56 * 7, 32, PropertyReadConstant.Bit, 0.01, 2)] + public float AcChargingPowerOfTime8 { get; set; } + + /// + /// 时段8 标识 + /// + [Property(1208 + 56 * 7, 8)] + public byte AcFlagOfTime8 { get; set; } + + #endregion + } +} \ No newline at end of file diff --git a/Service/Charger/Msg/Charger/Resp/AdjustChargeRateRes.cs b/Service/Charger/Msg/Charger/Resp/AdjustChargeRateRes.cs new file mode 100644 index 0000000..6baaa59 --- /dev/null +++ b/Service/Charger/Msg/Charger/Resp/AdjustChargeRateRes.cs @@ -0,0 +1,22 @@ +using HybirdFrameworkCore.Autofac.Attribute; + +namespace Service.Charger.Msg.Charger.Resp +{ + /// + /// 3.4.4 充放电机应答辅助控制 + /// + public class AdjustChargeRateRes : ASDU + { + /// + /// 记录类型 + /// + [Property(0, 8)] + public byte RecordType { get; set; } + + /// + ///应答结果 0: 成功 1:失败 + /// + [Property(8, 8)] + public byte Result { get; set; } + } +} \ No newline at end of file diff --git a/Service/Charger/Msg/Charger/Resp/ChangeChargeModeRes.cs b/Service/Charger/Msg/Charger/Resp/ChangeChargeModeRes.cs new file mode 100644 index 0000000..7eabaa8 --- /dev/null +++ b/Service/Charger/Msg/Charger/Resp/ChangeChargeModeRes.cs @@ -0,0 +1,29 @@ +using HybirdFrameworkCore.Autofac.Attribute; + +namespace Service.Charger.Msg.Charger.Resp +{ + /// + /// 3.4.13 响应站控设备切换站内/站外充电 + /// 帧类型 45 记录类型 50 + /// + public class ChangeChargeModeRes : ASDU + { + /// + /// 记录类型 + /// + [Property(0, 8)] + public byte RecordType { get; set; } + + /// + ///应答结果 0: 成功 1:失败 + /// + [Property(8, 8)] + public byte Result { get; set; } + + /// + ///失败原因 0:正常1:电池包/或者充电枪未连接 0xFF:其他 + /// + [Property(16, 16)] + public ushort FailReason { get; set; } + } +} \ No newline at end of file diff --git a/Service/Charger/Msg/Charger/Resp/OfflineStopChargingRes.cs b/Service/Charger/Msg/Charger/Resp/OfflineStopChargingRes.cs index a1c88de..c758c98 100644 --- a/Service/Charger/Msg/Charger/Resp/OfflineStopChargingRes.cs +++ b/Service/Charger/Msg/Charger/Resp/OfflineStopChargingRes.cs @@ -3,14 +3,20 @@ namespace Service.Charger.Msg.Charger.Resp { /// - /// 3.4.6 充放电机应答监控平台掉线停止充电 + /// 3.4.8 充放电机应答监控平台掉线停止充电 + /// 帧类型 45 记录类型 44 /// public class OfflineStopChargingRes : ASDU { /// - /// 应答结果 + /// 记录类型 /// [Property(0, 8)] + public byte RecordType { get; set; } + /// + /// 应答结果 + /// + [Property(8, 8)] public byte Result { get; set; } } } \ No newline at end of file diff --git a/Service/Charger/Msg/Charger/Resp/QueryBatterySnRes.cs b/Service/Charger/Msg/Charger/Resp/QueryBatterySnRes.cs new file mode 100644 index 0000000..8cca489 --- /dev/null +++ b/Service/Charger/Msg/Charger/Resp/QueryBatterySnRes.cs @@ -0,0 +1,46 @@ +using HybirdFrameworkCore.Autofac.Attribute; + +namespace Service.Charger.Msg.Charger.Resp; + +/// +/// 3.6.2.2 充放电机回复电池基本参数 2(PGN:0x00F802) +/// +public class QueryBatterySnRes : ASDU +{ + /// + /// 记录类型 + /// + [Property(0, 8)] + public byte RecordType { get; set; } + + + [Property(8, 24)] public byte[] Pgn { get; set; } + + /// + /// 电池编码 长度 0 "Do not transmit this Code" + /// + [Property(32, 1)] + public byte BatterSnLength { get; set; } + + /// + /// 电池厂家 + /// 1 "CATL" , 2 "Li Shen", 3 "MGL" , + /// 4 "SAMSUN", 5 "LG", 6"EVE",7"BYD" + /// + [Property(33, 1)] + public byte BatterFactory { get; set; } + + /// + /// 电池编码 (SN)字符 (ASCII) 27Byte + /// 48 "0" 49 "1" 50 "2" 51 "3" 52 "4" + /// 53"5" 54 "6" 55 "7" 56 "8" 57 "9" 65 + /// "A"66"B" 67 "C" 68"D" 69 "E" 70 "F" + /// 71 "G" + /// 72 "H" 73 "I" 74 "J" 75 "K" 76 "L" + /// 77"M" 78 "N" 79 "O" 80 "P" 81 "Q" 82 + /// "R"83 "S" 84 "T" 85 "U" 86 "V" 87 + /// "W"88 "X" 89 "Y" 90 "Z + /// + [Property(34, 27 * 8)] + public byte[] BatterSnBytes { get; set; } +} \ No newline at end of file diff --git a/Service/Charger/Msg/Charger/Resp/SetPeakVallyTimeRes.cs b/Service/Charger/Msg/Charger/Resp/SetPeakVallyTimeRes.cs new file mode 100644 index 0000000..46926b9 --- /dev/null +++ b/Service/Charger/Msg/Charger/Resp/SetPeakVallyTimeRes.cs @@ -0,0 +1,23 @@ +using HybirdFrameworkCore.Autofac.Attribute; + +namespace Service.Charger.Msg.Charger.Resp +{ + /// + /// 3.4.11 监控网关响应尖峰平谷设置 + /// 帧类型 45 记录类型 48 + /// + public class SetPeakVallyTimeRes : ASDU + { + /// + /// 记录类型 + /// + [Property(0, 8)] + public byte RecordType { get; set; } + + /// + /// 应答结果 + /// + [Property(8, 8)] + public byte Result { get; set; } + } +} \ No newline at end of file diff --git a/Service/Charger/Msg/Host/Req/AdjustChargeRate.cs b/Service/Charger/Msg/Host/Req/AdjustChargeRate.cs new file mode 100644 index 0000000..42a4f65 --- /dev/null +++ b/Service/Charger/Msg/Host/Req/AdjustChargeRate.cs @@ -0,0 +1,34 @@ +using HybirdFrameworkCore.Autofac.Attribute; + +namespace Service.Charger.Msg.Host.Req +{ + /// + /// 3.4.1 监控平台发送功率调节指令 + /// + public class AdjustChargeRate : ASDU + { + /// + /// 记录类型 + /// + [Property(0, 8)] + public byte RecordType { get; set; } + + /// + ///期望运行 功率 + /// + [Property(8, 16, PropertyReadConstant.Bit, 0.1, 1)] + public float ChargeRate { get; set; } + + public AdjustChargeRate(float chargeRate) + { + FrameTypeNo = 45; + MsgBodyCount = 1; + TransReason = 3; + PublicAddr = 0; + MsgBodyAddr = new byte[] { 0, 0, 0 }; + + RecordType = 20; + ChargeRate = chargeRate; + } + } +} \ No newline at end of file diff --git a/Service/Charger/Msg/Host/Req/AdjustPower.cs b/Service/Charger/Msg/Host/Req/AdjustPower.cs index d9c2ba6..5135939 100644 --- a/Service/Charger/Msg/Host/Req/AdjustPower.cs +++ b/Service/Charger/Msg/Host/Req/AdjustPower.cs @@ -21,6 +21,12 @@ namespace Service.Charger.Msg.Host.Req public AdjustPower(ushort expectPower) { + FrameTypeNo = 45; + MsgBodyCount = 1; + TransReason = 3; + PublicAddr = 0; + MsgBodyAddr = new byte[] { 0, 0, 0 }; + RecordType = 5; ExpectPower = expectPower; } diff --git a/Service/Charger/Msg/Host/Req/Auth.cs b/Service/Charger/Msg/Host/Req/Auth.cs index a11b596..b6d4895 100644 --- a/Service/Charger/Msg/Host/Req/Auth.cs +++ b/Service/Charger/Msg/Host/Req/Auth.cs @@ -38,10 +38,6 @@ namespace Service.Charger.Msg.Host.Req public Auth(ushort connseq, byte[] authcodes, byte authcodekey) { - PackLen = 0; - CtlArea = 0; - SrcAddr = 0; - FrameTypeNo = 45; MsgBodyCount = 1; TransReason = 3; diff --git a/Service/Charger/Msg/Host/Req/Bms/QueryBattery.cs b/Service/Charger/Msg/Host/Req/Bms/QueryBattery.cs new file mode 100644 index 0000000..dd13770 --- /dev/null +++ b/Service/Charger/Msg/Host/Req/Bms/QueryBattery.cs @@ -0,0 +1,40 @@ +using HybirdFrameworkCore.Autofac.Attribute; + +namespace Service.Charger.Msg.Host.Req.Bms +{ + /// + /// 3.4.1 监控平台发送功率调节指令 + /// + public class QueryBattery : ASDU + { + /// + /// 记录类型 + /// + [Property(0, 8)] + public byte RecordType { get; set; } + + /// + /// 记录类型 + /// + [Property(8, 3, PropertyReadConstant.Byte)] + public byte[] Pgn { get; set; } = { 0x00, 0xf8, 0x2c }; + + /// + /// 记录类型 + /// + [Property(32, 3, PropertyReadConstant.Byte)] + public byte[] QueryPgn { get; set; } + + public QueryBattery(byte[] queryPgn) + { + FrameTypeNo = 46; + MsgBodyCount = 1; + TransReason = 3; + PublicAddr = 0; + MsgBodyAddr = new byte[] { 0, 0, 0 }; + + RecordType = 80; + QueryPgn = queryPgn; + } + } +} \ No newline at end of file diff --git a/Service/Charger/Msg/Host/Req/ChangeChargeMode.cs b/Service/Charger/Msg/Host/Req/ChangeChargeMode.cs new file mode 100644 index 0000000..2b539a7 --- /dev/null +++ b/Service/Charger/Msg/Host/Req/ChangeChargeMode.cs @@ -0,0 +1,34 @@ +using HybirdFrameworkCore.Autofac.Attribute; + +namespace Service.Charger.Msg.Host.Req +{ + /// + /// 3.4.12 站控设备切换站内/站外充电切换 + /// + public class ChangeChargeMode : ASDU + { + /// + /// 记录类型 + /// + [Property(0, 8)] + public byte RecordType { get; set; } + + /// + /// 00:无效 01:站内 02:站外 + /// + [Property(8, 16)] + public byte ChargeMode { get; set; } + + public ChangeChargeMode(byte chargeMode) + { + FrameTypeNo = 45; + MsgBodyCount = 1; + TransReason = 3; + PublicAddr = 0; + MsgBodyAddr = new byte[] { 0, 0, 0 }; + + RecordType = 49; + ChargeMode = chargeMode; + } + } +} \ No newline at end of file diff --git a/Service/Charger/Msg/Host/Req/OfflineStopCharging.cs b/Service/Charger/Msg/Host/Req/OfflineStopCharging.cs index 6e799f0..2b9499b 100644 --- a/Service/Charger/Msg/Host/Req/OfflineStopCharging.cs +++ b/Service/Charger/Msg/Host/Req/OfflineStopCharging.cs @@ -3,20 +3,38 @@ namespace Service.Charger.Msg.Host.Req { /// - /// 3.4.5 监控平台下发掉线停止充电 + /// 3.4.7 监控平台下发掉线停止充电 0:不使能 1:使能 /// public class OfflineStopCharging : ASDU { /// - ///应答结果 0:不使能 1:使能 + /// 记录类型 /// [Property(0, 8)] + public byte RecordType { get; set; } + + /// + ///应答结果 0:不使能 1:使能 + /// + [Property(8, 8)] public byte Result { get; set; } /// /// 保留 /// - [Property(8, 16)] + [Property(16, 16)] public ushort Remark { get; set; } + + public OfflineStopCharging(byte enabled) + { + FrameTypeNo = 45; + MsgBodyCount = 1; + TransReason = 3; + PublicAddr = 0; + MsgBodyAddr = new byte[] { 0, 0, 0 }; + + RecordType = 43; + Result = enabled; + } } } \ No newline at end of file diff --git a/Service/Charger/Msg/Host/Req/SetPeakValleyTime.cs b/Service/Charger/Msg/Host/Req/SetPeakValleyTime.cs index fc2b7b9..4d4c943 100644 --- a/Service/Charger/Msg/Host/Req/SetPeakValleyTime.cs +++ b/Service/Charger/Msg/Host/Req/SetPeakValleyTime.cs @@ -3,462 +3,177 @@ namespace Service.Charger.Msg.Host.Req { /// - /// 3.4.9 站控设置尖峰平谷时间段标识 + /// 3.4.10 站控设置尖峰平谷时间段标识 /// public class SetPeakValleyTime : ASDU { /// - /// 时段个数 + /// 记录类型 /// [Property(0, 8)] + public byte RecordType { get; set; } + + /// + /// 时段个数 + /// + [Property(8, 8)] public byte NumberTime { get; set; } /// /// 时段1开始时间 时 /// - [Property(8, 8)] + [Property(16, 8)] public byte StartHH1 { get; set; } /// /// 时段1开始时间 分 /// - [Property(16, 8)] + [Property(24, 8)] public byte StartMM1 { get; set; } /// /// 时段1尖峰标识 1尖 2峰 3平 4谷 /// - [Property(40, 8)] + [Property(32, 8)] public byte TimePeak1 { get; set; } /// /// 时段2开始时间 时 /// - [Property(48, 8)] + [Property(40, 8)] public byte StartHH2 { get; set; } /// /// 时段2开始时间 /// - [Property(56, 8)] + [Property(48, 8)] public byte StartMM2 { get; set; } /// /// 时段2尖峰标识 1尖 2峰 3平 4谷 /// - [Property(80, 8)] + [Property(56, 8)] public byte TimePeak2 { get; set; } /// /// 时段3开始时间 /// - [Property(88, 8)] + [Property(64, 8)] public byte StartHH3 { get; set; } /// /// 时段3开始时间 /// - [Property(96, 8)] + [Property(72, 8)] public byte StartMM3 { get; set; } /// /// 时段3尖峰标识 1尖 2峰 3平 4谷 /// - [Property(120, 8)] + [Property(80, 8)] public byte TimePeak3 { get; set; } /// /// 时段4开始时间 /// - [Property(128, 8)] + [Property(88, 8)] public byte StartHH4 { get; set; } /// /// 时段4开始时间 /// - [Property(136, 8)] + [Property(96, 8)] public byte StartMM4 { get; set; } /// /// 时段4尖峰标识 1尖 2峰 3平 4谷 /// - [Property(160, 8)] + [Property(104, 8)] public byte TimePeak4 { get; set; } /// /// 时段5开始时间 /// - [Property(168, 8)] + [Property(112, 8)] public byte StartHH5 { get; set; } /// /// 时段5开始时间 /// - [Property(176, 8)] + [Property(120, 8)] public byte StartMM5 { get; set; } /// /// 时段5尖峰标识 1尖 2峰 3平 4谷 /// - [Property(200, 8)] + [Property(128, 8)] public byte TimePeak5 { get; set; } /// /// 时段6开始时间 /// - [Property(208, 8)] + [Property(136, 8)] public byte StartHH6 { get; set; } /// /// 时段6开始时间 /// - [Property(216, 8)] + [Property(144, 8)] public byte StartMM6 { get; set; } /// /// 时段6尖峰标识 1尖 2峰 3平 4谷 /// - [Property(240, 8)] + [Property(152, 8)] public byte TimePeak6 { get; set; } /// /// 时段7开始时间 /// - [Property(248, 8)] + [Property(160, 8)] public byte StartHH7 { get; set; } /// /// 时段7开始时间 /// - [Property(256, 8)] + [Property(168, 8)] public byte StartMM7 { get; set; } /// /// 时段7尖峰标识 1尖 2峰 3平 4谷 /// - [Property(280, 8)] + [Property(176, 8)] public byte TimePeak7 { get; set; } /// /// 时段8开始时间 /// - [Property(288, 8)] + [Property(184, 8)] public byte StartHH8 { get; set; } /// /// 时段8开始时间 /// - [Property(296, 8)] + [Property(192, 8)] public byte StartMM8 { get; set; } /// /// 时段8尖峰标识 1尖 2峰 3平 4谷 /// - [Property(320, 8)] + [Property(200, 8)] public byte TimePeak8 { get; set; } + public SetPeakValleyTime() + { + FrameTypeNo = 45; + MsgBodyCount = 1; + TransReason = 3; + PublicAddr = 0; + MsgBodyAddr = new byte[] { 0, 0, 0 }; - /// - /// 时段9开始时间 - /// - [Property(328, 8)] - public byte StartHH9 { get; set; } - - /// - /// 时段9开始时间 - /// - [Property(336, 8)] - public byte StartMM9 { get; set; } - - /// - /// 时段9尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(360, 8)] - public byte TimePeak9 { get; set; } - - /// - /// 时段10开始时间 - /// - [Property(368, 8)] - public byte StartHH10 { get; set; } - - /// - /// 时段10开始时间 - /// - [Property(376, 8)] - public byte StartMM10 { get; set; } - - /// - /// 时段10尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(400, 8)] - public byte TimePeak10 { get; set; } - - - /// - /// 时段11开始时间 - /// - [Property(408, 8)] - public byte StartHH11 { get; set; } - - /// - /// 时段11开始时间 - /// - [Property(416, 8)] - public byte StartMM11 { get; set; } - - /// - /// 时段11尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(440, 8)] - public byte TimePeak11 { get; set; } - - - /// - /// 时段12开始时间 - /// - [Property(448, 8)] - public byte StartHH12 { get; set; } - - /// - /// 时段12开始时间 - /// - [Property(456, 8)] - public byte StartMM12 { get; set; } - - /// - /// 时段12尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(480, 8)] - public byte TimePeak12 { get; set; } - - - /// - /// 时段13开始时间 - /// - [Property(488, 8)] - public byte StartHH13 { get; set; } - - /// - /// 时段13开始时间 - /// - [Property(496, 8)] - public byte StartMM13 { get; set; } - - /// - /// 时段13尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(520, 8)] - public byte TimePeak13 { get; set; } - - - /// - /// 时段14开始时间 - /// - public byte StartHH14 { get; set; } - - /// - /// 时段14开始时间 - /// - [Property(528, 8)] - public byte StartMM14 { get; set; } - - /// - /// 时段14尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(552, 8)] - public byte TimePeak14 { get; set; } - - - /// - /// 时段15开始时间 - /// - [Property(560, 8)] - public byte StartHH15 { get; set; } - - /// - /// 时段15开始时间 - /// - [Property(568, 8)] - public byte StartMM15 { get; set; } - - /// - /// 时段15尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(592, 8)] - public byte TimePeak15 { get; set; } - - - /// - /// 时段16开始时间 - /// - [Property(600, 8)] - public byte StartHH16 { get; set; } - - /// - /// 时段16开始时间 - /// - [Property(608, 8)] - public byte StartMM16 { get; set; } - - /// - /// 时段16尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(632, 8)] - public byte TimePeak16 { get; set; } - - - /// - /// 时段17开始时间 - /// - [Property(640, 8)] - public byte StartHH17 { get; set; } - - /// - /// 时段17开始时间 - /// - [Property(648, 8)] - public byte StartMM17 { get; set; } - - /// - /// 时段17尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(672, 8)] - public byte TimePeak17 { get; set; } - - - /// - /// 时段18开始时间 - /// - [Property(680, 8)] - public byte StartHH18 { get; set; } - - /// - /// 时段18开始时间 - /// - [Property(688, 8)] - public byte StartMM18 { get; set; } - - /// - /// 时段18尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(712, 8)] - public byte TimePeak18 { get; set; } - - - /// - /// 时段19开始时间 - /// - [Property(720, 8)] - public byte StartHH19 { get; set; } - - /// - /// 时段19开始时间 - /// - [Property(728, 8)] - public byte StartMM19 { get; set; } - - /// - /// 时段19尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(752, 8)] - public byte TimePeak19 { get; set; } - - - /// - /// 时段20开始时间 - /// - [Property(760, 8)] - public byte StartHH20 { get; set; } - - /// - /// 时段20开始时间 - /// - [Property(768, 8)] - public byte StartMM20 { get; set; } - - /// - /// 时段20尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(792, 8)] - public byte TimePeak20 { get; set; } - - - /// - /// 时段21开始时间 - /// - [Property(800, 8)] - public byte StartHH21 { get; set; } - - /// - /// 时段21开始时间 - /// - [Property(808, 8)] - public byte StartMM21 { get; set; } - - /// - /// 时段21尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(832, 8)] - public byte TimePeak21 { get; set; } - - - /// - /// 时段22开始时间 - /// - [Property(840, 8)] - public byte StartHH22 { get; set; } - - /// - /// 时段22开始时间 - /// - [Property(848, 8)] - public byte StartMM22 { get; set; } - - /// - /// 时段22尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(872, 8)] - public byte TimePeak22 { get; set; } - - - /// - /// 时段23开始时间 - /// - [Property(880, 8)] - public byte StartHH23 { get; set; } - - /// - /// 时段23开始时间 - /// - [Property(888, 8)] - public byte StartMM23 { get; set; } - - /// - /// 时段23尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(912, 8)] - public byte TimePeak23 { get; set; } - - - /// - /// 时段24开始时间 - /// - [Property(920, 8)] - public byte StartHH24 { get; set; } - - /// - /// 时段24开始时间 - /// - [Property(928, 8)] - public byte StartMM24 { get; set; } - - /// - /// 时段24尖峰标识 1尖 2峰 3平 4谷 - /// - [Property(952, 8)] - public byte TimePeak24 { get; set; } + RecordType = 47; + } } } \ No newline at end of file diff --git a/WebStarter/bin/Debug/net6.0/SqlSugar.dll b/WebStarter/bin/Debug/net6.0/SqlSugar.dll index d892921..5946740 100644 Binary files a/WebStarter/bin/Debug/net6.0/SqlSugar.dll and b/WebStarter/bin/Debug/net6.0/SqlSugar.dll differ