using DataBlockHelper.DBHelpers; using DataBlockHelper.Entity.DB2106Entity; using HslCommunication.Instrument.DLT; using Mesnac.Action.Base; using Mesnac.Action.ChemicalWeighing.FreeDb; using Mesnac.Action.ChemicalWeighing.MainDetailControl.Entity; using Mesnac.Action.ChemicalWeighing.Report.Entity; using Mesnac.Basic; using Mesnac.Controls.ChemicalWeighing; using Mesnac.Controls.Default; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Mesnac.Action.ChemicalWeighing.ManualControl { public class ForceWaterControl : ChemicalWeighingAction, IAction { FHslSwitchEntity HslSwitchE = new FHslSwitchEntity(); FMCTextBoxEntity MCTextBoxE = new FMCTextBoxEntity(); FMCButtonEntity ButtonE = new FMCButtonEntity(); FMCRadioButtonEntity RadioButtonE = new FMCRadioButtonEntity(); DB2105Helper DB2105 = new DB2105Helper(); private List Controls; Timer timer; private byte GelChooseA; private byte GelChooseB; public void Run(RuntimeParameter runtime) { base.RunIni(runtime); //必须要调用 Controls = GetAllControls(); SetAllControls(); HslSwitchE.ForceControlHA.OnSwitchChanged += ForceControl_OnSwitchChanged; HslSwitchE.ForceControlCA.OnSwitchChanged += ForceControl_OnSwitchChanged; HslSwitchE.ForceControlHB.OnSwitchChanged += ForceControl_OnSwitchChanged; HslSwitchE.ForceControlCB.OnSwitchChanged += ForceControl_OnSwitchChanged; StateRefresh(new object(), new EventArgs()); BottomSelect(runtime); //timer = new Timer(); //timer.Interval = 1000; //timer.Enabled = true; //timer.Tick += new EventHandler(StateRefresh);//添加事件 } private void ForceControl_OnSwitchChanged(object obj, bool state) { DB2105 = new DB2105Helper(); if (state) { if (MessageBox.Show("是否要打开强制排水模式?", "强制模式启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { HslSwitch hs = obj as HslSwitch; hs.SwitchStatus = false; return; } } HslSwitch hslSwitch = obj as HslSwitch; string name = hslSwitch.Name; switch (name) { case "ForceControlHA": DB2105WriteHelper.AddHaAddForceOn(state); break; case "ForceControlCA": DB2105WriteHelper.AddCaAddForceOn(state); break; case "ForceControlHB": DB2105WriteHelper.AddHbAddForceOn(state); break; case "ForceControlCB": DB2105WriteHelper.AddCbAddForceOn(state); break; default: break; } DefaultSwitch(hslSwitch, state); } private void StateRefresh(object sender, EventArgs e) { HslSwitchE.ForceControlHA.SwitchStatus = DB2105.Force_HA.forceOn; HslSwitchE.ForceControlCA.SwitchStatus = DB2105.Force_CA.forceOn; HslSwitchE.ForceControlHB.SwitchStatus = DB2105.Force_HB.forceOn; HslSwitchE.ForceControlCB.SwitchStatus = DB2105.Force_CB.forceOn; DefaultSwitch(HslSwitchE.ForceControlHA, DB2105.Force_HA.forceOn); DefaultSwitch(HslSwitchE.ForceControlCA, DB2105.Force_CA.forceOn); DefaultSwitch(HslSwitchE.ForceControlHB, DB2105.Force_HB.forceOn); DefaultSwitch(HslSwitchE.ForceControlCB, DB2105.Force_CB.forceOn); } private void BottomSelect(RuntimeParameter runtime) { DB2105 = new DB2105Helper(); SingleSelect(); if (ButtonE.StartMetage1 == runtime.Sender) { if (!DB2105.Force_CA.forceOn) { MessageBox.Show("冷水称A强制控制按钮未打开!"); return; } if (MessageBox.Show("确认向冷水称A补充?", "强制模式启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } DB2105WriteHelper.AddCaAddValue(Convert.ToInt16(MCTextBoxE.SetWaterValue1.Text)); DB2105WriteHelper.AddCaAddForceBin(GelChooseA); DB2105WriteHelper.AddCaAddStartIn(true); ManualLogControl("冷水称A强制补充", Convert.ToInt16(MCTextBoxE.SetWaterValue1.Text), GelChooseA); MessageBox.Show("冷水称A强制补充"); } if (ButtonE.StartMetage2 == runtime.Sender) { if (!DB2105.Force_HA.forceOn) { MessageBox.Show("热水称A强制控制按钮未打开!"); return; } if (MessageBox.Show("确认向热水称A补充?", "强制模式启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } DB2105WriteHelper.AddHaAddValue(Convert.ToInt16(MCTextBoxE.SetWaterValue2.Text)); DB2105WriteHelper.AddHaAddForceBin(GelChooseA); DB2105WriteHelper.AddHaAddStartIn(true); ManualLogControl("热水称A强制补充", Convert.ToInt16(MCTextBoxE.SetWaterValue2.Text), GelChooseA); MessageBox.Show("热水称A强制补充"); } if (ButtonE.StartMetage3 == runtime.Sender) { if (!DB2105.Force_CB.forceOn) { MessageBox.Show("冷水称B强制控制按钮未打开!"); return; } if (MessageBox.Show("确认向冷水称B补充?", "强制模式启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } DB2105WriteHelper.AddCbAddValue(Convert.ToInt16(MCTextBoxE.SetWaterValue3.Text)); DB2105WriteHelper.AddCbAddForceBin(GelChooseB); DB2105WriteHelper.AddCbAddStartIn(true); ManualLogControl("冷水称B强制补充", Convert.ToInt16(MCTextBoxE.SetWaterValue3.Text), GelChooseB + 4); MessageBox.Show("冷水称B强制补充"); } if (ButtonE.StartMetage4 == runtime.Sender) { if (!DB2105.Force_HB.forceOn) { MessageBox.Show("热水称B强制控制按钮未打开!"); return; } if (MessageBox.Show("确认向热水称B补充?", "强制模式启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } DB2105WriteHelper.AddHbAddValue(Convert.ToInt16(MCTextBoxE.SetWaterValue4.Text)); DB2105WriteHelper.AddHbAddForceBin(GelChooseB); DB2105WriteHelper.AddHbAddStartIn(true); ManualLogControl("热水称B强制补充", Convert.ToInt16(MCTextBoxE.SetWaterValue4.Text), GelChooseB + 4); MessageBox.Show("热水称B强制补充"); } if (ButtonE.StartOut1 == runtime.Sender) { if (!DB2105.Force_CA.forceOn) { MessageBox.Show("冷水称A强制控制按钮未打开!"); return; } if (MessageBox.Show("确认向" + GelChooseA + "排水?", "强制模式启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } DB2105WriteHelper.AddCaAddRemainValue(Convert.ToInt16(MCTextBoxE.StayWaterValue1.Text)); DB2105WriteHelper.AddCaAddForceBin(GelChooseA); DB2105WriteHelper.AddCaAddStartOut(true); ManualLogControl("冷水称A强制排水", Convert.ToInt16(MCTextBoxE.StayWaterValue1.Text), GelChooseA); MessageBox.Show("冷水称A强制排水"); } if (ButtonE.StartOut2 == runtime.Sender) { if (!DB2105.Force_HA.forceOn) { MessageBox.Show("热水称A强制控制按钮未打开!"); return; } if (MessageBox.Show("确认向" + GelChooseA + "排水?", "强制模式启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } DB2105WriteHelper.AddHaAddRemainValue(Convert.ToInt16(MCTextBoxE.StayWaterValue2.Text)); DB2105WriteHelper.AddHaAddForceBin(GelChooseA); DB2105WriteHelper.AddHaAddStartOut(true); ManualLogControl("热水称A强制排水", Convert.ToInt16(MCTextBoxE.StayWaterValue2.Text), GelChooseA); MessageBox.Show("热水称A强制排水"); } if (ButtonE.StartOut3 == runtime.Sender) { if (!DB2105.Force_CB.forceOn) { MessageBox.Show("冷水称B强制控制按钮未打开!"); return; } if (MessageBox.Show("确认向" + GelChooseB + 4 + "排水?", "强制模式启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } DB2105WriteHelper.AddCbAddRemainValue(Convert.ToInt16(MCTextBoxE.StayWaterValue3.Text)); DB2105WriteHelper.AddCbAddForceBin(GelChooseB); DB2105WriteHelper.AddCbAddStartOut(true); ManualLogControl("冷水称B强制排水", Convert.ToInt16(MCTextBoxE.StayWaterValue3.Text), GelChooseB + 4); MessageBox.Show("冷水称B强制排水"); } if (ButtonE.StartOut4 == runtime.Sender) { if (!DB2105.Force_HB.forceOn) { MessageBox.Show("热水称B强制控制按钮未打开!"); return; } if (MessageBox.Show("确认向" + GelChooseB + 4 + "排水?", "强制模式启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } DB2105WriteHelper.AddHbAddRemainValue(Convert.ToInt16(MCTextBoxE.StayWaterValue4.Text)); DB2105WriteHelper.AddHbAddForceBin(GelChooseB); DB2105WriteHelper.AddHbAddStartOut(true); ManualLogControl("热水称B强制排水", Convert.ToInt16(MCTextBoxE.StayWaterValue4.Text), GelChooseB + 4); MessageBox.Show("热水称B强制排水"); } } private void DefaultSwitch(HslSwitch hslSwitch, bool state) { string status = state ? "强制状态开" : "强制状态关"; hslSwitch.Text = status; } private void SingleSelect() { if (Convert.ToBoolean(RadioButtonE.Gel1.MCValue) == true) { GelChooseA = 1; } if (Convert.ToBoolean(RadioButtonE.Gel2.MCValue) == true) { GelChooseA = 2; } if (Convert.ToBoolean(RadioButtonE.Gel3.MCValue) == true) { GelChooseA = 3; } if (Convert.ToBoolean(RadioButtonE.Gel4.MCValue) == true) { GelChooseA = 4; } if (Convert.ToBoolean(RadioButtonE.Gel5.MCValue) == true) { GelChooseB = 1; } if (Convert.ToBoolean(RadioButtonE.Gel6.MCValue) == true) { GelChooseB = 2; } if (Convert.ToBoolean(RadioButtonE.Gel7.MCValue) == true) { GelChooseB = 3; } if (Convert.ToBoolean(RadioButtonE.Gel8.MCValue) == true) { GelChooseB = 4; } } private void SetAllControls() { ControlsHelper.ControlImport(HslSwitchE, Controls); ControlsHelper.ControlImport(MCTextBoxE, Controls); ControlsHelper.ControlImport(ButtonE, Controls); ControlsHelper.ControlImport(RadioButtonE, Controls); } /// /// 日志插入 /// /// 日志内容 /// 值 /// 值类型 0无 1水称设定值 2水称称量值 3螺旋设定值 4螺旋称量值 /// 设备编号 /// 设备类型 0无 1水称 2螺旋 public void ManualLogControl(string logName, int value, int deviceno) { var Log = new LjLogEntity() { logtext = logName, logtime = DateTime.Now, userid = string.IsNullOrWhiteSpace(UserInfo.Instance.UserName) ? "Edit" : UserInfo.Instance.UserName, value = value, deviceno = deviceno, devicekind = 1, valuekind = 0, createdate = DateTime.Now.ToString("yyyyMMdd") }; FreeSqlUnit.Instance.Insert(Log).ExecuteIdentity(); } } }