Пример #1
0
        private void InitializeListBox(string _sysDefPath)
        {
            currentSysDef             = new SystemDefinition(StringUtilities.unparseFilePathString(_sysDefPath));
            channel_browser.StartNode = currentSysDef.Root.BaseNodeType;
            BaseNode highlightedNode;

            if (currentSysDef.Root.FindNodeByPath(StringUtilities.removeDoubleQuotesAroundString(AlarmListFullPath), out highlightedNode))
            {
                BaseNodeType[] bnArray = { highlightedNode.BaseNodeType };
                channel_browser.SetCurrentSelections(bnArray);
            }
        }
        private void InitializeListBox(string _sysDefPath)
        {
            currentSysDef = new SystemDefinition(StringUtilities.unparseFilePathString(_sysDefPath));
            BaseNode highlightedNode;

            switch (channelType)
            {
            case ChannelType.faultChannel:
                channel_browser.DisplayFilter = ISystemDefinitionBrowserFilterType.K_CHAN_FAULT;
                channel_browser.StartNode     = currentSysDef.Root.BaseNodeType;
                break;

            case ChannelType.readableChannel:
                channel_browser.DisplayFilter = ISystemDefinitionBrowserFilterType.K_CHAN_R;
                channel_browser.StartNode     = currentSysDef.Root.BaseNodeType;
                break;

            case ChannelType.writableChannel:
                channel_browser.DisplayFilter = ISystemDefinitionBrowserFilterType.K_CHAN_W;
                channel_browser.StartNode     = currentSysDef.Root.BaseNodeType;
                break;

            case ChannelType.paramChannel:
                channel_browser.DisplayFilter = ISystemDefinitionBrowserFilterType.K_ALL;
                channel_browser.StartNode     = currentSysDef.Root.BaseNodeType;
                break;
            }
            if (channelType == ChannelType.paramChannel)
            {
                if (currentSysDef.Root.FindNodeByPath(StringUtilities.removeDoubleQuotesAroundString(ModelListFullPath), out highlightedNode))
                {
                    BaseNodeType[] bnArray = { highlightedNode.BaseNodeType };
                    channel_browser.SetCurrentSelections(bnArray);
                }
            }
            else
            {
                if (currentSysDef.Root.FindNodeByPath(StringUtilities.removeDoubleQuotesAroundString(selectedChannelName), out highlightedNode))
                {
                    BaseNodeType[] bnArray = { highlightedNode.BaseNodeType };
                    channel_browser.SetCurrentSelections(bnArray);
                }
            }
        }
Пример #3
0
        public void SetAlarmState(NationalInstruments.TestStand.Interop.API.SequenceContext seqContext)
        {
            //Gets all the current alarm info and modifies the state then sets the alarm data

            //Get TestStand Information
            PropertyObject seqContextPO = seqContext.AsPropertyObject();
            Step           activeStep   = seqContext.Step;
            string         stepID       = activeStep.UniqueStepId;

            Sequence       selectedTSSequence = seqContext.Sequence;
            PropertyObject stepPropertyObject = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();
            Factory        fact       = new Factory();
            string         alarmName  = StringUtilities.removeDoubleQuotesAroundString(stepPropertyObject.GetValString("Veristand.AlarmName", 0));
            string         alarmValue = StringUtilities.removeDoubleQuotesAroundString(stepPropertyObject.GetValString("Veristand.AlarmState", 0));
            IAlarm         thisAlarm  = fact.GetIAlarm(alarmName);
            AlarmInfo      alarmData;

            Error alarmError1 = thisAlarm.GetAlarmData(out alarmData, 5000);

            switch (alarmValue)
            {
            case "Disabled":
                alarmData.State = NationalInstruments.VeriStand.ClientAPI.AlarmState.Disabled;
                break;

            case "Enabled":
                alarmData.State = NationalInstruments.VeriStand.ClientAPI.AlarmState.Enabled;
                break;

            case "Tripped":
                alarmData.State = NationalInstruments.VeriStand.ClientAPI.AlarmState.Tripped;
                break;

            case "Delayed Trip":
                alarmData.State = NationalInstruments.VeriStand.ClientAPI.AlarmState.DelayedTripped;
                break;

            case "Indicate":
                alarmData.State = NationalInstruments.VeriStand.ClientAPI.AlarmState.Indicate;
                break;
            }
            thisAlarm.SetAlarmData(alarmData);
        }
Пример #4
0
        public string GetAlarmState(NationalInstruments.TestStand.Interop.API.SequenceContext seqContext)
        {
            //Gets all alarm information and returns just the state

            //Get TestStand Information
            PropertyObject seqContextPO       = seqContext.AsPropertyObject();
            Step           activeStep         = seqContext.Step;
            string         stepID             = activeStep.UniqueStepId;
            Sequence       selectedTSSequence = seqContext.Sequence;
            PropertyObject stepPropertyObject = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();
            Factory        fact      = new Factory();
            string         alarmName = StringUtilities.removeDoubleQuotesAroundString(stepPropertyObject.GetValString("Veristand.AlarmName", 0));


            IAlarm    thisAlarm = fact.GetIAlarm(alarmName);
            AlarmInfo alarmData;

            thisAlarm.GetAlarmData(out alarmData, 5000);
            return(alarmData.State.ToString());
        }
Пример #5
0
        public ConfigureAlarm(SequenceContext _seqContext)
        {
            InitializeComponent();


            //Set up Teststand objects
            seqContext         = _seqContext;
            seqContextPO       = seqContext.AsPropertyObject();
            selectedTSSequence = seqContext.SelectedSequences[0];
            selectedTSStep     = seqContext.SelectedSteps[0];
            stepID             = selectedTSStep.UniqueStepId;
            seqFile            = selectedTSSequence.SequenceFile;
            permSeqContext     = selectedTSSequence.Locals; //Must get sequence context this way for variables to save if teststand is restarted
            propObjectFile     = seqFile.AsPropertyObjectFile();
            EvaluationTypes eval = seqContext.Engine.NewEvaluationTypes();

            eval.PropertyValueTypeFlags = 0x4; //set string as the valid evaluation type
            systemDefinitionPath_exp.SetValidEvaluationTypes(eval);
            systemDefinitionPath_exp.Context = seqContextPO;
            stepPropertyObject = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();
            VSDialogs vsdiag = new VSDialogs();

            try
            {
                alarmstate_control.SelectedItem = StringUtilities.removeDoubleQuotesAroundString(stepPropertyObject.GetValString("Veristand.AlarmState", 0));
                alarmName                     = stepPropertyObject.GetValString("Veristand.AlarmName", 0);
                AlarmListFullPath             = stepPropertyObject.GetValString("Veristand.FullAlarmPath", 0);
                systemDefinitionPath_exp.Text = seqContext.SequenceFile.FileGlobalsDefaultValues.GetValString("Veristand.SystemDefinitionPath", 1);//Try to get the specific system definition path associated with this step
                seqContext.SequenceFile.FileGlobalsDefaultValues.SetFlags("Veristand.SystemDefinitionPath", 0, 0x4400000);
            }
            catch (System.Runtime.InteropServices.COMException)
            {
                systemDefinitionPath_exp.Text = ""; //If there is no system definition path default to the empty string
            }
            if (System.IO.File.Exists(StringUtilities.unparseFilePathString(systemDefinitionPath_exp.Text)) && System.IO.Path.GetExtension(StringUtilities.unparseFilePathString(systemDefinitionPath_exp.Text)) == ".nivssdf")
            {
                //File exists with correct extension so try and populate the tree
                InitializeListBox(systemDefinitionPath_exp.Text);
            }
        }
Пример #6
0
        void InitializeTableView(SequenceContext _seqContext, string fileExp, string[] _parameterValues, string[] _parameterTypes, bool reset)
        {
            //MessageBox.Show(reset.ToString());
            PropertyObject seqContextPO;

            seqContextPO = _seqContext.AsPropertyObject();
            string filePath = StringUtilities.unparseFilePathString(fileExp);

            this.OpenSelectSingleChannelsDialog = new SelectSingleChannelPanel(this);
            string[] comboBoxParameterTypes = { "Path", "Boolean", "Double", "I32", "I64", "U32", "U64" };
            this.tableLayoutPanel1.Controls.Clear();//Empty the table
            //Add in the column headers
            this.tableLayoutPanel1.Controls.Add(this.ParameterNameTitle_label, 0, 0);
            this.tableLayoutPanel1.Controls.Add(this.ParameterTypeTitle_label, 1, 0);
            this.tableLayoutPanel1.Controls.Add(this.ParameterValueTitle_label, 2, 0);
            this.tableLayoutPanel1.Controls.Add(this.SelectChannelTitle_label, 3, 0);
            this.tableLayoutPanel1.AutoSize = true;
            this.tableLayoutPanel1.RowCount = 1;
            TableLayoutRowStyleCollection rowStyles = this.tableLayoutPanel1.RowStyles;

            foreach (RowStyle style in rowStyles)
            {
                if (style.SizeType == SizeType.Percent)
                {
                    style.SizeType = SizeType.AutoSize;
                }
            }

            if (filePath != null && filePath != "" && System.IO.File.Exists(filePath))  //Don't try to initialize with a blank filepath
            {
                try
                {
                    RealTimeSequence       newRTSeq = new RealTimeSequence(filePath);
                    ParameterDeclaration[] seqParam = newRTSeq.Variables.Parameters.Variables;
                    string            parameterValueElement;
                    ReturnDeclaration returnParam     = newRTSeq.Variables.ReturnType;
                    string            returnParamType = returnParam.DataType.ToString();
                    returnParamDataType = returnParamType;

                    if (!reset)
                    {
                        this.tableLayoutPanel1.RowCount = seqParam.Length + 1; //Need rows for the header and one row for each parameter

                        if (seqParam.Length != _parameterValues.Length)
                        {
                            VSDialogs vsdialog = new VSDialogs();
                            vsdialog.ShowWarningDialog("It appears that the Real-Time Sequence has changed. Please reload the file by clicking \"Browse...\".");
                        }

                        if (seqParam.Length == _parameterValues.Length && seqParam.Length > 0 && _parameterValues.Length > 0)
                        {
                            for (int i = 0; i < seqParam.Length; i++)
                            {
                                ParameterDeclaration          param               = seqParam[i];
                                System.Windows.Forms.Label    currentNameLabel    = new System.Windows.Forms.Label();
                                System.Windows.Forms.ComboBox currentTypeComboBox = new System.Windows.Forms.ComboBox();
                                currentTypeComboBox.Enabled = false;
                                NationalInstruments.TestStand.Interop.UI.Ax.AxExpressionEdit currentExpression = new NationalInstruments.TestStand.Interop.UI.Ax.AxExpressionEdit();

                                if (param.EvaluationMethod == EvaluationMethod.ByReference)
                                {
                                    parameterValueElement = StringUtilities.removeDoubleQuotesAroundString(_parameterValues[i]);
                                    if (param.DefaultAssignment.Channel.ToString() == parameterValueElement)
                                    {
                                        int rowToAddControl = i + 1;
                                        currentNameLabel.Text     = param.Identifier;
                                        currentNameLabel.AutoSize = true;
                                        this.tableLayoutPanel1.Controls.Add(currentNameLabel, 0, rowToAddControl);
                                        currentTypeComboBox.Items.AddRange(comboBoxParameterTypes);
                                        currentTypeComboBox.SelectedValueChanged += new System.EventHandler(this.ParameterTypeChanged);

                                        currentExpression.Visible = true;
                                        currentExpression.Dock    = DockStyle.Fill;
                                        this.tableLayoutPanel1.Controls.Add(currentExpression, 2, rowToAddControl);
                                        currentExpression.Parent = tableLayoutPanel1;
                                        string handle = currentExpression.Handle.ToString();//force creation of the handle

                                        System.Windows.Forms.Button selectChannelButton = new System.Windows.Forms.Button();
                                        selectChannelButton.Text    = "Browse...";
                                        selectChannelButton.Enabled = false;
                                        selectChannelButton.Click  += new System.EventHandler(selectChannelButton_Click);
                                        selectChannelButton.Parent  = this.tableLayoutPanel1;
                                        this.tableLayoutPanel1.Controls.Add(selectChannelButton, 3, rowToAddControl);

                                        currentExpression.CreateControl();
                                        currentExpression.Context = seqContextPO;
                                        currentExpression.SyntaxHighlightingEnabled = true;
                                        currentExpression.Style    = NationalInstruments.TestStand.Interop.UI.ExpressionEditStyles.ExpressionEditStyle_Edit;
                                        currentExpression.TextType = NationalInstruments.TestStand.Interop.UI.TextTypes.TextType_Expression;
                                        currentExpression.Text     = StringUtilities.addDoubleQuotesAroundString(param.DefaultAssignment.Channel.ToString());//Just use the DefaultAssignment if they are the same.

                                        this.tableLayoutPanel1.GetControlFromPosition(3, rowToAddControl).Enabled = true;

                                        currentTypeComboBox.SelectedText = "Path";
                                        this.tableLayoutPanel1.Controls.Add(currentTypeComboBox, 1, rowToAddControl);
                                    }
                                    else
                                    {
                                        int rowToAddControl = i + 1;
                                        currentNameLabel.Text     = param.Identifier;
                                        currentNameLabel.AutoSize = true;
                                        this.tableLayoutPanel1.Controls.Add(currentNameLabel, 0, rowToAddControl);
                                        currentTypeComboBox.Items.AddRange(comboBoxParameterTypes);
                                        currentTypeComboBox.SelectedValueChanged += new System.EventHandler(this.ParameterTypeChanged);

                                        currentExpression.Visible = true;
                                        currentExpression.Dock    = DockStyle.Fill;
                                        this.tableLayoutPanel1.Controls.Add(currentExpression, 2, rowToAddControl);
                                        currentExpression.Parent = tableLayoutPanel1;
                                        string handle = currentExpression.Handle.ToString();//force creation of the handle

                                        System.Windows.Forms.Button selectChannelButton = new System.Windows.Forms.Button();
                                        selectChannelButton.Text    = "Browse...";
                                        selectChannelButton.Enabled = false;
                                        selectChannelButton.Click  += new System.EventHandler(selectChannelButton_Click);
                                        selectChannelButton.Parent  = this.tableLayoutPanel1;
                                        this.tableLayoutPanel1.Controls.Add(selectChannelButton, 3, rowToAddControl);

                                        currentExpression.CreateControl();
                                        currentExpression.Context = seqContextPO;
                                        currentExpression.SyntaxHighlightingEnabled = true;
                                        currentExpression.Style    = NationalInstruments.TestStand.Interop.UI.ExpressionEditStyles.ExpressionEditStyle_Edit;
                                        currentExpression.TextType = NationalInstruments.TestStand.Interop.UI.TextTypes.TextType_Expression;
                                        currentExpression.Text     = StringUtilities.addDoubleQuotesAroundString(parameterValueElement);//Use the value from TestStand instead of the DefaultAssignment if they are not the same.

                                        this.tableLayoutPanel1.GetControlFromPosition(3, rowToAddControl).Enabled = true;

                                        currentTypeComboBox.SelectedText = "Path";
                                        this.tableLayoutPanel1.Controls.Add(currentTypeComboBox, 1, rowToAddControl);
                                    }
                                }
                                else
                                {
                                    parameterValueElement = StringUtilities.removeDoubleQuotesAroundString(_parameterValues[i]);
                                    if (param.DefaultAssignment.ToString() == parameterValueElement)
                                    {
                                        int rowToAddControl = i + 1;
                                        currentNameLabel.Text     = param.Identifier;
                                        currentNameLabel.AutoSize = true;
                                        this.tableLayoutPanel1.Controls.Add(currentNameLabel, 0, rowToAddControl);
                                        currentTypeComboBox.Items.AddRange(comboBoxParameterTypes);
                                        currentTypeComboBox.SelectedValueChanged += new System.EventHandler(this.ParameterTypeChanged);

                                        currentExpression.Visible = true;
                                        currentExpression.Dock    = DockStyle.Fill;
                                        this.tableLayoutPanel1.Controls.Add(currentExpression, 2, rowToAddControl);
                                        currentExpression.Parent = tableLayoutPanel1;
                                        string handle = currentExpression.Handle.ToString();//force creation of the handle

                                        System.Windows.Forms.Button selectChannelButton = new System.Windows.Forms.Button();
                                        selectChannelButton.Text    = "Browse...";
                                        selectChannelButton.Enabled = false;
                                        selectChannelButton.Click  += new System.EventHandler(selectChannelButton_Click);
                                        selectChannelButton.Parent  = this.tableLayoutPanel1;
                                        this.tableLayoutPanel1.Controls.Add(selectChannelButton, 3, rowToAddControl);

                                        currentExpression.CreateControl();
                                        currentExpression.Context = seqContextPO;
                                        currentExpression.SyntaxHighlightingEnabled = true;
                                        currentExpression.Style    = NationalInstruments.TestStand.Interop.UI.ExpressionEditStyles.ExpressionEditStyle_Edit;
                                        currentExpression.TextType = NationalInstruments.TestStand.Interop.UI.TextTypes.TextType_Expression;
                                        currentExpression.Text     = param.DefaultAssignment.ToString();//Just use the DefaultAssignment if they are the same.

                                        this.tableLayoutPanel1.GetControlFromPosition(3, rowToAddControl).Enabled = false;
                                        switch (param.DefaultValue.Type.ToString())
                                        {
                                        case "Double":
                                            currentTypeComboBox.SelectedText = "Double";
                                            break;

                                        case "UInt64":
                                            currentTypeComboBox.SelectedText = "U64";
                                            break;

                                        case "Int64":
                                            currentTypeComboBox.SelectedText = "I64";
                                            break;

                                        case "UInt32":
                                            currentTypeComboBox.SelectedText = "U32";
                                            break;

                                        case "Int32":
                                            currentTypeComboBox.SelectedText = "I32";
                                            break;

                                        case "Boolean":
                                            currentTypeComboBox.SelectedText = "Boolean";
                                            break;
                                        }
                                        this.tableLayoutPanel1.Controls.Add(currentTypeComboBox, 1, rowToAddControl);
                                    }
                                    else
                                    {
                                        int rowToAddControl = i + 1;
                                        currentNameLabel.Text     = param.Identifier;
                                        currentNameLabel.AutoSize = true;
                                        this.tableLayoutPanel1.Controls.Add(currentNameLabel, 0, rowToAddControl);
                                        currentTypeComboBox.Items.AddRange(comboBoxParameterTypes);
                                        currentTypeComboBox.SelectedValueChanged += new System.EventHandler(this.ParameterTypeChanged);

                                        currentExpression.Visible = true;
                                        currentExpression.Dock    = DockStyle.Fill;
                                        this.tableLayoutPanel1.Controls.Add(currentExpression, 2, rowToAddControl);
                                        currentExpression.Parent = tableLayoutPanel1;
                                        string handle = currentExpression.Handle.ToString();//force creation of the handle

                                        System.Windows.Forms.Button selectChannelButton = new System.Windows.Forms.Button();
                                        selectChannelButton.Text    = "Browse...";
                                        selectChannelButton.Enabled = false;
                                        selectChannelButton.Click  += new System.EventHandler(selectChannelButton_Click);
                                        selectChannelButton.Parent  = this.tableLayoutPanel1;
                                        this.tableLayoutPanel1.Controls.Add(selectChannelButton, 3, rowToAddControl);

                                        currentExpression.CreateControl();
                                        currentExpression.Context = seqContextPO;
                                        currentExpression.SyntaxHighlightingEnabled = true;
                                        currentExpression.Style    = NationalInstruments.TestStand.Interop.UI.ExpressionEditStyles.ExpressionEditStyle_Edit;
                                        currentExpression.TextType = NationalInstruments.TestStand.Interop.UI.TextTypes.TextType_Expression;
                                        currentExpression.Text     = parameterValueElement;//Use the value from TestStand instead of the DefaultAssignment if they are not the same.

                                        this.tableLayoutPanel1.GetControlFromPosition(3, rowToAddControl).Enabled = false;
                                        switch (param.DefaultValue.Type.ToString())
                                        {
                                        case "Double":
                                            currentTypeComboBox.SelectedText = "Double";
                                            break;

                                        case "UInt64":
                                            currentTypeComboBox.SelectedText = "U64";
                                            break;

                                        case "Int64":
                                            currentTypeComboBox.SelectedText = "I64";
                                            break;

                                        case "UInt32":
                                            currentTypeComboBox.SelectedText = "U32";
                                            break;

                                        case "Int32":
                                            currentTypeComboBox.SelectedText = "I32";
                                            break;

                                        case "Boolean":
                                            currentTypeComboBox.SelectedText = "Boolean";
                                            break;
                                        }
                                        this.tableLayoutPanel1.Controls.Add(currentTypeComboBox, 1, rowToAddControl);
                                    }
                                    //switch (param.DefaultValue.Type.ToString())
                                    //{
                                    //    case "Double":
                                    //        currentTypeComboBox.SelectedText = "Double";
                                    //        break;
                                    //    case "UInt64":
                                    //        currentTypeComboBox.SelectedText = "U64";
                                    //        break;
                                    //    case "Int64":
                                    //        currentTypeComboBox.SelectedText = "I64";
                                    //        break;
                                    //    case "UInt32":
                                    //        currentTypeComboBox.SelectedText = "U32";
                                    //        break;
                                    //    case "Int32":
                                    //        currentTypeComboBox.SelectedText = "I32";
                                    //        break;
                                    //    case "Boolean":
                                    //        currentTypeComboBox.SelectedText = "Boolean";
                                    //        break;
                                    //}
                                }
                            }
                        }
                    }

                    if (reset)
                    {
                        this.tableLayoutPanel1.RowCount = seqParam.Length + 1; //Need rows for the header and one row for each parameter

                        if (seqParam.Length > 0)
                        {
                            this.tableLayoutPanel1.AutoSize = true;
                            int n = 1;

                            foreach (ParameterDeclaration param in seqParam)
                            {
                                System.Windows.Forms.Label currentNameLabel = new System.Windows.Forms.Label();
                                currentNameLabel.Text     = param.Identifier;
                                currentNameLabel.AutoSize = true;
                                this.tableLayoutPanel1.Controls.Add(currentNameLabel, 0, n);
                                System.Windows.Forms.ComboBox currentTypeComboBox = new System.Windows.Forms.ComboBox();
                                currentTypeComboBox.Items.AddRange(comboBoxParameterTypes);
                                currentTypeComboBox.SelectedValueChanged += new System.EventHandler(this.ParameterTypeChanged);
                                currentTypeComboBox.Enabled = false;
                                NationalInstruments.TestStand.Interop.UI.Ax.AxExpressionEdit currentExpression = new NationalInstruments.TestStand.Interop.UI.Ax.AxExpressionEdit();
                                currentExpression.Visible = true;
                                currentExpression.Dock    = DockStyle.Fill;
                                this.tableLayoutPanel1.Controls.Add(currentExpression, 2, n);
                                currentExpression.Parent = tableLayoutPanel1;
                                string handle = currentExpression.Handle.ToString();//force creation of the handle
                                System.Windows.Forms.Button selectChannelButton = new System.Windows.Forms.Button();
                                selectChannelButton.Text    = "Browse...";
                                selectChannelButton.Enabled = false;
                                selectChannelButton.Click  += new System.EventHandler(selectChannelButton_Click);
                                selectChannelButton.Parent  = this.tableLayoutPanel1;
                                this.tableLayoutPanel1.Controls.Add(selectChannelButton, 3, n);
                                currentExpression.CreateControl();
                                currentExpression.Context = seqContextPO;
                                currentExpression.SyntaxHighlightingEnabled = true;
                                currentExpression.Style    = NationalInstruments.TestStand.Interop.UI.ExpressionEditStyles.ExpressionEditStyle_Edit;
                                currentExpression.TextType = NationalInstruments.TestStand.Interop.UI.TextTypes.TextType_Expression;


                                if (param.EvaluationMethod == EvaluationMethod.ByReference)
                                {
                                    currentTypeComboBox.SelectedText = "Path";
                                    currentExpression.Text           = StringUtilities.addDoubleQuotesAroundString(param.DefaultAssignment.Channel.ToString());
                                    this.tableLayoutPanel1.GetControlFromPosition(3, n).Enabled = true;
                                }
                                else
                                {
                                    switch (param.DefaultValue.Type.ToString())
                                    {
                                    case "Double":
                                        currentTypeComboBox.SelectedText = "Double";
                                        break;

                                    case "UInt64":
                                        currentTypeComboBox.SelectedText = "U64";
                                        break;

                                    case "Int64":
                                        currentTypeComboBox.SelectedText = "I64";
                                        break;

                                    case "UInt32":
                                        currentTypeComboBox.SelectedText = "U32";
                                        break;

                                    case "Int32":
                                        currentTypeComboBox.SelectedText = "I32";
                                        break;

                                    case "Boolean":
                                        currentTypeComboBox.SelectedText = "Boolean";
                                        break;
                                    }
                                    currentExpression.Text = param.DefaultAssignment.ToString();
                                }
                                this.tableLayoutPanel1.Controls.Add(currentTypeComboBox, 1, n);
                                n++;
                            }
                        }
                    }
                }

                catch (System.ArgumentException)
                {
                    VSDialogs dialogs = new VSDialogs();
                    dialogs.ShowWarningDialog("Invalid Filepath:" + filePath);
                }
            }
        }
        private void OK_Click(object sender, EventArgs e)
        {
            //Make or Set all specified variables in TestStand
            /*Set variables needed for other steps in System Definition and Project since these steps are guaranteed to be called first*/
            permSeqContext.SetValIDispatch("Veristand.VSDialogs", 1, null);
            /*Set variables needed for project */

            SeqContextFileGlobals.SetValString("Veristand.GatewayIP", 0, gatewayIP);
            SeqContextFileGlobals.SetValString("Veristand.ProjectPath", 0, projectpath_exp.Text);
            stepPropertyObject.SetValString("Veristand.username", 0, username);
            stepPropertyObject.SetValString("Veristand.password", 0, password);
            stepPropertyObject.SetValString("Veristand.Visible", 0, visible_exp.Text);
            string nodoublequotes   = StringUtilities.removeDoubleQuotesAroundString(projectpath_exp.Text);
            string projectpathclean = StringUtilities.unparseFilePathString(nodoublequotes);

            if (projectpath_exp.Text == "" || !System.IO.File.Exists(projectpathclean) || System.IO.Path.GetExtension(projectpathclean) != ".nivsproj")
            {
                SeqContextFileGlobals.SetValString("Veristand.SystemDefinitionPath", 1, "");
                seqContext.SequenceFile.FileGlobalsDefaultValues.SetFlags("Veristand.SystemDefinitionPath", 0, 0x4400000);
            }

            if (System.IO.File.Exists(projectpathclean) && System.IO.Path.GetExtension(projectpathclean) == ".nivsproj")
            {
                string projectFileText   = System.IO.File.ReadAllText(StringUtilities.removeDoubleQuotesAroundString(projectpath_exp.Text));
                string sysDefGUIDPattern = "b9227a5b-2770-4a62-8621-ac414d4124fb.*\n.*\n.*\n.*\n.*\n.*\n.*\n.*\n.*";
                string pathTypePattern   = "DependentFile Type=\"";
                string pathPattern       = "Path=\"";
                string endpattern        = "\".*";

                Regex sysDefGUIDRegX      = new Regex(sysDefGUIDPattern);
                Regex pathTypePatternRegx = new Regex(pathTypePattern);
                Regex filePathPatternRegx = new Regex(pathPattern);
                Regex endpatternRegx      = new Regex(endpattern);

                string    sysDefFileInfo         = sysDefGUIDRegX.Match(projectFileText).ToString();
                string[]  dependentFileTypeArray = pathTypePatternRegx.Split(sysDefFileInfo);
                string [] pathPatternArray       = endpatternRegx.Split(dependentFileTypeArray[1]);

                string[] messyFilePathArray = filePathPatternRegx.Split(sysDefFileInfo);
                string[] cleanFilePathArray = endpatternRegx.Split(messyFilePathArray[1]);

                switch (pathPatternArray[0])
                {
                case "Relative":
                {
                    string projectDirectory = System.IO.Path.GetDirectoryName(projectpathclean);
                    sysDefPath = System.IO.Path.Combine(projectDirectory, cleanFilePathArray[0]);
                    break;
                }

                case "Absolute":
                {
                    sysDefPath = cleanFilePathArray[0];
                    break;
                }

                case "To Common Doc Dir":
                {
                    string publicDocumentsPath = System.Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments);
                    sysDefPath = System.IO.Path.Combine(publicDocumentsPath, "National Instruments", "VeriStand 2014", cleanFilePathArray[0]);
                    break;
                }

                case "":
                {
                    break;
                }
                }
                SeqContextFileGlobals.SetValString("Veristand.SystemDefinitionPath", 1, sysDefPath);
                seqContext.SequenceFile.FileGlobalsDefaultValues.SetFlags("Veristand.SystemDefinitionPath", 0, 0x4400000);
            }

            propObjectFile.IncChangeCount();  //Sets the flag that means the sequence has changes to save (dirty dot*)
            this.Close();
        }