| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- using SHJX.Service.Control.Common.Assets;
- namespace SHJX.Service.Control.LiquidHandler.Handler.WashLiquidHandler
- {
- public class AddLiquid1PotassiumPermanganateWashLiquidHandler : IWashLiquid
- {
- public bool Execute()
- {
- LiquidVolume liquidVolume = DataManagerInstance.GetLiquidVolume(EquipmentNames.Titration1PotassiumPermanganate);
- if (liquidVolume is null)
- {
- throw new ArgumentException($"{EquipmentNames.TitrationPotassiumPermanganate}查询Volume为空");
- }
- if (!liquidVolume.Enable)
- {
- return true;
- }
- LiquidAmount liquidAmount = DataManagerInstance.GetLiquidAmount(EquipmentNames.Titration1PotassiumPermanganate);
- if (liquidAmount is null)
- {
- throw new ArgumentException($"{EquipmentNames.Titration1PotassiumPermanganate}查询Amount为空");
- }
- bool writeResponse = true;
- double count = Math.Floor(liquidVolume.ClearVolume / liquidAmount.Capacity);
- double residue = liquidVolume.ClearVolume % liquidAmount.Capacity;
- int distance;
- for (int i = 0; i < count; i++)
- {
- distance = Convert.ToInt32(Math.Round(liquidAmount.Capacity / liquidAmount.Amount * liquidAmount.ConvertRatio));
- writeResponse = writeResponse && LiquidPipeSwitch.StartNew.SetLiquidName(EquipmentNames.TitrationPotassiumPermanganate).CheckWhetherArriveEndPoint(LiquidSwitchPattern.Out).Execute(distance);
- }
- if (residue > 0)
- {
- distance = Convert.ToInt32(Math.Round(residue / liquidAmount.Amount * liquidAmount.ConvertRatio));
- writeResponse = writeResponse && LiquidPipeSwitch.StartNew.SetLiquidName(EquipmentNames.TitrationPotassiumPermanganate).CheckWhetherArriveEndPoint(LiquidSwitchPattern.Out).Execute(distance);
- }
- return writeResponse;
- }
- }
- }
|