コード例 #1
0
ファイル: Program.cs プロジェクト: rusdinasir/HotBabeDotnet
// 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();
        }
コード例 #2
0
        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];
            }
        }
コード例 #3
0
        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;
        }
コード例 #4
0
 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;
             }
         }
     }
 }
コード例 #5
0
ファイル: FormQueryDetail.cs プロジェクト: AbnerTisa/Yhgd
        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);
            }
        }
コード例 #6
0
        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;
        }
コード例 #7
0
ファイル: FormQueryDetail.cs プロジェクト: AbnerTisa/Yhgd
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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++;
            }
        }
コード例 #10
0
        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));
        }
コード例 #11
0
        /// <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);
            }
        }
コード例 #12
0
        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);
                        }
                    }
                }
            }
        }
コード例 #13
0
        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);
            });
        }
コード例 #14
0
        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];
                }
            }
        }
コード例 #15
0
        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>();
                    }
                });
            });
        }
コード例 #16
0
        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);
        }
コード例 #17
0
ファイル: TemplateData.cs プロジェクト: AbnerTisa/Yhgd
        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);
        }
コード例 #18
0
        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);
        }
コード例 #19
0
        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);
                }
            }
        }
コード例 #20
0
        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);
        }
コード例 #21
0
        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);
        }
コード例 #22
0
 ///<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();
 }
コード例 #23
0
ファイル: TemplateData.cs プロジェクト: AbnerTisa/Yhgd
        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("");
        }
コード例 #24
0
ファイル: FormQueryDetail.cs プロジェクト: AbnerTisa/Yhgd
        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;
                    }));
                });
            });
        }
コード例 #25
0
 ///<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;
 }
コード例 #26
0
        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();
        }
コード例 #27
0
        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>();
                    }
                });
            });
        }
コード例 #28
0
        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++;
        }