Acquisition nom du rapport TestStand depuis CVI

Bonjour à tous,
Je dispose d'une séquence exécutée par TestStand 2014.
Cette séquence utilise une dll faite avec LabWindows/CVI pour créer un rapport personalisé à partir du rapport TestStand.
Cette dll doit donc faire l'acquisition du nom du rapport TestStand.
La DLL a été faite pour TestStand 3.5 et l'acquisition du nom du rapport TestStand était assurée par :
TS_PropertyGetValString (testData->seqContextCVI, &errorInfo, "RunState.Caller.Locals.ReportFilePath", 0, &JournalPathName)
J'ai compris que ça ne marcherait pas avec TestStand 2014 en voyant cet article :
http://digital.ni.com/public.nsf/allkb/3D3B2358DF9B786B8625789500549A3B
Par quoi remplacer la ligne de code pour TestStand 2014 ?
(je précise que je suis débutant en LabWindows/CVI)
Résolu !
Accéder à la solution.
Pièces jointes :
Erreur génération rapport.jpg ‏51 KB
Erreur génération rapport1.jpg ‏49 KB

Salut,
En effet, depuis TS 2012, RunState.Caller.Locals.ReportFilePath semble ne plus être une propriété valide
En gros, dans le lien que tu pointes, ils indiquent que tu peux:
1. Ajouter  à tes séquences, une callback nommée GetReportFilePath (tu peux aussi modifier ton process model directement je pense, ça a l'air d'être une callback de modèle)
2. Stocker la valeur du paramètre Parameter.ReportFilePath de cette callback dans une variable TestStand
3. Récupérer le contenu de cette variable depuis CVI (au lieu de récupérer RunState.Caller.Locals.ReportFilePath)
En gros, ton code CVI va probablement très peu changer, c'est plutôt tes séquences TS qu'il va falloir aller modifier légèrement
Je ne dispose pas de TS pour tester sur mon poste, mais ça semble bien être ça qu'il faut faire. On pourrait peut être éviter de passer par une variable, mais ça va complexifier le code CVI je pense.
Si ce que je viens de dire ne te parle pas, fais signe.
A+
Mathieu
Mathieu Steiner, Test System Engineer, Safran Engineering
CLD, ISTQB

Similar Messages

  • Variable creation in TestStand through CVI

    I have one steptype in which during Edit, the new variable has been created. I also saved that sequence. If I close that sequence file with that steptype and reopen the same sequence, the variable created last time was not there. I think these variable are not getting stored with sequence. The steptype building block is created in CVI. Those edit time variable creation is done by means of using “TS_PropOption_InsertIfMissing” functions in CVI. Can you please tell us is there any CVI functions to create variable during edit time and to be saved with the sequence.??

    Once again, Expression Strings, has stumbled another programmer!
    Parameters.DatabaseOptions.ConnectionString is not a string but an Expression String, and your assignment of a StationGlobals.Database ( just a string ) is causing this error.
    Here is what I did to solve your issue:
    1.) StationGlobals ( remove the leading "\" and trailing \"" from the Database string ) it should contain NO leading or trailing quotes
    StationGlobals.Database = Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=C:\\Users\\Public\\Documents\\National Instruments\\TestStand 4.2.1\\Components\\Models\\TestStand Results.mdb.
    2.) In Database Options Callback use the following expression to set the Data Source
    Parameters.DatabaseOptions.ConnectionString= "StationGlobals.Database"
    There are other alternatives as documented in this link.
    http://zone.ni.com/devzone/cda/tut/p/id/4793
    Good luck,
    PH

  • Teststand call cvi instrument driver

    I'm new to working with instrument drivers in TestStand. I'm trying to use TestStand to call a CVI instrument driver dll (for Agilent N5767 power supply), and then perform a specific function (init, set voltage, set current, etc.) All of the instruments in my test bench are connected via LAN, and they are configured in NI MAX too. I thought it was pretty straight forward, but I'm obviously missing something. Attached is the simple TS 3.1 seq file with the steps I'm trying perform.
    Attachments:
    N5700_on_off.seq ‏20 KB

    Hi Bkoch1,
    Please elaborate on the problem you are experiencing. I am able to open the sequence file you have attached and view your steps and on the surface, this seems like it should work just fine. What indications are you experiencing that it does not work fine? Have you tried setting breakpoints and using the Watch Window to monitor variables to ensure that they are being passed into the DLL? Please explain what the problem is and try to narrow down where the problem occurs and we would be happy to help you.
    Regards,
    Jackie
    DAQ Product Marketing Engineer
    National Instruments

  • Insert a specified built-in or custom step type in Teststand using CVI

      I try to build a step type . this step type specifies an adapter of DLL, which is developed under CVI. I want to use Teststand API functions in CVI to fulfill the following functions.
      1, insert a specified built-in or custom step type into current sequence;
      2, insert a specified built-in or custom step type into another sequence.
    Thanks!
    Jacky

    Hi Jacky,
    There is an example program called Programmatically Inserting a Step into a TestStand Sequence Using LabWindows/CVI and a KnowledgeBase called Programmatically Inserting a New Step in the Currently Executing Sequence that should answer your question.
    Hope this helps!
    Best Regards,
    Jonathan N.
    National Instruments

  • Debugging Labwindows dll in teststand with CVI 9.1.1

    Is there a known problem when debugging Labwindows DLL used as Teststand Code module ( using the Labwindows CVI Adapter)?
    My setup includes to powersupplies with IVI instrument drivers ( Agilent 6032A and and E3634 A) a a few other instruments with non-IVI instruments drivers. When start CVI, load the dll project and then start the Teststand Sequence editor as program to be debugged an then step into the C-Code it looks like there is process that watches both powersupplies and tries to reset them again if I access them from my C code through the instrument driver. There is no such effect with the non-IVI instruments and also if I run the code outside the debugger there is no such effect.
    Any Ideas whats going wrong here ?
    Solved!
    Go to Solution.

    some more information. I#ve updated now to CVI 2010 and the effect still exists. To demonstrate it I've attached a NI SPY log. The 6032A lives at GPIB ID 3 the E3634 at GPIB ID 5. I'am running the following code:
    Fmt(resource_id,"GPIB::%d::INSTR",addr_PS_P24V);
    tsErrChk(status = hp6xxxa_init (resource_id, VI_ON, VI_ON, 2, &Instr_Handle_PS_P24V));
    // Export Instrument handle for PS_P24V
    tsErrChk (TS_PropertySetValNumber (testData->seqContextCVI, &errorInfo,
    "FileGlobals.Instr_Handle_PS_P24V", 0x1,
    Instr_Handle_PS_P24V));
    //set limit voltage and current
    // status = hp6xxxa_603xA_soft_limits (Instr_Handle_PS_P24V, 30, 0.5);
    tsErrChk (status = hp6xxxa_603xA_fold (Instr_Handle_PS_P24V, 0));
    //set voltage and current depending on device A/AP 10A B/C 11.5 A
    if ( is_ALA_B_device( testData->seqContextCVI) || is_ALA_C_device( testData->seqContextCVI) )
    tsErrChk (status = hp6xxxa_volt_curr (Instr_Handle_PS_P24V, 26.0, 11.5, 1));
    else
    tsErrChk (status = hp6xxxa_volt_curr (Instr_Handle_PS_P24V, 26.0, 10.0, 1));
    tsErrChk (status = hp6xxxa_delay (Instr_Handle_PS_P24V, 0.500, 1));
    Delay(.2);
    //output off
    tsErrChk (status = hp6xxxa_output_onoff (Instr_Handle_PS_P24V, 0, 1));
    Delay(.2);
    [... later for the E3634]
    // Get GPIB-Adress of PS_P3V3
    tsErrChk(TS_PropertyExists(testData->seqContextCVI, &errorInfo, "FileGlobals.GPIB_ADDR_PS_P3V3", 0, &propertyExists));
    if (propertyExists)
    tsErrChk (TS_PropertyGetValNumber(testData->seqContextCVI, &errorInfo,
    "FileGlobals.GPIB_ADDR_PS_P3V3",
    0, &GPIB_ADDR_PS_P3V3));
    addr_PS_P3V3 = GPIB_ADDR_PS_P3V3;
    #ifndef NO3V3 // NO 3.3V programmable source on TK2
    // Initialize PS_P3V3
    Fmt(resource_id,"GPIB::%d::INSTR",addr_PS_P3V3);
    tsErrChk(hpe363xa_init (resource_id, VI_TRUE, VI_TRUE, &Instr_Handle_PS_P3V3));
    // Export Instrument handle for PS_P3V3
    tsErrChk (TS_PropertySetValNumber (testData->seqContextCVI, &errorInfo,
    "FileGlobals.Instr_Handle_PS_P3V3", 0x1,
    Instr_Handle_PS_P3V3));
    hpe363xa_ConfigureOutputRange (Instr_Handle_PS_P3V3, "",
    HPE363XA_VAL_RANGE_VOLTAGE, 5);
    hpe363xa_ConfigureVoltageLevel (Instr_Handle_PS_P3V3, "", 3.3);
    // Output off
    hpe363xa_ConfigureOutputEnabled (Instr_Handle_PS_P3V3, "", VI_FALSE);
    hpe363xa_ConfigureCurrentLimit (Instr_Handle_PS_P3V3, "",
    HPE363XA_VAL_CURRENT_REGULATE, 0.5);
    hpe363xa_ConfigureOVP (Instr_Handle_PS_P3V3, "", VI_TRUE, 4);
    #endif
    #ifdef TK3 // use E3640 powersupply for TK3
    Fmt(resource_id,"GPIB::%d::INSTR",addr_PS_P3V3);
    tsErrChk(hpe364xa_init (resource_id, VI_TRUE, VI_TRUE, &Instr_Handle_PS_P3V3));
    // Export Instrument handle for PS_P3V3
    tsErrChk (TS_PropertySetValNumber (testData->seqContextCVI, &errorInfo,
    "FileGlobals.Instr_Handle_PS_P3V3", 0x1,
    Instr_Handle_PS_P3V3));
    hpe364xa_ConfigureOutputRange (Instr_Handle_PS_P3V3, "1",
    HPE364XA_VAL_RANGE_VOLTAGE, 5);
    hpe364xa_ConfigureVoltageLevel (Instr_Handle_PS_P3V3, "1", 3.3);
    hpe364xa_ConfigureCurrentLimit (Instr_Handle_PS_P3V3, "1",
    HPE364XA_VAL_CURRENT_REGULATE, 0.5);
    hpe364xa_ConfigureOVP (Instr_Handle_PS_P3V3, "1", VI_TRUE, 4);
    // Output on
    hpe364xa_ConfigureOutputEnabled (Instr_Handle_PS_P3V3, "1", VI_TRUE);
    #endif
    If you look into the Spy Log you will see at #241 the first hit of that strange process, which beginns with a viOpenDefaultRM
    and ends with a viClose at #252
    after issuing an *IDN?, which fails because the 6032A doesn't support *IDN?. Then the first driver call ( init function) can be identified.
    later on , when the code goes to the E3642 using ID5 at #1142 in SPY log you will see that the strange process will finally send a *RST if the *IDN? succeeds.

  • Controler l'exécutio​n (break/res​ume/stop) d'une séquence teststand avec CVI

    Bonjour,
    Je souhaite commander l'exécution de le séquence de test (break/resume/stop) via CVI en utilisant directement teststand sans être obliger de passer par une interface operateur afin de conserver la possibilité d'éditer les séqeunces.
    J'ai tenté la commande TS_ExecutionBreak mais sans succes. J'obtiens une erreur : "-2147467262; User-defined error code. Possible System Error: Cette interface n'est pas prise en charge."
    Quelles  sont les conditions pour utiliser cette commande?
    Quelle est la solution pour gérer l'exécution de la séquence via CVI ?
    Merci

    Voir à cette adresse:
    http://forums.ni.com/ni/board/message?board.id=417​0&message.id=13111
    .NIDays2008 {font-family:Arial, Helvetica, sans-serif; font-size:12px; color: #065fa3; font-weight: bold; text-decoration: none; text-align: right;} .NIDays2008 a, a:hover {text-decoration: none;} .NIDays2008 a img {height: 0; width: 0; border-width: 0;} .NIDays2008 a:hover img {position: absolute; height: 90px; width: 728px; margin-left: -728px; margin-top:-12px;}
    >> Avez-vous entendu parler de NI Days ?

  • Nom du rapport dans la file d'impression

    Bonjour,
    J'ai réussi à créer mon rapport avec toutes les données dont j'ai besoin et à l'imprimer.
    Mais je me rends compte que dans la file d'impression de mon imprimante, le rapport à imprimer n'a pas de nom.
    Est-il possible de spécifier un nom afin d'y voir plus clair dans le spooler d'imprimante ?
    Merci d'avance.

    Mon rapport était à l'origine un rapport de standard, j'ai modifié mon code pour obtenir un rapport HTML pour pouvoir l'enregister.
    Ensuite dans mon code, j'ai l'icône "Enregistrer le rapport dans un fichier" suivi de "Imprimer le rapport".
    Je ne vois pas comment faire autrement car si je ferme mon rapport, comment faire pour l'ouvrir et l'imprimer sous Labview ?
    Je précise que je n'ai pas le toolkit "Génération de rapport".
    Merci

  • Personnalisation rapport teststand

    Bonjour,
    Après avoir modifié mon rapport avec " report options" il me reste deux trois choses à changer.
    J'aimerais supprimer l'id pc et le numéro de série de l'en tête et ayant choisi un rapport au format HTML j'aimerais que les spec des résultats (unit, value etc.) passe de ligne a colonnes pour réduire la taille de mon rapport.
    Est ce que cela est possible avec la version teststand 2012 ?
    Merci d'avance
    Mérya

    Bonjour,
    Vous pouvez personnaliser vos boutons en changeant les couleurs ou le texte affiché cependant il n'est pas possible de changer leur fonctionnement de base.
    Cordialement, 
    Aurélien J.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> Du 30 juin au 25 août, embarquez pour 2 mois de vidéo-t'chat ! Prenez place pour un voyage au coe...

  • Insertion des requirements du sequence file dans le header du rapport TestStand

    Bonjour,
    je suis à la recherche d'une solution pour que le rapport généré par TestStand contiennen dans son header les requirements renseignés soit au niveau de la séquence soit au niveau du sequence file.
    comme ce sont des chmps prédéfinis dans la séquence, je pense qu'il doit y avoir une solution simple, mais je sèche.
    J'ai réussi à récupérer les requirements grace à un additional result (dans un step de la séquence) mais dans mon rapport je ne génère que l'entête.
    Si quelqu'un a une solution, merci d'avance

    Bonjour,
    Avez-vous jeté un œil sur les documents suivants :
    Modifying HTML Report Headers to Include Custom Information in TestStand
    http://digital.ni.com/public.nsf/allkb/F8243CE782AFF42086256E62006B3FC1?OpenDocument
    How to Modify a TestStand XML Report Header
    http://digital.ni.com/public.nsf/allkb/17ABBD0BF2A60D908625774200798869?OpenDocument
    En espérant que cela vous aider,
    Cordialement,
    Matthieu RICORD
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Été de LabVIEW 2014
    12 présentations en ligne, du 30 juin au 18 juillet

  • Teststand debug cvi

    CVI 7.1.0
    TestStand 3.0
    application: TestExec
    I have been compiling and debugging without any problem, but suddenly I can't debug my testexe. I can debug other apps and if I move my project to another machine I can debug there (although it is running CVI 7.0 and Testand 3.0).
    After compiling and linking I press Shift+F5 and CVI acts as if it is going to bring up testexec but it then disappears completely. I have tried setting break on first statement but it never gets there.If I execute the exe with Ctrl+F5 it runs fine. I have noticed that there is data in the debug output window, it is difficult to copy it all because it scrolls so fast but I managed to copy the following. This listing was long so I have omitted some lines.
    [ff0,1c0] LDR: Real INIT LIST for process c:\Program Files\National Instruments\TestStand 3.0\OperatorInterfaces\User\Full-Featured\CVI\Test​Exec.exe pid 4080 0xff0
    ... lines omitted...
    NAME - InitializeCriticalSectionAndSpinCount
    [ff0,1c0] LDR: WINSPOOL.DRV loaded - Calling init routine at 73004D00
    [ff0,1c0] LDR: SHLWAPI.dll loaded - Calling init routine at 77F651FB
    NAME - CreateTimerQueue
    ... lines omitted...
    [ff0,1c0] LDR: COMCTL32.dll loaded - Calling init routine at 5D0932DA
    NAME - InitializeCriticalSectionAndSpinCount
    ... lines omitted...
    [ff0,1c0] LDR: SHELL32.dll loaded - Calling init routine at 7C9E7376
    ... lines omitted...
    [ff0,1c0] LDR: Real INIT LIST for process c:\Program Files\National Instruments\TestStand 3.0\OperatorInterfaces\User\Full-Featured\CVI\Test​Exec.exe pid 4080 0xff0
    [ff0,1c0] C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Con​trols_6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9​\comctl32.dll init routine 773D42B3
    [ff0,1c0] LDR: comctl32.dll loaded - Calling init routine at 773D42B3
    ... lines omitted...
    [ff0,1c0] LDR: comdlg32.dll loaded - Calling init routine at 763B1AB8
    [ff0,1c0] LDR: ole32.dll loaded - Calling init routine at 774FD0A1
    [ff0,1c0] LDR: OLEAUT32.dll loaded - Calling init routine at 77121558
    [ff0,1c0] LDR: cvirte.dll loaded - Calling init routine at 685E0BA8
    ... lines omitted...
    f0,1c0] LDR: Real INIT LIST for process c:\Program Files\National Instruments\TestStand 3.0\OperatorInterfaces\User\Full-Featured\CVI\Test​Exec.exe pid 4080 0xff0
    [ff0,1c0] C:\WINDOWS\system32\psapi.dll init routine 76BF10F1
    [ff0,1c0] LDR: psapi.dll loaded - Calling init routine at 76BF10F1
    NAME - EnumProcesses
    NAME - EnumProcessModules
    NAME - GetModuleFileNameExA
    [ff0,1c0] LDR: Real INIT LIST for process c:\Program Files\National Instruments\TestStand 3.0\OperatorInterfaces\User\Full-Featured\CVI\Test​Exec.exe pid 4080 0xff0
    (1) [cvi.DLL] C:\Program Files\National Instruments\CVI71\cvi.DLL (0) deinit 0
    (1) [psapi.dll] C:\WINDOWS\system32\psapi.dll (0) deinit 76bf10f1
    [ff0,1c0] LDR: Real INIT LIST for process c:\Program Files\National Instruments\TestStand 3.0\OperatorInterfaces\User\Full-Featured\CVI\Test​Exec.exe pid 4080 0xff0
    [ff0,1c0] C:\WINDOWS\system32\uxtheme.dll init routine 5AD71626
    [ff0,1c0] LDR: uxtheme.dll loaded - Calling init routine at 5AD71626
    [ff0,1c0] LDR: Real INIT LIST for process c:\Program Files\National Instruments\TestStand 3.0\OperatorInterfaces\User\Full-Featured\CVI\Test​Exec.exe pid 4080 0xff0
    [ff0,1c0] C:\WINDOWS\system32\MSCTF.dll init routine 747213A5
    [ff0,1c0] LDR: MSCTF.dll loaded - Calling init routine at 747213A5
    NAME - NtQueryInformationProcess
    NAME - CtfImmCoUninitialize
    NAME - CtfImmLastEnabledWndDestroy
    NAME - CtfImmSetCiceroStartInThread
    NAME - CtfImmIsCiceroStartedInThread
    NAME - CtfImmIsCiceroEnabled
    NAME - CtfImmIsTextFrameServiceDisabled
    NAME - CtfImmEnterCoInitCountSkipMode
    NAME - CtfImmLeaveCoInitCountSkipMode
    NAME - ImmGetDefaultIMEWnd
    NAME - ImmReleaseContext
    NAME - ImmNotifyIME
    NAME - ImmSetConversionStatus
    NAME - ImmGetConversionStatus
    NAME - ImmGetProperty
    NAME - ImmGetOpenStatus
    NAME - ImmGetContext
    NAME - ImmSetOpenStatus
    NAME - ImmInstallIMEA
    NAME - ImmGetDescriptionA
    NAME - ImmGetDescriptionW
    NAME - ImmGetIMEFileNameA
    NAME - ImmGetIMEFileNameW
    NAME - ImmSetHotKey
    NAME - GetUserDefaultUILanguage
    NAME - GetClipboardSequenceNumber
    NAME - GetSystemMetrics
    NAME - MonitorFromWindow
    NAME - MonitorFromRect
    NAME - MonitorFromPoint
    NAME - EnumDisplayMonitors
    NAME - GetMonitorInfoA
    NAME - EnumDisplayDevicesA
    NAME - MsgWaitForMultipleObjectsEx
    NAME - VirtualProtect
    NAME - VirtualQuery
    NAME - __CreatePtrInfoForCommandLine
    NAME - malloc
    NAME - VirtualProtect
    NAME - VirtualQuery

    Thanks for moving this post to the TestStand forum so other customers can find it. 
    The issue will be answered in this post:  http://forums.ni.com/ni/board/message?board.id=180​&message.id=22807
    Message Edited by Mist on 05-02-2006 10:26 AM
    Josh W.
    Certified TestStand Architect
    Formerly blue

  • Intermittent problem with TestStand calling CVI DLL calling MSCV DLL

    Sorry about cross post, but I am not sure which group is best to address
    this issue.
    Setup:
    Windows 2000 SP1
    TestStand 2.01f
    CVI 6.0
    MSVC++ 6.0 SP5
    Problem:
    I have a CVI Test Library DLL that contains test functions called by
    TestStand using the C/CVI adapter. The CVI Test Library DLL in turn makes
    several calls to another DLL written in MSVC++. I am experiencing an
    intermittent problem with one of the MSVC functions. The problem ~appears~
    to be stack related, but I am not sure. Among other things, this MSVC
    function accepts a const char * argument that is a TestStand lookup string.
    The function uses this string to access the TestStand API.
    What happens is this: Everything works fine. I then recompile the CVI DLL
    after making some mod, then run. The MSVC++ DLL asserts that the const char
    * arg passed by the CVI DLL is NULL. However, this is not the case if I
    single step through the CVI code. It has happened both with passing
    variables as the const char * argument and as hardcoded strings literals, so
    its not that I am actually passing NULL. The other argument to this
    function is the TestStand sequence context dispatch pointer (LPDISPATCH
    pobjSequenceContextDisp) and it always ~appears~ to be passed correctly.
    The problem is frustrating and hard to debug because I can not
    deterministically reproduce it. The problem ~never~ appears when I debug my
    MSVC++ DLL in Visual Studio. And it only occasionally appears otherwise.
    The problem, when it appears, always appears on the first run after
    recompiling the CVI DLL, though the problem does not happen after ~every~
    recompilation. I'd say it happens 1 in 6 times after a recompile.
    Recompiling the exact same code does not always make the problem disappear.
    If I change the CVI code (code that has nothing to do with the argument
    itself though) and recompile the problem almost always goes away. Selecting
    'Mark all for compilation' and rebuilding does not make the problem go away.
    Only tweaking the CVI code and recompiling does (usually).
    Whats more, the problem appears:
    * With the CVI DLL built as Debug or Release mode.
    * With the CVI default calling convention set to __stdcall or __cdecl.
    * With the C/CVI TestStand adapter set to run in-process or external
    instance of CVI.
    The problem appears to be some sort of stack or argument passing problem
    between CVI and MSVC, though thats just a guess based on the symptoms. I
    have quadruple checked the calling conventions of all declared functions.
    The CVI DLL functions all use TX_TEST (which resolves to __cdecl). The MSVC
    DLL functions all explicitly use __stdcall. Is there a problem with calling
    __stdcall MSVC functions from a __cdecl CVI function?
    I can find no other memory leaks or indications of memory corruption
    elsewhere in either the CVI or MSVC DLLs. Its only this one function that
    exhibits this strange 'null const char *' problem.
    Can anyone offer any ideas about what may be causing this problem? Anything
    else I should check/verify?
    Regards,
    Joe

    Silvius,
    > Although I'm not sure if any of the following are the real cause of
    > your problem, I have the following suggestions:
    Thanks for the reply. At this point any and all suggestions are welcome...
    > 1. There could be a problem with calling
    > __stdcall MSVC functions from a __cdecl CVI function. As a workaround
    > wrap the _cdecl call inside a _stdcall call that is exposed or
    > exported to TestStand or vice-versa. This can be a problem because if
    > _cdecl is used, the calling function is responsible for cleaning up
    > the stack and if _stdcall is used, the called function is responsible
    > for cleaning up the stack.
    I was under the impression that as long as everything was explicitly and
    consistently declared, you could safely mix cdecl and stdcall f
    unction
    calls. Is it bad to do this? Is this a known issue with the CVI compiler?
    I've never seen a problem with doing this under MSVC++.
    I'll try wrapping them in cdecl calls for CVI - though we have a
    depressingly large number of stdcall functions in the MSVC DLL ;-). They
    need to remain stdcall in the DLL because we also call them from Visual
    Basic.
    > 2.Don't mix Debug version of one DLL with the Release version of the
    > other DLL. I had some bad experiences doing this and both DLLs where
    > developed in MSVC. Allways use either Debug either Release versions of
    > DLLs.
    I verified that the MSVC DLLs were either ALL Debug or Release. I too have
    seen nasty problems when MSVC Debug and Release is mixed.
    One thing I had not thought of until your reply: What about mixing CVI Debug
    DLLs with MSVC Release DLLs? Have you ever seen issues with doing this?
    Thanks!
    Joe

  • Is it possible to shutdown TestStand LabWindows/CVI operator interface programmatically?

    Hi,
    Like the title says, I'm trying to find a way to shutdown TestStand operator interface automatically after sequence execution is completed.
    Any suggestion is appreciated, thanks in advance.

    Thank you for your reply.
    I did a loop but it wouldn't work :s
    I managed to create an ActiveX button to exit test stand.
    I found an example within the TestStand Course I and II.
    static void ExitApplication(void)
     VBOOL canExitNow;
     TSUI_ApplicationMgrShutdown (AppManagerHandle, &errorInfo,&canExitNow);
     if (canExitNow)
      QuitUserInterface(0);
    // the ApplicationMgr control sends this event when it is ok to exit the application.
    HRESULT CVICALLBACK ApplicationMgr_OnExitApplication(CAObjHandle caServerObjHandle, void *caCallbackData)
     ExitApplication(); 
     return S_OK;
    void CreateTSEngineHandle ()
     GetObjHandleFromActiveXCtrl  (panelHandle, PANEL_APPLICATIONMGR,&AppManagerHandle);
     GetObjHandleFromActiveXCtrl  (panelHandle, PANEL_EXIT,    &AppExit   );
     TSUI__ApplicationMgrEventsRegOnExitApplication (AppManagerHandle, ApplicationMgr_OnExitApplication, NULL, 1, NULL);
     TSUI_ApplicationMgrConnectCommand (AppManagerHandle, &errorInfo, AppExit, TSUIConst_CommandKind_Exit, 0,
                TSUIConst_CommandConnection_NoOptions, NULL);
     TSUI_ApplicationMgrGetEngine (AppManagerHandle, &errorInfo,&EngineHandle);
     TSUI_ApplicationMgrStart     (AppManagerHandle, &errorInfo);
     TS_EngineGetGlobals(EngineHandle,NULL,&Globals);
    This way I click my QuitButton and it calls the the ActiveXExitButton witch calls the ExitApplication function.
    The ApplicationMgr control sends ApplicationMgr_OnExitApplication event when it is ok to exit the application.
    Hope this was clear enough and I hope this may be helpfull for someone else.
    I apreaciate all the help.
    Regards,
    Daniel Coelho
    Daniel Coelho
    VISToolkit - http://www.vistoolkit.com - Your Real Virtual Instrument Solution
    Controlar - Electronica Industrial e Sistemas, Lda

  • Genérer un rapport de test sous DAIDEM à partir d'une sequence Teststand

    Bonjour,
    Je souhaite mettre au point une séquence de test sous Teststand, mais l'éditeur de rapport de test de Teststand ne me convient pas.
    Dans ma séquence je souhaite donc rajouter un custom step DIADEM qui me permettrais en fin de ma séquence de tests de paramétrer DIADEM pour creer un gabarit de rapport de test (logo, mise en page,...), d'exporter mes resultats acquient sous Teststand et de générer un rapport PDF via DIADEM.
    J'aimerais que ce rapport PDF soit générer automatiquement à partir de l'exécution de ma séquence DIADEM.
    Comment dois je faire?
    Je ne connait pas quelle est la compatibilité entre Testsand et DIADEM (format des données d'enregistrement Teststand, formats des données accepté par DIADEM?).
    Dois je transmettre mon rapport Teststand à un VI Labview qui parametra DIADEM et lui enverra sous format TDM?
    Merci pour vos renseignements

    Hi Alexandre,
    It's not a problem.
    Sorry it's not LabVIEW, I had another look to see if there was a TestStand / LabVIEW version unfortunately there was not.
    Not really fimilar with DAIDEM but will try to help.
    Not sure what the Demo.vbs is, I downloaded the example and could not find that in the example code. Looking in the SequenceFile I have found the Demo.vbs in the setup of the "Run Script" step. Looking at the ExecuteScript.c I would have expected a piece of code that executes some function when the Sequence  runs and invoke the "Run Script" but this just appears to launch a CVI panel and expecting some user input.
    It looks like this steptype doesn't link directly with DIADEM but maybe indirectly via some Visual Basic code. If this is the case then it is not a very good example as it is incomplete. There is no mention of visual basic required in the readme file or the website link that I initially supplied.
    I'll try out the example later to day to try to understand it better.
    Regards
    Ray Farmer
    Have you tried running the example DIAdem Example.seq?
    Regards
    Ray Farmer

  • How could I pass data from OI (CVI) to TestStand Engine

    I am modifying the teststand OI (CVI) that the User Interface include the serial number entry. I use UIMessage to notify OI to get user input, however I could not find a way to pass the serial number (pass as string) to TestStand Engine. please help.
    thanks.

    Hello,
    For your specific purposes, the best approach would be to modify the PreUUT callback sequence inside of the model, that has the code to display the serial number dialog. You could add your custom code inside of this callback to display your custom dialog, and then write the value back to Parameters.UUT.SerialNumber. Once you have populated this variable, you can then call PostUIMessageEx to post the value of the serial number dialog to the OI. Now you have the value inside of the model, as well as inside of the OI. Let me know if this helps.
    Ryan R.
    NI

  • TestStand Debugging of CVI

    I have a CVI 7.1 project (.prj). I also have a TestStand 3.1 sequence that calls numerous functions within the various CVI source files. Without TestStand, I cannot run my CVI project (I think). But when I load my seq in TestStand and select Test UUT, I get an error that says
    Error loading Step Pass/Fail Test ...
    Unable to get Standard CVI Step Module address for DepotInitialize.
    DepotInitialize is the routine I'm trying to call in the Setup tab of TestStand's sequence editor.
    What I'm wondering is, how can I debug to see where the problem is occurring? Within CVI, I can either create a Release or Debug executable, but if my project consists only of files that perform specific tests, and therefore (the .prj) contains no main, how do I step into the code and test it.
    What I've been trying to do is deploy using TS. I created a TS workspace that contains two TS .tpj files. The first points to my app .prj, .lib, .seq. The second points to TestStand's .exe, .ico, .uir files. I'm not sure if this is correct.
    I'm confused on the relationship between TS and CVI .prj files. If I open my seq in TS, how does it know if I've built the CVI project as debug or release.
    I just want to be able to step through my code. How do I do that.

    Ray,
    I am finally trying to debug my app, and I'm running into problems. I opened my LabWindows/CVI project and changed the Build::Configuration to Debug (from Release). I then went to Run:pecify External Process and entered the C:\teststand\bin\seqedit.exe (although for me it's in a slightly different location). When I select Run:ebug seqedit.exe, the TestStand sequence editor opens. I browse to the location of my sequence. When I select OK, a second TestStand and CVI instance open. In the second TestStand, my sequence steps appear. I select F5 to Test UUTs and I receive an error saying
    Sequence 'MainSequence' in the file 'LMBSU_TestStand.seq' could not be executed.
    Error loading step 'Pass/Fail Test' of sequence 'MainSequence' in the file 'LMBSU_TestStand.seq'. Unable to connect to tscvirun.dll in the CVI project. Make sure that tscvirunn_supp.c is in your project and that the project is runnable. Error Code -17711. Source 'TSAPI'.
    My CVI project has tscvirun_supp.c in the project. I ran this two ways - once without rebuilding the DLL and once with. The second time, the DLL created had a different name (it had dbg in the name). Any suggestions?

Maybe you are looking for

  • Problem in Sample application LifeCycle Dataservice

    Hi.. I run a sample application in Lifesycle dataservce. Sample is lcds-samples/testdrive-remoteobject. its working fine. main.swf file execute and show data. i compiled the main.mxml source file and overide the existing swf file but it doesnt work..

  • REG: Creation of Warehouse product using transaction /SCWM/MAT1

    Hi, My requirement is to create Warehouse Products using Transaction /SCWM/MAT1 , I am using BAPI_PRDSRVAPS_SAVEMULTI2 , but I cound't able to process this because I did find Warehouse number in this BAPI, Am I using correct BAPI, if that is the case

  • How to use a Formula Column in the main query?

    Hi All, I've tried to use a formula columns defined in some query in the condition of that query like this: where (:cf_ex - :cf_ex2) >= 5 but when I run the report no data returned! Why? and how to use it the condition of the query? Note: I'm using F

  • SMplayer becomes invisible with xcompmgr-git and xmonad

    I encountered a very weird problem. My X desktop is based on xcompmgr-git (20080703-1) and xmonad (0.7-1) If I launch SMPlayer (0.6.1-1) ) from dmenu, the window becomes completely invisible, or I should say it becomes 100% transparent. SMPlayer beco

  • SUGGESTION: download packages at once [solved]

    When pacman downloads packages, it downloads them one by one. It means: 1 - Connect 2 - Identificate 3 - set dir 4 - Download It does this for each file. even if the server is down, it will try to connect again to the same server for each file it has