SampleWriteTask.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using SHJX.Service.Common.ReadXML;
  2. using SHJX.Service.Control.Interface;
  3. using SHJX.Service.Model.Dao;
  4. using System.Threading;
  5. namespace SHJX.Service.Control.TimerControl.WriteTaskToEquipment
  6. {
  7. /// <summary>
  8. /// 样品任务
  9. /// </summary>
  10. public class SampleWriteTask : WriteTaskToEquipmentImp
  11. {
  12. public SampleWriteTask(ReadConfigUtil config, FlowContent operateController)
  13. : base(config, operateController) { }
  14. /// <summary>
  15. /// 写入任务到设备
  16. /// </summary>
  17. public override void WriteTaskToEquipmentEvent()
  18. {
  19. if (!ReadConfig.TaskRunning)
  20. return;
  21. var task = GetNewTask(4);
  22. if (task is not null&& task.RouteId==4)
  23. {
  24. OperateController.OperateControllerContent(task);
  25. Thread.Sleep(1 * 1000);
  26. task = GetNewTask(9);
  27. if (task is not null && task.RouteId == 9)
  28. {
  29. OperateController.OperateControllerContent(task);
  30. }
  31. }
  32. Thread.Sleep(1 * 1000);
  33. task = GetNewTask(1);
  34. if (task is null)
  35. return;
  36. OperateController.OperateControllerContent(task);
  37. }
  38. /// <summary>
  39. /// 获取新任务
  40. /// </summary>
  41. /// <param name="routeId"></param>
  42. /// <returns></returns>
  43. private EquipmentTask GetNewTask(int routeId)
  44. {
  45. EquipmentTask task;
  46. //TODO:如果任务为加热,则取查找是否有样品冷却的任务,如果有,则返回
  47. if (routeId.Equals(4) && DataManager.QuerySampleHeating())
  48. {
  49. task = DataManager.QuerySampleCoolingAfter();
  50. if (task is not null)
  51. return task;
  52. }
  53. task = DataManager.QueryNewTaskFirst(TaskState.Doing, routeId);
  54. if (task is not null)
  55. return task;
  56. if (DataManager.QueryEqualsRouteIdCount(routeId) > 0) //如果存在同一步骤未完成的情况
  57. return null;
  58. if (routeId.Equals(11))// 任务路由已为最后一条
  59. return null;
  60. task = GetNewTask(++routeId);
  61. return task;
  62. }
  63. }
  64. }