feat: 更新网络配置后端及其api
This commit is contained in:
@@ -537,6 +537,42 @@ public class UDPClientPool
|
||||
return resultData.ToArray();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 顺序读取多个地址的数据,并合并BodyData后返回
|
||||
/// </summary>
|
||||
/// <param name="endPoint">IP端点(IP地址与端口)</param>
|
||||
/// <param name="taskID">任务ID</param>
|
||||
/// <param name="addr">地址数组</param>
|
||||
/// <param name="timeout">超时时间(毫秒)</param>
|
||||
/// <returns>合并后的BodyData字节数组</returns>
|
||||
public static async ValueTask<Result<byte[]>> ReadAddrSeq(IPEndPoint endPoint, int taskID, UInt32[] addr, int timeout = 1000)
|
||||
{
|
||||
var length = addr.Length;
|
||||
var resultData = new List<byte>();
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
var ret = await ReadAddr(endPoint, taskID, addr[i], timeout);
|
||||
if (!ret.IsSuccessful)
|
||||
{
|
||||
logger.Error($"ReadAddrSeq failed at index {i}: {ret.Error}");
|
||||
return new(ret.Error);
|
||||
}
|
||||
if (!ret.Value.IsSuccessful)
|
||||
{
|
||||
logger.Error($"ReadAddrSeq failed at index {i}: Read not successful");
|
||||
return new(new Exception($"ReadAddrSeq failed at index {i}"));
|
||||
}
|
||||
var data = ret.Value.Options.Data;
|
||||
if (data is null)
|
||||
{
|
||||
logger.Error($"ReadAddrSeq got null data at index {i}");
|
||||
return new(new Exception($"ReadAddrSeq got null data at index {i}"));
|
||||
}
|
||||
resultData.AddRange(data);
|
||||
}
|
||||
return resultData.ToArray();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 向设备地址写入32位数据
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user