using System; using System.Threading; using SHJX.Service.Model.Dao; using SHJX.Service.Control.Modules; using SHJX.Service.Control.Interface; using System.Linq; using SHJX.Service.Common.ReadXML; namespace SHJX.Service.Control.Route.RouteController { /// /// 硫酸银 /// /// 硫酸银 public class DissolveAddLiquidOperate : FlowControlOperateImp { private const string OpName = "SilverSulfate"; private DropLiquid liquid; public virtual bool Operate(ReadConfigUtil config, DataEventArgs data) { liquid = data.DataManager.QueryLiquid(OpName); if (!liquid.Enable) return true; #if false DataCentre.GetPumpContent.Factory(OpName).GoBackOriginalPosition("In"); var res = true; for (int i = 0; i < 2; i++) { var arriveEndPoint = DataCentre.GetPumpContent.Factory(OpName).ArriveEndPoint(); if (arriveEndPoint) DataCentre.GetPumpContent.Factory(OpName).LiquidOperation("In", Convert.ToInt32(liquid.SampleVolume)); var position = data.Task.To switch { "R1" or "R2" or "R3" or "R4" or "R5" or "R6" or "R7" or "R8" or "R9" or "R10" or "R11" or "R12" => "Out1", "R13" or "R14" or "R15" or "R16" or "R17" or "R18" or "R19" or "R20" or "R21" or "R22" or "R23" or "R24" => "Out2", _ => throw new ArgumentNullException(data.Task.To), }; res = res && DataCentre.GetPumpContent.Factory(OpName).LiquidOperation(position, -1 * Convert.ToInt32(liquid.SampleVolume)); } #endif var volume = data.Task.TaskType switch { "润洗" => liquid.WashVolume, "清洗" => liquid.ClearVolume, _ => liquid.SampleVolume, }; #if false var position = data.Task.To switch { "R1" or "R2" or "R3" or "R4" or "R5" or "R6" or "R7" or "R8" or "R9" or "R10" or "R11" or "R12" => "Out1", "R13" or "R14" or "R15" or "R16" or "R17" or "R18" or "R19" or "R20" or "R21" or "R22" or "R23" or "R24" => "Out2", _ => throw new ArgumentNullException(data.Task.To), }; #endif var position = data.Task.To switch { "R1" or "R2" or "R3" or "R4" or "R5" or "R6" or "R7" or "R8" or "R9" or "R10" or "R11" or "R12" => "2", "R13" or "R14" or "R15" or "R16" or "R17" or "R18" or "R19" or "R20" or "R21" or "R22" or "R23" or "R24" => "3", _ => throw new ArgumentNullException(data.Task.To), }; 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)*/); Thread.Sleep(1000); LiquidTotal liquid1 = DataCentre._dataManager.Query().Where(it => it.LiquidName.Equals(OpName)).First(); liquid1.Total -= 15; //硫酸银 减 15毫升 res = res & DataCentre._dataManager.Update(liquid1) > 0; return res; } } }