| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using SHJX.Service.Control.Extends;
- namespace SHJX.Service.Control.Pipeline.Nodes
- {
- public class ReleaseAxis : INode
- {
- #region Fields
- private static TaskExtend _taskExtend;
- private static IDataManager _dataManager;
- #endregion
- public ReleaseAxis(IDataManager dataManager, TaskExtend taskExtend)
- {
- Name = nameof(ReleaseAxis);
- _taskExtend = taskExtend;
- _dataManager = dataManager;
- }
- public override INode Invoke()
- {
- List<RouteCache> caches = _dataManager.Query<RouteCache>().Where(it => it.Source.Equals(CurrentTask.Source)).ToList();
- if (caches.Any())
- {
- if (caches.Count == 1)
- {
- _dataManager.Delete(caches.FirstOrDefault());
- }
- else
- {
- foreach (RouteCache cache in caches)
- {
- if (cache.RouteStep != CurrentTask.RouteStep)
- {
- _dataManager.Delete(cache);
- }
- }
- }
- }
- _dataManager.Update<StateMachine>().Invoke(it => it.Status.Set(0))(it => it.Name.Equals(StateMachineName.MOTOR_LOCK));
- return this;
- }
- }
- }
|