2017-05-15 Update 1 TaskManager Remake. Bug Fix.(Not Test)

This commit is contained in:
parallelbgls
2017-05-15 14:07:32 +08:00
parent 139b093a4f
commit 16f63d079e
13 changed files with 621 additions and 448 deletions

View File

@@ -47,38 +47,39 @@ namespace TaskManager.Controllers
};
//初始化任务管理器
task = new Modbus.Net.TaskManager(10, 300, true);
task = new Modbus.Net.TaskManager(10, true);
//向任务管理器中添加设备
task.AddMachine(new ModbusMachine(ModbusType.Tcp, "192.168.3.10", addressUnits,
true, 2, 0));
//增加值返回时的处理函数
task.ReturnValues += (returnValues) =>
//启动任务
task.InvokeTimerAll(new TaskItemGetData(returnValues =>
{
//唯一的参数包含返回值是一个唯一标识符machine的第二个参数返回值类型ReturnUnit的键值对。
if (returnValues.ReturnValues != null)
{
{
lock (values)
{
var unitValues = from val in returnValues.ReturnValues select new Tuple<AddressUnit, double?>(addressUnits.FirstOrDefault(p => p.CommunicationTag == val.Key), val.Value.PlcValue);
var unitValues = from val in returnValues.ReturnValues
select
new Tuple<AddressUnit, double?>(
addressUnits.FirstOrDefault(p => p.CommunicationTag == val.Key), val.Value.PlcValue);
values = from unitValue in unitValues
select
new TaskViewModel()
{
Id = unitValue.Item1.Id,
Name = unitValue.Item1.Name,
Address = unitValue.Item1.Address.ToString(),
Value = unitValue.Item2 ?? 0,
Type = unitValue.Item1.DataType.Name
};
new TaskViewModel()
{
Id = unitValue.Item1.Id,
Name = unitValue.Item1.Name,
Address = unitValue.Item1.Address.ToString(),
Value = unitValue.Item2 ?? 0,
Type = unitValue.Item1.DataType.Name
};
}
}
else
{
Console.WriteLine($"ip {returnValues.MachineId} not return value");
}
};
//启动任务
task.TaskStart();
}, 15000, 60000));
}
[HttpGet]