| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- 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
- {
- /// <summary>
- /// 加指示剂
- /// </summary>
- /// 试亚铁灵
- ///
- public class TitrationAddIndicatorOperate : FlowControlOperateImp
- {
- private string OpName = "Indicator";
- private string DripNozzleType = "DripNozzle";
- private DropLiquid _liquid;
- private EquipmentTask _task;
- //public static bool HighFlag = false;
- public virtual bool Operate(ReadConfigUtil config, DataEventArgs data)
- {
- _task = data.Task;
- //if (_task.SampleConcentration == "High" || data.Task.To == "D4")
- //{
- // OpName = "Indicator2";
- // DripNozzleType = "DripNozzle2";
- // HighFlag = true;
- //}
- //else
- // HighFlag = false;
- _liquid = data.DataManager.QueryLiquid(OpName);
- if (!_liquid.Enable)
- {
- var dripNozzleRes = DataCentre.GetStorageContent.Factory(DripNozzleType).Start();
- return dripNozzleRes;
- }
- DataCentre.GetStorageContent.Factory(DripNozzleType).Start();
- DataCentre.GetStorageContent.Factory("Timer").Start();
- Thread.Sleep(2000);
- DataCentre.GetStorageContent.Factory("Timer").Stop();
- var res = _task.RouteType switch
- {
- "Wash" => WashLiquid(),
- _ => OtherAddLiquid(),
- };
- return res;
- }
- private bool WashLiquid()
- {
- var value = _task.TaskType switch
- {
- "润洗" => _liquid.WashVolume,
- "清洗" => _liquid.ClearVolume,
- _ => throw new ArgumentNullException(_task.TaskType),
- };
- var res = DataCentre.GetStorageContent.Factory(OpName).Start();
- Thread.Sleep(Convert.ToInt32(Math.Round(1000 * value)));
- res = res && DataCentre.GetStorageContent.Factory(OpName).Stop();
- LiquidTotal liquid = DataCentre._dataManager.Query<LiquidTotal>().Where(it => it.LiquidName.Equals(OpName)).First();
- liquid.Total -= 5;//指示剂INDECATOR5毫升
- res = res && DataCentre._dataManager.Update<LiquidTotal>(liquid) > 0;
- return res;
- }
- private bool OtherAddLiquid()
- {
- var res = DataCentre.GetStorageContent.Factory(OpName).Start();
- Thread.Sleep(Convert.ToInt32(Math.Round(1000 * _liquid.SampleVolume)));
- res = res && DataCentre.GetStorageContent.Factory(OpName).Stop();
- LiquidTotal liquid = DataCentre._dataManager.Query<LiquidTotal>().Where(it => it.LiquidName.Equals(OpName)).First();
- liquid.Total -= 0.2;//指示剂INDECATOR0.2毫升
- res = res && DataCentre._dataManager.Update<LiquidTotal>(liquid) > 0;
- return res;
- }
- }
- }
|