Using KeyFocus in TestStand

My LabView VI in the attachment sets string input box key-focused and waits for a text input scanned in. The VI stops running when a user presses ok button. When the VI runs in LabView environment, KeyFocus wroks fine. But, when it runs as a TestStand step in a sequence file, the KeyFocus feature does not work. I will always have to click on the text box first. This is a problem when a user forgot to click on and try to scan in. Attached files are the VI and the sequence file. I simplified to make my point. Please, advise how I can use the KeyFocus feature in TestStand/LabView environment as is in LabView only environment.
Attachments:
getKeyFocus.vi ‏33 KB
Sequence File1.seq ‏14 KB

Hi LegalEngineer,
Unfortunately you have stumbled across a bug within TestStand.  There is a problem where the TestStand window gets set to the front most window right after the LabVIEW front panel launches which causes the control to lose its keyfocus.  I made a slight modification to your VI that should provide a workaround.   Let me know if you still have the problem with this VI.
Pat P.
Software Engineer
National Instruments
Attachments:
getKeyFocus.vi ‏33 KB

Similar Messages

  • How frame drop test is executed using PQA in TestStand ?

    Can someone shed some light on the frame drop test which is executed using PQA in TestStand ? Also, what is the use of reference stream and trigger in the frame drop test ?
    According to the manual, the Dropped Frame processor computes the difference in pixels between consecutive frames. So, in this scenario, how does the processor compare the framedrop of the test stream with reference stream (if any).
    Thanks

    Hello Enigma123
    The Dropped Frames processor returns a metric that is the average of the absolute difference between each pixel in a frame compared to its following frame.  Depending on scene transitions or a known video playback performance, you can use this processor to determine if you are missing frames.  For example, imagine two 3x3 images
    2 2 2           1 1 1
    2 2 2     &    1 1 1
    2 2 2           1 1 1
    The average difference between these frames is 1.  A media reference stream is not used with this processor when it runs.  However, and I always recommend doing this for unreferenced tests, a data reference can be created from a reference stream to compare with future tests results. The data reference is a calcuated set of metrics that corresponds with a given PQA acquisition/processes or a set thereof.
    Here is the process I would take for unreferenced tests.
    Take a reference video that you know plays back properly.
    Set that you wish to create a data reference, acquire that video/audio stream and perform and activate the desired processors.
    Now, select that you would like to use that data reference for future acquisitions.
    Perform new acquisitions using the same processors and observe the new results stream
    You will see your results stream now centred at zero according to the following calculation  (Test Results - Reference Results) / Reference Results  [Relative Difference]
    If you see any major deviations, this is a probably cause for a concern, in our case, for dropped frames
    Let's continue this discussion in the following location:
    PQA Help
    http://forums.ni.com/t5/NI-VideoMASTER-and-NI/PQA-Help/m-p/2305242/
    Thank you.
    Sincerely,
    Greg S.

  • Using variables in TestStand 4.0

    Hi, I am new to TestStand and I am still a bit puzzled about:
    1. The differences between using Locals / Parameters / FileGlobals / StationGlobals in practices.  (Especially between Locals and FileGlobals, I can’t notice any differences when using them)
    2. When and how you would use a “Object Reference” / “ Container” variable.
    I am hoping that someone can share some demonstrating examples or readings.
    I am also interested to know the most common way/best practice to pass&share variable between sequences.
    I want to avoid using “StationGlobals” because it appears to me that a StationGlobals variable is attached to a particular station/PC, if I run the same sequence file on another machine I will then need to redefine all StationGlobals variables.  (Am I right about this?)
    To get around, I have been using “Parameters” and “Locals”, however I have to say it is tedious and easy to make mistake to pass a top level variable to a subsequence at several levels down. 
    It got to be a better way… A variable type that is global to all sequences but not hardware dependent?
    Thanks a lot.
     Phillip

    Hi Ray,
    It is much appreciated for your thorough answer, it was very good.
    However I had trouble to implement some of suggested solutions.
    *Using FileGlobals with “All Executions Share the Same File Globals”:
    Maybe explaining the application I want to achieve will help. 
    I have Sequence A, B and C.  Sequence A is the top level sequence.
    In A.seq, a “Sequence Call” is used to call B.seq in which a VI is called to initialize a instrument and pass its handle back to A.seq.  (Using a parameter)
    Later in A.seq, another “Sequence Call” is used to call C.seq in which another VI is called to request for a measurement.
    Basically what I am trying to do is to store the instrument handle into a global variable so it can be used by any other subsequences/vi inside A.seq.
    I have tried A.seq with either “Separate File Globals of Each Execution” and “All Executions Share the Same File Globals” under the properties setup.  In both cases, the “File Globals” I created in A.seq, is not available in C.seq.
    (From reading the helps, I think this option is for the situation where I have parallel sequences running.)
    *Using TestStand API PropertyObject.SetVal
    I used “Set Property Value.VI” to create a StationGlobals with the “InsertIfMissing” set to true.  It works fine normally but the problem is that the StationGlobals I want to insert is a custom type and “New Value” input only accepts a string/numeric/Boolean.
    Regards
    Phillip

  • PLC applicatio​n validation using OPC and teststand

    Hello
    I want to test a PLC application using teststand as script generator. My idea is to use TestStand to generate testcases and verify answer (read status variables, tags)
    from the PLC to confirm its code meet requirements.
    So question is, can TestStand read ad write PLC tag variables, using an OPC server ?
    Did anybody else use this strategy before ?
    Pierre Danis

    Pierre,
    For your information, there is a new TestStand Add-on "OPC DA Connect" which adds a StepType Palette dedicated to OPC Data Access.
    You can configure each step by browsing the OPC servers on your network and browsing variables within these servers.
    This toolkit has free deployment licence.
    Hoping this helps.
    Jean-Louis SCHRICKE
    ├ CTA - Certified TestStand Architect (2008 & 2010 & 2014)
    ├ CTD - Certified TestStand Developer (2004 & 2007)
    └ CLD - Certified LabVIEW Developer (2003 & 2005)

  • How to use MSCOMM with teststand

    Hello All,
           I want to communicate with serial port via MSCOMM component in teststand,And I have already regestered MSCOMM in PC.But I can't find it in "automation server" on the module tab.
           Look forward to your reply.Thanks.
    BR

    Not sure about the automation server.
    Alternatively you can use the user32.dll.Check this link below :
    http://www.xtremevbtalk.com/showthread.php?t=2299

  • Connection Points using ActiveX in TestStand

    Hi,
    Had a query . Is is possible to register connections points using Test
    Stand. I am having a COM Dll which incorporates Connection Point
    Mechanism. I am able to use this using VC++ client. But not with Test
    Stand Application.
    Regards....

    That should handled in code modules you write rather than purely in a sequence. Your connection point handlers could set TestStand globals, use TestStand synchronization objects (such as queues or notifications), write to files, set DLL globals, or use any of the dozens of other possible methods to communicate with TestStand sequences

  • How to use lock in TestStand for synchronization ?

    I am trying to implement the synchronizing techniques for the COM component. Through the document, I understood about Lock utility. But it was not clear that how should I release lock. Can anybody guide me in this issue ? My requirement is, even though 2-3 sequnces try to access same COM component, only one sequence should be able to access the COM component. Other sequences will wait till this time.

    After you create a TestStand lock using the Lock step type, you can then acquire the lock using the Lock operation of the Lock step type. When using the Lock operation of the step type, you have the option to specify the Lock Operation Lifetime. Options for this are:
    -Same as Sequence
    -Same as Thread
    -Use ActiveX reference
    The first two options are fairly explanatory; acquire lock until either the sequence or thead completes.
    The last option allows you to store an ActiveX reference to the lock operation in a TestStand variable. You can release the lock operation by setting this variable to value of Nothing (e.g. Locals.MyLock = Nothing). Or, you can release the lock by letting the variable go out of scope.
    Finally, you can release a lock using a Lock ste
    p configured for the Early Unlock operation. This allows you to release a lock before than the lifetime you configured when creating the lock.
    Hope this helps.

  • Using MAX vs Teststand for Switching

    Can anyone explain whats going on here??
    I went into MAX and gave all my ni switches ( MUX) aliases.  This is under channel/exclusions tab.  Under the Schematics tab is a column named route groups. I can give my relay connection ( like close relay 2) an alias here..like "Close Relay 2".  If I click on relay 2 in the schematic it shows a connection between ch2 and com.  Fine.   Now when I go into Teststand >Properties TAb>switching>enable switching...I have the "Operation" "Connect".  Is this redundant??  I already connected it when I called it.  If its because Teststand doesn't know what I want when I call that particular alias will it "Disconnect" when I select Disconnect from the drop down??
    Would you suggest I leave ALL my relays open in MAX and just "Connect" "Disconnect " them in Teststand??
    Can you suggest what the other options should be if:
    I want to connect 1 or more relays for this sequence, do some testing, then disconect those relays??  Is that Connection Liftetime??  So "Step"??
    What is multimode and when/how do I use it??
    Included a few screen caps
    Thanks!
    Clint
    Solved!
    Go to Solution.
    Attachments:
    MAX SW.jpg ‏77 KB
    Teststand SW.jpg ‏79 KB

    Hey Clint,
    NI Switch Executive exists in both MAX and TestStand (and LabVIEW, etc).  You can program individual routes in TestStand, or you can precreate complex route groups in MAX and then call those routes/route groups in TestStand.  Say for example that you want to connect A to B, C to D, E to F, you can create a route group called "awesome channels" in MAX, then add the explicit connections to that route group (A to B, C to D, E to F).  Now in TestStand you simply need to connect "awesome channels" and NI Switch Executive will do the rest. 
    While you can connect channels in MAX, the intent is that you create the route groups in MAX and then use those route groups in test stand (if for no other reason that TestStand is automated while MAX is not).  Ultimately, you can use the SW however you'd like, but we intend for the runtime execution to be automated in teststand.  Think of MAX as the debug/configuration environment. 
    Connection Lifetime is how long the relays should stay connected.  For example, placing lifetime at "Step" means that as soon as that particular TestStand step completes, the relays will disconnect. 
    Multiconnect mode is the concept that a relay can be connected more than once in software.  As long as the connect count is 0, the relay is open.  If the relay count is greater than 0, then the relay is closed.  Say, for example, that you have two different tests that can run simultaneously and they share the same relay.  Specifically, test 1 requires relays A and B, while test 2 requires relays B and C.  If you're able to perform both tests simultaneously (a function of your DUT), then when you connect test 1 and 2 simultaneously, relays A and C will both have a connect count of 1 (they've been connected once), but relay B will have a connect count of 2.  Thus, when test 2 finishes and disconnects its associated relays, test 1 could still be running; since relay B will have a connect count of 1 after test 2 'disconnects' relay B, relay B will still be closed and test 1 won't be interrupted.  The concept takes a minute to wrap your head around, but ultimately it is quite powerful.
    NI Switch Executive is a very powerful program.  Once you've played around with it for a bit, it is intuitively easy, but there is a higher rampup curve versus our other switch programming software (NI-Switch, NI-DAQmx, etc).  NI Switch Executive is particularly well suited for TestStand.
    Let us know if you have any other questions or if my answers aren't clear.  Have a great day!
    -John Sullivan
    Analog Engineer

  • Want to use dotNet with teststand, but unsure how to send commands through serial port

    I have a loCom communication dll used to send and recieve commands through serial comunication for a particular product.  I the past they have used a LabVIEW wrapper to send and recieve commands, using this particular dll.  I would like to just use testStand for the DOTNET Dll.  I can get the commands, know the inputs and outputs required, however I can not figure out how to send the commands to the serial port.  Anyone have any exprience doing this in TesSTand?

    hallawt,
    With your .NET code module, you should be able to call it directly, most likely as a parameter in the .NET method.
    What are the inputs for the method you're trying to use?
    Also, could you clarify where you're starting to have problems in your project?
    Regards,
    Renée M
    Applications Engineer
    National Instruments

  • How do I Launch a Microsoft WORD Document using AciveX from testStand

    Hello All:
    I would like to launch a Word document from within Teststand. I would also like to have the ability to search the document for particular sections of the document. I can not find any sequence file examples that even comes close to demonstrating any of this.
    Thanks...

    Hello Craig,
    I have attached an example that will demonstrate this for you. You may need to change the Word Server to match the version of Word that you have installed. This can be done by right clicking on each ActiveX step and select Specify Module. Under Automation Server, scroll down the list to Microsoft Word... and select it.
    This is primarily an example to demostrate calling Microsoft Word from TestStand. If you require additional functionality from the Microsoft Word ActiveX server then you should refer to the API reference help for Microsoft Word.
    Hope this helps!
    Bob
    Attachments:
    TSWord.zip ‏7 KB

  • How to compare 2 arrays with different operator options using parameters in Teststand

    Pls let me know how to compare 2 arrays using different operators like <= or >= or ==......

     I am using TS 2010. FYI
    ex:
    Array XX [ A_Temp,
                   B_Temp,
                   C_Oil Pressure,
                   D_Oilpressure,
    Note : A_Temp, B_Temp,C_Oil Pressure,D_Oilpressure all these parameters will be getting  numerical values (dynamically) from the simulink models and also in future I may need to add parameters to this array.
    Array YY [A_Temp_1,
                   B_Temp_2,
                   C_Oil Pressure_3,
                   D_Oilpressure_4,
    Note : A_Temp_1, B_Temp_2,C_Oil Pressure_3,D_Oilpressure_4 all these parameters will be getting  numerical values (dynamically) from the simulink models
    So my question :
    I would like to verify A_Temp >= A_Temp_1
                                B_Temp >= B_Temp_2
                                C_Oil Pressure  >= C_Oil Pressure_3  etc

  • How to use Matlab with TestStand?

    Do you absolutely need the Matlab API to do this?
    If so, any hints on how to proceed?
    Thanks,
    RayR

    Thanks Andrew,
    Using the Matlab API is what I suspected.  The client does not use LV, which is the reason for the question. 
    Yes, my nick can be misleading at times...
    RayR

  • Teststand Vs Labview in using SQL

    hi,
    I am new to using database in Labview.
    What I want to do is : Access the SQL database and get the data, send it to teststand, and send the result obtained from the teststand back to database.
    I want to know which one to use labview or teststand to make database accessing and sending more flexible so that if want to change the architecture in future.
    Presently I have a view like accessing the database through labview and get the data in required format and then send it to teststand. After running the sequence use teststand send the result back to database server.
    I use labview 2009 and have database tool kit. Teststand 4.2

    duplicate post
    It is really irritating to see the same post from you. This is the third time you posted the same question. Why are you doing this?

  • Crash in application by using TestStand 4.0 and CVI labWindows 8.01

    Our application often crashes in two areas:
    1) Often crash in the case:
        During running, if there is poop, like error message, you want to debug by opening other programs,like notepad. 
        It shows error signature:
        AppName: operator Interface.exe     AppVer. 4.0.0.326, ModName  cvirte.dll
        ModVer: 8.1.0.271         Offset : 000b9c8a
    2) Often crash at the end of test, when generating TSV file.
         AppName: operator Interface.exe     AppVer. 4.0.0.326, ModName  msvcr80.dll
        ModVer: 8.0.40727.762         Offset : 00008a8c
    We use TestStand 4.0 and CVI LabWindows 8.01. The program is running in our customized operator interface.
    But I tried using the default TestStand operator interface, it crashed too.
    Also we found it is related PC too. One PC in our lab crashed often, but it actually newer PC with bigger RAM. (Pentium(R) 4 CPU 3.2GHz), 3.19GHz, 0.99 GB of RAM)
    The one crashed Less often is Pentium(R) 4 CPU 2.80GHz, 2.79 GHZ 504 MB of RAM.
    Hope you can help us to find out root cause.
    Thanks 

    Hi Doug,
    Thanks for your reply.
    Answers to your queries:
    1. We are not calling any DLLs from our sequences.
    2. We are only using LabVIEW modules and the VIs are called under LabVIEW development environment and not using Run Time engine.
    3.  In our case it is always seqedit.exe which crashes. LabVIEW never crashed. Hence I think its TestStand whose memory is getting corrupted.
    We  are trying to narrow down the issue as suggested by you.
    By the time, we have observed a strange thing while the sequence editor crashed.
    In our sequence we call a thread which calls a VI to run continuously and collect the data from other modules.
    What we observed is that, when the sequence editor crashed (the popup appeared), it was still executing the sequence (running a loop). I was able to break the execution and debug it. All the variables were also having proper values.
    But the VI which was running in a separate thread was in surprising state. That VI was showing as executing but actually it was not running any of its code. I tried to put probes inside that VI but they were not updated (meaning that part of code was not runnning). I tried to stop the VI using the abort button but no help. It was not having any effect. I also clicked on the Pause button. The button turned red but the VI didn't halt at any part of code (actually the VI was not at all executing). An other VI which was called by another thread was working properly. I could see it by putting probes in that VI.
    If your thought about the memory corruption is correct, is it possible that this VI is somehow corrupting the sequence editor memory?
    I am not sure, but I think wherever the sequence execution may be, but the above mentioned VI is always in this state at the time of crash.
    I tried to reproduce this scenario locally but it ran without problem for hours
    Probably I am still not able to properly reproduce it. I'll work on it further and let you know the outcome.
    Regarding your last question, We are using LabVIEW notifier. A VI is called which waits on LabVIEW notifier from another VI. That code is pretty simple it just obtains a notifier and waits on it indefinitely.
    Please let me know your views on the above mentioned issue.
    Thanks,
    - Kaustubh

  • I"m having trouble using Teststand's " property loader step

    ",I tried using the Demo sequence given with Teststand Ver 1.03(which I"m using) under drive:Teststand\Exersices\Database, it works fine (Test passes) but there is no data in the Local Variables, I know that i got the columens right I might have problems selecting the rows, I tried using the Local's Variable name or step name but it didn't help, I"ll appericiate any idea's

    Hello Kitty -
    I am curious about your problem, have you placed breakpoints in your sequence before and after your property loader Database step to see that the values aren't being loaded? If the step isn't loading properly there is usually some sort of error especially when you have your database of properties set up on the same pattern as the demo. Are you seeing Step.Comp and the Limit values change but not your Local variables? This would be an interesting detail to note. Also, as far as selecting rows the demo goes by "STEPNAME" due to the nature of how the table is set up, if yours follows the same pattern, selecting the same row would be best.
    If you are seeing the changes at Run-time but not when your sequence completes then this is expected behavior and the t
    ool that you may want to use is the "Import/Export Properties..." (Located in the tool menu) to give you more permanent alterations to your sequence. As always, refer to the user manual for a discussion on differences between 'Property Loader', 'Limit Loader', and 'Import/Export Properties...'
    Regards,
    Elaine R.
    National Instruments
    http://www.ni.com/ask

Maybe you are looking for