06-01-2015 04:03 AM
Hello,
little attempt to revive my topic out from the grave, it's been more than a month without answer, while I originally thought my explanations were clear and concise enough.
The problem remains, yet the question is more structural though :
Is it possible to control Teststand (make it my b...each) from Labview, hence use it in 'slave' mode, or the only way to do a proper job is to use Testand as 'master' and commander Labview that would act only as a thin layer for displaying content (ActiveX widgets on front panel) and IO/callback interface ?
That would definitively tells me if my current application architecture (Labview controlling Teststand through APIs) is right or wrong.
David Koch
06-10-2015 05:32 AM
Hi David,
maybe this old thread helps.
OK this stuff is done in C#, but don't care api Calls were the same in LV
Regards
Juergen
06-10-2015 05:43 AM
06-10-2015 07:15 AM
Hi David
this example should working for 4/5
It is excatly the way you have preferd in your first question.
But with just one difference! I am using a process model because without it you will get NO report at all.
I am using the NI's default one with entry point "Single Pass"
That was all.
Juergen
06-17-2015 04:23 AM - edited 06-17-2015 04:44 AM
Hello j_dodek, sorry for the delay.
Thanks for your input, it validates some stuff I already
implemented in my Labview version. However there
are two things I'd still want to modify at runtime without
having to touch the Teststand's side (understand the
models) :
1- Inject a UUT serial before execution (very important)
2- Perhaps change the report path (but that's optional)
Yes, it's big. Because big is beautiful.
Several parts are currently disabled because non
functional (hangs the engine because 'RunState'
variables are not found) 😕
I admit a text version would be something like 30
lines of code, but hey, that's the magic of the good
old GLanguage where you also have to route your
algorithm.
David Koch
06-17-2015 06:12 AM
Hi David.
I fact that is beautiful.
For me it is clear why do not have access to your RunState.Root.xxx stuff.
But before i am going to answer that.
I would like to know why you do not want to use a process model at all.
I also would like to reinvite Norbert_B to this dicsussion again.
In my opinion you can throw TestStand to the garbage if you dont care or use the process model.
It is hard to live without heart.
Regards
Juergen
06-17-2015 08:41 AM
I know I'm a hearthless **bleep**, but that's not the point being
addressed here. There's reasons why I lost faith and passion
for programming during the last year.
Well, I do not need all the subtilities surrounding a Teststand
model because all I need is (love ?) doing a 'Simple pass'
with injecting a serial number before the test. All the UI and
DB management is done by my 'operator interface'.
The chosen (one ?) architecture was LV to control TS as a
simple test engine, without using all the capabilities offered.
Hence I just need TS to inject a UUT serial, run a SEQ, get
the resulting XML, and voila.
David Koch
06-17-2015 10:16 AM - edited 06-17-2015 10:16 AM
Hi David,
... you said RunState.Root.xxx stuff is not found.
You are right!!
They are defined in the "heart", NI is calling this a Sequnence from type "Execution EntryPoint"
--> The Sequence Icon is RED maybe they thougt heart as well !?!?!? <--
That means you have no heart so thats reason why you can not find your variables of course
All the steps you mentionend before the "voila" were jobs of the "Execution EntryPoint"
even reportgeneration is done there because there is a sequence doing this job for you.
If you dont like that --> please throw TestStand to the garbage and write your own sequncer.
What do think of renaming 'SimplePass' to 'SinglePass'
and use the SequentialModel.seq that comes with Teststand.
I going to add the UUT stuff to my Example and viola ?
Juergen
06-17-2015 11:10 AM
Well, before using TS as a test engine, the company I'm currently
contracted in used to have their own sequencer, quite steady yet
lacked of hierarchical features (calling sub sequences with
parameters). TS offers that, but encapsulate everything in its own
way of doing things.
OK, the 'RunState.Root.xxx' stuffs are not to be found before
execution, but where are the same variables used as default
entry before execution ? I'd like to write in these variables and
TS to use their content and do the job.
Thanks for providing me with source code and explanations.
David KOCH
06-18-2015 01:32 AM