wms电梯设定,新增开关电梯控制接口

This commit is contained in:
yang.lee
2023-11-30 15:25:44 +08:00
parent 0fbc485cc3
commit 08888ac4c2
11 changed files with 150 additions and 66 deletions

View File

@@ -1,4 +1,5 @@
using System.Collections.Concurrent;
using Aop.Api.Domain;
using JNPF;
using JNPF.Common.Extension;
using JNPF.Common.Security;
@@ -26,24 +27,24 @@ namespace Tnb.WarehouseMgr
private IEventPublisher _eventPublisher = default!;
private readonly ElevatorControlConfiguration _elevatorControlConfiguration = App.Configuration.Build<ElevatorControlConfiguration>();
private readonly IServiceProvider _serviceProvider;
private readonly IHostApplicationLifetime _lifeTime;
private static List<string> s_heartbeatDevNames = new();
//private static Dictionary<string, Func<CancellationToken?, Task>> _timedFuncMap = new(StringComparer.OrdinalIgnoreCase);
public TimedTaskBackgroundService(IServiceProvider serviceProvider)
public TimedTaskBackgroundService()
{
_serviceProvider = serviceProvider;
}
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
IsStarted = true;
s_heartbeatDevNames = _elevatorControlConfiguration.HeartbeatDevNames;
Task timedTask = Task.Run(() =>
{
_eventPublisher = App.GetRequiredService<IEventPublisher>();
//电梯Agv心跳检测
_ = TimedTask(async token =>
{
foreach (var devName in _elevatorControlConfiguration.HeartbeatDevNames)
foreach (var devName in s_heartbeatDevNames)
{
Dictionary<string, string> parameter = new()
{
@@ -56,7 +57,7 @@ namespace Tnb.WarehouseMgr
await Console.Out.WriteLineAsync($"{devName.Match(@"\d+")}#梯, 心跳检测结果:{result}");
}
}, stoppingToken, 30);
});
return timedTask;
}
@@ -144,6 +145,18 @@ namespace Tnb.WarehouseMgr
return delayTask;
}
public Task CloseAgvHeartbeat(IEnumerable<string> devNames)
{
s_heartbeatDevNames.RemoveAll(x => devNames.Contains(x));
return Task.CompletedTask;
}
public Task OpenAgvHeartbeat(IEnumerable<string> devNames)
{
s_heartbeatDevNames.AddRange(devNames);
return Task.CompletedTask;
}
}
/// <summary>
/// 自定义任务调度器,保证长任务在单独的线程中运行