2017-04-26 update 2 TaskManager data function call change.
This commit is contained in:
@@ -868,18 +868,26 @@ namespace Modbus.Net
|
||||
bool KeepConnect { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 读取数据
|
||||
/// 调用Machine中的方法
|
||||
/// </summary>
|
||||
/// <returns>从设备读取的数据</returns>
|
||||
Task<Dictionary<string, ReturnUnit>> GetDatasAsync(MachineGetDataType getDataType);
|
||||
/// <typeparam name="TMachineMethod">Machine实现的接口名称</typeparam>
|
||||
/// <typeparam name="TReturnType">返回值的类型</typeparam>
|
||||
/// <param name="methodName">方法的名称</param>
|
||||
/// <param name="parameters">方法的参数</param>
|
||||
/// <returns></returns>
|
||||
TReturnType InvokeMachineMethod<TMachineMethod, TReturnType>(string methodName,
|
||||
params object[] parameters) where TMachineMethod : IMachineMethod;
|
||||
|
||||
/// <summary>
|
||||
/// 写入数据
|
||||
/// 调用Utility中的方法
|
||||
/// </summary>
|
||||
/// <param name="setDataType">写入类型</param>
|
||||
/// <param name="values">需要写入的数据字典,当写入类型为Address时,键为需要写入的地址,当写入类型为CommunicationTag时,键为需要写入的单元的描述</param>
|
||||
/// <returns>是否写入成功</returns>
|
||||
Task<bool> SetDatasAsync(MachineSetDataType setDataType, Dictionary<string, double> values);
|
||||
/// <typeparam name="TUtilityMethod">Utility实现的接口名称</typeparam>
|
||||
/// <typeparam name="TReturnType">返回值的类型</typeparam>
|
||||
/// <param name="methodName">方法的名称</param>
|
||||
/// <param name="parameters">方法的参数</param>
|
||||
/// <returns></returns>
|
||||
TReturnType InvokeUtilityMethod<TUtilityMethod, TReturnType>(string methodName,
|
||||
params object[] parameters) where TUtilityMethod : IUtilityMethod;
|
||||
|
||||
/// <summary>
|
||||
/// 连接设备
|
||||
|
||||
@@ -725,7 +725,7 @@ namespace Modbus.Net
|
||||
machine = _machines.FirstOrDefault(p => p.ConnectionToken == connectionToken);
|
||||
}
|
||||
if (machine == null) return false;
|
||||
return await machine.SetDatasAsync(SetDataType, values);
|
||||
return await machine.InvokeMachineMethod<IMachineData, Task<bool>>("SetDatasAsync", SetDataType, values);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -798,7 +798,9 @@ namespace Modbus.Net
|
||||
//超时后取消任务
|
||||
cts.CancelAfter(TimeSpan.FromSeconds(_getCycle));
|
||||
//读取数据
|
||||
var ans = await machine.GetDatasAsync(GetDataType).WithCancellation(cts.Token);
|
||||
var ans =
|
||||
await machine.InvokeMachineMethod<IMachineData, Task<Dictionary<string, ReturnUnit>>>("GetDatasAsync",
|
||||
GetDataType).WithCancellation(cts.Token);
|
||||
if (!machine.IsConnected)
|
||||
{
|
||||
MoveMachineToUnlinked(machine.Id);
|
||||
|
||||
Reference in New Issue
Block a user