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); } } }
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); }
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()); }
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); } }
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(); }