public void ButtonNext_Click(object sender, RoutedEventArgs e)
        {
            // 将数据保存到文件
            try
            {
                if (Check())
                {
                    if (null == _item)
                    {// 这属于新添加
                        _item = new DYGSZItemPara();
                        Global.gszItems.Add(_item);
                    }
                    if (sender == null && e == null)
                    {
                        _item.Name     = _GSZItemNameType[0].ToString();                     //项目名称
                        _item.Unit     = _GSZItemNameType[3].ToString();                     //项目检测单位
                        _item.HintStr  = _GSZItemNameType[4].ToString();                     //简要提示:新添加实验--注释
                        _item.Password = _GSZItemNameType[5].ToString();                     //密码
                        Int32.TryParse(_GSZItemNameType[6].ToString(), out _item.SampleNum); //样品编号
                        //Int32.TryParse(JTJItemNameType[9].ToString(), out item.Wave);//波长

                        //检测方法选择
                        _item.Method      = Convert.ToInt32(_GSZItemNameType[12].ToString());
                        _item.Hole[0].Use = Convert.ToBoolean(_GSZItemNameType[8].ToString());
                        _item.Hole[1].Use = Convert.ToBoolean(_GSZItemNameType[9].ToString());
                        _item.Hole[2].Use = true;
                        _item.Hole[3].Use = true;

                        //item.InvalidC = Convert.ToInt32(JTJItemNameType[7].ToString());
                    }
                    else
                    {
                        _item.Name     = TextBoxItemName.Text;
                        _item.Password = TextBoxPassword.Text;
                        _item.HintStr  = TextBoxHintStr.Text;
                        Int32.TryParse(TextBoxSampleNum.Text, out _item.SampleNum);
                        _item.Unit = TextBoxUnit.Text;

                        List <CheckBox> listCheckBoxes = UIUtils.GetChildObjects <CheckBox>(StackPanelHole, typeof(CheckBox));
                        for (int i = 0; i < Global.deviceHole.SxtCount; ++i)
                        {
                            _item.Hole[i].Use = (bool)listCheckBoxes[i].IsChecked;
                        }

                        _item.Method = ComboBoxMethod.SelectedIndex;
                    }
                    if (0 == _item.Method)
                    {
                        Double.TryParse(TextBoxDXPlusT.Text, out _item.dx.PlusT);
                        Double.TryParse(TextBoxDXMinusT.Text, out _item.dx.MinusT);
                        _item.dx.RGBSelPlus   = ComboBoxDXRGBSelPlus.SelectedIndex;
                        _item.dx.RGBSelMinus  = ComboBoxDXRGBSelMinus.SelectedIndex;
                        _item.dx.ComparePlus  = ComboBoxDXComparePlus.SelectedIndex;
                        _item.dx.CompareMinus = ComboBoxDXCompareMinus.SelectedIndex;
                    }
                    else if (1 == _item.Method)
                    {
                        _item.dl.RGBSel = ComboBoxDLRGBSel.SelectedIndex;
                        Double.TryParse(TextBoxDLA0.Text, out _item.dl.A0);
                        Double.TryParse(TextBoxDLA1.Text, out _item.dl.A1);
                        Double.TryParse(TextBoxDLA2.Text, out _item.dl.A2);
                        Double.TryParse(TextBoxDLA3.Text, out _item.dl.A3);
                        Double.TryParse(TextBoxDLB0.Text, out _item.dl.B0);
                        Double.TryParse(TextBoxDLB1.Text, out _item.dl.B1);
                        Double.TryParse(TextBoxDLLimitL.Text, out _item.dl.LimitL);
                        Double.TryParse(TextBoxDLLimitH.Text, out _item.dl.LimitH);
                    }
                    Global.SerializeToFile(Global.gszItems, Global.gszItemsFile);
                    _isClose  = true;
                    _isUpdate = false;
                    try { this.Close(); }
                    catch (Exception) { }
                }
                else
                {
                    _isClose = false;
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
            }
        }
Exemplo n.º 2
0
        private GSZResult CalGSZFResult(double[] rgb, DYGSZItemPara mItem)
        {
            GSZResult gszResult = new GSZResult();
            double    a = 0, v = 0, f, GSZFppb;
            double    r, g, b;

            r = rgb[0];
            g = rgb[1];
            b = rgb[2];

            if (DYGSZItemPara.METHOD_DL == mItem.Method)
            {   // 定量
                switch (mItem.dl.RGBSel)
                {
                case 0:
                    a = r;
                    break;

                case 1:
                    a = g;
                    break;

                default:
                    a = b;
                    break;
                }

                f                 = mItem.dl.A0 + mItem.dl.A1 * a + mItem.dl.A2 * a * a + mItem.dl.A3 * a * a * a;
                f                 = mItem.dl.B0 * f + mItem.dl.B1;
                GSZFppb           = f;
                gszResult.density = GSZFppb;
                if ((GSZFppb >= mItem.dl.LimitH) && (0 != mItem.dl.LimitH))
                {
                    gszResult.result = GSZResult.GSZF_STAT_PLUS;
                }
                else if ((GSZFppb <= mItem.dl.LimitL) && (0 != mItem.dl.LimitL))
                {
                    gszResult.result = GSZResult.GSZF_STAT_PLUS;
                }
                else
                {
                    gszResult.result = GSZResult.GSZF_STAT_MINUS;
                }

                return(gszResult);
            }
            else
            {   // 定性 阳性
                switch (mItem.dx.RGBSelPlus)
                {
                case 0:
                    v = r;
                    break;

                case 1:
                    v = g;
                    break;

                case 2:
                    v = b;
                    break;
                }
                if ((0 == mItem.dx.ComparePlus) && (v >= mItem.dx.PlusT))
                {
                    gszResult.result = GSZResult.GSZF_STAT_PLUS;
                    return(gszResult);
                }
                else if ((1 == mItem.dx.ComparePlus) && (v < mItem.dx.PlusT))
                {
                    gszResult.result = GSZResult.GSZF_STAT_PLUS;
                    return(gszResult);
                }

                // 定性 阴性
                switch (mItem.dx.RGBSelMinus)
                {
                case 0:
                    v = r;
                    break;

                case 1:
                    v = g;
                    break;

                case 2:
                    v = b;
                    break;
                }
                if ((0 == mItem.dx.CompareMinus) && (v >= mItem.dx.MinusT))
                {
                    gszResult.result = GSZResult.GSZF_STAT_MINUS;
                    return(gszResult);
                }
                else if ((1 == mItem.dx.CompareMinus) && (v < mItem.dx.MinusT))
                {
                    gszResult.result = GSZResult.GSZF_STAT_MINUS;
                    return(gszResult);
                }
            }
            return(gszResult);
        }