CoolingCommon.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using SHJX.Service.Dao;
  3. namespace SHJX.Service.Control.Route.RouteController
  4. {
  5. /// <summary>
  6. /// 冷却
  7. /// </summary>
  8. public static class CoolingCommon
  9. {
  10. public static bool CoolingTimeCalculate(this string equipmentName, OperateDataManager dataManager)
  11. {
  12. var status = equipmentName.GetCoolingSetting(); //获取样品位冷却的状态
  13. if (status.CoolingState.Equals("Start"))
  14. {
  15. //计算 当前时间与下发时间的差值
  16. var timeSpan = DateTime.Now - status.LastTryTime;
  17. var minutes = timeSpan.Hours * 60 + timeSpan.Minutes + timeSpan.Seconds / 60.0;
  18. if (minutes < status.CoolingTime) return false;
  19. DataCentre.GetStorageContent.Factory(GetOpName(equipmentName)).Stop(); //关闭风扇
  20. status.CoolingState = "Stop";
  21. dataManager.Update(status);
  22. return true;
  23. }
  24. DataCentre.GetStorageContent.Factory(GetOpName(equipmentName)).Start();//开启风扇
  25. status.CoolingState = "Start";
  26. status.LastTryTime = DateTime.Now;
  27. dataManager.Update(status);
  28. return false;
  29. }
  30. public static string GetOpName(string Name)
  31. {
  32. string opName = Name switch
  33. {
  34. "CalibrationCooling" or "SampleCooling" => "SampleFan",
  35. "DissolveCooling" => "DissolveFan",
  36. _ => throw new ArgumentNullException(Name),
  37. };
  38. return opName;
  39. }
  40. }
  41. }