// ReSharper disable InconsistentNaming private static void Main(string[] args) // ReSharper restore InconsistentNaming { Arguments commandLine = new Arguments(args); bool owned; Mutex mutex = new Mutex(true, "HotBabe_" + Assembly.GetExecutingAssembly().FullName, out owned); if (!owned) { return; } GC.KeepAlive(mutex); ZipHelper.Register(); ResourceHelper.Register(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); sSettingsManager = string.IsNullOrEmpty(commandLine.ConfigFilePath) ? new XmlSettingsManager() : new XmlSettingsManager(commandLine.ConfigFilePath); MainView view = new MainView { DebugEnabled = commandLine.Debug }; sMainController = new MainController(view, sSettingsManager); sMainController.EditSettings += controllerEditSettings; sMainController.Start(); }
private void LoadSpecItems() { if (!this.IsNormalState()) { AppFramework.Context.ShowError("规格编辑窗体已经关闭"); return; } int index = 0; if (dgvSeq.SelectedRows.Count > 0) { index = dgvSeq.SelectedRows[0].Index; } dtSpecItem.Rows.Clear(); foreach (var item in specItems) { var testSystem = BaseSettingsManager.Get <SystemGroupSetting>().GetTestSystemItem(item.SystemID); if (testSystem == null) { continue; } var row = dtSpecItem.NewRow(); row["TestItemID"] = item.SpecItemID; row["TestItemName"] = item.ItemName; row["TestItemTemp"] = item.TestTemp; row["TestItemInfo"] = item.TestInfo; row["TestItemPort"] = testSystem.PortSetting; foreach (var resultItem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult) { var computeSetting = item.ComputeSetting.FromJsonString <Dictionary <int, ComputeSettingItem> >(); if (!computeSetting.ContainsKey(resultItem.ResultID)) { row[string.Format("TestItemCompute{0}", resultItem.ResultID)] = "N/A"; } else { var computeItem = computeSetting[resultItem.ResultID]; row[string.Format("TestItemCompute{0}", resultItem.ResultID)] = string.IsNullOrEmpty(computeItem.ComputeValue) ? "未设置" : OperatorManager.GetOperator(computeItem.ComputeSign).GetDisplayString(computeItem.ComputeValue); } } row["TestItemOrder"] = item.OrderID; dtSpecItem.Rows.Add(row); } if (dgvSeq.Rows.Count > 0) { if (index >= dgvSeq.Rows.Count) { index = dgvSeq.Rows.Count - 1; } dgvSeq.CurrentCell = dgvSeq.Rows[index].Cells[3]; } }
public UserControlPointTestSystem() { InitializeComponent(); testReslut = new Dictionary <Guid, ResultInfo>(); dgvResults = new Dictionary <string, DataGridView>(); startTime = DateTime.MinValue; testItem = new DataTable(); testItem.Columns.Add("TestItemName", Type.GetType("System.String")); testItem.Columns.Add("TestItemPortSetting", Type.GetType("System.String")); testItem.Columns.Add("TestItemTemp", Type.GetType("System.String")); foreach (var resultItem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult) { testItem.Columns.Add(string.Format("TestItemCompute{0}", resultItem.ResultID), Type.GetType("System.String")); } testItem.Columns.Add("TestItemValue", Type.GetType("System.String")); testItem.Columns.Add("TestItemLastValue", Type.GetType("System.String")); testItem.Columns.Add("TestItemMaxValue", Type.GetType("System.String")); testItem.Columns.Add("TestItemMinValue", Type.GetType("System.String")); testItem.Columns.Add("TestItemID", Type.GetType("System.Guid")); testItem.Columns.Add("TestItemStatus", Type.GetType("System.Int32")); //DGV栏位设置 dgvInfo.DataSource = testItem; dgvInfo.Columns["TestItemName"].HeaderText = "项目"; dgvInfo.Columns["TestItemName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; dgvInfo.Columns["TestItemPortSetting"].HeaderText = "端口"; dgvInfo.Columns["TestItemTemp"].HeaderText = "温度"; foreach (var resultItem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult) { dgvInfo.Columns[string.Format("TestItemCompute{0}", resultItem.ResultID)].HeaderText = resultItem.ResultName; dgvInfo.Columns[string.Format("TestItemCompute{0}", resultItem.ResultID)].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; } dgvInfo.Columns["TestItemValue"].HeaderText = "结果"; #if (DEBUG1234) dgvInfo.Columns["TestItemMaxValue"].HeaderText = "历史最大"; dgvInfo.Columns["TestItemMinValue"].HeaderText = "历史最小"; #endif dgvInfo.Columns["TestItemMaxValue"].Visible = false; dgvInfo.Columns["TestItemMinValue"].Visible = false; dgvInfo.Columns["TestItemLastValue"].Visible = false; dgvInfo.Columns["TestItemID"].Visible = false; dgvInfo.Columns["TestItemStatus"].Visible = false; foreach (DataGridViewColumn column in dgvInfo.Columns) { column.SortMode = DataGridViewColumnSortMode.NotSortable; } cbWavelength.Enabled = false; cbChannel.Enabled = false; cbUnit.Items.AddRange(new[] { "dBm", "dB" }); cbUnit.Enabled = false; }
private void cbNoCheck_CheckedChanged(object sender, EventArgs e) { foreach (var resultitem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult) { for (int i = 0; i < TempSetting.Length; i++) { cbSpec.Enabled = !cbNoCheck.Checked; var tbSpec = GetSpecTextBox(resultitem.ResultID, i); if (tbSpec != null) { tbSpec.Enabled = !cbNoCheck.Checked; } } } }
private void CreateTestItemsData(DataTable ds) { ds.Columns.Add("TestItemID", Type.GetType("System.String")); ds.Columns.Add("TestID", Type.GetType("System.String")); ds.Columns.Add("SystemID", Type.GetType("System.String")); ds.Columns.Add("ItemName", Type.GetType("System.String")); ds.Columns.Add("TestTemp", Type.GetType("System.String")); ds.Columns.Add("TestSetting", Type.GetType("System.String")); foreach (var resultItem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult) { ds.Columns.Add(string.Format("TestItemCompute{0}", resultItem.ResultID), Type.GetType("System.String")); } ds.Columns.Add("ItemValue", Type.GetType("System.String")); ds.Columns.Add("ItemResult", Type.GetType("System.String")); ds.Columns.Add("ItemResultString", Type.GetType("System.String")); ds.Columns.Add("OrderID", Type.GetType("System.String")); foreach (var testItem in testData.TestInfo.TestItems) { var row = ds.NewRow(); row["TestItemID"] = testItem.TestItemID; row["TestID"] = testItem.TestID; row["SystemID"] = testItem.SystemID; row["ItemName"] = testItem.ItemName; row["TestTemp"] = testItem.TestTemp; row["TestSetting"] = testItem.TestInfo; var computeSetting = testItem.ComputeSetting.FromJsonString <Dictionary <int, BusinessLogic.Model.ComputeSettingItem> >(); foreach (var resultItem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult) { if (!computeSetting.ContainsKey(resultItem.ResultID)) { row[string.Format("TestItemCompute{0}", resultItem.ResultID)] = "N/A"; } else { var computeItem = computeSetting[resultItem.ResultID]; row[string.Format("TestItemCompute{0}", resultItem.ResultID)] = string.IsNullOrEmpty(computeItem.ComputeValue) ? "未设置" : OperatorManager.GetOperator(computeItem.ComputeSign).GetDisplayString(computeItem.ComputeValue); } } row["ItemValue"] = testItem.ItemValue; row["ItemResult"] = testItem.ItemResult; row["ItemResultString"] = BaseSettingsManager.Get <ResultSettings>()[testItem.ItemResult].ResultText; row["OrderID"] = testItem.OrderID; ds.Rows.Add(row); } }
public void CreateTestSystemItemControls(Guid classID, SpecInfo specInfo, Action <List <SpecItem> > callback = null) { this.classID = classID; this.specInfo = specInfo; this.callback = callback; var tempSetting = specInfo.TempSetting.Split(","); var wls = specInfo.CenterWavelenghs.Split(",").Select(q => q.CastTo(double.MinValue)).ToArray(); var testSystemGroups = BaseSettingsManager.Get <SystemGroupSetting>().GetTestGroupByProductClass(classID); flowLayoutPanel1.Visible = false; flowLayoutPanel1.Controls.Clear(); flowLayoutPanel1.SuspendLayout(); foreach (var order in testSystemGroups) { foreach (var testSystem in BaseSettingsManager.Get <SystemGroupSetting>().GetTestItemByGroup(order.TestGroupID)) { var testSystemItem = new UserControlTestSystemItem() { Name = string.Format("testSystemItem_{0:N}", testSystem.SystemID) }; testSystemItem.SetTestSystem(tempSetting, testSystem); flowLayoutPanel1.Controls.Add(testSystemItem); testSystemItem.SendToBack(); if (specInfo.SpecItems.Count < 1) { var settingString = FormatDefaultSetting(testSystem.DefaultSetting, wls, specInfo); testSystemItem.SetSetting(settingString); continue; } var testSpecItems = specInfo.SpecItems.Where(q => q.SystemID == testSystem.SystemID).ToList(); foreach (var item in testSpecItems) { testSystemItem.SetSetting(item.TestInfo); testSystemItem.SetSpec(Array.IndexOf(tempSetting, item.TestTemp), item.ComputeSetting.FromJsonString <Dictionary <int, ComputeSettingItem> >()); } } } flowLayoutPanel1.ResumeLayout(); flowLayoutPanel1.Visible = true; }
private void CreateTestInfoData(DataTable ds) { ds.Columns.Add("ItemName", Type.GetType("System.String")); ds.Columns.Add("ItemValue", Type.GetType("System.String")); ds.Rows.Add("序列号", testData.TestInfo.SN); ds.Rows.Add("钢管号", testData.CustomerSN); ds.Rows.Add("开始测试时间", testData.TestInfo.StartTestDateTime); ds.Rows.Add("结束测试时间", testData.TestInfo.EndTestDateTime); ds.Rows.Add("产品代码", testData.ProductInfo.ProductCode); ds.Rows.Add("产品名称", testData.ProductInfo.ProductName); ds.Rows.Add("测试工站", testData.StationInfo.StationName); ds.Rows.Add("工单", testData.WorkInfo.WorkOrderID); ds.Rows.Add("作业员", testData.WorkInfo.WorkInfoOperator); ds.Rows.Add("测试规格", testData.SpecInfo.SeqName); ds.Rows.Add("测试计算机", testData.WorkInfo.ClientName); var result = BaseSettingsManager.Get <ResultSettings>()[testData.TestInfo.TestResult]; ds.Rows.Add("测试结果", result == null ? testData.TestInfo.TestResult.ToString() : result.ResultText); }
private void loadPack(string packFileName) { string zipUriPrefix = "zip:///" + PathHelper.GetRelativePath(packFileName) + "?"; BaseSettingsManager <HotBabeSettings> tempManager = settingsManager.GetNewInstance(zipUriPrefix + "HotBabe.xml"); HotBabeSettings tempSettings = tempManager.LoadSettings(); settings.PropertyChanged -= settingsPropertyChanged; settings.AlwaysOnTop = tempSettings.AlwaysOnTop; settings.AutoRun = tempSettings.AutoRun; settings.ClickThrough = tempSettings.ClickThrough; settings.Left = tempSettings.Left; settings.Opacity = tempSettings.Opacity; settings.Top = tempSettings.Top; settings.UpdateInterval = tempSettings.UpdateInterval; settings.BlendImages = tempSettings.BlendImages; settings.HideOnFullscreen = tempSettings.HideOnFullscreen; settings.MonitorInfos.Clear(); settings.MonitorInfos.AddRange(tempSettings.MonitorInfos); foreach (ImageInfo info in tempSettings.ImageInfos) { if (!PathHelper.IsRooted(info.ImageFileName)) { info.ImageFileName = zipUriPrefix + info.ImageFileName; } } settings.ImageInfos.Clear(); settings.ImageInfos.AddRange(tempSettings.ImageInfos); if (!PathHelper.IsRooted(tempSettings.DefaultImageName)) { tempSettings.DefaultImageName = zipUriPrefix + tempSettings.DefaultImageName; } settings.DefaultImageName = tempSettings.DefaultImageName; settings.PropertyChanged += settingsPropertyChanged; saveSettings(); Refresh(settings); }
private void CreateTestSystemItemEditor() { var r = 0; foreach (var resultitem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult) { for (int i = 0; i < TempSetting.Length; i++) { if ((resultitem.ResultType == 3 || BindingTestSystem.TemperatureSetting == 1) && i > 0) { continue; } var temp = TempSetting[i]; if (string.IsNullOrEmpty(temp)) { continue; } var lbSpec = new Label() { Name = string.Format("lbSpec{0}_t{1}", resultitem.ResultID, i), AutoSize = true, Location = new Point(320 + 115 * i, 22 + 45 * r), Text = resultitem.ResultType == 3 ? resultitem.ResultName : string.Format("{0}{1}", resultitem.ResultName, TempSetting.Length > 1 ? "(" + temp + "℃)" : "") }; var tbSpec = new TextBox() { Name = string.Format("tbSpec{0}_t{1}", resultitem.ResultID, i), Size = new Size(100, 21), Location = new Point(320 + 115 * i, 40 + 45 * r), }; gbPanel.Controls.Add(lbSpec); gbPanel.Controls.Add(tbSpec); } r++; } }
private bool SaveToDataBase() { StringBuilder sbPath = new StringBuilder(); AddPath(sbPath, "TestInfo"); AddPath(sbPath, testInfo.StartTestDateTime.ToString("yyyyMM")); AddPath(sbPath, MeasurementJob.ProductInfo.ProductName); AddPath(sbPath, testInfo.SN); AddPath(sbPath, testInfo.StartTestDateTime.ToString("yyyyMMddHHmmss")); testInfo.TestSourceSetting = sbPath.ToString(); var tsource = new Dictionary <string, string>(); //归零值 for (int i = 0; i < 3; i++) { tsource[$"Reference{i}"] = MeasurementJob.ReferenceData.ToSerializableData(i); } //源数据 foreach (var item in BaseSettingsManager.Get <TestTypeSetting>()) { if (item.TestDataType == null) { continue; } var source = TestData.GetTestData(item.Name); if (source == null) { continue; } tsource[$"Source_{item.Name}"] = source.GetTestData().ToJsonString(); } return(BusinessLogic.Controller.ModifyTestInfo.SaveTestInfo(testInfo, tsource)); }
/// <summary> /// 测试组 /// </summary> /// <param name="tempIndex"></param> /// <param name="tempGroup"></param> private void EachTestGroups(int tempIndex, Dictionary <Guid, List <Guid> > tempGroup) { if (IsStop) { return; } var tempString = MeasurementJob.SpecData.TempSetting[tempIndex]; if (tempIndex > 0 && lastGroupResult >= BaseSettingsManager.Get <ResultSettings>().FakeResult) { foreach (var testTask in MeasurementTasks) { tipCallback?.Invoke(testTask.TestOrderID, 3, $"正在生成温度{tempString}数据", 0); } foreach (var testGroup in tempGroup) { var systemGroup = MeasurementJob.SpecData.GetTestGroup(testGroup.Key); foreach (var specItemID in testGroup.Value) { foreach (var testTask in MeasurementTasks) { //testTask.CreateFakeData(specItemID); var item = MeasurementJob.SpecData.GetWorkInfoSpecItem(specItemID); testCallback?.Invoke(testTask.StartTime, testTask.TestOrderID, item.PortSetting, item.SystemTypeID, item.SpecItemID, "-", "-", 1); } } } return; } foreach (var testGroup in tempGroup) { var systemGroup = MeasurementJob.SpecData.GetTestGroup(testGroup.Key); EachSpecItems(tempIndex, tempString, systemGroup, testGroup.Value); } }
private void GetTestSystemItemControlsSpecItems(List <SpecItem> newSpecItems) { var tempSetting = specInfo.TempSetting.Split(","); var testSystemGroups = BaseSettingsManager.Get <SystemGroupSetting>().GetTestGroupByProductClass(classID); var groups = SystemGroupSetting.GroupSystemByTempGroup(testSystemGroups); foreach (var group in groups) { //规格组 for (int temp = 0; temp < tempSetting.Length; temp++) { //温度 var tempstring = tempSetting[temp]; if (string.IsNullOrEmpty(tempstring)) { continue; } foreach (var systemGroup in group.Value) {//测试组 var list = new List <SpecItem>(); foreach (var testSystem in BaseSettingsManager.Get <SystemGroupSetting>().GetTestItemByGroup(systemGroup.TestGroupID)) {//测试指标 if (testSystem.TemperatureSetting != 0 && temp > 0) { continue; } var testSystemItemControl = GetTestSystemItemControl(testSystem.SystemID); if (testSystemItemControl == null) { continue; } var settings = testSystemItemControl.GetSetting(); if (settings == null || settings.Length < 1) { continue; } var specs = testSystemItemControl.GetSpec(temp); if (specs == null) { continue; } if (specs.Count < 1) { continue; } foreach (var setting in settings) { if (string.IsNullOrEmpty(setting)) { continue; } var olditem = specInfo.SpecItems.FirstOrDefault( q => q.SystemID == testSystem.SystemID && q.TestTemp == tempstring && q.TestInfo == setting ); if (olditem != null && (newSpecItems.Any(q => q.SpecItemID == olditem.SpecItemID) || list.Any(q => q.SpecItemID == olditem.SpecItemID))) { olditem = null; } list.Add( new SpecItem() { SpecItemID = olditem == null ? Guid.NewGuid() : olditem.SpecItemID, SeqID = specInfo.SeqID, SystemID = testSystem.SystemID, ItemName = MeasuringManager.GetSettingItemName(testSystem.DisplayName, setting, testSystem.PortSetting), TestTemp = tempstring, TestInfo = setting, ComputeSetting = specs.ToJsonString(), OrderID = list.Count + 1 }); } } /* * if (systemGroup.TestGroupTestType == "Point" || * systemGroup.TestGroupTestType == "PointPDL" || * systemGroup.TestGroupTestType == "RL") * { * list.Sort((x, y) => * { * var compare = x.TestInfo.CompareTo(y.TestInfo); * if (compare == 0) * compare = x.OrderID.CompareTo(y.OrderID); * return compare; * }); * } */ foreach (var item in list) { item.OrderID = newSpecItems.Count + 1; newSpecItems.Add(item); } } } } }
public void LoadData(Guid pTestGroupID, Guid pStationID, Action cback = null) { this.GetService <ModifyTestSystemGroup>().ExecuteAsync( c => c.GetData(pTestGroupID), (result) => { if (!result.Status) { AppFramework.Context.ShowError(result.Message); this.Close(); return; } callback = cback; if (pTestGroupID == Guid.Empty) { result.Data.ProductClassID = pStationID; this.Text = "添加测试分组"; } else { pStationID = result.Data.ProductClassID; this.Text = $"修改测试分组 - {result.Data.TestGroupName}"; } vm.Model.TestGroupID = result.Data.TestGroupID; vm.Model.TestGroupName = result.Data.TestGroupName; vm.Model.TestGroupText = result.Data.TestGroupText; vm.Model.OrderID = result.Data.OrderID; vm.Render(panelContent, new Padding(0, 15, 15, 0), "100%", true, (name, control) => { switch (name) { case "TestGroupSetting": var ds1 = (control as ComboBox).DataSource as BindingList <KeyValuePair <string, string> >; ds1.Add(new KeyValuePair <string, string>("0", "组内内容直接测试")); ds1.Add(new KeyValuePair <string, string>("1", "提示文本后测试")); vm.Model.TestGroupSetting = result.Data.TestGroupSetting; break; case "TestGroupTestType": var ds2 = (control as ComboBox).DataSource as BindingList <KeyValuePair <string, string> >; var source = BaseSettingsManager.Get <TestTypeSetting>(); foreach (var item in source.GetDataSource()) { ds2.Add(item); } vm.Model.TestGroupTestType = result.Data.TestGroupTestType; break; case "ProductClassID": var ds3 = (control as ComboBox).DataSource as BindingList <KeyValuePair <Guid, string> >; this.GetService <ModifyTestSystemGroup>().ExecuteAsync(c => c.GetProductClassDataSource(Guid.Empty, pStationID), (sourceClass) => { if (!sourceClass.Status) { return; } foreach (var item in sourceClass.Data) { ds3.Add(item); } vm.Model.ProductClassID = result.Data.ProductClassID; }); break; } }, null); }); }
public void AddTestInfoRow(WorkInfoSpecItem specItem) { var row = testItem.NewRow(); row["TestItemID"] = specItem.SpecItemID; row["TestItemName"] = specItem.ItemName; foreach (var resultItem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult) { if (!specItem.ComputeSetting.ContainsKey(resultItem.ResultID)) { row[string.Format("TestItemCompute{0}", resultItem.ResultID)] = "N/A"; } else { var computeItem = specItem.ComputeSetting[resultItem.ResultID]; row[string.Format("TestItemCompute{0}", resultItem.ResultID)] = string.IsNullOrEmpty(computeItem.ComputeValue) ? "未设置" : OperatorManager.GetOperator(computeItem.ComputeSign).GetDisplayString(computeItem.ComputeValue); } } row["TestItemPortSetting"] = MeasurementController.GetPortName(specItem.PortSetting); if (string.IsNullOrEmpty("specItem.TestTemp") || !specItem.TestTemp.IsNumeric()) { row["TestItemTemp"] = ""; } else { row["TestItemTemp"] = $"{specItem.TestTemp}℃"; } row["TestItemValue"] = ""; row["TestItemMaxValue"] = ""; row["TestItemMinValue"] = ""; row["TestItemLastValue"] = "-999"; row["TestItemStatus"] = -10; testItem.Rows.Add(row); var resultInfo = new ResultInfo() { TestInfoDataRow = row }; testReslut[specItem.SpecItemID] = resultInfo; var dgvResult = default(DataGridView); if (!dgvResults.TryGetValue(specItem.TestTemp, out dgvResult)) { return; } if (!specItem.TestSetting.IsDouble()) { return; } var wl = specItem.TestSetting.CastTo(1550D); var names = specItem.ItemName.Split(":"); var name = names.Length > 1 ? names[1] : names[0]; names = name.Split("@"); name = names[0]; var setting = TestPortSetting.Get(specItem.PortSetting); if (setting.ChannelID < 1 && name == "UL") { name = "IL"; } if (!dgvResult.Columns.Contains(name)) { dgvResult.Columns.Add(name, name); dgvResult.Columns[name].SortMode = DataGridViewColumnSortMode.NotSortable; } foreach (DataGridViewRow dataRow in dgvResult.Rows) { if (dataRow.Cells["Wavelength"].Value.ToString() == wl.ToString("F3") && dataRow.Cells["Port"].Value.ToString() == specItem.PortSetting.ToString()) { resultInfo.ResultViewCell = dataRow.Cells[name]; } } }
private void BindingTestItemButton() { pvTestItem.BindingButtonNoneOrManySelectedAction <Guid>( btAddTest, 0, (data) => { AppFramework.Context.LoadSubForm <FormTestSystemModify>( true, Size.Empty, Point.Empty, (o, args) => { var form = o as FormTestSystemModify; form.LoadData(Guid.Empty, selectedTestGroup, () => { NotificationCenter.Instance.PostNotification(pvTestItem); BaseSettingsManager.Clear <SystemGroupSetting>(); form.Close(); }); }); }); pvTestItem.BindingButtonOneSelectedAction <Guid>( btModifyTest, 0, (data) => { AppFramework.Context.LoadSubForm <FormTestSystemModify>( true, Size.Empty, Point.Empty, (o, args) => { var form = o as FormTestSystemModify; form.LoadData(data, selectedTestGroup, () => { NotificationCenter.Instance.PostNotification(pvTestItem); BaseSettingsManager.Clear <SystemGroupSetting>(); form.Close(); }); }); }, true); pvTestItem.BindingButtonManySelectedAction <Guid>( btDeleteTest, 0, (data) => { if (!AppFramework.Context.ShowConfirm($"是否删除选择{ModifyTestSystem.ItemName}? 这个操作不可恢复")) { return; } this.GetService <ModifyTestSystem>().ExecuteAsync( c => c.DeleteData(data), (result) => { if (!result.Status) { AppFramework.Context.ShowError(result.Message, result.Data); } else { AppFramework.Context.ShowAlert(result.Message, result.Data); NotificationCenter.Instance.PostNotification(pvTestItem); BaseSettingsManager.Clear <SystemGroupSetting>(); } }); }); }
public void LoadData(Guid pSpecItemID, SpecItem specitem, string tempSetting, Action <SpecItem> cback) { callback = cback; vm.Model.SpecItemID = specitem.SpecItemID; vm.Model.SeqID = specitem.SeqID; vm.Model.SystemID = specitem.SystemID; vm.Model.ItemName = specitem.ItemName; vm.Model.TestTemp = specitem.TestTemp; vm.Model.TestInfo = specitem.TestInfo; vm.Model.ComputeSetting = specitem.ComputeSetting; vm.Model.OrderID = specitem.OrderID; //设置窗体标题 if (pSpecItemID == Guid.Empty) { this.Text = $"添加{ModifySpecItem.ItemName}"; } else { this.Text = $"修改{ModifySpecItem.ItemName} - {specitem.ItemName}"; } var temps = tempSetting.Split(","); vm.Render(panelContent, new Padding(0, 15, 15, 0), "100%", true, (name, control) => { switch (name) { case "TestTemp": var ds1 = (control as ComboBox).DataSource as BindingList <KeyValuePair <string, string> >; foreach (var temp in temps) { if (string.IsNullOrEmpty(temp)) { continue; } ds1.Add(new KeyValuePair <string, string>(temp, temp)); } break; case "ItemName": control.Enabled = false; break; case "ComputeSetting": var data = vm.Model.ComputeSetting.FromJsonString <Dictionary <int, ComputeSettingItem> >(); if (data == null) { return; } control.Visible = false; var left = control.Left; var top = control.Top; cbSpec = new ComboBox() { FormattingEnabled = true, Location = new Point(left, top), Name = "cbSpec", Size = new Size(76, 20), ValueMember = "Key", DisplayMember = "Value", DataSource = new BindingCollection <KeyValuePair <string, string> >(OperatorManager.GetComputeDataSource()) }; panelContent.Controls.Add(cbSpec); top += 30; var r = 0; foreach (var resultitem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult) { var lbSpec = new Label() { Name = string.Format("lbSpec{0}", resultitem.ResultID), AutoSize = true, Location = new Point(left, top + 5 + 30 * r), Text = resultitem.ResultName }; var tbSpec = new TextBox() { Name = string.Format("tbSpec{0}", resultitem.ResultID), Size = new Size(100, 21), Location = new Point(left + 115, top + 30 * r), }; panelContent.Controls.Add(lbSpec); panelContent.Controls.Add(tbSpec); tbSpecs[resultitem.ResultID] = tbSpec; r++; } foreach (var item in data) { cbSpec.Text = item.Value.ComputeSign; if (tbSpecs.ContainsKey(item.Key)) { tbSpecs[item.Key].Text = item.Value.ComputeValue; } } break; } }, null); }
public bool SetData( TestInfoData data1, Dictionary <string, string> data2) { if (data1 == null) { ErrorString = "测试数据为空"; return(false); } tempSetting = data1.TestInfo.TempSetting.Split(","); if (data2 != null) { foreach (var item in data2) { exData.Add(item.Key, item.Value); } } testInfo = data1.TestInfo; classID = data1.ProductInfo.ProductClassID; var ports = BaseSettingsManager.Get <SystemGroupSetting>().GetPorts(classID); var types = new List <string>(); foreach (var source in data1.TestSources) { var type = source.SourceType; if (!BaseSettingsManager.Get <TestTypeSetting>().ContainsType(type)) { continue; } types.Add(type); } collection = new TestDataCollection(types.ToArray(), tempSetting, ports); foreach (var source in data1.TestSources) { var type = source.SourceType; if (!types.Contains(type)) { continue; } foreach (var tempData in source.SourceData) { var temp = tempData.Key; foreach (var portData in tempData.Value) { var port = portData.Key; var list = new SortedList <double, PointTestItem>(); foreach (var wlData in portData.Value) { var wl = wlData.Key; var item = wlData.Value; list.Add(wl, new PointTestItem(item)); } collection.Add(type, temp, port, list); } } } referenceData = new ReferenceData(Guid.Empty, false); for (int i = 0; i < data1.ReferenceData.Count; i++) { foreach (var portTemp in data1.ReferenceData[i]) { var port = portTemp.Key; foreach (var item in portTemp.Value) { var d = new PointTestItem(item.Value); referenceData.AddReference(i, port, d); } } } exData["sn"] = data1.TestInfo.SN; exData["csn"] = data1.CustomerSN; exData["workorder"] = data1.WorkInfo.WorkOrderID; exData["id"] = data1.WorkInfo.WorkOrderID; exData["workorderid"] = data1.WorkInfo.WorkOrderID; exData["productcode"] = data1.ProductInfo.ProductCode; exData["productname"] = data1.ProductInfo.ProductName; exData["stationname"] = data1.StationInfo.StationName; exData["operator"] = data1.WorkInfo.WorkInfoOperator; exData["room"] = tempSetting.Length > 0 ? tempSetting[0] : ""; exData["low"] = tempSetting.Length > 1 ? tempSetting[1] : ""; exData["high"] = tempSetting.Length > 2 ? tempSetting[2] : ""; exData["productremark"] = data1.ProductInfo.ProductRemark; var remarks = data1.ProductInfo.ProductRemark.Split("\r\n"); for (int i = 0; i < remarks.Length; i++) { exData[$"productremark[{i}]"] = remarks[i]; } return(true); }
private MeasurementTestResult Calculate(Guid specItemID, out WorkInfoSpecItem item) { item = MeasurementJob.SpecData.WorkInfoSpecItems.FirstOrDefault(q => q.SpecItemID == specItemID); if (item == null) { return(new MeasurementTestResult() { Result = -1, Message = "规格异常", Data = 0D }); } var testResult = MeasuringManager.Calculate( MeasurementJob.ReferenceData, TestData, item.SystemTypeID, item.TestGroupTestType, item.TestTemp, item.PortSetting, item.TestSetting ); if (testResult.Result < 1) { return(testResult); } if (testResult.Data == double.MinValue) { testResult.Result = -1; testResult.Message = "计算结果出错"; return(testResult); } testResult.Result = 0; foreach (var resultSetting in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult.OrderBy(q => q.ResultID)) { ComputeSettingItem computeItem = default(ComputeSettingItem); if (!item.ComputeSetting.TryGetValue(resultSetting.ResultID, out computeItem)) { testResult.Result = -1; testResult.Message = "规格判断标准设置错误"; return(testResult); } if (string.IsNullOrEmpty(computeItem.ComputeValue)) { continue; } if (OperatorManager.GetOperator(computeItem.ComputeSign).GetComputeResult(computeItem.ComputeValue, testResult.Data)) { testResult.Result = resultSetting.ResultID; testResult.Message = $"{item.ItemName} 通过"; } else { testResult.Message = "结果不符合规格"; } } return(testResult); }
public MeasurementJobSpec(SpecInfo specInfo, Guid classID) { SeqID = specInfo.SeqID; SeqName = specInfo.SeqName; CenterWavelenghs = specInfo.CenterWavelenghs.Split(',').Select(q => q.CastTo(1550D)).ToArray(); WavelenghStart = specInfo.WavelenghStart; WavelenghEnd = specInfo.WavelenghEnd; WavelenghStep = specInfo.WavelenghStep; TempSetting = specInfo.TempSetting.Split(','); SeqData = specInfo.SeqData; CreateTime = specInfo.CreateTime; UpdateTime = specInfo.UpdateTime; SeqVersion = specInfo.SeqVersion; WorkInfoSpecItems = new List <WorkInfoSpecItem>(); TestLists = new List <Dictionary <int, Dictionary <Guid, List <Guid> > > >(); var groupSetting = BaseSettingsManager.Get <SystemGroupSetting>(); TestSystemGroups = groupSetting.GetTestGroupByProductClass(classID).OrderBy(q => q.OrderID).ToList(); Ports = groupSetting.GetPorts(classID); foreach (var item in specInfo.SpecItems) { var systemItem = groupSetting.GetTestSystemItem(item.SystemID); if (systemItem == null) { continue; } var systemGroup = TestSystemGroups.FirstOrDefault(q => q.TestGroupID == systemItem.TestGroupID); if (systemGroup == null) { continue; } int tempIndex = Array.IndexOf(TempSetting, item.TestTemp); WorkInfoSpecItems.Add( new WorkInfoSpecItem() { SpecItemID = item.SpecItemID, TestGroupID = systemGroup.TestGroupID, TestGroupTestType = systemGroup.TestGroupTestType, SystemID = item.SystemID, SystemName = systemItem.SystemName, SystemTypeID = systemItem.SystemTypeID, PortSetting = systemItem.PortSetting, TemperatureSetting = systemItem.TemperatureSetting, ItemName = item.ItemName, TestTemp = item.TestTemp, TestTempOrder = tempIndex, TestSetting = item.TestInfo, ComputeSetting = item.ComputeSetting.FromJsonString <Dictionary <int, ComputeSettingItem> >(), OrderID = item.OrderID }); } WorkInfoSpecItems.Sort((a, b) => a.OrderID.CompareTo(b.OrderID)); var groups = SystemGroupSetting.GroupSystemByTempGroup(TestSystemGroups); foreach (var group in groups) { var groupItems = new Dictionary <int, Dictionary <Guid, List <Guid> > >(); for (int temp = 0; temp < TempSetting.Length; temp++) { var tempData = new Dictionary <Guid, List <Guid> >(); foreach (var systemGroup in group.Value) { var items = WorkInfoSpecItems.Where(q => q.TestGroupID == systemGroup.TestGroupID).ToList(); if (items.Count < 1) { continue; } var tempList = items.Where(q => q.TestTempOrder == temp).Select(q => q.SpecItemID).ToList(); if (tempList.Count < 1) { continue; } tempData[systemGroup.TestGroupID] = new List <Guid>(tempList); } if (tempData.Count > 0) { groupItems[temp] = tempData; } } if (groupItems.Count > 0) { TestLists.Add(groupItems); } } }
private void LoadInterface(Guid pSeqID, SpecInfo data) { //设置窗体标题 if (pSeqID == Guid.Empty) { this.Text = $"添加{ModifySpecInfo.ItemName}"; if (string.IsNullOrEmpty(data.TempSetting)) { data.TempSetting = "25,,"; } if (string.IsNullOrEmpty(data.CenterWavelenghs)) { data.CenterWavelenghs = "1526,1550,1566"; } data.WavelenghStart = 1260D; data.WavelenghEnd = 1350D; data.WavelenghStep = 0.1D; specItems = data.SpecItems; } else { this.Text = $"修改{ModifySpecInfo.ItemName} - {data.SeqName}"; comboBox3.Enabled = false; comboBox1.Enabled = false; comboBox2.Enabled = false; specItems = data.SpecItems; } dtSpecItem = new DataTable(); dtSpecItem.Columns.Add("TestItemID", Type.GetType("System.String")); dtSpecItem.Columns.Add("TestItemName", Type.GetType("System.String")); dtSpecItem.Columns.Add("TestItemTemp", Type.GetType("System.String")); dtSpecItem.Columns.Add("TestItemPort", Type.GetType("System.String")); dtSpecItem.Columns.Add("TestItemInfo", Type.GetType("System.String")); foreach (var resultItem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult) { dtSpecItem.Columns.Add(string.Format("TestItemCompute{0}", resultItem.ResultID), Type.GetType("System.String")); } dtSpecItem.Columns.Add("TestItemOrder", Type.GetType("System.String")); dgvSeq.DataSource = dtSpecItem; dgvSeq.Columns["TestItemID"].Visible = false; dgvSeq.Columns["TestItemName"].HeaderText = "测试项目"; dgvSeq.Columns["TestItemTemp"].HeaderText = "测试温度"; dgvSeq.Columns["TestItemPort"].HeaderText = "测试端口"; dgvSeq.Columns["TestItemInfo"].HeaderText = "测试设置"; foreach (var resultItem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult) { dgvSeq.Columns[string.Format("TestItemCompute{0}", resultItem.ResultID)].HeaderText = resultItem.ResultName; } dgvSeq.Columns["TestItemOrder"].HeaderText = "排序"; vm.Model.SeqID = data.SeqID; vm.Model.SeqName = data.SeqName; vm.Model.ProductID = data.ProductID; vm.Model.StationID = data.StationID; vm.Model.CenterWavelenghs = data.CenterWavelenghs; vm.Model.WavelenghStart = data.WavelenghStart; vm.Model.WavelenghEnd = data.WavelenghEnd; vm.Model.WavelenghStep = data.WavelenghStep; vm.Model.TempSetting = data.TempSetting; vm.Model.SeqData = data.SeqData; vm.Model.CreateTime = data.CreateTime; vm.Model.UpdateTime = data.UpdateTime; vm.Model.SeqVersion = data.SeqVersion; vm.Model.SeqStatus = data.SeqStatus; if (pSeqID == Guid.Empty) { vm.Model.TempSetting = "25,,"; } userControlTempSettting1.SetSetting(0, "常温", "低温", "高温"); userControlTempSettting1.SetValue(vm.Model.TempSetting); vm.LabelFor(label6, m => m.CenterWavelenghs); vm.EditorFor(textBox3, m => m.CenterWavelenghs, c => c.Text); vm.LabelFor(label5, m => m.WavelenghStart); vm.EditorFor(numericUpDown1, m => m.WavelenghStart, c => c.Value); vm.LabelFor(label7, m => m.WavelenghEnd); vm.EditorFor(numericUpDown2, m => m.WavelenghEnd, c => c.Value); vm.LabelFor(label8, m => m.WavelenghStep); vm.EditorFor(numericUpDown3, m => m.WavelenghStep, c => c.Value); LoadSpecItems(); if (!Framework.MeasurementSystemSetting.SystemData.Setting.Profile.EnabledAudit) { vm.Model.SeqStatus = 1; } else { vm.Model.SeqStatus = 0; } label4.Text = "产品类型"; var ds2 = new BindingList <KeyValuePair <Guid, string> >(); var ds3 = new BindingList <ProductInfo>(); comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; comboBox1.BindingDataSource(ds2); comboBox2.DropDownStyle = ComboBoxStyle.DropDownList; comboBox2.BindingDataSource(ds3, "ProductID", "ProductCode"); vm.LabelFor(label1, m => m.SeqName); vm.EditorFor(textBox1, m => m.SeqName, c => c.Text); vm.LabelFor(label2, m => m.StationID); vm.EditorFor(comboBox1, m => m.StationID, c => c.SelectedValue); vm.LabelFor(label3, m => m.ProductID); vm.EditorFor(comboBox2, m => m.ProductID, c => c.SelectedValue); vm.LabelFor(label3, m => m.ProductID); vm.EditorFor(comboBox2, m => m.ProductID, c => c.SelectedValue); if (pSeqID == Guid.Empty) { comboBox3.SelectedValueChanged += (s, e) => { var typeID = Guid.Empty; if (comboBox3.SelectedValue != null) { typeID = comboBox3.SelectedValue.CastTo(Guid.Empty); } LoadProudctInfo(typeID, Guid.Empty, Guid.Empty); LoadStation(typeID, Guid.Empty, Guid.Empty); }; comboBox2.SelectedValueChanged += (s, e) => { var productInfo = default(ProductInfo); if (comboBox2.SelectedItem != null) { productInfo = comboBox2.SelectedItem as ProductInfo; } if (productInfo == null) { textBox2.Text = ""; return; } textBox2.Text = productInfo.ProductName; classID = productInfo.ProductClassID; }; } LoadProductType(pSeqID, data.StationID, data.ProductID); }
public Dictionary <int, ComputeSettingItem> GetSpec(int temp) { var result = new Dictionary <int, ComputeSettingItem>(); if (temp < 0 || temp > TempSetting.Length) { throw new Exception("温度设置错误"); } var tempString = TempSetting[temp]; if (string.IsNullOrEmpty(tempString)) { return(result); } if (cbNoCheck.Checked) { foreach (var resultitem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult) { var tbSpec = GetSpecTextBox(resultitem.ResultID, temp); result[resultitem.ResultID] = new ComputeSettingItem() { ComputeSign = "≥,≤", ComputeValue = "-10086,10086" }; } return(result); } foreach (var resultitem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult) { var tbSpec = GetSpecTextBox(resultitem.ResultID, temp); if (resultitem.ResultType == 1 && (tbSpec == null || string.IsNullOrEmpty(tbSpec.Text))) { return(new Dictionary <int, ComputeSettingItem>()); } var spec = cbSpec.SelectedValue; if (spec == null) { cbSpec.Focus(); throw new Exception("请选择计算符号"); } if (tbSpec != null && !string.IsNullOrEmpty(tbSpec.Text)) { var specCompute = OperatorManager.GetOperator(spec.ToString()); if (!specCompute.Validation(tbSpec.Text)) { tbSpec.Focus(); throw new Exception(string.Format("{0} 规格设置 {1} 格式错误,请检查。", BindingTestSystem.SystemName, tbSpec.Text)); } } result[resultitem.ResultID] = new ComputeSettingItem() { ComputeSign = spec.ToString(), ComputeValue = tbSpec == null ? "" : tbSpec.Text }; } return(result); }
///<summary> /// Default constructor ///</summary> ///<param name="view">the view for the controller</param> ///<param name="settingsManager">the manager used to load/save settings</param> public MainController(IMainView view, BaseSettingsManager <HotBabeSettings> settingsManager) { this.settingsManager = settingsManager; setView(view); initialize(); }
private string GetTagValue(string tag) { var temp = 0; var round = -1; var port = int.MinValue; var dataType = 0; var tagString = tag; var stringTemp = ""; tagString = GetRound(tagString, out round); tagString = GetTemperature(tagString, out temp); tagString = GetPort(tagString, out port); tagString = GetDataType(tagString, out dataType); if (dataType == int.MinValue) { return(tagString); } if (temp > tempSetting.Length) { return(""); } else if (temp >= 0) { stringTemp = tempSetting[temp]; } //测试项目有相同项目 var testedData = testInfo.TestItems.Where( q => q.ItemName == tagString && (string.IsNullOrEmpty(stringTemp) || q.TestTemp == stringTemp) && (port == int.MinValue || BaseSettingsManager.Get <SystemGroupSetting>().GetTestSystemItem(q.SystemID).PortSetting == port) ).ToList(); if (testedData.Count > 0) { return(GetTestValue(testedData, dataType, round)); } var setting = ""; var tagItem = GetSetting(tagString, out setting); var testSystem = BaseSettingsManager.Get <SystemGroupSetting>().GetTestSystemItem(classID, tagItem, port); if (testSystem == null) { return(""); } //测试项目设置符合条件 testedData = testInfo.TestItems.Where( q => q.SystemID == testSystem.SystemID && (string.IsNullOrEmpty(setting) || q.TestInfo == setting) && (string.IsNullOrEmpty(stringTemp) || q.TestTemp == stringTemp)).ToList(); if (testedData != null) { return(GetTestValue(testedData, dataType, round)); } //重新计算结果 try { var testGroup = BaseSettingsManager.Get <SystemGroupSetting>().GetTestSystemGroup(testSystem.TestGroupID); if (testGroup == null) { return(""); } var value = MeasuringManager.Calculate(referenceData, collection, testSystem.SystemTypeID, testGroup.TestGroupTestType, stringTemp, testSystem.PortSetting, setting); if (value.Result > -1 && value.Data != double.MinValue) { return(round < 0 ? value.Data.ToString() : Math.Round(value.Data, round).ToString()); } } catch (Exception ex) { Incht.Common.Log.LogHelper.WriteLog("TemplateData", ex); } return(""); }
public void LoadData(Guid id) { var text = this.Text; this.Text = "正在载入数据,请稍候..."; this.GetService <ModifyTestInfo>().ExecuteAsync(c => c.GetTestInfo(id), (result) => { if (!result.Status || result.Data == null) { AppFramework.Context.ShowError(result.Message); return; } testData = result.Data; var dsTestItems = new DataTable(); var dsTestInfo = new DataTable(); var dsPointSource = new DataTable(); var dsPDLSource = new DataTable(); var dsRLSource = new DataTable(); var dsReferencecs = new DataTable(); System.Threading.ThreadPool.QueueUserWorkItem((O) => { text = string.Format("{0} {1}", text, testData.TestInfo.SN); CreateTestInfoData(dsTestInfo); CreateTestItemsData(dsTestItems); CreateRefernececsData(dsReferencecs); CreateSourcData("Point", dsPointSource); CreateSourcData("PointPDL", dsPDLSource); CreateSourcData("RL", dsRLSource); while (this.IsNormalState() && !loaded) { System.Threading.Thread.Sleep(10); } if (!this.IsNormalState()) { return; } this.Invoke(new MethodInvoker(delegate { dgvTestInfo.DataSource = dsTestInfo; dgvTestInfo.Columns["ItemName"].HeaderText = "项目"; dgvTestInfo.Columns["ItemValue"].HeaderText = "结果"; dgvTestItems.DataSource = dsTestItems; dgvTestItems.Columns["TestItemID"].Visible = false; dgvTestItems.Columns["TestID"].Visible = false; dgvTestItems.Columns["SystemID"].Visible = false; dgvTestItems.Columns["ItemName"].HeaderText = "项目"; dgvTestItems.Columns["TestTemp"].HeaderText = "温度"; dgvTestItems.Columns["TestSetting"].HeaderText = "设置"; foreach (var resultItem in BaseSettingsManager.Get <ResultSettings>().NeedSettingResult) { dgvTestItems.Columns[$"TestItemCompute{resultItem.ResultID}"].HeaderText = resultItem.ResultName; } dgvTestItems.Columns["ItemValue"].HeaderText = "值"; dgvTestItems.Columns["ItemResult"].Visible = false; dgvTestItems.Columns["ItemResultString"].HeaderText = "结果"; dgvTestItems.Columns["OrderID"].HeaderText = "排序"; dgvReferencecs.DataSource = dsReferencecs; dgvReferencecs.Columns["Type"].HeaderText = "分类"; dgvReferencecs.Columns["Port"].HeaderText = "端口"; dgvReferencecs.Columns["WaveLength"].HeaderText = "波长"; dgvReferencecs.Columns["Power"].HeaderText = "功率"; dgvReferencecs.Columns["IL"].Visible = false; dgvReferencecs.Columns["MaxPower"].Visible = false; dgvReferencecs.Columns["MinPower"].Visible = false; dgvReferencecs.Columns["AvgPower"].Visible = false; dgvPointSource.DataSource = dsPointSource; dgvPointSource.Columns["Temperature"].HeaderText = "温度"; dgvPointSource.Columns["Port"].HeaderText = "端口"; dgvPointSource.Columns["WaveLength"].HeaderText = "波长"; dgvPointSource.Columns["Power"].HeaderText = "功率"; dgvPointSource.Columns["IL"].HeaderText = "插损"; dgvPointSource.Columns["MaxPower"].Visible = false; dgvPointSource.Columns["MinPower"].Visible = false; dgvPointSource.Columns["AvgPower"].Visible = false; dgvPDLSource.DataSource = dsPDLSource; dgvPDLSource.Columns["Temperature"].HeaderText = "温度"; dgvPDLSource.Columns["Port"].HeaderText = "端口"; dgvPDLSource.Columns["WaveLength"].HeaderText = "波长"; dgvPDLSource.Columns["Power"].Visible = false; dgvPDLSource.Columns["IL"].HeaderText = "插损"; dgvPDLSource.Columns["MaxPower"].HeaderText = "最大功率"; dgvPDLSource.Columns["MinPower"].HeaderText = "最小功率"; dgvPDLSource.Columns["AvgPower"].Visible = false; dgvRLSource.DataSource = dsRLSource; dgvRLSource.Columns["Temperature"].HeaderText = "温度"; dgvRLSource.Columns["Port"].HeaderText = "端口"; dgvRLSource.Columns["WaveLength"].HeaderText = "波长"; dgvRLSource.Columns["Power"].HeaderText = "读取功率"; dgvRLSource.Columns["IL"].HeaderText = "实际功率"; dgvRLSource.Columns["MaxPower"].Visible = false; dgvRLSource.Columns["MinPower"].Visible = false; dgvRLSource.Columns["AvgPower"].Visible = false; this.Text = text; })); }); }); }
///<summary> /// Default constructor ///</summary> ///<param name="view">the view for the controller</param> ///<param name="settingsManager">the manager used to load/save settings</param> public SettingsEditorController(ISettingsEditorView view, BaseSettingsManager <HotBabeSettings> settingsManager) { _view = view; _settingsManager = settingsManager; }
private void btSave_Click(object sender, EventArgs e) { var computeSetting = new Dictionary <int, ComputeSettingItem>(); var sign = cbSpec.SelectedValue; if (sign == null) { AppFramework.Context.ShowError("请选择规格符号!"); return; } foreach (var item in tbSpecs) { var value = item.Value.Text; var specCompute = OperatorManager.GetOperator(sign.ToString()); if (!specCompute.Validation(value)) { AppFramework.Context.ShowError("规格设置格式错误,请检查。"); return; } computeSetting[item.Key] = new ComputeSettingItem() { ComputeSign = sign.ToString(), ComputeValue = value }; } vm.Model.ComputeSetting = computeSetting.ToJsonString(); var testSystem = BaseSettingsManager.Get <SystemGroupSetting>().GetTestSystemItem(vm.Model.SystemID); if (testSystem == null) { AppFramework.Context.ShowError("测试系统不存在!"); return; } var errroString = ""; if (!MeasuringManager.CheckSetting(testSystem.SystemTypeID, vm.Model.TestInfo, out errroString)) { AppFramework.Context.ShowError(errroString); return; } vm.Model.ItemName = MeasuringManager.GetSettingItemName(testSystem.DisplayName, vm.Model.TestInfo, testSystem.PortSetting); var validate = vm.Validate(); if (validate.HasError) { validate.ShowErrorMessage("保存失败"); return; } var specitem = new SpecItem(); specitem.SpecItemID = vm.Model.SpecItemID; specitem.SeqID = vm.Model.SeqID; specitem.SystemID = vm.Model.SystemID; specitem.ItemName = vm.Model.ItemName; specitem.TestTemp = vm.Model.TestTemp; specitem.TestInfo = vm.Model.TestInfo; specitem.ComputeSetting = vm.Model.ComputeSetting; specitem.OrderID = vm.Model.OrderID; AppFramework.Context.ShowAlert("更新成功", "更新项目"); callback?.Invoke(specitem); this.Close(); }
private void BindingButton() { pvDataGrid.BindingButtonNoneOrManySelectedAction <int>( btAdd, 0, (data) => { AppFramework.Context.LoadSubForm <FormResultSettingModify>( true, Size.Empty, Point.Empty, (o, args) => { var form = o as FormResultSettingModify; form.LoadData(int.MinValue, int.MinValue, () => { NotificationCenter.Instance.PostNotification(pvDataGrid); BaseSettingsManager.Clear <ResultSettings>(); form.Close(); }); }); }); pvDataGrid.BindingButtonOneSelectedAction <int>( btModify, 0, (data) => { AppFramework.Context.LoadSubForm <FormResultSettingModify>( true, Size.Empty, Point.Empty, (o, args) => { var form = o as FormResultSettingModify; form.LoadData(data, int.MinValue, () => { NotificationCenter.Instance.PostNotification(pvDataGrid); BaseSettingsManager.Clear <ResultSettings>(); form.Close(); }); }); }, true); pvDataGrid.BindingButtonManySelectedAction <int>( btDelete, 0, (data) => { if (data.Contains(-1) || data.Contains(0) || data.Contains(1)) { AppFramework.Context.ShowError("不能删除默认的结果分级"); return; } if (!AppFramework.Context.ShowConfirm($"是否删除选中的 {ModifyResultSetting.ItemName} ,这个操作不可恢复")) { return; } this.GetService <ModifyResultSetting>().ExecuteAsync( c => c.DeleteData(data), (result) => { if (!result.Status) { AppFramework.Context.ShowError(result.Message, result.Data); } else { AppFramework.Context.ShowAlert(result.Message, result.Data); NotificationCenter.Instance.PostNotification(pvDataGrid); BaseSettingsManager.Clear <ResultSettings>(); } }); }); }
private void SaveAction() { var dict = new Dictionary <int, string>(); var result = int.MinValue; var saved = true; for (int i = 0; i < MeasurementTasks.Count; i++) { dict[MeasurementTasks[i].TestOrderID] = MeasurementTasks[i].TestSN; if (!MeasurementTasks[i].Save()) { ShowMessage(3, $"保存{MeasurementTasks[i].TestSN}数据失败"); saved = false; } var testResult = MeasurementTasks[i].TestResult; if (testResult > 0) { PassCount += 1; } else { FailCount += 1; } result = Math.Max(result, testResult); var resultInfo = BaseSettingsManager.Get <ResultSettings>()[result]; var resultText = IsStop ? "手动停止测试" : resultInfo.ResultText; if (!saved) { resultText += ", 保存数据失败"; tipCallback?.Invoke(i, 2, resultText, 0); } else { tipCallback?.Invoke(i, result > 0 ? 1 : 2, resultText, 0); } } if (!autoTest || IsStop || DateTime.Now > stopTime) { return; } var elapsed = (intervalTime * 60) - stopwatch.Elapsed.TotalSeconds; while (elapsed >= 0) { if (IsStop) { return; } statusCallback?.Invoke($"等待{Math.Ceiling(elapsed / 60)}分后测试"); System.Threading.Thread.Sleep(1000); elapsed = (intervalTime * 60) - stopwatch.Elapsed.TotalSeconds; } statusCallback?.Invoke("准备下一次测试"); if (IsStop) { return; } CreateTesk(dict); ProcessIndex = 0; TestCount++; }