DissolveAddLiquidOperate.cs 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using System.Threading;
  3. using SHJX.Service.Model.Dao;
  4. using SHJX.Service.Control.Modules;
  5. using SHJX.Service.Control.Interface;
  6. using System.Linq;
  7. using SHJX.Service.Common.ReadXML;
  8. namespace SHJX.Service.Control.Route.RouteController
  9. {
  10. /// <summary>
  11. /// 硫酸银
  12. /// </summary>
  13. /// 硫酸银
  14. public class DissolveAddLiquidOperate : FlowControlOperateImp
  15. {
  16. private const string OpName = "SilverSulfate";
  17. private DropLiquid liquid;
  18. public virtual bool Operate(ReadConfigUtil config, DataEventArgs data)
  19. {
  20. liquid = data.DataManager.QueryLiquid(OpName);
  21. if (!liquid.Enable) return true;
  22. #if false
  23. DataCentre.GetPumpContent.Factory(OpName).GoBackOriginalPosition("In");
  24. var res = true;
  25. for (int i = 0; i < 2; i++)
  26. {
  27. var arriveEndPoint = DataCentre.GetPumpContent.Factory(OpName).ArriveEndPoint();
  28. if (arriveEndPoint) DataCentre.GetPumpContent.Factory(OpName).LiquidOperation("In", Convert.ToInt32(liquid.SampleVolume));
  29. var position = data.Task.To switch
  30. {
  31. "R1" or "R2" or "R3" or "R4" or "R5" or "R6" or "R7" or "R8" or "R9" or "R10" or "R11" or "R12" => "Out1",
  32. "R13" or "R14" or "R15" or "R16" or "R17" or "R18" or "R19" or "R20" or "R21" or "R22" or "R23" or "R24" => "Out2",
  33. _ => throw new ArgumentNullException(data.Task.To),
  34. };
  35. res = res && DataCentre.GetPumpContent.Factory(OpName).LiquidOperation(position, -1 * Convert.ToInt32(liquid.SampleVolume));
  36. }
  37. #endif
  38. var volume = data.Task.TaskType switch
  39. {
  40. "润洗" => liquid.WashVolume,
  41. "清洗" => liquid.ClearVolume,
  42. _ => liquid.SampleVolume,
  43. };
  44. #if false
  45. var position = data.Task.To switch
  46. {
  47. "R1" or "R2" or "R3" or "R4" or "R5" or "R6" or "R7" or "R8" or "R9" or "R10" or "R11" or "R12" => "Out1",
  48. "R13" or "R14" or "R15" or "R16" or "R17" or "R18" or "R19" or "R20" or "R21" or "R22" or "R23" or "R24" => "Out2",
  49. _ => throw new ArgumentNullException(data.Task.To),
  50. };
  51. #endif
  52. var position = data.Task.To switch
  53. {
  54. "R1" or "R2" or "R3" or "R4" or "R5" or "R6" or "R7" or "R8" or "R9" or "R10" or "R11" or "R12" => "2",
  55. "R13" or "R14" or "R15" or "R16" or "R17" or "R18" or "R19" or "R20" or "R21" or "R22" or "R23" or "R24" => "3",
  56. _ => throw new ArgumentNullException(data.Task.To),
  57. };
  58. var res = DataCentre.GetPumpContent.Factory(OpName).LiquidOperation(position, -1 * Convert.ToInt32(volume) /*Convert.ToInt32(volume / DataCentre.GetConfig.DropOnceAmounts.FirstOrDefault(item => item.Name.Equals("SilverSulfate")).LowValue * 20000)*/);
  59. Thread.Sleep(1000);
  60. LiquidTotal liquid1 = DataCentre._dataManager.Query<LiquidTotal>().Where(it => it.LiquidName.Equals(OpName)).First();
  61. liquid1.Total -= 15; //硫酸银 减 15毫升
  62. res = res & DataCentre._dataManager.Update<LiquidTotal>(liquid1) > 0;
  63. return res;
  64. }
  65. }
  66. }