05-10-2007 09:36 AM
05-11-2007 09:33 AM - edited 05-11-2007 09:33 AM
Message Edited by Patrick P. on 05-11-2007 09:33 AM
05-11-2007 10:43 AM
Patrick,
I have a number of power supplies (same model nr) that I am testing. Each power supply calls the same sequence to do the testing, resulting in steps being called multiple times. Each time a step is called, all of the steps history is in the buffer.
I was looking in the callbacks and see that there is a pre-step engine callback in the process model. I guess if I implemented the buffer clearing there, the effect should be global. I just wonder how much the pre-step callback will slow down the test since I also have to determine if the Infobuf even exists before I access it.
Hurst
05-11-2007 10:46 AM
You can get a value from a previous sequence run if you don't clear the value and the Edit>>Sequence Properties>>Optimize Non-Reentrant Calls to This Sequence option is set.
This option is set by default to improve performance. The help for the option has more information.
However, you can also see a previous property value within a single sequence run if you branch back to a step with a goto or a loop. This behavior is by design, both for function and performance.
Thus you should probably clear the buffer, or overwrite it instead of appending.
05-11-2007 11:06 AM
Pre and Post step callbacks have the overhead of a sequence call. If your steps take a long time on average, you won't notice it. However, if your steps are very fast and you have a lot of them, you will see a slow down.
Step properties are not a good place to store history information. For example, if you call the same subsequence in parallel threads (or executions) or call it recursively, you'll have multiple instances of the steps, inadvertantly splitting the histories.
If possible, it would be better to store history information somewhere else, perhaps in fileglobals. Also note that if you put the property in the step result, you could reconstruct the history for each step by iterating the result list after the test completes and finding the set of results generated by each step.
05-11-2007 12:05 PM
I am NOT trying to store history information.
My utility function works like a printf call. Multiple printf calls in a step just append their output to the buffer. What I meant by history was:
when the first power supply calls the sequence, its output appears in its section of the test report.
when the second power supply calls the sequence, what appears in the test report for its section is the output from power supply #1 followed by the output from power supply #2.
Finally when the eigth power supply called the sequence step the test report section for the eigth power supply contained the outputs of all eight visits to this step.
I am testing a whole system, so I can't test the individual components seperately.
Hurst C.