From 5c3a9672c0a85acc4b4dbec14238133c90400184 Mon Sep 17 00:00:00 2001 From: MoYue Date: Tue, 2 Jul 2024 16:23:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=B6=E5=BA=8F=E5=90=8C=E6=AD=A5=20--=20?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E5=BD=93=E5=89=8D=E6=97=B6=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pages/SequentialDistributionViewModel.cs | 1766 ++++++++++------- .../ViewModels/Pages/ViewModelBase.cs | 101 +- .../Pages/SequentialDistributionView.xaml | 272 ++- 3 files changed, 1324 insertions(+), 815 deletions(-) diff --git a/InSituLaboratory/ViewModels/Pages/SequentialDistributionViewModel.cs b/InSituLaboratory/ViewModels/Pages/SequentialDistributionViewModel.cs index 5ba4bd7..01ec752 100644 --- a/InSituLaboratory/ViewModels/Pages/SequentialDistributionViewModel.cs +++ b/InSituLaboratory/ViewModels/Pages/SequentialDistributionViewModel.cs @@ -50,72 +50,1062 @@ namespace InSituLaboratory.ViewModels.Pages _sysSequentialService = sysSequentialService; _sensorService = sensorService; - Refresh(); - RefreshS1(); - RefreshS2(); - RefreshS3(); - RefreshS4(); - RefreshS5(); + DoRefreshSe("Refresh"); + DoRefreshSe("sequent1Refresh"); + DoRefreshSe("sequent2Refresh"); + DoRefreshSe("sequent3Refresh"); + DoRefreshSe("sequent4Refresh"); + DoRefreshSe("sequent5Refresh"); } /// /// 页面刷新 /// - public override void Refresh() + public override void DoRefreshSe(object o) { - //获取当前运行时序状态表 - var CurrentSequentiualList = _sensorService.GetCurrentSequentiual(); - - //当前运行时序状态数据 - if (CurrentSequentiualList.Count() != 0) + string[] msg = o.ToString().Split(','); + switch (msg[0]) { - var data = _sensorService.GetCurrentSequentiual().FirstOrDefault(); + //当前运行时序状态刷新 + case "Refresh": + //获取当前运行时序状态表 + var CurrentSequentiualList = _sensorService.GetCurrentSequentiual(); - CurrentSequentiual.Sequentiual1Status = data.Sequentiual1Status; - CurrentSequentiual.Sequentiual2Status = data.Sequentiual2Status; - CurrentSequentiual.Sequentiual3Status = data.Sequentiual3Status; - CurrentSequentiual.Sequentiual4Status = data.Sequentiual4Status; - CurrentSequentiual.Sequentiual5Status = data.Sequentiual5Status; + //当前运行时序状态数据 + if (CurrentSequentiualList.Count() != 0) + { + var data = _sensorService.GetCurrentSequentiual().FirstOrDefault(); + + CurrentSequentiual.Sequentiual1Status = data.Sequentiual1Status; + CurrentSequentiual.Sequentiual2Status = data.Sequentiual2Status; + CurrentSequentiual.Sequentiual3Status = data.Sequentiual3Status; + CurrentSequentiual.Sequentiual4Status = data.Sequentiual4Status; + CurrentSequentiual.Sequentiual5Status = data.Sequentiual5Status; + } + break; + + //时序1刷新 + case "sequent1Refresh": + int num = 1; + SearchKey = "时序1"; + sysSequentialDetailsListS1.Clear(); + + //获取时序母表数据 + var list = _sysSequentialService.GetSequentials(SearchKey).ToList(); + if (list.Count != 0) + { + var data = _sysSequentialService.GetSequentials(SearchKey).First(); + + //获取时序子表数据 + var dataDetails = _sysSequentialService.GetSequentialDetails(data.Number).ToList(); + foreach (var item in dataDetails) + { + SysSequentialDetails sysSequentialDetail = new SysSequentialDetails(); + sysSequentialDetail.Number = item.Number; + sysSequentialDetail.DurationTime = item.DurationTime; + sysSequentialDetail.SensorID = item.SensorID; + sysSequentialDetail.WorkTime = item.WorkTime; + sysSequentialDetail.SequenceGroup = item.SequenceGroup; + sysSequentialDetail.CreateTime = item.CreateTime; + sysSequentialDetail.Sequential = item.Sequential; + sysSequentialDetail.SysSquentialID = item.SysSquentialID; + sysSequentialDetail.IsDelete = item.IsDelete; + sysSequentialDetail.num = num; + + sysSequentialDetailsListS1.Add(sysSequentialDetail); + num++; + } + sequentStatusModel.SequentialStartTime1 = data.StartTime; + sequentStatusModel.SequentialEndTime1 = data.EndTime; + sequentStatusModel.Status1 = data.Status; + } + break; + + //时序2刷新 + case "sequent2Refresh": + int num2 = 1; + SearchKey = "时序2"; + sysSequentialDetailsListS2.Clear(); + var list2 = _sysSequentialService.GetSequentials(SearchKey).ToList(); + if (list2.Count != 0) + { + var data = _sysSequentialService.GetSequentials(SearchKey).First(); + + var dataDetails = _sysSequentialService.GetSequentialDetails(data.Number).ToList(); + foreach (var item in dataDetails) + { + SysSequentialDetails sysSequentialDetail = new SysSequentialDetails(); + sysSequentialDetail.Number = item.Number; + sysSequentialDetail.DurationTime = item.DurationTime; + sysSequentialDetail.SensorID = item.SensorID; + sysSequentialDetail.WorkTime = item.WorkTime; + sysSequentialDetail.SequenceGroup = item.SequenceGroup; + sysSequentialDetail.CreateTime = item.CreateTime; + sysSequentialDetail.Sequential = item.Sequential; + sysSequentialDetail.SysSquentialID = item.SysSquentialID; + sysSequentialDetail.IsDelete = item.IsDelete; + sysSequentialDetail.num = num2; + + sysSequentialDetailsListS2.Add(sysSequentialDetail); + num2++; + } + sequentStatusModel.SequentialStartTime2 = data.StartTime; + sequentStatusModel.SequentialEndTime2 = data.EndTime; + sequentStatusModel.Status2 = data.Status; + } + break; + + //时序3刷新 + case "sequent3Refresh": + int num3 = 1; + SearchKey = "时序3"; + sysSequentialDetailsListS3.Clear(); + var list3 = _sysSequentialService.GetSequentials(SearchKey).ToList(); + if (list3.Count != 0) + { + var data = _sysSequentialService.GetSequentials(SearchKey).First(); + + var dataDetails = _sysSequentialService.GetSequentialDetails(data.Number).ToList(); + foreach (var item in dataDetails) + { + SysSequentialDetails sysSequentialDetail = new SysSequentialDetails(); + sysSequentialDetail.Number = item.Number; + sysSequentialDetail.DurationTime = item.DurationTime; + sysSequentialDetail.SensorID = item.SensorID; + sysSequentialDetail.WorkTime = item.WorkTime; + sysSequentialDetail.SequenceGroup = item.SequenceGroup; + sysSequentialDetail.CreateTime = item.CreateTime; + sysSequentialDetail.Sequential = item.Sequential; + sysSequentialDetail.SysSquentialID = item.SysSquentialID; + sysSequentialDetail.IsDelete = item.IsDelete; + sysSequentialDetail.num = num3; + + sysSequentialDetailsListS3.Add(sysSequentialDetail); + num3++; + } + sequentStatusModel.SequentialStartTime3 = data.StartTime; + sequentStatusModel.SequentialEndTime3 = data.EndTime; + sequentStatusModel.Status3 = data.Status; + } + break; + + //时序4刷新 + case "sequent4Refresh": + int num4 = 1; + SearchKey = "时序4"; + sysSequentialDetailsListS4.Clear(); + var list4 = _sysSequentialService.GetSequentials(SearchKey).ToList(); + if (list4.Count != 0) + { + var data = _sysSequentialService.GetSequentials(SearchKey).First(); + + var dataDetails = _sysSequentialService.GetSequentialDetails(data.Number).ToList(); + foreach (var item in dataDetails) + { + SysSequentialDetails sysSequentialDetail = new SysSequentialDetails(); + sysSequentialDetail.Number = item.Number; + sysSequentialDetail.DurationTime = item.DurationTime; + sysSequentialDetail.SensorID = item.SensorID; + sysSequentialDetail.WorkTime = item.WorkTime; + sysSequentialDetail.SequenceGroup = item.SequenceGroup; + sysSequentialDetail.CreateTime = item.CreateTime; + sysSequentialDetail.Sequential = item.Sequential; + sysSequentialDetail.SysSquentialID = item.SysSquentialID; + sysSequentialDetail.IsDelete = item.IsDelete; + sysSequentialDetail.num = num4; + + sysSequentialDetailsListS4.Add(sysSequentialDetail); + num4++; + } + sequentStatusModel.SequentialStartTime4 = data.StartTime; + sequentStatusModel.SequentialEndTime4 = data.EndTime; + sequentStatusModel.Status4 = data.Status; + } + break; + + //时序5刷新 + case "sequent5Refresh": + int num5 = 1; + SearchKey = "时序5"; + sysSequentialDetailsListS5.Clear(); + var list5 = _sysSequentialService.GetSequentials(SearchKey).ToList(); + if (list5.Count != 0) + { + var data = _sysSequentialService.GetSequentials(SearchKey).First(); + + var dataDetails = _sysSequentialService.GetSequentialDetails(data.Number).ToList(); + foreach (var item in dataDetails) + { + SysSequentialDetails sysSequentialDetail = new SysSequentialDetails(); + sysSequentialDetail.Number = item.Number; + sysSequentialDetail.DurationTime = item.DurationTime; + sysSequentialDetail.SensorID = item.SensorID; + sysSequentialDetail.WorkTime = item.WorkTime; + sysSequentialDetail.SequenceGroup = item.SequenceGroup; + sysSequentialDetail.CreateTime = item.CreateTime; + sysSequentialDetail.Sequential = item.Sequential; + sysSequentialDetail.SysSquentialID = item.SysSquentialID; + sysSequentialDetail.IsDelete = item.IsDelete; + sysSequentialDetail.num = num5; + + sysSequentialDetailsListS5.Add(sysSequentialDetail); + num5++; + } + sequentStatusModel.SequentialStartTime5 = data.StartTime; + sequentStatusModel.SequentialEndTime5 = data.EndTime; + sequentStatusModel.Status5 = data.Status; + } + break; + default: + break; + } + } + + /// + /// 时序下发 + /// + /// + public override void DoSend(object o) + { + string[] msg = o.ToString().Split(','); + switch (msg[0]) + { + //时序1 + case "sequent1Send": + try + { + var status = ""; + var datalist1 = _sysSequentialService.Query(m => m.StartTime == sequentStatusModel.SequentialStartTime1 && m.EndTime == sequentStatusModel.SequentialEndTime1 && m.IsDelete == 0 && m.Sequential == "时序1").ToList(); + + if (sequentStatusModel.SequentialStartTime1 == null || sequentStatusModel.SequentialEndTime1 == null) + { + throw new Exception("时序1: 开始时间和结束时间不能为空!"); + } + else if (datalist1.Count() == 0) + { + throw new Exception("时序1中未有设备,无法下发!!!"); + } + else + { + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + DateTime startTime = (DateTime)sequentStatusModel.SequentialStartTime1; + DateTime endTime = (DateTime)sequentStatusModel.SequentialEndTime1; + foreach (var item in datalist1) + { + status = item.Status; + } + if (status == "已生成未下发") + { + System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否修改并等待当前工作设备工作完最短周期后生效新时序? \n若选择否,则修改且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + //修改并等待当前工作设备工作完最短周期后生效新时序 + if (s1 == System.Windows.Forms.DialogResult.Yes) + { + //计算设备功耗是否超总功耗及设备运行时长是否超时 + List byteaq = encode(startTime, endTime, 0x01, 0x01, "时序1"); + List buffer = Escape(byteaq.ToArray()); + string list = tools.byteToHexStr(buffer.ToArray()); + byte[] bytea = tools.ConvertHexStringToBytes(list); + RelayViewModel.clientModel.SendData(bytea); + + //更新时序母表及时序总表状态字段 + UpdateData(startTime, endTime, "时序1", "已下发"); + System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + //修改且关闭该时序所有设备 + else if (s1 == System.Windows.Forms.DialogResult.No) + { + //计算设备功耗是否超总功耗及设备运行时长是否超时 + List byteaq = encode(startTime, endTime, 0x01, 0x02, "时序1"); + List buffer = Escape(byteaq.ToArray()); + string list = tools.byteToHexStr(buffer.ToArray()); + byte[] bytea = tools.ConvertHexStringToBytes(list); + RelayViewModel.clientModel.SendData(bytea); + + //更新时序母表及时序总表状态字段 + UpdateData(startTime, endTime, "时序1", "已下发"); + System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + } + else + { + throw new Exception("当前时序已下发!!!"); + } + this.DoRefreshSe("sequent1Refresh"); + } + else + { + throw new Exception("请先连接服务端!"); + } + } + } + catch (Exception ex) + { + System.Windows.Forms.MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序2 + case "sequent2Send": + try + { + var status = ""; + var datalist1 = _sysSequentialService.Query(m => m.StartTime == sequentStatusModel.SequentialStartTime2 && m.EndTime == sequentStatusModel.SequentialEndTime2 && m.IsDelete == 0 && m.Sequential == "时序2").ToList(); + + if (sequentStatusModel.SequentialStartTime2 == null || sequentStatusModel.SequentialEndTime2 == null) + { + throw new Exception("时序2: 开始时间和结束时间不能为空!"); + } + else if (datalist1.Count() == 0) + { + throw new Exception("时序2中未有设备,无法下发!!!"); + } + else + { + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + DateTime startTime = (DateTime)sequentStatusModel.SequentialStartTime2; + DateTime endTime = (DateTime)sequentStatusModel.SequentialEndTime2; + foreach (var item in datalist1) + { + status = item.Status; + } + if (status == "已生成未下发") + { + System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否修改并等待当前工作设备工作完最短周期后生效新时序? \n若选择否,则修改且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + //修改并等待当前工作设备工作完最短周期后生效新时序 + if (s1 == System.Windows.Forms.DialogResult.Yes) + { + //计算设备功耗是否超总功耗及设备运行时长是否超时 + List byteaq = encode(startTime, endTime, 0x02, 0x01, "时序2"); + List buffer = Escape(byteaq.ToArray()); + string list = tools.byteToHexStr(buffer.ToArray()); + byte[] bytea = tools.ConvertHexStringToBytes(list); + RelayViewModel.clientModel.SendData(bytea); + + //更新时序母表及时序总表状态字段 + UpdateData(startTime, endTime, "时序2", "已下发"); + System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + //修改且关闭该时序所有设备 + else if (s1 == System.Windows.Forms.DialogResult.No) + { + //计算设备功耗是否超总功耗及设备运行时长是否超时 + List byteaq = encode(startTime, endTime,0x02, 0x02, "时序2"); + List buffer = Escape(byteaq.ToArray()); + string list = tools.byteToHexStr(buffer.ToArray()); + byte[] bytea = tools.ConvertHexStringToBytes(list); + RelayViewModel.clientModel.SendData(bytea); + + //更新时序母表及时序总表状态字段 + UpdateData(startTime, endTime, "时序2", "已下发"); + System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + } + else + { + throw new Exception("当前时序已下发!!!"); + } + this.DoRefreshSe("sequent2Refresh"); + } + else + { + throw new Exception("请先连接服务端!"); + } + } + } + catch (Exception ex) + { + System.Windows.Forms.MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序3 + case "sequent3Send": + try + { + var status = ""; + var datalist1 = _sysSequentialService.Query(m => m.StartTime == sequentStatusModel.SequentialStartTime3 && m.EndTime == sequentStatusModel.SequentialEndTime3 && m.IsDelete == 0 && m.Sequential == "时序3").ToList(); + + if (sequentStatusModel.SequentialStartTime3 == null || sequentStatusModel.SequentialEndTime3 == null) + { + throw new Exception("时序3: 开始时间和结束时间不能为空!"); + } + else if (datalist1.Count() == 0) + { + throw new Exception("时序3中未有设备,无法下发!!!"); + } + else + { + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + DateTime startTime = (DateTime)sequentStatusModel.SequentialStartTime3; + DateTime endTime = (DateTime)sequentStatusModel.SequentialEndTime3; + foreach (var item in datalist1) + { + status = item.Status; + } + if (status == "已生成未下发") + { + System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否修改并等待当前工作设备工作完最短周期后生效新时序? \n若选择否,则修改且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + //修改并等待当前工作设备工作完最短周期后生效新时序 + if (s1 == System.Windows.Forms.DialogResult.Yes) + { + //计算设备功耗是否超总功耗及设备运行时长是否超时 + List byteaq = encode(startTime, endTime, 0x03, 0x01, "时序3"); + List buffer = Escape(byteaq.ToArray()); + string list = tools.byteToHexStr(buffer.ToArray()); + byte[] bytea = tools.ConvertHexStringToBytes(list); + RelayViewModel.clientModel.SendData(bytea); + + //更新时序母表及时序总表状态字段 + UpdateData(startTime, endTime, "时序3", "已下发"); + System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + //修改且关闭该时序所有设备 + else if (s1 == System.Windows.Forms.DialogResult.No) + { + //计算设备功耗是否超总功耗及设备运行时长是否超时 + List byteaq = encode(startTime, endTime, 0x03, 0x02, "时序3"); + List buffer = Escape(byteaq.ToArray()); + string list = tools.byteToHexStr(buffer.ToArray()); + byte[] bytea = tools.ConvertHexStringToBytes(list); + RelayViewModel.clientModel.SendData(bytea); + + //更新时序母表及时序总表状态字段 + UpdateData(startTime, endTime, "时序3", "已下发"); + System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + } + else + { + throw new Exception("当前时序已下发!!!"); + } + this.DoRefreshSe("sequent3Refresh"); + } + else + { + throw new Exception("请先连接服务端!"); + } + } + } + catch (Exception ex) + { + System.Windows.Forms.MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序4 + case "sequent4Send": + try + { + var status = ""; + var datalist1 = _sysSequentialService.Query(m => m.StartTime == sequentStatusModel.SequentialStartTime4 && m.EndTime == sequentStatusModel.SequentialEndTime4 && m.IsDelete == 0 && m.Sequential == "时序4").ToList(); + + if (sequentStatusModel.SequentialStartTime4 == null || sequentStatusModel.SequentialEndTime4 == null) + { + throw new Exception("时序4: 开始时间和结束时间不能为空!"); + } + else if (datalist1.Count() == 0) + { + throw new Exception("时序4中未有设备,无法下发!!!"); + } + else + { + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + DateTime startTime = (DateTime)sequentStatusModel.SequentialStartTime4; + DateTime endTime = (DateTime)sequentStatusModel.SequentialEndTime4; + foreach (var item in datalist1) + { + status = item.Status; + } + if (status == "已生成未下发") + { + System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否修改并等待当前工作设备工作完最短周期后生效新时序? \n若选择否,则修改且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + //修改并等待当前工作设备工作完最短周期后生效新时序 + if (s1 == System.Windows.Forms.DialogResult.Yes) + { + //计算设备功耗是否超总功耗及设备运行时长是否超时 + List byteaq = encode(startTime, endTime, 0x04, 0x01, "时序4"); + List buffer = Escape(byteaq.ToArray()); + string list = tools.byteToHexStr(buffer.ToArray()); + byte[] bytea = tools.ConvertHexStringToBytes(list); + RelayViewModel.clientModel.SendData(bytea); + + //更新时序母表及时序总表状态字段 + UpdateData(startTime, endTime, "时序4", "已下发"); + System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + //修改且关闭该时序所有设备 + else if (s1 == System.Windows.Forms.DialogResult.No) + { + //计算设备功耗是否超总功耗及设备运行时长是否超时 + List byteaq = encode(startTime, endTime, 0x04, 0x02, "时序4"); + List buffer = Escape(byteaq.ToArray()); + string list = tools.byteToHexStr(buffer.ToArray()); + byte[] bytea = tools.ConvertHexStringToBytes(list); + RelayViewModel.clientModel.SendData(bytea); + + //更新时序母表及时序总表状态字段 + UpdateData(startTime, endTime, "时序4", "已下发"); + System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + } + else + { + throw new Exception("当前时序已下发!!!"); + } + this.DoRefreshSe("sequent4Refresh"); + } + else + { + throw new Exception("请先连接服务端!"); + } + } + } + catch (Exception ex) + { + System.Windows.Forms.MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序5 + case "sequent5Send": + try + { + var status = ""; + var datalist1 = _sysSequentialService.Query(m => m.StartTime == sequentStatusModel.SequentialStartTime5 && m.EndTime == sequentStatusModel.SequentialEndTime5 && m.IsDelete == 0 && m.Sequential == "时序5").ToList(); + + if (sequentStatusModel.SequentialStartTime5 == null || sequentStatusModel.SequentialEndTime5 == null) + { + throw new Exception("时序5: 开始时间和结束时间不能为空!"); + } + else if (datalist1.Count() == 0) + { + throw new Exception("时序5中未有设备,无法下发!!!"); + } + else + { + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + DateTime startTime = (DateTime)sequentStatusModel.SequentialStartTime5; + DateTime endTime = (DateTime)sequentStatusModel.SequentialEndTime5; + foreach (var item in datalist1) + { + status = item.Status; + } + if (status == "已生成未下发") + { + System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否修改并等待当前工作设备工作完最短周期后生效新时序? \n若选择否,则修改且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + //修改并等待当前工作设备工作完最短周期后生效新时序 + if (s1 == System.Windows.Forms.DialogResult.Yes) + { + //计算设备功耗是否超总功耗及设备运行时长是否超时 + List byteaq = encode(startTime, endTime, 0x05, 0x01, "时序5"); + List buffer = Escape(byteaq.ToArray()); + string list = tools.byteToHexStr(buffer.ToArray()); + byte[] bytea = tools.ConvertHexStringToBytes(list); + RelayViewModel.clientModel.SendData(bytea); + + //更新时序母表及时序总表状态字段 + UpdateData(startTime, endTime, "时序5", "已下发"); + System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + //修改且关闭该时序所有设备 + else if (s1 == System.Windows.Forms.DialogResult.No) + { + //计算设备功耗是否超总功耗及设备运行时长是否超时 + List byteaq = encode(startTime, endTime, 0x05, 0x02, "时序5"); + List buffer = Escape(byteaq.ToArray()); + string list = tools.byteToHexStr(buffer.ToArray()); + byte[] bytea = tools.ConvertHexStringToBytes(list); + RelayViewModel.clientModel.SendData(bytea); + + //更新时序母表及时序总表状态字段 + UpdateData(startTime, endTime, "时序5", "已下发"); + System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + } + else + { + throw new Exception("当前时序已下发!!!"); + } + this.DoRefreshSe("sequent5Refresh"); + } + else + { + throw new Exception("请先连接服务端!"); + } + } + } + catch (Exception ex) + { + System.Windows.Forms.MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + default: + break; + } + } + + + /// + /// 时序清空 + /// + /// + public override void DoClear(object o) + { + string[] msg = o.ToString().Split(','); + switch (msg[0]) + { + //时序1 + case "sequent1Clear": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + //清空并等待当前工作设备工作完最短周期 + if (s1 == System.Windows.Forms.DialogResult.Yes) + { + dosend(0x01, 0x03); + System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + //清空且关闭该时序所有设备 + else if (s1 == System.Windows.Forms.DialogResult.No) + { + dosend(0x01, 0x04); + System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + this.DoRefreshSe("sequent1Refresh"); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序2 + case "sequent2Clear": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + //清空并等待当前工作设备工作完最短周期 + if (s1 == System.Windows.Forms.DialogResult.Yes) + { + dosend(0x02, 0x03); + System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + //清空且关闭该时序所有设备 + else if (s1 == System.Windows.Forms.DialogResult.No) + { + dosend(0x02, 0x04); + System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + this.DoRefreshSe("sequent2Refresh"); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序3 + case "sequent3Clear": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + //清空并等待当前工作设备工作完最短周期 + if (s1 == System.Windows.Forms.DialogResult.Yes) + { + dosend(0x03, 0x03); + System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + //清空且关闭该时序所有设备 + else if (s1 == System.Windows.Forms.DialogResult.No) + { + dosend(0x03, 0x04); + System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + this.DoRefreshSe("sequent3Refresh"); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序4 + case "sequent4Clear": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + //清空并等待当前工作设备工作完最短周期 + if (s1 == System.Windows.Forms.DialogResult.Yes) + { + dosend(0x04, 0x03); + System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + //清空且关闭该时序所有设备 + else if (s1 == System.Windows.Forms.DialogResult.No) + { + dosend(0x04, 0x04); + System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + this.DoRefreshSe("sequent4Refresh"); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序5 + case "sequent5Clear": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + //清空并等待当前工作设备工作完最短周期 + if (s1 == System.Windows.Forms.DialogResult.Yes) + { + dosend(0x05, 0x03); + System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + //清空且关闭该时序所有设备 + else if (s1 == System.Windows.Forms.DialogResult.No) + { + dosend(0x05, 0x04); + System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + this.DoRefreshSe("sequent5Refresh"); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + default: + break; + } + } + + + /// + /// 时序启动 + /// + /// + public override void DoBegin(object o) + { + string[] msg = o.ToString().Split(','); + switch (msg[0]) + { + //时序1 + case "sequent1Begin": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + dosend(0x01, 0x05); + System.Windows.Forms.MessageBox.Show("时序启动命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + this.DoRefreshSe("sequent1Refresh"); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序2 + case "sequent2Begin": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + dosend(0x02, 0x05); + System.Windows.Forms.MessageBox.Show("时序启动命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + this.DoRefreshSe("sequent2Refresh"); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序3 + case "sequent3Begin": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + dosend(0x03, 0x05); + System.Windows.Forms.MessageBox.Show("时序启动命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + this.DoRefreshSe("sequent3Refresh"); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序4 + case "sequent4Begin": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + dosend(0x04, 0x05); + System.Windows.Forms.MessageBox.Show("时序启动命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + this.DoRefreshSe("sequent4Refresh"); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序5 + case "sequent5Begin": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + dosend(0x05, 0x05); + System.Windows.Forms.MessageBox.Show("时序启动命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + this.DoRefreshSe("sequent5Refresh"); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + default: + break; + } + } + + + /// + /// 时序暂停 + /// + /// + public override void DoSuspend(object o) + { + string[] msg = o.ToString().Split(','); + switch (msg[0]) + { + //时序1 + case "sequent1Suspend": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + + System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + //暂停并等待当前工作设备工作完最短周期 + if (s1 == System.Windows.Forms.DialogResult.Yes) + { + dosend(0x01, 0x07); + System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + //暂停且关闭该时序所有设备 + else if (s1 == System.Windows.Forms.DialogResult.No) + { + dosend(0x01, 0x08); + System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + this.DoRefreshSe("sequent1Refresh"); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序2 + case "sequent2Suspend": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + + System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + //暂停并等待当前工作设备工作完最短周期 + if (s1 == System.Windows.Forms.DialogResult.Yes) + { + dosend(0x02, 0x07); + System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + //暂停且关闭该时序所有设备 + else if (s1 == System.Windows.Forms.DialogResult.No) + { + dosend(0x02, 0x08); + System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + this.DoRefreshSe("sequent2Refresh"); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序3 + case "sequent3Suspend": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + + System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + //暂停并等待当前工作设备工作完最短周期 + if (s1 == System.Windows.Forms.DialogResult.Yes) + { + dosend(0x03, 0x07); + System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + //暂停且关闭该时序所有设备 + else if (s1 == System.Windows.Forms.DialogResult.No) + { + dosend(0x03, 0x08); + System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + this.DoRefreshSe("sequent3Refresh"); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序4 + case "sequent4Suspend": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + + System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + //暂停并等待当前工作设备工作完最短周期 + if (s1 == System.Windows.Forms.DialogResult.Yes) + { + dosend(0x04, 0x07); + System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + //暂停且关闭该时序所有设备 + else if (s1 == System.Windows.Forms.DialogResult.No) + { + dosend(0x04, 0x08); + System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + this.DoRefreshSe("sequent4Refresh"); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + + //时序5 + case "sequent5Suspend": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + + System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + //暂停并等待当前工作设备工作完最短周期 + if (s1 == System.Windows.Forms.DialogResult.Yes) + { + dosend(0x05, 0x07); + System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + //暂停且关闭该时序所有设备 + else if (s1 == System.Windows.Forms.DialogResult.No) + { + dosend(0x05, 0x08); + System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + this.DoRefreshSe("sequent5Refresh"); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + default: + break; + } + } + + /// + /// 时序同步 -- 请求当前时序 + /// + /// + public override void DoSync(object o) + { + string[] msg = o.ToString().Split(','); + switch (msg[0]) + { + //时序1 + case "sequent1": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + DoSyncSend(0x01); + System.Windows.Forms.MessageBox.Show("已请求同步当前时序!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + //时序2 + case "sequent2": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + DoSyncSend(0x02); + System.Windows.Forms.MessageBox.Show("已请求同步当前时序!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + //时序3 + case "sequent3": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + DoSyncSend(0x03); + System.Windows.Forms.MessageBox.Show("已请求同步当前时序!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + //时序4 + case "sequent4": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + DoSyncSend(0x04); + System.Windows.Forms.MessageBox.Show("已请求同步当前时序!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + //时序5 + case "sequent5": + if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") + { + DoSyncSend(0x05); + System.Windows.Forms.MessageBox.Show("已请求同步当前时序!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + else + { + System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + break; + default: + break; } } #region 时序 1 - public override void RefreshS1() - { - int num = 1; - SearchKey = "时序1"; - sysSequentialDetailsListS1.Clear(); - - //获取时序母表数据 - var list = _sysSequentialService.GetSequentials(SearchKey).ToList(); - if (list.Count != 0) - { - var data = _sysSequentialService.GetSequentials(SearchKey).First(); - - //获取时序子表数据 - var dataDetails = _sysSequentialService.GetSequentialDetails(data.Number).ToList(); - foreach (var item in dataDetails) - { - SysSequentialDetails sysSequentialDetail = new SysSequentialDetails(); - sysSequentialDetail.Number = item.Number; - sysSequentialDetail.DurationTime = item.DurationTime; - sysSequentialDetail.SensorID = item.SensorID; - sysSequentialDetail.WorkTime = item.WorkTime; - sysSequentialDetail.SequenceGroup = item.SequenceGroup; - sysSequentialDetail.CreateTime = item.CreateTime; - sysSequentialDetail.Sequential = item.Sequential; - sysSequentialDetail.SysSquentialID = item.SysSquentialID; - sysSequentialDetail.IsDelete = item.IsDelete; - sysSequentialDetail.num = num; - - sysSequentialDetailsListS1.Add(sysSequentialDetail); - num++; - } - sequentStatusModel.SequentialStartTime1 = data.StartTime; - sequentStatusModel.SequentialEndTime1 = data.EndTime; - sequentStatusModel.Status1 = data.Status; - } - } /// /// 编辑或者新增 @@ -169,7 +1159,7 @@ namespace InSituLaboratory.ViewModels.Pages // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管 if (result.Result == ButtonResult.OK) { - this.RefreshS1(); + this.DoRefreshSe("sequent1Refresh"); } }); } @@ -209,7 +1199,7 @@ namespace InSituLaboratory.ViewModels.Pages // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管 if (result.Result == ButtonResult.OK) { - this.RefreshS1(); + this.DoRefreshSe("sequent1Refresh"); } }); } @@ -263,7 +1253,7 @@ namespace InSituLaboratory.ViewModels.Pages _sysSequentialService.Update(data1); System.Windows.Forms.MessageBox.Show("删除完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); - this.RefreshS1(); + this.DoRefreshSe("sequent1Refresh"); } } else @@ -278,199 +1268,9 @@ namespace InSituLaboratory.ViewModels.Pages } - /// - /// 时序下发 - /// - public override void SendS1() - { - try - { - var status = ""; - var datalist1 = _sysSequentialService.Query(m => m.StartTime == sequentStatusModel.SequentialStartTime1 && m.EndTime == sequentStatusModel.SequentialEndTime1 && m.IsDelete == 0 && m.Sequential == "时序1").ToList(); - - if (sequentStatusModel.SequentialStartTime1 == null || sequentStatusModel.SequentialEndTime1 == null) - { - throw new Exception("时序1: 开始时间和结束时间不能为空!"); - } - else if (datalist1.Count() == 0) - { - throw new Exception("时序1中未有设备,无法下发!!!"); - } - else - { - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - DateTime startTime = (DateTime)sequentStatusModel.SequentialStartTime1; - DateTime endTime = (DateTime)sequentStatusModel.SequentialEndTime1; - foreach (var item in datalist1) - { - status = item.Status; - } - if (status == "已生成未下发") - { - System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否修改并等待当前工作设备工作完最短周期后生效新时序? \n若选择否,则修改且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - - //修改并等待当前工作设备工作完最短周期后生效新时序 - if (s1 == System.Windows.Forms.DialogResult.Yes) - { - //计算设备功耗是否超总功耗及设备运行时长是否超时 - List byteaq = encode(startTime, endTime, 0x01, "时序1"); - List buffer = Escape(byteaq.ToArray()); - string list = tools.byteToHexStr(buffer.ToArray()); - byte[] bytea = tools.ConvertHexStringToBytes(list); - RelayViewModel.clientModel.SendData(bytea); - - //更新时序母表及时序总表状态字段 - UpdateData(startTime, endTime, "时序1", "已下发"); - System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - //修改且关闭该时序所有设备 - else if (s1 == System.Windows.Forms.DialogResult.No) - { - //计算设备功耗是否超总功耗及设备运行时长是否超时 - List byteaq = encode((DateTime)sequentStatusModel.SequentialStartTime1, (DateTime)sequentStatusModel.SequentialEndTime1, 0x02, "时序1"); - List buffer = Escape(byteaq.ToArray()); - string list = tools.byteToHexStr(buffer.ToArray()); - byte[] bytea = tools.ConvertHexStringToBytes(list); - RelayViewModel.clientModel.SendData(bytea); - - //更新时序母表及时序总表状态字段 - UpdateData(startTime, endTime, "时序1", "已下发"); - System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - } - else - { - throw new Exception("当前时序已下发!!!"); - } - this.RefreshS1(); - } - else - { - throw new Exception("请先连接服务端!"); - } - } - } - catch (Exception ex) - { - System.Windows.Forms.MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - - } - - /// - /// 时序清空 - /// - public override void ClearS1() - { - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - - //清空并等待当前工作设备工作完最短周期 - if (s1 == System.Windows.Forms.DialogResult.Yes) - { - dosend(0x01, 0x03); - System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - //清空且关闭该时序所有设备 - else if (s1 == System.Windows.Forms.DialogResult.No) - { - dosend(0x01, 0x04); - System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - this.RefreshS1(); - } - else - { - System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - - } - - /// - /// 时序启动 - /// - public override void BeginS1() - { - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - dosend(0x01, 0x05); - System.Windows.Forms.MessageBox.Show("时序启动命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - this.RefreshS1(); - } - else - { - System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - } - - /// - /// 时序暂停 - /// - public override void SuspendS1() - { - - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - - System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - - //暂停并等待当前工作设备工作完最短周期 - if (s1 == System.Windows.Forms.DialogResult.Yes) - { - dosend(0x01, 0x07); - System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - //暂停且关闭该时序所有设备 - else if (s1 == System.Windows.Forms.DialogResult.No) - { - dosend(0x01, 0x08); - System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - this.RefreshS1(); - } - else - { - System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - } #endregion #region 时序 2 - public override void RefreshS2() - { - int num = 1; - SearchKey = "时序2"; - sysSequentialDetailsListS2.Clear(); - var list = _sysSequentialService.GetSequentials(SearchKey).ToList(); - if (list.Count != 0) - { - var data = _sysSequentialService.GetSequentials(SearchKey).First(); - - var dataDetails = _sysSequentialService.GetSequentialDetails(data.Number).ToList(); - foreach (var item in dataDetails) - { - SysSequentialDetails sysSequentialDetail = new SysSequentialDetails(); - sysSequentialDetail.Number = item.Number; - sysSequentialDetail.DurationTime = item.DurationTime; - sysSequentialDetail.SensorID = item.SensorID; - sysSequentialDetail.WorkTime = item.WorkTime; - sysSequentialDetail.SequenceGroup = item.SequenceGroup; - sysSequentialDetail.CreateTime = item.CreateTime; - sysSequentialDetail.Sequential = item.Sequential; - sysSequentialDetail.SysSquentialID = item.SysSquentialID; - sysSequentialDetail.IsDelete = item.IsDelete; - sysSequentialDetail.num = num; - - sysSequentialDetailsListS2.Add(sysSequentialDetail); - num++; - } - sequentStatusModel.SequentialStartTime2 = data.StartTime; - sequentStatusModel.SequentialEndTime2 = data.EndTime; - sequentStatusModel.Status2 = data.Status; - } - } /// /// 编辑或者新增 @@ -524,7 +1324,7 @@ namespace InSituLaboratory.ViewModels.Pages // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管 if (result.Result == ButtonResult.OK) { - this.RefreshS2(); + this.DoRefreshSe("sequent2Refresh"); } }); } @@ -564,7 +1364,7 @@ namespace InSituLaboratory.ViewModels.Pages // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管 if (result.Result == ButtonResult.OK) { - this.RefreshS2(); + this.DoRefreshSe("sequent2Refresh"); } }); } @@ -617,7 +1417,7 @@ namespace InSituLaboratory.ViewModels.Pages _sysSequentialService.Update(data1); System.Windows.Forms.MessageBox.Show("删除完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); - this.RefreshS2(); + this.DoRefreshSe("sequent2Refresh"); } } else @@ -632,121 +1432,9 @@ namespace InSituLaboratory.ViewModels.Pages } - - /// - /// 时序清空 - /// - public override void ClearS2() - { - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - - //清空并等待当前工作设备工作完最短周期 - if (s1 == System.Windows.Forms.DialogResult.Yes) - { - dosend(0x02, 0x03); - System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - //清空且关闭该时序所有设备 - else if (s1 == System.Windows.Forms.DialogResult.No) - { - dosend(0x02, 0x04); - System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - this.RefreshS2(); - } - else - { - System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - - } - - /// - /// 时序启动 - /// - public override void BeginS2() - { - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - dosend(0x02, 0x05); - System.Windows.Forms.MessageBox.Show("时序启动命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - this.RefreshS2(); - } - else - { - System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - } - - /// - /// 时序暂停 - /// - public override void SuspendS2() - { - - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - - System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - - //暂停并等待当前工作设备工作完最短周期 - if (s1 == System.Windows.Forms.DialogResult.Yes) - { - dosend(0x02, 0x07); - System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - //暂停且关闭该时序所有设备 - else if (s1 == System.Windows.Forms.DialogResult.No) - { - dosend(0x02, 0x08); - System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - this.RefreshS2(); - } - else - { - System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - } - #endregion #region 时序 3 - public override void RefreshS3() - { - int num = 1; - SearchKey = "时序3"; - sysSequentialDetailsListS3.Clear(); - var list = _sysSequentialService.GetSequentials(SearchKey).ToList(); - if (list.Count != 0) - { - var data = _sysSequentialService.GetSequentials(SearchKey).First(); - - var dataDetails = _sysSequentialService.GetSequentialDetails(data.Number).ToList(); - foreach (var item in dataDetails) - { - SysSequentialDetails sysSequentialDetail = new SysSequentialDetails(); - sysSequentialDetail.Number = item.Number; - sysSequentialDetail.DurationTime = item.DurationTime; - sysSequentialDetail.SensorID = item.SensorID; - sysSequentialDetail.WorkTime = item.WorkTime; - sysSequentialDetail.SequenceGroup = item.SequenceGroup; - sysSequentialDetail.CreateTime = item.CreateTime; - sysSequentialDetail.Sequential = item.Sequential; - sysSequentialDetail.SysSquentialID = item.SysSquentialID; - sysSequentialDetail.IsDelete = item.IsDelete; - sysSequentialDetail.num = num; - - sysSequentialDetailsListS3.Add(sysSequentialDetail); - num++; - } - sequentStatusModel.SequentialStartTime3 = data.StartTime; - sequentStatusModel.SequentialEndTime3 = data.EndTime; - sequentStatusModel.Status3 = data.Status; - } - } /// /// 编辑或者新增 @@ -800,7 +1488,7 @@ namespace InSituLaboratory.ViewModels.Pages // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管 if (result.Result == ButtonResult.OK) { - this.RefreshS3(); + this.DoRefreshSe("sequent3Refresh"); } }); } @@ -840,7 +1528,7 @@ namespace InSituLaboratory.ViewModels.Pages // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管 if (result.Result == ButtonResult.OK) { - this.RefreshS3(); + this.DoRefreshSe("sequent3Refresh"); } }); } @@ -893,7 +1581,7 @@ namespace InSituLaboratory.ViewModels.Pages _sysSequentialService.Update(data1); System.Windows.Forms.MessageBox.Show("删除完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); - this.RefreshS3(); + this.DoRefreshSe("sequent3Refresh"); } } else @@ -908,118 +1596,9 @@ namespace InSituLaboratory.ViewModels.Pages } - /// - /// 时序清空 - /// - public override void ClearS3() - { - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - - //清空并等待当前工作设备工作完最短周期 - if (s1 == System.Windows.Forms.DialogResult.Yes) - { - dosend(0x03, 0x03); - System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - //清空且关闭该时序所有设备 - else if (s1 == System.Windows.Forms.DialogResult.No) - { - dosend(0x03, 0x04); - System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - this.RefreshS3(); - } - else - { - System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - - } - - /// - /// 时序启动 - /// - public override void BeginS3() - { - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - dosend(0x03, 0x05); - System.Windows.Forms.MessageBox.Show("时序启动命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - this.RefreshS3(); - } - else - { - System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - } - - /// - /// 时序暂停 - /// - public override void SuspendS3() - { - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - - System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - - //暂停并等待当前工作设备工作完最短周期 - if (s1 == System.Windows.Forms.DialogResult.Yes) - { - dosend(0x03, 0x07); - System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - //暂停且关闭该时序所有设备 - else if (s1 == System.Windows.Forms.DialogResult.No) - { - dosend(0x03, 0x08); - System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - this.RefreshS3(); - } - else - { - System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - } #endregion #region 时序 4 - public override void RefreshS4() - { - int num = 1; - SearchKey = "时序4"; - sysSequentialDetailsListS4.Clear(); - var list = _sysSequentialService.GetSequentials(SearchKey).ToList(); - if (list.Count != 0) - { - var data = _sysSequentialService.GetSequentials(SearchKey).First(); - - var dataDetails = _sysSequentialService.GetSequentialDetails(data.Number).ToList(); - foreach (var item in dataDetails) - { - SysSequentialDetails sysSequentialDetail = new SysSequentialDetails(); - sysSequentialDetail.Number = item.Number; - sysSequentialDetail.DurationTime = item.DurationTime; - sysSequentialDetail.SensorID = item.SensorID; - sysSequentialDetail.WorkTime = item.WorkTime; - sysSequentialDetail.SequenceGroup = item.SequenceGroup; - sysSequentialDetail.CreateTime = item.CreateTime; - sysSequentialDetail.Sequential = item.Sequential; - sysSequentialDetail.SysSquentialID = item.SysSquentialID; - sysSequentialDetail.IsDelete = item.IsDelete; - sysSequentialDetail.num = num; - - sysSequentialDetailsListS4.Add(sysSequentialDetail); - num++; - } - sequentStatusModel.SequentialStartTime4 = data.StartTime; - sequentStatusModel.SequentialEndTime4 = data.EndTime; - sequentStatusModel.Status4 = data.Status; - } - } /// /// 编辑或者新增 @@ -1073,7 +1652,7 @@ namespace InSituLaboratory.ViewModels.Pages // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管 if (result.Result == ButtonResult.OK) { - this.RefreshS4(); + this.DoRefreshSe("sequent4Refresh"); } }); } @@ -1113,7 +1692,7 @@ namespace InSituLaboratory.ViewModels.Pages // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管 if (result.Result == ButtonResult.OK) { - this.RefreshS4(); + this.DoRefreshSe("sequent4Refresh"); } }); } @@ -1166,7 +1745,7 @@ namespace InSituLaboratory.ViewModels.Pages _sysSequentialService.Update(data1); System.Windows.Forms.MessageBox.Show("删除完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); - this.RefreshS4(); + this.DoRefreshSe("sequent4Refresh"); } } else @@ -1181,119 +1760,9 @@ namespace InSituLaboratory.ViewModels.Pages } - /// - /// 时序清空 - /// - public override void ClearS4() - { - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - - //清空并等待当前工作设备工作完最短周期 - if (s1 == System.Windows.Forms.DialogResult.Yes) - { - dosend(0x04, 0x03); - System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - //清空且关闭该时序所有设备 - else if (s1 == System.Windows.Forms.DialogResult.No) - { - dosend(0x04, 0x04); - System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - this.RefreshS4(); - } - else - { - System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - - } - - /// - /// 时序启动 - /// - public override void BeginS4() - { - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - dosend(0x04, 0x05); - System.Windows.Forms.MessageBox.Show("时序启动命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - this.RefreshS4(); - } - else - { - System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - } - - /// - /// 时序暂停 - /// - public override void SuspendS4() - { - - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - - System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - - //暂停并等待当前工作设备工作完最短周期 - if (s1 == System.Windows.Forms.DialogResult.Yes) - { - dosend(0x04, 0x07); - System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - //暂停且关闭该时序所有设备 - else if (s1 == System.Windows.Forms.DialogResult.No) - { - dosend(0x04, 0x08); - System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - this.RefreshS4(); - } - else - { - System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - } #endregion #region 时序 5 - public override void RefreshS5() - { - int num = 1; - SearchKey = "时序5"; - sysSequentialDetailsListS5.Clear(); - var list = _sysSequentialService.GetSequentials(SearchKey).ToList(); - if (list.Count != 0) - { - var data = _sysSequentialService.GetSequentials(SearchKey).First(); - - var dataDetails = _sysSequentialService.GetSequentialDetails(data.Number).ToList(); - foreach (var item in dataDetails) - { - SysSequentialDetails sysSequentialDetail = new SysSequentialDetails(); - sysSequentialDetail.Number = item.Number; - sysSequentialDetail.DurationTime = item.DurationTime; - sysSequentialDetail.SensorID = item.SensorID; - sysSequentialDetail.WorkTime = item.WorkTime; - sysSequentialDetail.SequenceGroup = item.SequenceGroup; - sysSequentialDetail.CreateTime = item.CreateTime; - sysSequentialDetail.Sequential = item.Sequential; - sysSequentialDetail.SysSquentialID = item.SysSquentialID; - sysSequentialDetail.IsDelete = item.IsDelete; - sysSequentialDetail.num = num; - - sysSequentialDetailsListS5.Add(sysSequentialDetail); - num++; - } - sequentStatusModel.SequentialStartTime5 = data.StartTime; - sequentStatusModel.SequentialEndTime5 = data.EndTime; - sequentStatusModel.Status5 = data.Status; - } - } /// /// 编辑或者新增 @@ -1347,7 +1816,7 @@ namespace InSituLaboratory.ViewModels.Pages // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管 if (result.Result == ButtonResult.OK) { - this.RefreshS5(); + this.DoRefreshSe("sequent5Refresh"); } }); } @@ -1387,7 +1856,7 @@ namespace InSituLaboratory.ViewModels.Pages // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管 if (result.Result == ButtonResult.OK) { - this.RefreshS5(); + this.DoRefreshSe("sequent5Refresh"); } }); } @@ -1440,7 +1909,7 @@ namespace InSituLaboratory.ViewModels.Pages _sysSequentialService.Update(data1); System.Windows.Forms.MessageBox.Show("删除完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); - this.RefreshS5(); + this.DoRefreshSe("sequent5Refresh"); } } else @@ -1455,120 +1924,8 @@ namespace InSituLaboratory.ViewModels.Pages } - /// - /// 时序清空 - /// - public override void ClearS5() - { - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - - //清空并等待当前工作设备工作完最短周期 - if (s1 == System.Windows.Forms.DialogResult.Yes) - { - dosend(0x05, 0x03); - System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - //清空且关闭该时序所有设备 - else if (s1 == System.Windows.Forms.DialogResult.No) - { - dosend(0x05, 0x04); - System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - this.RefreshS5(); - } - else - { - System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - - } - - /// - /// 时序启动 - /// - public override void BeginS5() - { - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - dosend(0x05, 0x05); - System.Windows.Forms.MessageBox.Show("时序启动命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - this.RefreshS5(); - } - else - { - System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - } - - /// - /// 时序暂停 - /// - public override void SuspendS5() - { - - if (RelayViewModel.SocketInfo.ConnectionMessage == "断开") - { - - System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - - //暂停并等待当前工作设备工作完最短周期 - if (s1 == System.Windows.Forms.DialogResult.Yes) - { - dosend(0x05, 0x07); - System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - //暂停且关闭该时序所有设备 - else if (s1 == System.Windows.Forms.DialogResult.No) - { - dosend(0x05, 0x08); - System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - this.RefreshS5(); - } - else - { - System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - } #endregion - /// - /// 请求当前时序 - /// - /// - public override void DoSync(object o) - { - string[] msg = o.ToString().Split(','); - switch (msg[0]) - { - //时序1 - case "sequent1": - DoSyncSend(0x01); - break; - //时序2 - case "sequent2": - DoSyncSend(0x02); - break; - //时序3 - case "sequent3": - DoSyncSend(0x03); - break; - //时序4 - case "sequent4": - DoSyncSend(0x04); - break; - //时序5 - case "sequent5": - DoSyncSend(0x05); - break; - default: - break; - } - System.Windows.Forms.MessageBox.Show("已请求当前时序同步!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - /// /// 转义封装 /// @@ -1672,9 +2029,10 @@ namespace InSituLaboratory.ViewModels.Pages /// 时序开始时间 /// 时序结束时间 /// 时序组号 + /// 操作类型 /// 时序类型 /// - public List encode(DateTime StartTime, DateTime EndTime, byte GroupNumber, string kind) + public List encode(DateTime StartTime, DateTime EndTime, byte GroupNumber, byte OpeKind, string kind) { #region 定义参数 DateTime startTime = StartTime; @@ -1748,7 +2106,7 @@ namespace InSituLaboratory.ViewModels.Pages byteaq.Add(GroupNumber); //操作类型 - byteaq.Add(0x01); + byteaq.Add(OpeKind); //开始时间 byteaq.Add((byte)((senddate >> 56) & 0xff)); diff --git a/InSituLaboratory/ViewModels/Pages/ViewModelBase.cs b/InSituLaboratory/ViewModels/Pages/ViewModelBase.cs index b4052b4..3143f68 100644 --- a/InSituLaboratory/ViewModels/Pages/ViewModelBase.cs +++ b/InSituLaboratory/ViewModels/Pages/ViewModelBase.cs @@ -17,8 +17,8 @@ namespace InSituLaboratory.ViewModels.Pages public string PageTitle { get; set; } = "页面标题"; public bool IsCanClose { get; set; } = true; - public string SearchKey { get; set; } - public string PrimaryKey { get; set; } + public string SearchKey { get; set; } + public string PrimaryKey { get; set; } #region 数据下载实体类 @@ -67,49 +67,30 @@ namespace InSituLaboratory.ViewModels.Pages public DelegateCommand SyncCommand { get; set; }//请求当前时序 + public DelegateCommand RefreshSeCommand { get; set; }//时序刷新 + public DelegateCommand ClearCommand { get; set; }//时序清除 + public DelegateCommand BeginCommand { get; set; }//时序启动 + public DelegateCommand SuspendCommand { get; set; }//时序暂停 + public DelegateCommand SendCommand { get; set; }//时序下发 - #region 时序1-5 刷新 新增/编辑 删除 下发 启动 暂停 清空 - public DelegateCommand RefreshS1Command { get; set; } - public DelegateCommand SendS1Command { get; set; } + #region 时序1-5 新增/编辑 删除 + public DelegateCommand ModifyS1Command { get; set; } public DelegateCommand DeleteS1Command { get; set; } - public DelegateCommand BeginS1Command { get; set; } - public DelegateCommand SuspendS1Command { get; set; } - public DelegateCommand ClearS1Command { get; set; } - public DelegateCommand RefreshS2Command { get; set; } - public DelegateCommand SendS2Command { get; set; } public DelegateCommand ModifyS2Command { get; set; } public DelegateCommand DeleteS2Command { get; set; } - public DelegateCommand BeginS2Command { get; set; } - public DelegateCommand SuspendS2Command { get; set; } - public DelegateCommand ClearS2Command { get; set; } - public DelegateCommand RefreshS3Command { get; set; } - public DelegateCommand SendS3Command { get; set; } public DelegateCommand ModifyS3Command { get; set; } public DelegateCommand DeleteS3Command { get; set; } - public DelegateCommand BeginS3Command { get; set; } - public DelegateCommand SuspendS3Command { get; set; } - public DelegateCommand ClearS3Command { get; set; } - public DelegateCommand RefreshS4Command { get; set; } - public DelegateCommand SendS4Command { get; set; } public DelegateCommand ModifyS4Command { get; set; } public DelegateCommand DeleteS4Command { get; set; } - public DelegateCommand BeginS4Command { get; set; } - public DelegateCommand SuspendS4Command { get; set; } - public DelegateCommand ClearS4Command { get; set; } - public DelegateCommand RefreshS5Command { get; set; } - public DelegateCommand SendS5Command { get; set; } public DelegateCommand ModifyS5Command { get; set; } public DelegateCommand DeleteS5Command { get; set; } - public DelegateCommand BeginS5Command { get; set; } - public DelegateCommand SuspendS5Command { get; set; } - public DelegateCommand ClearS5Command { get; set; } #endregion @@ -128,48 +109,28 @@ namespace InSituLaboratory.ViewModels.Pages StartCommand = new DelegateCommand(DoStart); SynchronizationCommand = new DelegateCommand(DoSynchronization); SyncCommand = new DelegateCommand(DoSync); + RefreshSeCommand = new DelegateCommand(DoRefreshSe); + ClearCommand = new DelegateCommand(DoClear); + BeginCommand = new DelegateCommand(DoBegin); + SuspendCommand = new DelegateCommand(DoSuspend); + SendCommand = new DelegateCommand(DoSend); - #region 时序1-5 刷新 新增/编辑 删除 下发 启动 暂停 清空 + #region 时序1-5 新增/编辑 删除 - RefreshS1Command = new DelegateCommand(RefreshS1); - SendS1Command = new DelegateCommand(SendS1); ModifyS1Command = new DelegateCommand(DoModifyS1); DeleteS1Command = new DelegateCommand(DoDeleteS1); - BeginS1Command = new DelegateCommand(BeginS1); - SuspendS1Command = new DelegateCommand(SuspendS1); - ClearS1Command = new DelegateCommand(ClearS1); - RefreshS2Command = new DelegateCommand(RefreshS2); - SendS2Command = new DelegateCommand(SendS2); ModifyS2Command = new DelegateCommand(DoModifyS2); DeleteS2Command = new DelegateCommand(DoDeleteS2); - BeginS2Command = new DelegateCommand(BeginS2); - SuspendS2Command = new DelegateCommand(SuspendS2); - ClearS2Command = new DelegateCommand(ClearS2); - RefreshS3Command = new DelegateCommand(RefreshS3); - SendS3Command = new DelegateCommand(SendS3); ModifyS3Command = new DelegateCommand(DoModifyS3); DeleteS3Command = new DelegateCommand(DoDeleteS3); - BeginS3Command = new DelegateCommand(BeginS3); - SuspendS3Command = new DelegateCommand(SuspendS3); - ClearS3Command = new DelegateCommand(ClearS3); - RefreshS4Command = new DelegateCommand(RefreshS4); - SendS4Command = new DelegateCommand(SendS4); ModifyS4Command = new DelegateCommand(DoModifyS4); DeleteS4Command = new DelegateCommand(DoDeleteS4); - BeginS4Command = new DelegateCommand(BeginS4); - SuspendS4Command = new DelegateCommand(SuspendS4); - ClearS4Command = new DelegateCommand(ClearS4); - RefreshS5Command = new DelegateCommand(RefreshS5); - SendS5Command = new DelegateCommand(SendS5); ModifyS5Command = new DelegateCommand(DoModifyS5); DeleteS5Command = new DelegateCommand(DoDeleteS5); - BeginS5Command = new DelegateCommand(BeginS5); - SuspendS5Command = new DelegateCommand(SuspendS5); - ClearS5Command = new DelegateCommand(ClearS5); #endregion } @@ -194,53 +155,33 @@ namespace InSituLaboratory.ViewModels.Pages public virtual void DoSynchronization() { } private string PageName { get; set; } public virtual void DoSync(object o) { } + public virtual void DoRefreshSe(object o) { } + public virtual void DoClear(object o) { } + public virtual void DoBegin(object o) { } + public virtual void DoSuspend(object o) { } + public virtual void DoSend(object o) { } - #region 时序1-5 刷新 新增/编辑 删除 下发 启动 暂停 清空 + #region 时序1-5 新增/编辑 删除 - public virtual void RefreshS1() { } - public virtual void SendS1() { } public virtual void DoModifyS1(object model) { } public virtual void DoDeleteS1(object model) { } - public virtual void BeginS1() { } - public virtual void SuspendS1() { } - public virtual void ClearS1() { } - public virtual void RefreshS2() { } - public virtual void SendS2() { } public virtual void DoModifyS2(object model) { } public virtual void DoDeleteS2(object model) { } - public virtual void BeginS2() { } - public virtual void SuspendS2() { } - public virtual void ClearS2() { } - public virtual void RefreshS3() { } - public virtual void SendS3() { } public virtual void DoModifyS3(object model) { } public virtual void DoDeleteS3(object model) { } - public virtual void BeginS3() { } - public virtual void SuspendS3() { } - public virtual void ClearS3() { } - public virtual void RefreshS4() { } - public virtual void SendS4() { } public virtual void DoModifyS4(object model) { } public virtual void DoDeleteS4(object model) { } - public virtual void BeginS4() { } - public virtual void SuspendS4() { } - public virtual void ClearS4() { } - public virtual void RefreshS5() { } - public virtual void SendS5() { } public virtual void DoModifyS5(object model) { } public virtual void DoDeleteS5(object model) { } - public virtual void BeginS5() { } - public virtual void SuspendS5() { } - public virtual void ClearS5() { } #endregion diff --git a/InSituLaboratory/Views/Pages/SequentialDistributionView.xaml b/InSituLaboratory/Views/Pages/SequentialDistributionView.xaml index 026db38..9dbb7f3 100644 --- a/InSituLaboratory/Views/Pages/SequentialDistributionView.xaml +++ b/InSituLaboratory/Views/Pages/SequentialDistributionView.xaml @@ -96,7 +96,15 @@ - @@ -158,7 +166,15 @@ - - + + + + + - + + + + - + + + + - + + + + - + + +