Exemple #1
0
        public ConfigureRTSequence(SequenceContext _seqContext, ConcurrentQueue <SequenceCallInfo[]> _cq)
        {
            InitializeComponent();

            seqContext         = _seqContext;
            seqContextPO       = seqContext.AsPropertyObject();
            selectedTSSequence = seqContext.SelectedSequences[0];
            selectedTSStep     = seqContext.SelectedSteps[0];
            stepID             = selectedTSStep.UniqueStepId;
            seqFile            = selectedTSSequence.SequenceFile;
            permSeqContext     = selectedTSSequence.Locals;
            propObjectFile     = seqFile.AsPropertyObjectFile();
            VSDialogs vsdiag = new VSDialogs();

            cq = _cq;
            selectedSequence   = 0;
            stepPropertyObject = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();


            //Get old values if they exist
            try
            {
                autostart = stepPropertyObject.GetValBoolean("Veristand.StimProfAutoStart", 0);
                this.auto_start.Checked = autostart;
                timeout = (uint)stepPropertyObject.GetValNumber("Veristand.StimProfTimeout", 0);
                this.rtseq_timeout.Value      = timeout;
                this.sessionName_Control.Text = stepPropertyObject.GetValString("Veristand.RTSessionName", 0);
                sequenceNames   = Array.ConvertAll((object[])stepPropertyObject.GetValVariant("Veristand.SequenceNames", 0), o => o.ToString());
                parameterValues = Array.ConvertAll((object[])stepPropertyObject.GetValVariant("Veristand.ParamValues", 0), o => o.ToString());
                parameterTypes  = Array.ConvertAll((object[])stepPropertyObject.GetValVariant("Veristand.ParamTypes", 0), o => o.ToString());
                parameterNames  = Array.ConvertAll((object[])stepPropertyObject.GetValVariant("Veristand.ParamNames", 0), o => o.ToString());
                numSequences    = (int)stepPropertyObject.GetValNumber("Veristand.RTNumSequences", 0);
                try
                {
                    InitializeDataGridView(sequenceNames[0], parameterValues, parameterTypes, numSequences, 0); //Initialize the data grid with the previously selected data
                    this.FilePath.Text = sequenceNames[0];
                }
                catch (System.ArgumentException ex)
                {
                    //Intentially do nothing
                }
                catch (IndexOutOfRangeException ex)
                {
                    //no sequences, don't need to initialize the data grid
                }
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                //Variables are not already created in TestStand. They will be created later
                vsdiag.ShowWarningDialog(ex.Message + "------" + ex.StackTrace);

                autostart               = false;
                StimProfilePathStr      = "";
                this.auto_start.Checked = autostart;
                this.FilePath.Text      = StimProfilePathStr;
                timeout = 1000;
                this.rtseq_timeout.Value      = timeout;
                this.sessionName_Control.Text = "Session 1";
            }
        }
//        public string dataGridView_ToolTipText =
//@"Lists the File Properties written to the TDMS log file.
//
//For each property, the following information is stored:
//Name (string)
//Data type (tdsDataType)
//Value (strings are encoded in UTF-8 Unicode).
//
//Strings in TDMS files can be null-terminated, but since the length
//information is stored, the null terminator will be ignored when
//you read from the file.";

        public AdvancedLoggingProperties(SequenceContext _seqContext, ConfigureLoggingFile CallingForm)
        {
            InitializeComponent();
            CallingFormGlobal = CallingForm;
            //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
            EvaluationTypes evalNumeric = seqContext.Engine.NewEvaluationTypes();

            stepPropertyObject        = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();
            FileDescription_text.Text = CallingForm.fileDescription;
            filePropertyNames         = CallingFormGlobal.filePropertyNames;
            filePropertyValues        = CallingFormGlobal.filePropertyValues;

            InitializeFilePropertiesDataGridView();
            VSDialogs vsdiag = new VSDialogs();
            //this.OK.Click +=new EventHandler(OK_Click,new EventArgs(_fileAuthor));
        }
        public GetChannelsDialog(SequenceContext _seqContext, ChannelType _channelType)
        {
            InitializeComponent();
            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();
            stepPropertyObject = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();
            //Set up dialog objects
            sysDefPath = seqContext.SequenceFile.FileGlobalsDefaultValues.GetValString("Veristand.SystemDefinitionPath", 1); //Get the System Definition path for the Client Sequence File. Create it if it does not exist.
            seqContext.SequenceFile.FileGlobalsDefaultValues.SetFlags("Veristand.SystemDefinitionPath", 0, 0x4400000);
            channelNamesList.AddRange(stepPropertyObject.GetValVariant("VeriStand.ChannelNames", 0));                        //Get ChannelNames array of strings.
            channelType = _channelType;

            VSDialogs vsdiag = new VSDialogs();

            this.loggingChannelSelection.ShowCheckBox = true;

            //If the file at path FileGlobals.Veristand.SystemDefinitionPath exists and the extension is ".nivssdf" use that System Definition file to initialize the TreeAliasBrowserWF.
            if (System.IO.File.Exists(StringUtilities.unparseFilePathString(sysDefPath)) && System.IO.Path.GetExtension(StringUtilities.unparseFilePathString(sysDefPath)) == ".nivssdf")
            {
                //File exists with correct extension so try and populate the tree
                InitializeListBox(sysDefPath);
            }
            //If FileGlobals.Veristand.SystemDefinitionPath is empty or the file does not exist at path FileGlobals.Veristand.SystemDefinitionPath.
            else //(sysDefPath == "" || !System.IO.File.Exists(StringUtilities.unparseFilePathString(sysDefPath)))
            {
                //Do nothing
            }
        }
Exemple #4
0
        public ConfigureSequenceName(SequenceContext _seqContext)
        {
            InitializeComponent();

            seqContext         = _seqContext;
            selectedTSSequence = seqContext.SelectedSequences[0];
            selectedTSStep     = seqContext.SelectedSteps[0];
            stepID             = selectedTSStep.UniqueStepId;
            seqFile            = selectedTSSequence.SequenceFile;
            seqContextPO       = selectedTSSequence.Locals;
            int thisStepIndex = selectedTSStep.StepIndex;

            propObjectFile = seqFile.AsPropertyObjectFile();
            try
            {
                this.sequenceName_Control.Text = seqContextPO.GetValString("Veristand." + stepID + "RTSequenceName", 0);
            }
            catch (System.Runtime.InteropServices.COMException)
            {
                //If variables don't exist set default values
                this.sequenceName_Control.Text = "";
            }
            int  count = thisStepIndex;
            bool found = false;

            while (count >= 0 && found == false)
            {
                Step currentStep = selectedTSSequence.GetStep(count, StepGroups.StepGroup_Main);
                if (currentStep.Name == "Open and Deploy RT Sequence") //This will need to change if the name of the Open RT Sequence Name Step Changes
                {
                    //this is the open RTSequence step that is the closes previous to this step name configuration
                    string    openRTSequenceStepID = currentStep.UniqueStepId;
                    VSDialogs vsdiags = new VSDialogs();
                    try                                                                                            //When this does and does not exist is different from the RTSequenceName so it needs its own Try/Catch block
                    {
                        seqCallInfoArray = vsdiags.ReinitializeSequenceCallInfo(seqContext, openRTSequenceStepID); //Get the sequence info created by the Open RT Sequence Step
                        allSequenceNames = ParseNamesFromSequenceCallInfo(seqCallInfoArray);                       //Populate the parsed list of sequence names
                        if (allSequenceNames.Length > 0)
                        {
                            if (allSequenceNames[0] != null)
                            {
                                //Set the sequence name control to the first name we parsed
                                this.sequenceName_Control.Text = allSequenceNames[0];
                            }
                            else
                            {
                                this.sequenceName_Control.Text = "";
                            }
                        }
                    }
                    catch (System.Runtime.InteropServices.COMException)
                    {
                        seqCallInfoArray = null;
                    }
                }
                count--;
            }
        }
        public NativeChannelSelectionDialog(SequenceContext _seqContext, ChannelType _channelType)
        {
            InitializeComponent();
            channelType = _channelType;

            //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
            EvaluationTypes evalNumeric = seqContext.Engine.NewEvaluationTypes();

            evalNumeric.PropertyValueTypeFlags = 0x2; //Set valid evaluation types to number
            value_exp.SetValidEvaluationTypes(evalNumeric);
            value_exp.Context  = seqContextPO;
            stepPropertyObject = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();
            VSDialogs vsdiag = new VSDialogs();

            try
            {
                value_exp.Text      = stepPropertyObject.GetValString("Veristand.ValueToSet", 0);
                selectedChannelName = stepPropertyObject.GetValString("Veristand.ChannelName", 0);
                sysDefPath          = 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);
                if (sysDefPath == null)
                {
                    sysDefPath = "";
                }
                if (channelType == ChannelType.paramChannel)
                {
                    ModelListFullPath = stepPropertyObject.GetValString("Veristand.FullChannelPath", 0);
                }
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                selectedChannelName = "";
            }
            catch (System.NullReferenceException ex)
            {
                //Do Nothing
            }

            if (sysDefPath != null)
            {
                if (System.IO.File.Exists(StringUtilities.unparseFilePathString(sysDefPath)) && System.IO.Path.GetExtension(StringUtilities.unparseFilePathString(sysDefPath)) == ".nivssdf")
                {
                    //File exists with correct extension so try and populate the tree
                    InitializeListBox(sysDefPath);
                }
            }
        }
        public ChannelSelectionDialog(SequenceContext _seqContext, bool _ModelList)
        {
            ModelList = _ModelList;
            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();


            stepPropertyObject = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();
            try
            {
                channelValue         = stepPropertyObject.GetValNumber("Veristand.ValueToSet", 0);
                selectedChannelName  = stepPropertyObject.GetValString("Veristand.ChannelName", 0);
                SystemDefinitionPath = 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);
                this.SystemDefinitionPathControl.Text = SystemDefinitionPath;
                this.set_value_control.Value          = (decimal)channelValue;
            }
            catch (System.Runtime.InteropServices.COMException)
            {
                selectedChannelName  = "";
                SystemDefinitionPath = ""; //If there is no system definition path default to the empty string
                this.SystemDefinitionPathControl.Text = SystemDefinitionPath;
            }
            if (System.IO.File.Exists(SystemDefinitionPath) && System.IO.Path.GetExtension(SystemDefinitionPath) == ".nivssdf")
            {
                //File exists with correct extension so try and populate the grid
                TreeNodeCollection tempTreeNodeCollection = InitializeListBox(SystemDefinitionPath);
                treeNodes = new TreeNode[tempTreeNodeCollection.Count];
                tempTreeNodeCollection.CopyTo(treeNodes, 0);
            }
            if (selectedChannelName != "")
            {
                TreeNode[] foundNodes = this.ChannelSelection.Nodes.Find(selectedChannelName, true);

                if (foundNodes.Length > 0)
                {
                    this.ChannelSelection.SelectedNode           = foundNodes[0];//Only one node should match exactly
                    this.ChannelSelection.HideSelection          = false;
                    this.ChannelSelection.SelectedNode.BackColor = Color.Violet;
                    this.ChannelSelection.Focus();//This does not seem to be working
                }
            }
        }
        public ConfigureSystemDefinition(SequenceContext _seqContext, bool _deploying)
        {
            InitializeComponent();

            //Set up Teststand objects
            deploying          = _deploying;
            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;
            EvaluationTypes evalBool = seqContext.Engine.NewEvaluationTypes();

            evalBool.PropertyValueTypeFlags = 0x1;//Booleans are valid
            deploysysdef_exp.SetValidEvaluationTypes(evalBool);
            systemDefinitionPath_exp.SetValidEvaluationTypes(eval);
            deploysysdef_exp.Context         = seqContextPO;
            systemDefinitionPath_exp.Context = seqContextPO;
            stepPropertyObject = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();
            if (!deploying)
            {
                this.systemDefinitionPath_exp.Visible  = false;
                this.SystemDefinitionPathLabel.Visible = false;
                this.Browse.Visible = false;
            }
            //Get old variable values if they exist
            try
            {
                deploysysdef_exp.Text = stepPropertyObject.GetValString("Veristand.DeploySystemDefinition", 0);
                if (deploying)
                {
                    SystemDefinitionPath = seqContext.SequenceFile.FileGlobalsDefaultValues.GetValString("Veristand.SystemDefinitionPath", 1);
                    seqContext.SequenceFile.FileGlobalsDefaultValues.SetFlags("Veristand.SystemDefinitionPath", 0, 0x4400000);
                    this.systemDefinitionPath_exp.Text = SystemDefinitionPath;
                }
            }
            catch (System.Runtime.InteropServices.COMException)
            {
                //Variables are not already created. They will be created later
                deploysysdef_exp.Text = "True";
                SystemDefinitionPath  = "";
                this.systemDefinitionPath_exp.Text = SystemDefinitionPath;
            }
        }
        public ConfigureLoggingFile(SequenceContext _seqContext, ChannelType _channelType)
        {
            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
            LogFilePath_exp.SetValidEvaluationTypes(eval);
            LogFilePath_exp.Context = seqContextPO;
            EvaluationTypes evalNumeric = seqContext.Engine.NewEvaluationTypes();

            stepPropertyObject = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();

            //Set up dialog objects
            sysDefPath = seqContext.SequenceFile.FileGlobalsDefaultValues.GetValString("Veristand.SystemDefinitionPath", 1); //Get the System Definition path for the Client Sequence File. Create it if it does not exist.
            seqContext.SequenceFile.FileGlobalsDefaultValues.SetFlags("Veristand.SystemDefinitionPath", 0, 0x4400000);
            channelList                     = stepPropertyObject.GetValVariant("Veristand.ChannelPaths", 0);                 //Get ChannelPaths array of strings.
            LogFilePath_exp.Text            = stepPropertyObject.GetValString("Veristand.LogFilePath", 0);                   //Try to get the Log File Path associated with this step
            SegmentFileSize_boolean.Checked = stepPropertyObject.GetValBoolean("Veristand.FileSegmenting", 0);               //Get the boolean for Segmenting File Size option
            FileSegmentSize_num.Value       = (int)stepPropertyObject.GetValNumber("Veristand.FileSegmentingSize", 0);       //Get the File Segment Size value
            fileDescription                 = stepPropertyObject.GetValString("Veristand.FileDescription", 0);               //Get the File Description advanced property
            filePropertyNames.AddRange(stepPropertyObject.GetValVariant("Veristand.FilePropertyNames", 0));
            filePropertyValues.AddRange(stepPropertyObject.GetValVariant("Veristand.FilePropertyValues", 0));
            channelType = _channelType;
            loggingChannelSelection.ShowCheckBox = true;

            //If the file at path FileGlobals.Veristand.SystemDefinitionPath exists and the extension is ".nivssdf" use that System Definition file to initialize the TreeAliasBrowserWF.
            if (System.IO.File.Exists(StringUtilities.unparseFilePathString(sysDefPath)) && System.IO.Path.GetExtension(StringUtilities.unparseFilePathString(sysDefPath)) == ".nivssdf")
            {
                //File exists with correct extension so try and populate the tree
                InitializeListBox(sysDefPath);
            }
            //If FileGlobals.Veristand.SystemDefinitionPath is empty or the file does not exist at path FileGlobals.Veristand.SystemDefinitionPath.
            else     //(sysDefPath == "" || !System.IO.File.Exists(StringUtilities.unparseFilePathString(sysDefPath)))
            {
                //Do nothing
            }
            VSDialogs vsdiag = new VSDialogs();
        }
        public SetMultipleChannelsDialogDGV(SequenceContext _seqContext, ChannelType _channelType)
        {
            InitializeComponent();
            this.DoubleBuffered = true;
            //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();
            stepPropertyObject = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();

            //Set up dialog objects
            sysDefPath = seqContext.SequenceFile.FileGlobalsDefaultValues.GetValString("Veristand.SystemDefinitionPath", 1); //Get the System Definition path for the Client Sequence File. Create it if it does not exist.
            seqContext.SequenceFile.FileGlobalsDefaultValues.SetFlags("Veristand.SystemDefinitionPath", 0, 0x4400000);
            channelNamesList.AddRange(stepPropertyObject.GetValVariant("VeriStand.ChannelNames", 0));                        //Get ChannelNames array of strings.
            channelValuesArray = stepPropertyObject.GetValVariant("VeriStand.ValuesToSet", 0);                               //Get ValuesToSet array of numbers
            channelType        = _channelType;

            if (baseNodeArray != null)
            {
                baseNodeArray = (BaseNodeType[])stepPropertyObject.GetValInterface("Veristand.BaseNodeArray", 0);//Get the BaseNodeArray from TestStand and cast to a BaseNodeType[]
            }
            else
            {
                baseNodeArray = new BaseNodeType[0];
            }

            VSDialogs vsdiag = new VSDialogs();

            //If the file at path FileGlobals.Veristand.SystemDefinitionPath exists and the extension is ".nivssdf" use that System Definition file to initialize the list of channels in the dataGridView1
            if (System.IO.File.Exists(StringUtilities.unparseFilePathString(sysDefPath)) && System.IO.Path.GetExtension(StringUtilities.unparseFilePathString(sysDefPath)) == ".nivssdf")
            {
                //File exists with correct extension so try and populate the tree
                InitializeDataGridView(sysDefPath, channelNamesList, channelValuesArray, true);
            }
            //If FileGlobals.Veristand.SystemDefinitionPath is empty or the file does not exist at path FileGlobals.Veristand.SystemDefinitionPath.
            else //(sysDefPath == "" || !System.IO.File.Exists(StringUtilities.unparseFilePathString(sysDefPath)))
            {
                //Do nothing
            }
        }
Exemple #10
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);
            }
        }
        public SetMultipleChannelsDialog(SequenceContext _seqContext, ChannelType _channelType)
        {
            InitializeComponent();
            //this.DoubleBuffered = true;
            //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
            EvaluationTypes evalNumeric = seqContext.Engine.NewEvaluationTypes();

            stepPropertyObject = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();

            //Set up dialog objects
            sysDefPath = seqContext.SequenceFile.FileGlobalsDefaultValues.GetValString("Veristand.SystemDefinitionPath", 1); //Get the System Definition path for the Client Sequence File. Create it if it does not exist.
            channelNamesList.AddRange(stepPropertyObject.GetValVariant("VeriStand.ChannelNames", 0));                        //Get ChannelNames array of strings.
            channelValuesArray = stepPropertyObject.GetValVariant("VeriStand.ValuesToSet", 0);                               //Get ValuesToSet array of numbers
            channelType        = _channelType;
            VSDialogs vsdiag = new VSDialogs();

            //If the file at path FileGlobals.Veristand.SystemDefinitionPath exists and the extension is ".nivssdf" use that System Definition file to initialize the list of channels in the dataGridView1
            if (System.IO.File.Exists(StringUtilities.unparseFilePathString(sysDefPath)) && System.IO.Path.GetExtension(StringUtilities.unparseFilePathString(sysDefPath)) == ".nivssdf")
            {
                //File exists with correct extension so try and populate the tree
                InitializeTableView(sysDefPath, channelNamesList, channelValuesArray);
            }
            //If FileGlobals.Veristand.SystemDefinitionPath is empty or the file does not exist at path FileGlobals.Veristand.SystemDefinitionPath.
            else //(sysDefPath == "" || !System.IO.File.Exists(StringUtilities.unparseFilePathString(sysDefPath)))
            {
                //Do nothing
            }
        }
        public StimulusProfileDialog(SequenceContext _seqContext)
        {
            InitializeComponent();

            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;
            stimulusProfilePath_exp.SetValidEvaluationTypes(eval);
            stimulusProfilePath_exp.Context = seqContextPO;
            gatewayIP_exp.SetValidEvaluationTypes(eval);
            gatewayIP_exp.Context = seqContextPO;
            uut_exp.SetValidEvaluationTypes(eval);
            uut_exp.Context    = seqContextPO;
            stepPropertyObject = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();

            try
            {
                this.stimulusProfilePath_exp.Text = StringUtilities.addDoubleQuotesAroundString(stepPropertyObject.GetValString("Veristand.StimulusProfilePath", 0));
                this.gatewayIP_exp.Text           = StringUtilities.addDoubleQuotesAroundString(seqContext.SequenceFile.FileGlobalsDefaultValues.GetValString("Veristand.GatewayIP", 0));
                this.uut_exp.Text = StringUtilities.addDoubleQuotesAroundString(stepPropertyObject.GetValString("Veristand.UUT", 0));
            }
            catch (System.Runtime.InteropServices.COMException)
            {
                //Variables are not already created. They will be created later
                this.gatewayIP_exp.Text           = StringUtilities.addDoubleQuotesAroundString("localhost");
                this.stimulusProfilePath_exp.Text = StringUtilities.addDoubleQuotesAroundString("");
                this.uut_exp.Text = StringUtilities.addDoubleQuotesAroundString("0");
            }
        }
        public ConfigureLegacyStimulusProfile(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();

            //Get old values if they exist
            try
            {
                autostart = seqContextPO.GetValBoolean("Locals.Veristand.StimProfAutoStart" + stepID, 0);
                this.AutoStart.Checked = autostart;
                StimProfilePathStr     = seqContextPO.GetValString("Locals.Veristand.StimProfPath" + stepID, 0);
                this.FilePath.Text     = StimProfilePathStr;
                timeout            = (uint)seqContextPO.GetValNumber("Locals.Veristand.StimProfTimeout" + stepID, 0);
                this.Timeout.Value = timeout;
                stopOnDisconnect   = seqContextPO.GetValBoolean("Locals.Veristand.StimProfStopOnDisconnect" + stepID, 0);
            }
            catch (System.Runtime.InteropServices.COMException)
            {
                //Variables are not already created in TestStand. They will be created later
                autostart              = false;
                StimProfilePathStr     = "";
                this.AutoStart.Checked = autostart;
                this.FilePath.Text     = StimProfilePathStr;
                timeout                     = 1000;
                this.Timeout.Value          = timeout;
                stopOnDisconnect            = false;
                this.StopDisconnect.Checked = stopOnDisconnect;
            }
        }
Exemple #14
0
        public ModelParametersFromFile(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();
            stepPropertyObject = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();
            EvaluationTypes evalString = seqContext.Engine.NewEvaluationTypes();

            evalString.PropertyValueTypeFlags = 0x4; //set string as the valid evaluation type
            target_exp.SetValidEvaluationTypes(evalString);
            target_exp.Context = seqContextPO;
            EvaluationTypes evalStringArray = seqContext.Engine.NewEvaluationTypes();

            evalStringArray.PropertyValueTypeFlags = 0x100; //set string array as the valid evaluation type
            parameterfile_exp.SetValidEvaluationTypes(evalStringArray);
            parameterfile_exp.Context = seqContextPO;
            //Get old values if they exist
            try
            {
                this.parameterfile_exp.Text = stepPropertyObject.GetValString("Veristand.ModelParameterFilepath", 0);
                this.target_exp.Text        = stepPropertyObject.GetValString("Veristand.TargetName", 0);
            }
            catch (System.Runtime.InteropServices.COMException)
            {
                //Variables are not already created. They will be created later
                this.parameterfile_exp.Text = "";
                this.target_exp.Text        = "";
            }
        }
        public ConfigureGateway(SequenceContext _seqContext)
        {
            //Initialize Windows form
            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
            SeqContextFileGlobals = selectedTSSequence.SequenceFile.FileGlobalsDefaultValues;
            propObjectFile        = seqFile.AsPropertyObjectFile();
            stepPropertyObject    = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();
            //Get old values if they exist
            username_exp.Context = seqContextPO;
            EvaluationTypes eval = seqContext.Engine.NewEvaluationTypes();

            eval.PropertyValueTypeFlags = 0x4;//Strings are valid
            EvaluationTypes evalBool = seqContext.Engine.NewEvaluationTypes();

            evalBool.PropertyValueTypeFlags = 0x1;//Booleans are valid
            username_exp.SetValidEvaluationTypes(eval);
            password_exp.SetValidEvaluationTypes(eval);
            gatewayIP_exp.SetValidEvaluationTypes(eval);
            projectpath_exp.SetValidEvaluationTypes(eval);
            visible_exp.SetValidEvaluationTypes(evalBool);
            password_exp.Context    = seqContextPO;
            gatewayIP_exp.Context   = seqContextPO;
            projectpath_exp.Context = seqContextPO;
            visible_exp.Context     = seqContextPO;
            try
            {
                EventHandler gatewaychangehandler = new EventHandler(this.gatewayIP_exp_Change);
                this.gatewayIP_exp.Change -= gatewaychangehandler;
                gatewayIP = StringUtilities.addDoubleQuotesAroundString(seqContext.SequenceFile.FileGlobalsDefaultValues.GetValString("Veristand.GatewayIP", 0));
                this.gatewayIP_exp.Text    = gatewayIP;
                this.gatewayIP_exp.Change += gatewaychangehandler;

                EventHandler projchangehandler = new EventHandler(this.projectpath_exp_Change);
                this.projectpath_exp.Change -= projchangehandler;
                projectPathStr               = StringUtilities.addDoubleQuotesAroundString(seqContext.SequenceFile.FileGlobalsDefaultValues.GetValString("Veristand.ProjectPath", 0));
                this.projectpath_exp.Text    = projectPathStr;
                this.projectpath_exp.Change += projchangehandler;

                username = seqContextPO.GetValString("Step.Veristand.username", 0);
                this.username_exp.Text = username;
                password = seqContextPO.GetValString("Step.Veristand.password", 0);
                this.password_exp.Text = password;
                visible_exp.Text       = seqContextPO.GetValString("Step.Veristand.Visible", 0);
            }
            catch (System.Runtime.InteropServices.COMException)
            {
                //Variables are not already created. They will be created later
                EventHandler gatewaychangehandler = new EventHandler(this.gatewayIP_exp_Change);
                this.gatewayIP_exp.Change += gatewaychangehandler;
                gatewayIP = "localhost";
                this.gatewayIP_exp.Text    = gatewayIP;
                this.gatewayIP_exp.Change += gatewaychangehandler;

                EventHandler projchangehandler = new EventHandler(this.projectpath_exp_Change);
                this.projectpath_exp.Change -= projchangehandler;
                projectPathStr               = "";
                this.projectpath_exp.Text    = projectPathStr;
                this.projectpath_exp.Change += projchangehandler;

                this.password_exp.Text = "";
                this.username_exp.Text = "";
            }
        }
        public ConfigureLoggingFile(SequenceContext _seqContext, ChannelType _channelType)
        {
            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
            LogFilePath_exp.SetValidEvaluationTypes(eval);
            LogFilePath_exp.Context = seqContextPO;
            EvaluationTypes evalNumeric = seqContext.Engine.NewEvaluationTypes();

            stepPropertyObject = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();

            //Set up dialog objects
            sysDefPath = seqContext.SequenceFile.FileGlobalsDefaultValues.GetValString("Veristand.SystemDefinitionPath", 1); //Get the System Definition path for the Client Sequence File. Create it if it does not exist.
            seqContext.SequenceFile.FileGlobalsDefaultValues.SetFlags("Veristand.SystemDefinitionPath", 0, 0x4400000);
            channelList                     = stepPropertyObject.GetValVariant("Veristand.ChannelPaths", 0);                 //Get ChannelPaths array of strings.
            LogFilePath_exp.Text            = stepPropertyObject.GetValString("Veristand.LogFilePath", 0);                   //Try to get the Log File Path associated with this step
            SegmentFileSize_boolean.Checked = stepPropertyObject.GetValBoolean("Veristand.FileSegmenting", 0);               //Get the boolean for Segmenting File Size option
            FileSegmentSize_num.Value       = (int)stepPropertyObject.GetValNumber("Veristand.FileSegmentingSize", 0);       //Get the File Segment Size value
            fileDescription                 = stepPropertyObject.GetValString("Veristand.FileDescription", 0);               //Get the File Description advanced property
            filePropertyNames.AddRange(stepPropertyObject.GetValVariant("Veristand.FilePropertyNames", 0));
            filePropertyValues.AddRange(stepPropertyObject.GetValVariant("Veristand.FilePropertyValues", 0));
            channelType = _channelType;
            if (stepPropertyObject.GetValInterface("Veristand.BaseNodeArray", 0) != null)
            {
                baseNodeArray = (BaseNodeType[])stepPropertyObject.GetValInterface("Veristand.BaseNodeArray", 0);//Get the BaseNodeArray from TestStand and cast to a BaseNodeType[]
            }
            else
            {
                baseNodeArray = new BaseNodeType[0];
            }

            // These changes are in the 2014 VeriStand trunk so as soon as we start using that assembly we should revert these changes.
            // This is a hack for now to get check boxes on the Windows Form TreeAliasBrowserWF.

            Type      TreeAliasBrowser      = typeof(StorageChannelAndAliasBrowser);
            FieldInfo m_ChanAliasWPFElement = typeof(NationalInstruments.VeriStand.SystemStorageUI.WinFormsWrapper.TreeAliasBrowserWF).GetField(
                "m_ChanAliasWPFElement",
                BindingFlags.NonPublic |
                BindingFlags.Instance);
            FieldInfo aliasBrowserInfo = TreeAliasBrowser.GetField(
                "AliasTab",
                BindingFlags.NonPublic |
                BindingFlags.Instance);
            FieldInfo treeviewInfo = TreeAliasBrowser.GetField(
                "TreeView",
                BindingFlags.NonPublic |
                BindingFlags.Instance);
            var topLevelBrowser = (StorageChannelAndAliasBrowser)m_ChanAliasWPFElement.GetValue(loggingChannelSelection);

            this._aliasBrowser = (SystemDefinitionBrowser)aliasBrowserInfo.GetValue(topLevelBrowser);
            this._treeView     = (SystemDefinitionBrowser)treeviewInfo.GetValue(topLevelBrowser);
            this._aliasBrowser.ShowCheckBox = true;
            this._treeView.ShowCheckBox     = true;

            //If the file at path FileGlobals.Veristand.SystemDefinitionPath exists and the extension is ".nivssdf" use that System Definition file to initialize the TreeAliasBrowserWF.
            if (System.IO.File.Exists(StringUtilities.unparseFilePathString(sysDefPath)) && System.IO.Path.GetExtension(StringUtilities.unparseFilePathString(sysDefPath)) == ".nivssdf")
            {
                //File exists with correct extension so try and populate the tree
                InitializeListBox(sysDefPath);
            }
            //If FileGlobals.Veristand.SystemDefinitionPath is empty or the file does not exist at path FileGlobals.Veristand.SystemDefinitionPath.
            else     //(sysDefPath == "" || !System.IO.File.Exists(StringUtilities.unparseFilePathString(sysDefPath)))
            {
                //Do nothing
            }
            VSDialogs vsdiag = new VSDialogs();
        }
        public ConfigureRTSequenceNumericLimit(SequenceContext _seqContext)
        {
            InitializeComponent();
            returnParamDataType = "";
            seqContext          = _seqContext;
            seqContextPO        = seqContext.AsPropertyObject();
            selectedTSSequence  = seqContext.SelectedSequences[0];
            selectedTSStep      = seqContext.SelectedSteps[0];
            stepID         = selectedTSStep.UniqueStepId;
            seqFile        = selectedTSSequence.SequenceFile;
            permSeqContext = selectedTSSequence.Locals;
            propObjectFile = seqFile.AsPropertyObjectFile();
            EvaluationTypes eval = seqContext.Engine.NewEvaluationTypes();

            eval.PropertyValueTypeFlags = 0x4; //set string as the valid evaluation type
            FilePath.SetValidEvaluationTypes(eval);
            FilePath.Context = seqContextPO;
            EvaluationTypes evalNumeric  = seqContext.Engine.NewEvaluationTypes();
            VSDialogs       vsdiag       = new VSDialogs();
            int             timeoutValue = 0;

            stepPropertyObject = selectedTSSequence.GetStepByUniqueId(stepID).AsPropertyObject();


            //Get old values if they exist
            try
            {
                timeoutValue         = (int)stepPropertyObject.GetValNumber("Veristand.Timeout", 0);
                target               = stepPropertyObject.GetValString("Veristand.Target", 0);
                sequenceFileExp      = stepPropertyObject.GetValString("Veristand.SequenceFilePath", 0);
                parameterValuesArray = StringUtilities.expressionArrayToStringArray(stepPropertyObject.GetValVariant("Veristand.ParamValuesArray", 0));
                parameterTypesArray  = StringUtilities.expressionArrayToStringArray(stepPropertyObject.GetValVariant("Veristand.ParamTypesArray", 0));
                parameterNamesArray  = StringUtilities.expressionArrayToStringArray(stepPropertyObject.GetValVariant("Veristand.ParamNamesArray", 0));
                sysDefPath           = seqContext.SequenceFile.FileGlobalsDefaultValues.GetValString("Veristand.SystemDefinitionPath", 1);
                seqContext.SequenceFile.FileGlobalsDefaultValues.SetFlags("Veristand.SystemDefinitionPath", 0, 0x4400000);

                if (sysDefPath != null && sysDefPath != "")
                {
                    try
                    {
                        currentSysDef = new SystemDefinition(StringUtilities.unparseFilePathString(sysDefPath));
                    }

                    catch (System.ArgumentException ex)
                    {
                        //Do Nothing
                    }
                }

                try
                {
                    this.Timeout.Value     = timeoutValue;
                    this.targetString.Text = target;
                    EventHandler handler = new EventHandler(this.FilePath_TextChanged);

                    /* Disable FilePath_TextChanged event. We need to disable the FilePath_TextChanged event
                     * because when the dialog is launching, the System Definition Path variable from TestStand will
                     * be populated to the FilePath control. Once it is populated, the FilePath control's event will fire,
                     * thus it will try to reload the table. We don't want the table to load twice every time the dialog is launched. */

                    this.FilePath.Change -= handler;

                    // Change the File Path

                    this.FilePath.Text = sequenceFileExp;

                    // Re-enable FilePath_TextChanged event

                    this.FilePath.Change += handler;
                    //If the file at path FileGlobals.Veristand.SystemDefinitionPath exists and the extension is ".nivssdf" use that System Definition file to initialize the TreeAliasBrowserWF.
                    if (System.IO.File.Exists(StringUtilities.unparseFilePathString(sequenceFileExp)) && System.IO.Path.GetExtension(StringUtilities.unparseFilePathString(sequenceFileExp)) == ".nivsseq")
                    {
                        //File exists with correct extension so try and populate the tree
                        InitializeTableView(_seqContext, sequenceFileExp, parameterValuesArray, parameterTypesArray, false); //Initialize the data grid with the previously selected data
                    }
                    ////If FileGlobals.Veristand.SystemDefinitionPath is empty or the file does not exist at path FileGlobals.Veristand.SystemDefinitionPath.
                    else //(sysDefPath == "" || !System.IO.File.Exists(StringUtilities.unparseFilePathString(sysDefPath)))
                    {
                        //Clear the grid
                        InitializeTableView(_seqContext, "", parameterValuesArray, parameterTypesArray, true);
                    }
                }
                catch (System.ArgumentException ex)
                {
                    //Intentially do nothing
                }
                catch (IndexOutOfRangeException ex)
                {
                    //no sequences, don't need to initialize the data grid
                }
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                //Variables are not already created in TestStand. They will be created later
                vsdiag.ShowWarningDialog(ex.Message + "------" + ex.StackTrace);

                sequenceFileExp    = "";
                this.FilePath.Text = sequenceFileExp;
            }
        }