Compare commits

...

2 Commits

Author SHA1 Message Date
1ae875606f 优化代码 2025-05-07 11:55:26 +08:00
34d4bc0b8f 优化376.1协议插件解析 2025-05-07 11:53:50 +08:00
69 changed files with 391 additions and 214 deletions

View File

@ -1,4 +1,6 @@
using JiShe.CollectBus.Common.Enums;
using JiShe.CollectBus.IotSystems.Ammeters;
using JiShe.CollectBus.Protocol.Contracts.Protocol.Dto;
using JiShe.CollectBus.Protocol.Dto;
using JiShe.CollectBus.Protocol.Interfaces;
using JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_00H;
@ -9,6 +11,8 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static FreeSql.Internal.GlobalFilter;
using static System.Runtime.InteropServices.JavaScript.JSType;
namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_02H
{
@ -18,25 +22,42 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_02H
public class AFN2_F1_Analysis : IAnalysisStrategy<TB3761>
{
private readonly ILogger<AFN2_F1_Analysis> _logger;
public AFN2_F1_Analysis(ILogger<AFN2_F1_Analysis> logger)
private readonly DataStorage _dataStorage;
public AFN2_F1_Analysis(ILogger<AFN2_F1_Analysis> logger, DataStorage dataStorage)
{
_logger = logger;
_dataStorage= dataStorage;
}
public Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
ArgumentNullException.ThrowIfNull(input);
ArgumentNullException.ThrowIfNull(input.A.Code);
UnitDataAnalysis<string> dto = new UnitDataAnalysis<string>
var data = new AnalysisBaseDto<string>()
{
FiledDesc = "登录",
FiledName = "Type",
DataValue = "Login"
};
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(MeterTypeEnum.Focus.ToString(), "15");
if (ammeterInfo != null)
{
data.ProjectId = ammeterInfo.ProjectID;
data.DeviceId = ammeterInfo.FocusId;
data.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
data.MeterAddress = ammeterInfo.AmmerterAddress;
data.DeviceType = MeterTypeEnum.Focus;
}
UnitDataAnalysis<AnalysisBaseDto<string>> dto = new UnitDataAnalysis<AnalysisBaseDto<string>>
{
Code = input.A.Code,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
Data = $"登录帧",
Data = data,
HexMessage = input.BaseHexMessage.HexMessageString,
MessageId = input.MessageId,
ReceivedTime = input.ReceivedTime,
@ -44,13 +65,14 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_02H
TimeDensity = -1
};
result?.Invoke(dto);
return Task.FromResult(true);
await _dataStorage.SaveStatusToIotDbAsync<string>(dto);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"02_1解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
}
return Task.FromResult(false);
return await Task.FromResult(false);
}
}

View File

@ -1,4 +1,6 @@
using JiShe.CollectBus.Common.Enums;
using JiShe.CollectBus.IotSystems.Ammeters;
using JiShe.CollectBus.Protocol.Contracts.Protocol.Dto;
using JiShe.CollectBus.Protocol.Dto;
using JiShe.CollectBus.Protocol.Interfaces;
using JiShe.CollectBus.Protocol3761;
@ -17,25 +19,42 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_02H
public class AFN2_F2_Analysis : IAnalysisStrategy<TB3761>
{
private readonly ILogger<AFN2_F2_Analysis> _logger;
public AFN2_F2_Analysis(ILogger<AFN2_F2_Analysis> logger)
private readonly DataStorage _dataStorage;
public AFN2_F2_Analysis(ILogger<AFN2_F2_Analysis> logger, DataStorage dataStorage)
{
_logger = logger;
_dataStorage = dataStorage;
}
public Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
ArgumentNullException.ThrowIfNull(input);
ArgumentNullException.ThrowIfNull(input.A.Code);
UnitDataAnalysis<string> dto = new UnitDataAnalysis<string>
var data = new AnalysisBaseDto<string>()
{
FiledDesc = "退出登录",
FiledName = "Type",
DataValue = "LogOut"
};
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(MeterTypeEnum.Focus.ToString(), "15");
if (ammeterInfo != null)
{
data.ProjectId = ammeterInfo.ProjectID;
data.DeviceId = ammeterInfo.FocusId;
data.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
data.MeterAddress = ammeterInfo.AmmerterAddress;
data.DeviceType = MeterTypeEnum.Focus;
}
UnitDataAnalysis<AnalysisBaseDto<string>> dto = new UnitDataAnalysis<AnalysisBaseDto<string>>
{
Code = input.A.Code,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
Data = $"退出登录帧",
Data = data,
HexMessage = input.BaseHexMessage.HexMessageString,
MessageId = input.MessageId,
ReceivedTime = input.ReceivedTime,
@ -43,13 +62,14 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_02H
TimeDensity = -1
};
result?.Invoke(dto);
return Task.FromResult(true);
await _dataStorage.SaveStatusToIotDbAsync<string>(dto);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"02_2解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
}
return Task.FromResult(false);
return await Task.FromResult(false);
}
}
}

View File

@ -1,4 +1,6 @@
using JiShe.CollectBus.Common.Enums;
using JiShe.CollectBus.IotSystems.Ammeters;
using JiShe.CollectBus.Protocol.Contracts.Protocol.Dto;
using JiShe.CollectBus.Protocol.Dto;
using JiShe.CollectBus.Protocol.Interfaces;
using JiShe.CollectBus.Protocol3761;
@ -17,25 +19,42 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_02H
public class AFN2_F3_Analysis : IAnalysisStrategy<TB3761>
{
private readonly ILogger<AFN2_F3_Analysis> _logger;
public AFN2_F3_Analysis(ILogger<AFN2_F3_Analysis> logger)
private readonly DataStorage _dataStorage;
public AFN2_F3_Analysis(ILogger<AFN2_F3_Analysis> logger, DataStorage dataStorage)
{
_logger = logger;
_dataStorage = dataStorage;
}
public Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
ArgumentNullException.ThrowIfNull(input);
ArgumentNullException.ThrowIfNull(input.A.Code);
UnitDataAnalysis<string> dto = new UnitDataAnalysis<string>
var data = new AnalysisBaseDto<string>()
{
FiledDesc = "心跳",
FiledName = "Type",
DataValue = "Heartbeat"
};
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(MeterTypeEnum.Focus.ToString(), "15");
if (ammeterInfo != null)
{
data.ProjectId = ammeterInfo.ProjectID;
data.DeviceId = ammeterInfo.FocusId;
data.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
data.MeterAddress = ammeterInfo.AmmerterAddress;
data.DeviceType = MeterTypeEnum.Focus;
}
UnitDataAnalysis<AnalysisBaseDto<string>> dto = new UnitDataAnalysis<AnalysisBaseDto<string>>
{
Code = input.A.Code,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
Data = $"心跳帧",
Data = data,
HexMessage = input.BaseHexMessage.HexMessageString,
MessageId = input.MessageId,
ReceivedTime = input.ReceivedTime,
@ -43,13 +62,14 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_02H
TimeDensity = -1
};
result?.Invoke(dto);
return Task.FromResult(true);
await _dataStorage.SaveStatusToIotDbAsync<string>(dto);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"02_1解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
_logger.LogError(ex, $"02_3解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
}
return Task.FromResult(false);
return await Task.FromResult(false);
}
}
}

View File

@ -96,7 +96,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
return values;
}
public AnalysisBaseDto<decimal> GenerateFinalResult(List<string> data, string filedDesc = "",string dataType)
public AnalysisBaseDto<decimal> GenerateFinalResult(List<string> data, string filedDesc,string dataType)
{
AnalysisBaseDto<decimal> dto = new AnalysisBaseDto<decimal>();

View File

@ -40,11 +40,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
AnalysisBaseDto<decimal> data = GenerateFinalResult(datas, dataType,"上月(上一结算日)正向有功最大需量及发生时间");
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data.MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data.DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ProjectId = ammeterInfo.ProjectID;
data.MeterId = ammeterInfo.MeterId;
data.DeviceId = ammeterInfo.MeterId;
data.DatabaseBusiID=ammeterInfo.DatabaseBusiID;
data.MeterAddress= ammeterInfo.AmmerterAddress;
}
@ -122,7 +122,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
}
decimal.TryParse(data[2], out decimal value);
dto.DataValue = value;
dto.MeterType= MeterTypeEnum.Ammeter;
dto.DeviceType= MeterTypeEnum.Ammeter;
//TODO:最大需量发生时间
errorCodeInfo = data[3].CheckErrorCode();
if (data[3].Length != 8 && errorCodeInfo != null)

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -41,13 +41,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -42,13 +42,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -42,13 +42,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -42,13 +42,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -41,13 +41,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -42,13 +42,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -40,13 +40,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});
@ -125,7 +125,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
{
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>
{
MeterType = MeterTypeEnum.Ammeter
DeviceType = MeterTypeEnum.Ammeter
};
int startIndex = i == 1 ? 3 : (3 + i * fCount);

View File

@ -41,13 +41,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -41,13 +41,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -41,13 +41,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -42,13 +42,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -41,13 +41,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -40,13 +40,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -41,13 +41,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -40,13 +40,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -40,13 +40,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -40,13 +40,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -40,13 +40,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -40,13 +40,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -39,13 +39,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -40,13 +40,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -40,13 +40,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -39,13 +39,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -40,13 +40,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -40,13 +40,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -39,13 +39,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -40,13 +40,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -41,13 +41,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -39,11 +39,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
data.DataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data.MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data.DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ProjectId = ammeterInfo.ProjectID;
data.MeterId = ammeterInfo.MeterId;
data.DeviceId = ammeterInfo.MeterId;
data.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
data.MeterAddress = ammeterInfo.AmmerterAddress;
}
@ -117,7 +117,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
List<AnalysisBaseDto<decimal>> list = new List<AnalysisBaseDto<decimal>>();
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>
{
MeterType = MeterTypeEnum.Ammeter
DeviceType = MeterTypeEnum.Ammeter
};
decimal value = 0;

View File

@ -39,11 +39,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
AnalysisBaseDto<decimal> data = GenerateFinalResult(datas, "月冻结正向有功最大需量及发生时间");
data.DataType= $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data.MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data.DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ProjectId = ammeterInfo.ProjectID;
data.MeterId = ammeterInfo.MeterId;
data.DeviceId = ammeterInfo.MeterId;
data.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
data.MeterAddress = ammeterInfo.AmmerterAddress;
}
@ -108,7 +108,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
{
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>
{
MeterType = MeterTypeEnum.Ammeter,
DeviceType = MeterTypeEnum.Ammeter,
};
decimal value = 0;

View File

@ -39,11 +39,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
AnalysisBaseDto<decimal> data = GenerateFinalResult(datas, "月冻结反向有功最大需量及发生时间");
data.DataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data.MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data.DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ProjectId = ammeterInfo.ProjectID;
data.MeterId = ammeterInfo.MeterId;
data.DeviceId = ammeterInfo.MeterId;
data.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
data.MeterAddress = ammeterInfo.AmmerterAddress;
}
@ -108,7 +108,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
{
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>
{
MeterType = MeterTypeEnum.Ammeter
DeviceType = MeterTypeEnum.Ammeter
};
decimal value = 0;

View File

@ -41,13 +41,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});
@ -125,7 +125,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
for (int i = 1; i <= 2; i++)
{
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>();
meter.MeterType= MeterTypeEnum.Ammeter;
meter.DeviceType= MeterTypeEnum.Ammeter;
int startIndex = i == 1 ? 3 : (3 + i * fCount);
decimal value = 0;
var errorCode = data[startIndex].CheckErrorCode();

View File

@ -45,13 +45,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});
@ -133,7 +133,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
{
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>
{
MeterType = MeterTypeEnum.Ammeter
DeviceType = MeterTypeEnum.Ammeter
};
int startIndex = i == 1 ? 3 : (3 + i * fCount);

View File

@ -44,13 +44,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});
@ -130,7 +130,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
{
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>
{
MeterType = MeterTypeEnum.Ammeter
DeviceType = MeterTypeEnum.Ammeter
};
int startIndex = i == 1 ? 3 : (3 + i * fCount);

View File

@ -42,13 +42,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -42,13 +42,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -42,13 +42,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -42,13 +42,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -43,13 +43,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
if (data.Count > 0)
{
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data[0].DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ForEach(item =>
{
item.ProjectId = ammeterInfo.ProjectID;
item.MeterId = ammeterInfo.MeterId;
item.DeviceId = ammeterInfo.MeterId;
item.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
item.MeterAddress = ammeterInfo.AmmerterAddress;
});

View File

@ -39,11 +39,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_10H
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
AnalysisBaseDto<decimal> data = GenerateFinalResult(datas);
// 查询电表信息
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data.MeterType.ToString(), "15");
AmmeterInfo ammeterInfo = await _dataStorage.GetMeterInfoAsync(data.DeviceType.ToString(), "15");
if (ammeterInfo != null)
{
data.ProjectId = ammeterInfo.ProjectID;
data.MeterId = ammeterInfo.MeterId;
data.DeviceId = ammeterInfo.MeterId;
data.DatabaseBusiID = ammeterInfo.DatabaseBusiID;
data.MeterAddress = ammeterInfo.AmmerterAddress;
}

View File

@ -18,6 +18,7 @@ using System.Diagnostics.Metrics;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Guids;
using static FreeSql.Internal.GlobalFilter;
using static JiShe.CollectBus.Common.Consts.T37612012PacketItemCodeConst;
namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData
{
@ -44,7 +45,12 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData
public async Task<AmmeterInfo> GetMeterInfoAsync(string meterType,string timeDensity="15")
{
var redisCacheMeterInfoHashKeyTemp = $"{string.Format(RedisConst.CacheMeterInfoHashKey, _applicationOptions.SystemType, _applicationOptions.ServerTagName, meterType, timeDensity)}";
return await Task.FromResult(new AmmeterInfo());
// TODO临时写死等确认后如何取再调整
return await Task.FromResult(new AmmeterInfo() {
ProjectID = 10000,
MeterId=11111,
FocusId=22222
});
}
/// <summary>
@ -86,8 +92,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData
var meter = new TreeModelSingleMeasuringEntity<T>()
{
SystemName = _applicationOptions.SystemType,
DeviceId = $"{data.MeterId}",
DeviceType = $"{data.MeterType}",
DeviceId = $"{data.DeviceId}",
DeviceType = $"{data.DeviceType.ToString()}.{IOTDBDataType.Data}",
ProjectId = $"{data.ProjectId}",
Timestamps = data.TimeSpan!.Value.GetFormatTime(analysisBaseDto.DensityUnit, analysisBaseDto.TimeDensity).GetDateTimeOffset().ToUnixTimeMilliseconds(),
SingleMeasuring = new Tuple<string, T>(data.FiledName ?? string.Empty, data.DataValue ?? default)
@ -111,8 +117,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData
{
SystemName = _applicationOptions.SystemType,
ProjectId = $"{data.ProjectId}",
DeviceType = $"{data.MeterType}",
DeviceId = $"{data.MeterId}",
DeviceType = $"{data.DeviceType}",
DeviceId = $"{data.DeviceId}",
Timestamps = DateTime.Now.GetDateTimeOffset().ToUnixTimeNanoseconds(),
DatabaseBusiID = data.DatabaseBusiID,
PendingCopyReadTime = data.TimeSpan.Value.GetFormatTime(analysisBaseDto.DensityUnit, analysisBaseDto.TimeDensity),
@ -189,8 +195,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData
var meter = new TreeModelSingleMeasuringEntity<T>()
{
SystemName = _applicationOptions.SystemType,
DeviceId = $"{item.MeterId}",
DeviceType = $"{item.MeterType}",
DeviceId = $"{item.DeviceId}",
DeviceType = $"{item.DeviceType}.{IOTDBDataType.Data}",
ProjectId = $"{item.ProjectId}",
Timestamps = item.TimeSpan!.Value.GetFormatTime(analysisBaseDto.DensityUnit, analysisBaseDto.TimeDensity).GetDateTimeOffset().ToUnixTimeMilliseconds(), // TODO:这里暂时格式化15分钟数据需要进行调整
SingleMeasuring = new Tuple<string, T>(item.FiledName ?? string.Empty, item.DataValue ?? default)
@ -214,8 +220,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData
{
SystemName = _applicationOptions.SystemType,
ProjectId = $"{item.ProjectId}",
DeviceType = $"{item.MeterType}",
DeviceId = $"{item.MeterId}",
DeviceType = $"{item.DeviceType}",
DeviceId = $"{item.DeviceId}",
Timestamps = DateTime.Now.CheckTimePoint().GetDateTimeOffset().ToUnixTimeNanoseconds(),
DatabaseBusiID = item.DatabaseBusiID,
PendingCopyReadTime = item.TimeSpan.Value.GetFormatTime(analysisBaseDto.DensityUnit, analysisBaseDto.TimeDensity),
@ -254,7 +260,72 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData
return await Task.FromResult(true);
}
/// <summary>
/// 保存状态到IotDb
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="analysisBaseDto"></param>
/// <returns></returns>
public async Task<bool> SaveStatusToIotDbAsync<T>(UnitDataAnalysis<AnalysisBaseDto<T>> analysisBaseDto)
{
ArgumentNullException.ThrowIfNull(nameof(analysisBaseDto.Data));
ArgumentNullException.ThrowIfNullOrWhiteSpace(nameof(analysisBaseDto.Data.FiledName));
ArgumentNullException.ThrowIfNullOrWhiteSpace(nameof(analysisBaseDto.Data.DataValue));
var data = analysisBaseDto.Data!;
if (!data.TimeSpan.HasValue)
data.TimeSpan = analysisBaseDto.ReceivedTime;
// 类型(心跳,登录,上电,掉电)
long timestamps = DateTime.Now.GetDateTimeOffset().ToUnixTimeMilliseconds();
var treeData = new TreeModelSingleMeasuringEntity<T>()
{
SystemName = _applicationOptions.SystemType,
DeviceId = $"{data.DeviceId}",
DeviceType = $"{data.DeviceType}.{IOTDBDataType.Status}",
ProjectId = $"{data.ProjectId}",
Timestamps = timestamps,
SingleMeasuring = new Tuple<string, T>(data.FiledName!, data.DataValue!)
};
_runtimeContext.UseTableSessionPool = false; // 使树模型池
await _dbProvider.InsertAsync(treeData);
// 时间
var treeRecordingTimeData = new TreeModelSingleMeasuringEntity<long>()
{
SystemName = _applicationOptions.SystemType,
DeviceId = $"{data.DeviceId}",
DeviceType = $"{data.DeviceType}.{IOTDBDataType.Status}",
ProjectId = $"{data.ProjectId}",
Timestamps = timestamps,
SingleMeasuring = new Tuple<string, long>(ConcentratorStatusFieldConst.RecordingTime, data.TimeSpan!.Value.GetDateTimeOffset().ToUnixTimeNanoseconds())
};
_runtimeContext.UseTableSessionPool = false; // 使树模型池
await _dbProvider.InsertAsync(treeRecordingTimeData);
// 备注
var treeRemarkData = new TreeModelSingleMeasuringEntity<string>()
{
SystemName = _applicationOptions.SystemType,
DeviceId = $"{data.DeviceId}",
DeviceType = $"{data.DeviceType}.{IOTDBDataType.Status}",
ProjectId = $"{data.ProjectId}",
Timestamps = timestamps,
SingleMeasuring = new Tuple<string, string>(ConcentratorStatusFieldConst.Remark, data.FiledDesc ?? string.Empty)
};
_runtimeContext.UseTableSessionPool = false; // 使树模型池
await _dbProvider.InsertAsync(treeRemarkData);
// 数据帧
var treeFrameData = new TreeModelSingleMeasuringEntity<string>()
{
SystemName = _applicationOptions.SystemType,
DeviceId = $"{data.DeviceId}",
DeviceType = $"{data.DeviceType}.{IOTDBDataType.Status}",
ProjectId = $"{data.ProjectId}",
Timestamps = timestamps,
SingleMeasuring = new Tuple<string, string>(ConcentratorStatusFieldConst.FrameData, analysisBaseDto.HexMessage ?? string.Empty )
};
_runtimeContext.UseTableSessionPool = false; // 使树模型池
await _dbProvider.InsertAsync(treeFrameData);
return await Task.FromResult(true);
}
}
}

View File

@ -245,7 +245,7 @@ namespace JiShe.CollectBus.Protocol.T37612012
for (int i = index; i < data.Count; i++)
{
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>();
meter.MeterType= MeterTypeEnum.Ammeter;
meter.DeviceType= MeterTypeEnum.Ammeter;
decimal value = 0;
var errorCode = data[i].CheckErrorCode();
@ -282,7 +282,7 @@ namespace JiShe.CollectBus.Protocol.T37612012
for (int i = index; i < data.Count; i++)
{
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>();
meter.MeterType = MeterTypeEnum.Ammeter;
meter.DeviceType = MeterTypeEnum.Ammeter;
decimal value = 0;
var errorCode = data[i].CheckErrorCode();
if (errorCode != null)
@ -320,7 +320,7 @@ namespace JiShe.CollectBus.Protocol.T37612012
{
AnalysisBaseDto<decimal> meter = new AnalysisBaseDto<decimal>
{
MeterType = MeterTypeEnum.Ammeter
DeviceType = MeterTypeEnum.Ammeter
};
decimal value = 0;
var errorCode = data[i].CheckErrorCode();

View File

@ -111,9 +111,6 @@ namespace JiShe.CollectBus.Protocol.T37612012
_logger.LogError("376.1协议解析AFN失败");
return;
}
// 登录心跳已做了处理,故需要忽略登录和心跳帧
//if (tB3761.DT.Fn == (int)FN.登录 || tB3761.DT.Fn == (int)FN.心跳)
// return;
//TODO根据AFN进行分流推送到kafka
string topicName = string.Format(ProtocolConst.AFNTopicNameFormat, tB3761.AFN_FC.AFN.ToString().PadLeft(2, '0'));
tB3761.MessageId = Guid.NewGuid().ToString();
@ -154,24 +151,24 @@ namespace JiShe.CollectBus.Protocol.T37612012
{
string oldClientId = $"{client.Id}";
await client.ResetIdAsync(code);
var deviceInfoList = await _deviceRepository.GetListAsync(a => a.Number == code);
if (deviceInfoList != null && deviceInfoList.Count > 1)
{
//todo 推送集中器编号重复预警
_logger.LogError($"集中器编号:{code},存在多个集中器,请检查集中器编号是否重复");
return;
}
//var deviceInfoList = await _deviceRepository.GetListAsync(a => a.Number == code);
//if (deviceInfoList != null && deviceInfoList.Count > 1)
//{
// //todo 推送集中器编号重复预警
// _logger.LogError($"集中器编号:{code},存在多个集中器,请检查集中器编号是否重复");
// return;
//}
var entity = deviceInfoList?.FirstOrDefault(a => a.Number == code);
if (entity == null)
{
await _deviceRepository.InsertAsync(new Device(code, oldClientId, DateTime.Now, DateTime.Now, DeviceStatus.Online));
}
else
{
entity.UpdateByLoginAndHeartbeat(oldClientId);
await _deviceRepository.UpdateAsync(entity);
}
//var entity = deviceInfoList?.FirstOrDefault(a => a.Number == code);
//if (entity == null)
//{
// await _deviceRepository.InsertAsync(new Device(code, oldClientId, DateTime.Now, DateTime.Now, DeviceStatus.Online));
//}
//else
//{
// entity.UpdateByLoginAndHeartbeat(oldClientId);
// await _deviceRepository.UpdateAsync(entity);
//}
var messageReceivedLoginEvent = new MessageReceivedLogin
{
@ -230,34 +227,34 @@ namespace JiShe.CollectBus.Protocol.T37612012
{
string clientId = code;
string oldClientId = $"{client.Id}";
var deviceInfoList = await _deviceRepository.GetListAsync(a => a.Number == code);
if (deviceInfoList != null && deviceInfoList.Count > 1)
{
//todo 推送集中器编号重复预警
_logger.LogError($"集中器编号:{code},存在多个集中器,请检查集中器编号是否重复");
return;
}
//string oldClientId = $"{client.Id}";
//var deviceInfoList = await _deviceRepository.GetListAsync(a => a.Number == code);
//if (deviceInfoList != null && deviceInfoList.Count > 1)
//{
// //todo 推送集中器编号重复预警
// _logger.LogError($"集中器编号:{code},存在多个集中器,请检查集中器编号是否重复");
// return;
//}
var entity = deviceInfoList?.FirstOrDefault(a => a.Number == code);
if (entity == null) //没有登录帧的设备,只有心跳帧
{
//var entity = deviceInfoList?.FirstOrDefault(a => a.Number == code);
//if (entity == null) //没有登录帧的设备,只有心跳帧
//{
await client.ResetIdAsync(clientId);
await _deviceRepository.InsertAsync(new Device(code, oldClientId, DateTime.Now, DateTime.Now, DeviceStatus.Online));
}
else
{
if (clientId != oldClientId)
{
entity.UpdateByLoginAndHeartbeat(oldClientId);
}
else
{
entity.UpdateByLoginAndHeartbeat();
}
//await _deviceRepository.InsertAsync(new Device(code, oldClientId, DateTime.Now, DateTime.Now, DeviceStatus.Online));
//}
//else
//{
// if (clientId != oldClientId)
// {
// entity.UpdateByLoginAndHeartbeat(oldClientId);
// }
// else
// {
// entity.UpdateByLoginAndHeartbeat();
// }
await _deviceRepository.UpdateAsync(entity);
}
// await _deviceRepository.UpdateAsync(entity);
//}
var messageReceivedHeartbeatEvent = new MessageReceivedHeartbeat
{
@ -397,7 +394,7 @@ namespace JiShe.CollectBus.Protocol.T37612012
{
HexMessageList = hexStringList
};
baseHexMessage.HexMessageString = string.Join(" ", baseHexMessage.HexMessageList);
baseHexMessage.HexMessageString = string.Join("", baseHexMessage.HexMessageList);
TB3761 tB3761 = new TB3761
{
BaseHexMessage=baseHexMessage,
@ -610,7 +607,7 @@ namespace JiShe.CollectBus.Protocol.T37612012
{
unitData = new UnitData
{
HexMessageList = hexStringList. (14, hexStringList.Count - 14 - 2) //总数字节数-固定长度报文头-控制域C-地址域A-校验和CS-结束字符16H
HexMessageList = hexStringList.GetRange(14, hexStringList.Count - 14 - 2) //总数字节数-固定长度报文头-控制域C-地址域A-校验和CS-结束字符16H
};
unitData.HexMessageString = string.Join(" ", unitData.HexMessageList);
}

View File

@ -15,6 +15,7 @@ using System.Threading.Tasks;
using JiShe.CollectBus.Protocol;
using TouchSocket.Sockets;
using JiShe.CollectBus.Protocol.Dto;
using JiShe.CollectBus.Protocol.Contracts.Protocol.Dto;
namespace JiShe.CollectBus.Subscribers
{
@ -146,7 +147,7 @@ namespace JiShe.CollectBus.Subscribers
var executor = _serviceProvider.GetRequiredService<AnalysisStrategyContext>();
await executor.ExecuteAsync<TB3761>(serverName, receivedMessage.Data, (result) =>
{
var ssss = (UnitDataAnalysis<string>)result;
var ssss = (UnitDataAnalysis<AnalysisBaseDto<string>>)result;
_logger.LogInformation($"解析AFN02H数据{ssss.Serialize()}");
});
return SubscribeAck.Success();

View File

@ -47,14 +47,14 @@ namespace JiShe.CollectBus.Protocol.Contracts.Protocol.Dto
public int ProjectId { get; set; }
/// <summary>
/// 电表ID
/// 设备ID(电表ID,水表ID气表ID集中器ID等)
/// </summary>
public int MeterId { get; set; }
public int DeviceId { get; set; }
/// <summary>
/// 类型
/// 设备类型
/// </summary>
public MeterTypeEnum MeterType { get; set;}
public MeterTypeEnum DeviceType { get; set;}
/// <summary>

View File

@ -88,7 +88,7 @@ namespace JiShe.CollectBus.Common.Consts
public const string CDL = "CDL";
public const string LXDL = "LXDL";
public const string PowerGridFrequency = "PowerGridFrequency";
public const string DWPL = "DWPL";
public const string Ua = "Ua";
public const string Ub = "Ub";
@ -141,7 +141,7 @@ namespace JiShe.CollectBus.Common.Consts
public const string CDL = "0D_94"; //C相电流曲线
public const string LXDL = "0D_95"; // 零序电流
public const string PowerGridFrequency = "10_97"; //电网频率
public const string DWPL = "10_97"; //电网频率
public const string Ua = "0C_49_Uab_Ua"; // 当前电压、电流相位角
public const string Ub = "0C_49_Ub"; // 当前电压、电流相位角
@ -152,6 +152,48 @@ namespace JiShe.CollectBus.Common.Consts
}
/// <summary>
/// IOTDB数据树类型
/// </summary>
public class IOTDBDataType
{
/// <summary>
/// 数据
/// </summary>
public const string Data = "Data";
/// <summary>
/// 事件
/// </summary>
public const string Event = "Event";
/// <summary>
/// 状态
/// </summary>
public const string Status = "Status";
}
/// <summary>
/// 集中器状态字段
/// </summary>
public class ConcentratorStatusFieldConst
{
/// <summary>
/// 记录时间
/// </summary>
public const string RecordingTime = "RecordingTime";
/// <summary>
/// 帧数据
/// </summary>
public const string FrameData = "FrameData";
/// <summary>
/// 备注
/// </summary>
public const string Remark="Remark";
}
#endregion
}
}

View File

@ -49,5 +49,10 @@ namespace JiShe.CollectBus.Common.Enums
/// 采集器
/// </summary>
Collector = 9,
/// <summary>
/// 集中器
/// </summary>
Focus = 10,
}
}

View File

@ -16,7 +16,6 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="libs/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<title>后端服务</title>
</head>
<body>