Beispiel #1
0
        private void btnSaveNewProtocol_Click(object sender, EventArgs e)
        {
            int myStatus = 0;

            string myNewProtocolName = txtNewProtocolName.Text;

            string myErrorMessage = "";

            string mySelectedItemValue = "";

            if (myNewProtocolName.Length > 0)
            {
                if (!gParenetWindow.gParentWindow.gDictProtocolScanParameters.ContainsKey(myNewProtocolName))
                {
                    #region Write Back Protocol Name/Path/Date

                    gScanParameterXmlTemplate.ModifyProtocolName(myNewProtocolName);
                    gScanParameterXmlTemplate.ModifyProtocolPath(gRootDirectory + myNewProtocolName + ".xml");
                    gScanParameterXmlTemplate.ModifyProtocolDate(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());

                    #endregion

                    #region Write Back Pixel Per Row & Pixel Per Col

                    //Check if a new value is selected
                    if (cbboxArraySize.SelectedItem != null)
                    {
                        mySelectedItemValue = cbboxArraySize.SelectedItem.ToString();

                        if (mySelectedItemValue.Length <= 0)
                        {
                            //Correct value is selected
                            myErrorMessage += "Please select array size";

                            myStatus = gkecInvalidValue;
                        }
                        else
                        {
                            //The format is rowNo x col
                            //After split the first item will be row and the second will be column
                            string[] myPixelSettings = cbboxArraySize.SelectedItem.ToString().Split('x');

                            if (myPixelSettings.Length != 2)
                            {
                                myErrorMessage += "ArraySize is wrong,";
                            }
                            else
                            {
                                gScanParameterXmlTemplate.ModifyParameter(cProtocolParameter.gkPixelNoPerRow, myPixelSettings[0]);

                                gScanParameterXmlTemplate.ModifyParameter(cProtocolParameter.gkPixelNoPerCol, myPixelSettings[1]);
                            }
                        }
                    }
                    else
                    {
                        //Will use the default one
                    }

                    #endregion

                    #region Write Back Trigger Type/Value

                    mySelectedItemValue = cbboxPRPATriggerType.SelectedItem.ToString();

                    if (mySelectedItemValue.Length <= 0)
                    {
                        myErrorMessage += "Please select trigger type(请选择触发条件)";

                        myStatus = gkecInvalidValue;
                    }
                    else
                    {
                        string myTriggerValue = txtPRPATriggerValue.Text.ToString();

                        if (mySelectedItemValue.ToLower() == cScanParameters.eScanTriggerType.TotalEventCountTrigger.ToString().ToLower())
                        {
                            gScanParameterXmlTemplate.ModifyParameter(cProtocolParameter.gkTriggerType, mySelectedItemValue);

                            if (myTriggerValue.Length <= 0)
                            {
                                myErrorMessage += "Please enter trigger value(请添加触发值)";

                                myStatus = gkecInvalidValue;
                            }
                            else
                            {
                                gScanParameterXmlTemplate.ModifyParameter(cProtocolParameter.gkTotalEventCount, myTriggerValue);
                            }
                        }
                        else if (mySelectedItemValue.ToLower() == cScanParameters.eScanTriggerType.SinglePixelEventCountTrigger.ToString().ToLower())
                        {
                            gScanParameterXmlTemplate.ModifyParameter(cProtocolParameter.gkTriggerType, mySelectedItemValue);

                            if (myTriggerValue.Length <= 0)
                            {
                                myErrorMessage += "Please enter trigger value(请添加触发值)";

                                myStatus = gkecInvalidValue;
                            }
                            else
                            {
                                gScanParameterXmlTemplate.ModifyParameter(cProtocolParameter.gkSinglePixelEventCount, myTriggerValue);
                            }
                        }
                        else if (mySelectedItemValue.ToLower() == cScanParameters.eScanTriggerType.TimeTrigger.ToString().ToLower())
                        {
                            gScanParameterXmlTemplate.ModifyParameter(cProtocolParameter.gkTriggerType, mySelectedItemValue);

                            if (myTriggerValue.Length <= 0)
                            {
                                myErrorMessage += "Please enter trigger value(请添加触发值)";
                            }
                            else
                            {
                                gScanParameterXmlTemplate.ModifyParameter(cProtocolParameter.gkTriggerTimePeriod, myTriggerValue);
                            }
                        }
                        else if (mySelectedItemValue.ToLower() == cScanParameters.eScanTriggerType.AnalysisResultTrigger.ToString().ToLower())
                        {
                        }
                    }

                    #endregion

                    #region Write Back Integral Time

                    mySelectedItemValue = cbboxPRPAIntegralTime.SelectedItem.ToString();

                    if (mySelectedItemValue.Length <= 0)
                    {
                        myErrorMessage += "Please select integral time(请选择积分时间)";

                        myStatus = gkecInvalidValue;
                    }
                    else
                    {
                        gScanParameterXmlTemplate.ModifyParameter(cProtocolParameter.gkIntegralTime, mySelectedItemValue);
                    }

                    #endregion

                    #region Write Back Encoding Mode

                    mySelectedItemValue = cmboxEncodingMode.SelectedItem.ToString();

                    if (mySelectedItemValue.Length <= 0)
                    {
                        myErrorMessage += "Please select encoding mode(请选择编码类型)";

                        myStatus = gkecInvalidValue;
                    }
                    else
                    {
                        gScanParameterXmlTemplate.ModifyParameter(cProtocolParameter.gkEncodingMode, mySelectedItemValue);
                    }

                    #endregion

                    #region Write Back Trigger Threshold

                    mySelectedItemValue = cmboxPRPAADCTriggerThreshod.SelectedItem.ToString();

                    if (mySelectedItemValue.Length <= 0)
                    {
                        myErrorMessage += "Please select AD threshold(请选择阈值设置)";

                        myStatus = gkecInvalidValue;
                    }
                    else
                    {
                        gScanParameterXmlTemplate.ModifyParameter(cProtocolParameter.gkADCTriggerThreshold, mySelectedItemValue);
                    }

                    #endregion

                    #region Write Back AD Range

                    mySelectedItemValue = cmboxPRPAADCRange.SelectedItem.ToString();

                    if (mySelectedItemValue.Length <= 0)
                    {
                        myErrorMessage += "Please select AD range(请选择AD范围设置)";

                        myStatus = gkecInvalidValue;
                    }
                    else
                    {
                        gScanParameterXmlTemplate.ModifyParameter(cProtocolParameter.gkADCRange, mySelectedItemValue);
                    }

                    #endregion

                    #region Write Back Vbias

                    mySelectedItemValue = txtPRPAVbias.Text.ToString();

                    if (mySelectedItemValue.Length <= 0)
                    {
                        myErrorMessage += "Please set Vbias(请设置Vbias值)";

                        myStatus = gkecInvalidValue;
                    }
                    else
                    {
                        gScanParameterXmlTemplate.ModifyParameter(cProtocolParameter.gkVbias, mySelectedItemValue);
                    }

                    #endregion

                    #region Write Back Vref

                    mySelectedItemValue = txtPRPAVref.Text.ToString();

                    if (mySelectedItemValue.Length <= 0)
                    {
                        myErrorMessage += "Please set Vref(请设置Vref值)";

                        myStatus = gkecInvalidValue;
                    }
                    else
                    {
                        gScanParameterXmlTemplate.ModifyParameter(cProtocolParameter.gkVref, mySelectedItemValue);
                    }

                    #endregion

                    gScanParameterXmlTemplate.SaveScanParametersFiles(gScanParameterXmlTemplate.gOriginalXmlFile, gRootDirectory + myNewProtocolName + ".xml");

                    if (myStatus != 0)
                    {
                        MessageBox.Show(myErrorMessage);
                    }
                    else
                    {
                        //Add this to the scan list
                        gParenetWindow.gParentWindow.gDictProtocolScanParameters.Add(myNewProtocolName, gScanParameterXmlTemplate);

                        this.Close();
                    }
                }
                else
                {
                    MessageBox.Show("Protocol already exists (协议已存在)");
                }
            }
            else
            {
                MessageBox.Show("Please type in correct protocol name(请输入正确的协议名称)");
            }
        }