Using TestStand Engine API in LabVIEW

Hi all,
I am currently working for a proejct where automation of testing is involved, For which NI LabVIEW and TestStand are used. My previous experience is in LabVIEW only and not in TestStand. In the current project I have to develop a UI where user can select the test sequences and execute them  automatically with a simple start command. So I thought to develop a UI in LabVIEW where I will call TestStand APIs in LabVIEW. I have a developed a code by calling the TestStand APIs and able to execute the sequence, but unable to generate the report. Does  any have stuff where in TestStand APIs are called in LabVIEW and test report is generated.
As I mentioned earlier I haven't worked much in TestStand. I have gone through the TestStand examples like Simple UI. But it didn't helped me much.
To put our project requirement in simple.
1.It should  have the UI to select the TestCases (Test Sequences) and an option to select the no.of times the test cases needd to be executed.
2. It should generate the reports for all the test cases.
3. UI should support localization.
Considering the above requirements I have thought to develop UI in LabVIEW calling the TestStand APIs. I also got to know that UI can be developed using TestStand, but I am not sure whether the above mentioned requirments can be fullfilled or not.
I am attaching the VI what I have developed in the LabVIEW with which I am able to execute the sequences, but unable to generate the report. Kindly look into the VI and let me know what need to be corrected to generate the report using the same VI.
Thanks and Regards
Giridhar
Attachments:
TestStand_Enginevi.vi ‏21 KB

If you want to generate a report you'll have to choose an entry point. You should have a look at the LabVIEW OI (operator Interface) shipped with TestStand
Rodéric L
Certified LabVIEW Architect

Similar Messages

  • Simple Teststand UI API for LabVIEW

    Like many people I know how painful it is to program a Teststand user interface in LabVIEW.
    To combat that I have developed a new API which wraps the ActiveX calls into modern object oriented code which follows proper LabVIEW programming paradigms.
    Please check it out:
    https://decibel.ni.com/content/docs/DOC-43511
    This is pretty much beta software, so constructive feedback on the code or the article itself is greatly appreciated.

    Hi holy,
    I am not familiar with that instrument, but looking at the spec, it doesn't look like its compatible with IVI.
    The product spec says it comes with a driver for labview and probably some example VI's.
    Therefore to interface with TestStand you will have to use the LabVIEW adapter rather than the IVI step types.
    If you are using TestStand 3.x, then you should be able to interface to the individual driver VI's or create your own higher level function VI and call these using the LabVIEW Adapter.
    The driver doesn't appear to be available as a download from the NI website, otherwise I would have created an example sequence file for you.
    Hope this offers some help.
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • Due to the requirement of a UUT report with pageheaders, I am looking for solution to print an MS Access report from TestStand. I am using TestStand 4.2 and LabView 8.6.

    Solved!
    Go to Solution.

    You can customize your process model with LabVIEW steps. You can connect to the access database http://digital.ni.com/public.nsf/allkb/1D5EB4DCBD13106486256B9D005E11B0 you can also get the data and format it and print it with the report generation toolkit, or you could see if Access exposes those functions through an ActiveX server. What functionality exactly are you looking for, and at the end of the day how much time are you willing to develop your own customized microsoft access reporting function?
    Richard S -- National Instruments --Applications Engineer -- Data Acquisition with TestStand

  • Labview gui control using teststand

    Hi,
    i am using TestStand for controlling the LabVIEW gui, gui includes the state machine with user interface event handler architecture. For controlling the gui input i have used the TestStand file global's linking with Set and Get property vi in LabVIEW, and for the event structure i have used Val(Sign) property to execute the event in labview. but i am getting problem with some event missing and not synchronizing well between TestStand and my gui.
    please help me to resolve this..
    Regards,
    Manju G

    Use a while loop step type
    while loop step type ( locals.boolvalue==false)
    start
    Wait 1 sec ( This wait is required else it will be a very tight executed loop)
    end
    Check out the attached sequence.
    Ravi S
    Attachments:
    Looping till signal present.seq ‏59 KB

  • Use VirtualBench API without LabVIEW. Example: Python, DLLs, etc.

    Hello,
    I would like to know if there is a way to use the VirtualBench API without LabVIEW?
    Like using python or something.
    Thank you
    Solved!
    Go to Solution.

    We just released version 1.1 of VirtualBench that adds a C API and a bunch of other features, see http://forums.ni.com/t5/VirtualBench/Announcing-free-firmware-update-version-1-1-adds-SPI-and-I2C/td....  With that you could use VirtualBench in your programming language of choice if you write the appropriate bindings.
    Zach Hindes
    NI R&D

  • ActiveX API vs Engine API

    Hello,
    I want to develop an Operator Interface with C#, but I do not know whether I should use the TestStand ActiveX API or TestStand Engine API. From my view, the TestStand ActiveX API is more sampler than the Engine API, but the Engine API is more flexible and powerful.
    Actually, we do not know what it is the different between the ActiveX API and Engine API, could you please to tell me in which case I should use the ActiveX API and in which case I should use Engine API?
    What is the advantage and disadvantage of ActiveX API and Engine API separately?
    Thanks in advance!
    Regards
    Simon
    Solved!
    Go to Solution.

    Hi Doug,
    At first, thanks for your feedback!
    My question is that I want to know the difference between the UI Controls API (Smart Pointer) and the ActivieX API (Pure API)?
    The UI Controls API means the API defined in TestStand help document "TestStandUIControlsReferencePoster.pdf", and ActivieX API means the API defined in document "TestStandAPIReferencePoster.pdf".
    And I do not know when I should use the UI Controls API and when I should use the ActiveX API?
    It seems that the ActiveX API has more powerful  to control/access TestStand than the UI Controls API, is that right?
    Thanks!
    Regards
    Simon

  • How to reduce number of output parameters in case of determination engine API

    Hi
    We are using determination engine API to integrate with the third party (OBRM) . In that case all the base/top/intermediate attributes have been sent in xml as output.
    Is there any way to filter out the output parameters as I don't want to send all attributes in output XML.
    Thanks and Regards
    Vandana

    There are the following possible copies of an object that can be made in TopLink.
    - Session cache - copy of object stored in the Session cache, this instance is considered read-only and can be shared. In the case of a shared cache, this copy exists in the ServerSession cache, in the case of an isolated cache, this copy exists in the ClientSession cache.
    This copy can be created whenever a query is executed against a ClientSession, or non-isolated UnitOfWork. To avoid this copy for an update operation, you can query in a UnitOfWork, and set your descriptor's unitOfWorkCacheIsolationLevel to ISOLATE_CACHE_ALWAYS (added in 10.1.3).
    This copy can be created after a inserted object is committed as well. ISOLATE_CACHE_ALWAYS will also avoid this.
    - UnitOfWork working copy. Instance of the object that is modified in the UnitOfWork. This instance must exist as at least one instance is required, unless UpdateAll / DeleteAll / SQL queries are used.
    - UnitOfWork backup copy. This copy is used to track changes to the object. This copy can be avoided if attribute change tracking is used (added in 10.1.3, weaving added in 11g).
    So, it is possible to only have a single copy.
    You can also use a DatabaseSession which only maintains a single copy. You can use Insert and UpdateObjectQuery's, these will update everything and not give you the benefit of change tracking nor a shared cache, but may be useful in batch transactions such as yours.
    -- James : http://www.eclipselink.org

  • NI 5660 Driver DLL Errors when using Teststand 2010 and LabVIEW Run-Time Engine 2010

    This problem seems similar to the post "Resource not found error in executable on developmen​t machine." but I didn't want to repost under that thread because I only happened upon it by chance and none of my searches brought me there... so I made a more descriptive Subject.
    I am working on a system that uses a PXI Chassis with a NI 5600 Downconverter and a NI 5620 high speed digitizer, among other PXI Cards. 
    I inherited working code written in LabVIEW 2010, running with the LabVIEW Run-Time Engine 2010.  The code was using a custom executive and my task was to rewrite the test using TestStand 2010.  I reused the majority of the old code.  The old code used NI-5660 to control the 5600 and 5620.  When I run my sequence using the LV Development System and TestStand, it runs without any issues.  When I change the adapter over to LabVIEW Run-Time Engine 2010, all of my NI5660 VIs become broken due to DLL issues.  It warns that the nipxi5600u​.dll was not initialized correctly.  Many of the errors are associated with the NI Tuner and NI Scope. After this LabVIEW will crash randomly, and the seqeunce will not work in TestStand even when back with the LV Development Adapter.  The only way to recover after this is to restart the computer - TestStand automatically reverts back to the development system, the VIs are no longer broken and the sequence works again. 
    I have all of my VIs associated with a project. After reading a little bit about DLLs and TestStand, I found all of the DLLs in the dependencies section of my project and added them to my TestStand workspace.  I also used Dependency Walker to track down the problems with the nipxi5600u​.dll, the 2 DLL files that it said were not found already existed in the same folder as the original DLL (C:\Windows\System32).  I have also performed a Mass Compile to make sure everything was running in LV 2010.  If I skip the steps involving the 5660, my entire sequence runs fine. 
    The previous code was running with the LabVIEW Run-Time Engine without any issues.  Is there just a step I am missing?  Has anyone seen anything like this before?  I can send screenshots of errors to provide more detail if necessary. 

    I have tried some more things and still can't get it to work.  I have added the VIs mentioned in the Notes On Creating Modulation Executables KB both to the TestStand workspace and the LabVIEW project holding all of my VIs.  This did not change the results. 
    When I try to run my sequence, The first error I get is shown in Error 1445.bmp.  This happens when I try to use the NI 5660 initialize.vi.  If I click ignore, the next error I see is shown in Error -20551.bmp.  When I try to open the VI to look at it, I get the 2 DLL errors shown in Error loading nipxi5600u.bmp and Error loading nidaq32.bmp.  When I close TestStand, I get the error LabVIEW Fatal Error.bmp. 
    Attachments:
    Error1445.JPG ‏164 KB
    Error -20551.JPG ‏174 KB
    Error loading nipxi5600u.JPG ‏9 KB

  • Calling 64-bit TestStand Engine from 32-bit LabVIEW

    I am creating my own TestStand user interface in 32-bit LabVIEW but I want to use the 64-bit TestStand Engine. I can't find a way to specify this. The read-only API property "Engine.Is64Bit" is coming back false when I run from my UI, but when I run from the Sequence editor, it comes back true.  How is this determined and set at startup???

    I dont think you can build a 64 bit TestStand interface using a 32 bit Labview.
    FYI the the 32 bit User interface code is stored at :
    C:\Users\Public\Documents\National Instruments\TestStand 2014 (32-bit)\UserInterfaces\Full-Featured\LabVIEW
    The 64 bit user interface code is stored at :
    C:\Users\Public\Documents\National Instruments\TestStand 2014 (64-bit)\UserInterfaces\Full-Featured\LabVIEW
    You have build a 32 bit TestStand user interface and the is64bit is properly showing as false.
    Try building the same project using 64 bit Labview (which should automatically pickup 64 bit TestStand components)
    When you say that you run from seqeunce editor - i think you mean 64 bit sequence editor.
    Ofcourse once you build your 64 bit user interface you can call a 32 bit vi (only in adapter mode set to dev and not run time).
    Hope this helps.
    Ravi

  • Using ActiveX controls in GUI application, which uses TestStand API

    When using ActiveX controls in TestStand Operator Interface GUI,
    CVI reports User Interface Library error no.-143:
    "ActiveX control Error" on attempt to load panel, which contains ActiveX controls.
    The same code, which takes care of user interface, but not references
    TestStand ActiveX API (i.e. not creates TS Engine), works properly.
    What's wrong?

    Hello again Misha,
    Sorry about my previous answer, I overlooked the fact that you were saying this error was caused by placing ActiveX controls in your Operator Interface (OI) GUI (as my example shows I thought the problem was with GUIs displayed from step code modules).
    Nevertheless, the problem is still being caused by the same issue, and is solved in a similar fashion. The source for the CVI OI initializes the TestStand engine before it loads/displays the UI panels. The calls to initialize the engine seem to be CoInitializing the main GUI thread as multithreaded apartment (MTA) mode whereas you will need it to be single threaded apartment (STA) mode in order for the ActiveX control container to work properly. The TestStand engine is compatible with either modes, but only one can be in place at a given time. If we CoInitialize the OI's main GUI thread as STA this will solve the problem (the subsequent attempts of setting it to MTA will fail, but again this is ok since the engine is compatible with STA).
    In order to perform this functionality you will need to put a call to CoInitializeEx in the main function of the CVI OI source (this will also require that you #include the "windows.h" file at the top of the source also). Here is what the main function in your main.c file for the CVI OI will look like once you have done this:
    int main(int argc, char **argv)
    int retval = -1;
    sArgc = argc;
    sArgv = argv;
    if(InitCVIRTE(0, argv, 0) == 0) /* Initialize CVI libraries */
    goto Done; /* out of memory */
    // Intialize main GUI thread as STA to prevent other attempt to make it
    // MTA, which will not allow ActiveX controls to be used.
    CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
    /* initialize the test engine */
    if(!InitEngine())
    goto Done;
    if(!InitErrorDialogStrings())
    goto Done;
    if(!InStandaloneExecutable() && !DisplayRunningInEnvironmentWarning())
    goto Done; // get out now
    if(!ProcessPreLoginCmdlineArgs())
    goto Done;
    if(!CfgFile_Load())
    goto Done;
    if(!CfgFile_RestoreOptionSettings())
    goto Done;
    if(LoadGUIPanels() < 0)
    goto Done;
    if(!InitFileQuickList())
    goto Done;
    /* set initial gui state */
    if(!InitGUI())
    goto Done;
    RunUserInterface();
    retval = 0; /* normal exist status */
    Done:
    /* cleanup */
    SeqFileList_DeleteAllSequenceFileRecords();
    ExeList_DeleteAllRecords();
    IconList_DeleteIconList();
    SaveAndCleanupFileQuickList();
    CfgFile_SaveOptionSettings();
    CfgFile_WriteAndCleanupForExit();
    AdaptList_DeleteAdapterList();
    DestroyToolMenus();
    CloseEngine();
    FreeErrorDialogStrings();
    return retval;
    Note: Remember to #include "windows.h" at the very top of the main.c file and to include ole32.lib in your project file list in order to link in the definition for CoInitializeEx.
    Jason F.
    Applications Engineer
    National Instruments
    www.ni.com/ask

  • Hide Label step icon using Testand API and LabVIEW

    Hi,
    can anyone tell me how it is possible to hide the icon of a label step using Testand API and LabVIEW?
    In the Teststand Sequence Editor, on the Label Edit Tab there is a Checkbox called "Hide Icon". Is there something similar in the API?
    Thanks
    Solved!
    Go to Solution.

    Yes you can, you will have to set the IconName property of the step to "ni_blank.ico"

  • Teststand API in LABVIEW

    Hello Friends,
    In the sequence editor , i am able to get the TestStand API  RunState.Step.Module.AsLabVIEWModule.RemoteHost = ""
    But i am not able to get the same Teststand API properties in Labview with sequence Context. Herewith in attached the image for your ref.
    Anyone knows how i can get the above teststand API in LABVIEW.
    Thanks
    Prithivi
    Attachments:
    Labview Teststand API properites1.JPG ‏51 KB

    Hi Prithivi,
    you have to cast the Module Reference to LabVIEWModule Type before you can use it. Following document will be useful to you:
    How Can I Programmatically Access Information about a Code Module that a Step Executes (e.g. Name, Path)?
    http://digital.ni.com/public.nsf/allkb/ADC6909C20E27D4886256E94005424E3?OpenDocument
    Regards
    MY
    Attachments:
    LVModule.JPG ‏17 KB

  • I'm using TestStand/Labview to do a string value test. Is there any way to use a variable in the edit string value test?? This forces you to hard code a string to test against.

    I'm using TestStand 2.0/Labview 6i to do a string value test. Is there any way to use a string variable in the edit string value test instead of an actual string?? This forces you to hard code a string to test against.

    Hi ART,
    You can also use the LimitLoader step to load your string into to step similar to the Numeric Step type.
    There should be an example of this in the Resource Library | TestStand
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • Can you call a built-in labview VI using teststand directly? For "File last modified"...

    I am trying to use Teststand to retrieve the "last modified" timestamp property for the sequence file that is running. The purpose is to determine whether a modification has been made since the last time a sequence with the same file name was run. The "saved count" property is not a viable option since mulitple people may be working on the same sequence, and in theory two people could have started with the same sequence file, made a change, and then saved (making the saved count property the same even though they are now different sequences).
    So, unless someone knows of an easy way to do get this info (file last modified information) within Teststand, here's my question:
    LabVIEW has a built-in VI that provides this information (Programming Pallete->File IO->Advanced File Functions->File/Directory Info). This gives a "last mod" output which is exactly what I need. However, this is in Labview, not teststand where I prefer to call it and retrieve the information. I could easily just place this built-in VI into a new blank VI, and then call that with TestStand, but that seems very redundant. The built-in version is exactly what I need.
    Is there a way to call this VI directly from TestStand without having to put it into a blank VI and save it as a seperate file? I can't seem to locate it within any of the labview directories or libraries, but maybe I'm not searching for the right name. Is there an easy way to find a VI on the harddrive that is on one of the buit-in labview palletes ?
    This seems like such a simple thing but it's giving me a lot of grief!
    Thanks!

    That is one of the built-in functions and not a stand-alone VI and the best way to call it is to create a VI with it on the block diagram.

  • Using User Management Engine API in Portal Application

    Hello,
    I actually develope a simple Portal Application, which print any User-Infos. Especially I need the date of the last Login. For this purpose I read the Article Using User Management Engine API - Portal - SAP Library where they use the library com.sap.security.api. In the articel they describe also, how to set DC dependencies. But this doesn't function for a Portal Component, because they do not appear in the Component Browser.
    So my question is, how get I the User Management Engine API referenced in my Portal Application, so that I can use the package com.sap.security.api. In the filesystem I can not find a JAR-File for the Development Componenten tc/je/usermanagement/api
    Greetings,
    Thomas

    HI,
    Getting the last logon date can be a small problem. There is a method called: getLastSuccessfulLogonDate, but that one is deprecated since NW 2004s.
    https://help.sap.com/javadocs/NW04S/SPS09/se/com/sap/security/api/IUserAccount.html#getLastSuccessfulLogonDate()
    In NW 7.3 the method is still there: Generated Documentation (Untitled), but even so, JavaDoc states that the value is not updated automatically
    "get last sucessful logon date NOTE: This attribute is not automatically updated during login."

Maybe you are looking for

  • Is there anything better than iPihoto?

    Hi there, I'm a long time iPhoto user, but I think I'm out growing it. I have about 5000 photos in my library now (and no, I don't want to split it into smaller libraries). I have a 1ghz PowerMac G4 and the speed of iPhoto isn't that bad. The issue I

  • Mountain Lion - Connect FTP Server

    I have never been able to connect Finder to my FTP server since upgrading to Mountain Lion. I can connect with Firezilla, other FTP apps and Console but when attempting to connect in Finder (GO > Connect to Server), the connect attempt window just sp

  • Installed latest version and now my entire library has disappeared. How do I get it back?

    As above. Newest version kept crashing and now I can get it to work but it has installed an empty program Library. I have no idea where my content has gone.

  • Oracle how to assign a date value in a parameter declaration

    How can I assign a date value to a parameter declaration in SQL? Here's my existing script. CURRENT: select distinct summary as "iCash EAD Error Summary",count(*) from AAA.BKS_ICASH_EAD_ERRORS where creation_date > to_date('5/26/12 8:50','mm/dd/yy HH

  • Nokia Fast Chrger AC-50E vs AC-60E. Which is bette...

    I intend to buy 1 of the 2 chargers above (AC-50E, AC-60E), but i wonder that if there are any other differences between them but the 1300 mA vs 1500 mA (like AC-60E has newer technology, safer, more compatible, ...etc.), as I wanna use the charger f