NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

ReportOptions Troubles

I inherited some code developed from the now obsolete TestExecutive that I'm trying to port over to TestStand. At the target, I'm able to run the old and the new code and the reports contain pretty close to identical information. Since I'm new to TestStand, I'm trying to understand how the Reporting works. I want to understand how it works 1)just because and 2) because there are a few things I want to modify. So, I noticed first of all that the report format was defaulting to XML. I want it to be txt. Here are some of my initial assumptions/questions. If anything is not quite correct, please let me know.

1)
Assumption: If I do nothing, then the ReportOptions shown in Configure::ReportOptions is what I get.
Observed: However, at the target, my app hangs at the end during postprocessing (I assume it's during the report generation). I tried (at the target) setting the Configure::ReportOptions and no matter what combination I try, I get no report. If I have the OnTheFly setting enabled, I get ErrorCode -18351. If I remove OntheFly, it will just hang. There are more scenarios, but no report is ever generated.

2)
Assumption: If I set to 'Yes' the ReportOptions in Edit::Sequence File Callbacks, then I get the default ReportOptions and anything I want to override I have to do so by adding a statement such as Parameters.ReportOptions.Format="txt" in the ReportOptions View Ring.
Observation: If I add only Parameters.ReportOptions.Format="txt", the report (txt format) appears.

3)
Assumption: I thought I could add any Parameters I desired.
Observation: If I add Parameters.ReportOptions.UseOnTheFlyReporting=True, the target gives me the -18351 error (mentioned above). I'm not sure I need on the fly reporting, but I'm not sure why it fails. Do I have to have certain other settings set properly for it to work.

4) I'm trying to figure out how TestStand collect the Reprt Text it outputs. I noticed in the code that the text that gets written ultimately goes into tTestData *data in its outBuffer. How does TestStand actually grab that and display it?
0 Kudos
Message 1 of 9
(3,918 Views)
Hi mrbean,

I think you should have keep with the other thread.

I am starting to get the feeling that a lot of your problems maybe a system problem, maybe a problem with your harddrive.

I would go back to the beginning, Get your TestStand environment back to default.

Run one of the demo sequencefile, the computer motherboard test sequence.seq is a good one to use. See if you can get it to run properly. Once you know everything is running correctly. generating a report etc. Then you can start adding in your different requirements.

Make use of stepping through your sequencefiles and into the process model sequence so that you can precisely track where things start to go wrong, like this hanging.


I did you run that attachment Test1.seq from the other thread? (here

The On the fly reporting problem you are seeing, is probably an installation program, maybe the activeX component hasn't registered properly, or if its not running on the target system but running on your development then its something that hasn't been picked up in the deployment tool.


There is too much going here, which is another reason to get back to the beginning with a system that you know works.

Regards
Ray Farmer
Regards
Ray Farmer
0 Kudos
Message 2 of 9
(3,905 Views)
By the way, there is a tutorial in the TestStand User Manual, which takes you through the steps of configuring and modifying your report.

Regards
Ray.
Regards
Ray Farmer
0 Kudos
Message 3 of 9
(3,902 Views)
It looks like my code (which I inherited) concatenates all sorts of text into the data->outBuffer, where data is of type tTestData *. What I'm trying to understand, is where/how TestStand grabs these results after each step and places it in the 'Report Text' section of the Report.

In a related question, I'm looking at c_report.c in Components\Users\Models\TestStandModels, and I see calls to TS_PropertyGetPropertyObject and other TS_xxx functions. Is there an 'easy' way to find information on these routines.
0 Kudos
Message 4 of 9
(3,886 Views)
Hi,


[In a related question, I'm looking at c_report.c in Components\Users\Models\TestStandModels, and I see calls to TS_PropertyGetPropertyObject and other TS_xxx functions. Is there an 'easy' way to find information on these routines. ]

With CVI,
If you open up the Function Panel for example TS_PropertyGetPropertyObject or any other API call if you right mouse click on the panel you will open the TestStand API Help.

Also with in CVI you can look in Instrument | NI TestStand API.. this will open the function panel for the TestStand API library.

The TestStand Manual - Using TestStand with CVI will give additional help.

Regards
Ray Farmer
Regards
Ray Farmer
0 Kudos
Message 5 of 9
(3,882 Views)
My problem, however, is a step before that. I can't even find the function. I tried right-clicking and doing a 'find' at the Instument Files and Libraries level, but the searchs come back empty. Once I find the function, then I see I can right-click and get function help. I just cant easily (wothout expanding every +) find the desred functions.
0 Kudos
Message 6 of 9
(3,878 Views)
Hi,

What is the step type? Can you do a snapshot of the Specify Module screen

Ray
Regards
Ray Farmer
0 Kudos
Message 7 of 9
(3,876 Views)
I'm not sure about a step type, I'm just looking a some code in c_report.c (shown below), and I want to understand what some of the TS_ routines do. I go to CVI and I see all the libraries, etc, but don't know how to find any of these functions since they don't show up in CVI's help or TestStand's help when I go to the Index.

// post a progress message for every 2% of the top level results
if (sendProgressMessage && (level == 0) && (index % ((int)floor (numResults / 50) + 1) == 0.0))
tsErrChkMsgPopup( TS_ThreadPostUIMessage (reportOptions->thread, &errorInfo, TS_UIMsg_ProgressPercent,
index * 100.0 / numResults, "", VTRUE));

// get the result element for the current step
tsErrChkMsgPopup( TS_PropertyGetPropertyObjectByOffset(resultsList, &errorInfo, index, 0, &stepResult));

// verify that the result element is a step result
tsErrChkMsgPopup(TS_PropertyExists (stepResult, &errorInfo, "TS", 0, &isStepResult));
if (!isStepResult)
continue;
0 Kudos
Message 8 of 9
(3,874 Views)
Hi,
With your CVI project loaded and your C file displayed.

If you place your cursor some where in the text of TS_PropertyGetPropertyObjectByOffset of the line
tsErrChkMsgPopup( TS_PropertyGetPropertyObjectByOffset(resultsList, &errorInfo, index, 0, &stepResult));

Then press right mouse click and select 'Recall Function Panel' you would get the function panel of PropertyGetPropertyObjectByOffset displayed.

With in this panel if you right mouse click on the panel you will get the TestStand API Reference Help for this function. It will be in the format of the ActiveX syntax, so it doesn't quite look the same, but the explain of the function is the same.

Regards
Ray
Regards
Ray Farmer
0 Kudos
Message 9 of 9
(3,869 Views)