|
@@ -904,6 +904,10 @@ namespace NB_IOT_TCP_HP_SOCKET
|
|
|
// 查询该传输设备对应的设备信息及通讯设备信息
|
|
|
DataTable dt = ProtocolAnalysisTools.GetDeviceList(sourceNumber);
|
|
|
|
|
|
+ if (dt.Rows.Count == 0) {
|
|
|
+ dt = ProtocolAnalysisTools.GetDeviceList(clientInfo.SourceNumber);
|
|
|
+ }
|
|
|
+
|
|
|
string agreement = ""; // 设备协议
|
|
|
string agreementParam = ""; // 设备协议参数
|
|
|
string agreementAddress = ""; // 设备地址
|
|
@@ -1560,9 +1564,10 @@ namespace NB_IOT_TCP_HP_SOCKET
|
|
|
}
|
|
|
}
|
|
|
HistoryRecord record = new HistoryRecord(recordtime, list.ToArray());
|
|
|
- record.Funcode = cm._funCode;
|
|
|
+
|
|
|
if (cm != null)
|
|
|
{
|
|
|
+ record.Funcode = cm._funCode;
|
|
|
record.DataSource = "历史记录";
|
|
|
}
|
|
|
else
|
|
@@ -1628,11 +1633,13 @@ namespace NB_IOT_TCP_HP_SOCKET
|
|
|
int paramSendInterval = Convert.ToInt32(ConfigurationManager.AppSettings["ParamSendInterval"]); // 电池供电同一设备下发指令每次间隔时间(秒)
|
|
|
|
|
|
// 循环下发设参指令
|
|
|
- foreach (Task task in remoteTask.Tasklist)
|
|
|
+ //foreach (Task task in remoteTask.Tasklist)
|
|
|
+ for (int i = 0; i < remoteTask.Tasklist.Count; i++)
|
|
|
{
|
|
|
+ Task task = remoteTask.Tasklist[i];
|
|
|
TimeSpan span = (TimeSpan)(DateTime.Now - paramSendTime);
|
|
|
// 未发送;已发送&&发送次数小于配置的最大发送次数&&两次间隔时间大于配置的间隔时间
|
|
|
- if (clientInfo.ParamRetrunStatus == 0 && (paramSendStatus == 0 || (paramSendStatus == 1 && paramSendNum < paramSendNumTmp && span.TotalSeconds >= paramSendInterval)))
|
|
|
+ if ((clientInfo.ParamRetrunStatus == 0 && (paramSendStatus == 0 || (paramSendStatus == 1 && paramSendNum < paramSendNumTmp && span.TotalSeconds >= paramSendInterval)))|| (clientInfo.ParamRetrunStatus == 1 && i < remoteTask.Tasklist.Count))
|
|
|
{
|
|
|
PSProtocol protocol2 = new PSProtocol(clientInfo.DestNumber, clientInfo.SourceNumber, task.SendCode);
|
|
|
protocol2.Type = FrameType.Battery_Param;
|
|
@@ -1844,6 +1851,11 @@ namespace NB_IOT_TCP_HP_SOCKET
|
|
|
public int ParamRetrunStatus { get; set; } // 设参回包状态 0:未回包;1:已回包
|
|
|
public int ParamSendNum { get; set; } // 设参发送次数
|
|
|
#endregion
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 设备id,解决后期指令数据地址码乱填的问题,地址码不对导致指令,问什么硬件程序总是不按照正常协议来呢,导致很多问题。
|
|
|
+ /// </summary>
|
|
|
+ public int deviceId { get; set; }
|
|
|
}
|
|
|
|
|
|
public class InsourcingData
|