Passing struct to DLL using TestStand

I would like to pass structures to the function call in the DLL. Does Test stand supports passing structured.
I have a function prototype like this
LONG _stdcall ReadData(HANDLE hInstance, pDataStruct Trans);
#pragma pack(push, 1)
typedef struct _DataStruct {
BYTE Type;
BYTE DevAddr;
WORD wMemoryAddr;
WORD wCount;
BYTE Data[256];
} DataStruct , *pDataStruct ;
#pragma pack(pop)
I would like to display the Data filed after the function call.
remaining parameters to the structure are inputs.
Please point me to any tutorial on TestStand that can help me or Give me a detailed instructions on how to configure it.
Thanks in advance.
Lak

There is a "StructPassing" example in the TestStand/examples folder. It shows how you can pass the struct to DLL function. Additionally, you can access the struct using TestStand API.
Yevgeny

Similar Messages

  • Pass cluster through DLL to Teststand

    I have to pass  Time Stamp & number thr'  a cluster in a DLL to Teststand
    thts  generating error  System Level Exception.[Error Code: -17502] 
    the Cluster ProdOrder(in pic ) is generating Issues
    Attachments:
    clustertoDLLpass Error.PNG ‏149 KB

    the Custom datatype tht I have to generate for this Cluster in teststand  cld be also   the culprit
    I have added the Mytypes ini file  where I have defined     the datatype as ProdorderMYINI
    Attachments:
    MyTypes.ini ‏3 KB
    testDLL_CLUSTER.seq ‏5 KB
    clusterPO1.vi ‏9 KB

  • How to pass csv data from file into DLL using TestStand

    Hi,
    We have data files which are of CSV format. Each row contains
    about 9 items of data, and have about 5 rows of this data (ie, 5
    test points) :
    eg
    TErrAdd1,UUT,UUT,STM1E,AU4/FR,PRBS23,BIT,10,60
    TErrAdd2,UUT,UUT,STM4O,AU3/UNFR,PRBS15,B1,20,60
    TErrAdd3,UUT,UUT,STM16O,AU4_16C/UNFR,PRBS9,BIT,7,60
    TErrAdd4,UUT,UUT,STM0E,AU3/UNFR,PRBS20,B2,5,60
    TErrAdd5,UUT,UUT,STM64O,AU4_4C/FR,PRBS11,B1,6,60
    What we want to do is to be able to directly pass each
    row of data to a C/C++ DLL. The DLL fn accepts this
    data as a vector of strings.
    eg.
    void DLLTestFn( vector const & configData )
    However, we can write a wrapper for the DLL as I don't
    think TestStand will know about vectors.
    We don't really want to have to hardcode individial references
    to each item of data in TestStand. Is this possible?
    Just read in a row from a data file, and sent it direct
    to the DLL?

    Hi Richardi,
    the principle is quite simple, however, you still need to use a programming language to make the initial file read.
    Once you've done this, you could have it as an array of strings, and pass this directly to a wrapper DLL, which would then pass the data into a string vector.
    Look up the examples\AccessingArrays\PassingArrayParametersToDll\AccessingArrays.seq
    to see how to do this without passing the sequence context.
    If you've read in the details into a container type structure already, then I've made an example which demonstrates this principle and what you'll need to pass it to a vector. (Similar principle can be used to fill in the container when you read the file in the first place.
    You cannot go directly to a vector, since TestStand doesn't understand them.
    Vector classes are difficult to export polymorphically from a DLL since the template class doesn't export, and needs specifically defining. This is what I'm assuming you're ultimately trying to do. (see ref :
    How to Export STL components inside and outside of a class
    I've used VIsual C++ 6 and TestStand 3.0
    Please let me know if this helps to answer your query.
    Thanks
    Sacha Emery
    National Instruments (UK)
    // it takes almost no time to rate an answer
    Attachments:
    for hannah vectors.zip ‏1619 KB

  • Passing Variant to dll using call library function node

    Hi,
    Using LV2012
    I have a dll that the following prototype:
    SetTestResult(LPCTSTR Serial, int Test, int Result, VARIANT measuredValue);
    How can I pass the Variant to this node when my variant can be either int or float.
    I have tried "ToVariant" function but it is not sending data and gets error 1517 on LabView. For configuration parameters for variant I have used ActiveX type and datatype as activeX Variant Pointer.
    So for call library function node my prototype looks like this:
    int32_t SetTestResult(CStr Serial, int32_t Test, int32_t Result, VARIANT  *measuredValue);
    Can someone help me understanding What am I doing wrong here please?
    Thank you,
    Hiren
    Hiren Patel

    Hello Hiren,
    Posting your code (even without the DLL) would definitely make it easier for people to point out potential issues.  Here is an example that demonstrates passing an ActiveX variant to a DLL built in CVI, I would suggest cross-checking the way the Call Library Function Node has been configured.
    Example:Transferring an ActiveX Reference Pointer to a CVI DLL
    http://zone.ni.com/devzone/cda/epd/p/id/3343
    Regards,
    Tom L.

  • Import c struct from dll header file into TestStand?

    Hi,
    I'm writing a TestStand sequence to call some CVI functions I have compiled into a dll. One header file in the CVI code is the interface to the dll and declares some functions and some C structs which are to be passed into the functions as pointers. These structs are populated with test results as the CVI code executes. I want to import these structs into TestStand.
    TestStand seems to have properly imported my function calls because I can select them from a drop-down list. But it doesn't seem to recognize my struct definitions, because it just says "unknown __struct 617*" -- it knows it's a C struct pointer but doesn't know what fields exist in the struct.
    How do I get TestStand to recognize the fields that are in my structs?
    The C functions and structs are declared with DLLEXPORT in the header file. I compile the CVI code into a dll, with the target settings set to export marked header files and symbols. The only header file marked in the target settings dialog is the header file declaring these functions and structs. So I think they're being exported properly into the dll.
    Any ideas to help?
    Thanks!

    I'm using typedef struct {...} MyStruct; to make life easier in CVI world, so rather than changing that throughout my CVI code I think I'll just live with the fact that TestStand doesn't know what struct type it is.
    But typedef or not, is it ever possible for TestStand to import the struct definitions (ie so that it knows what fields and types exist within the struct)? Or do I have to make containers in TestStand that match the format of the structs I'm using in CVI, and pass those container pointers into my CVI function calls?
    Thanks!

  • How can I pass a Variant to a C++ DLL from TestStand?

    I have a VARIANT that is being returned to TestStand via COM. The variant contains a structure of integers and strings. The integers are not uniformly sized... some are 8,16, and 32 bit. Rather than try to find a way to decode this information in TestStand, I would like to pass it to a C++ DLL to do the decoding and return the information in a readily usable format. I also have need to take the aforementioned data types, send them to a DLL for conversion into a VARIANT, and then pass this variant to a COM object. Can someone please explain a way that I can use TestStand as a pass-through for VARIANTs between a COM object and a C++ DLL?

    Hi,
    To pass a VARIANT to a C++ DLL in TestStand, you will need to create a custom data type.  From the sequence, change the View ring to Sequence File Types.  Right-click to insert a new Customer Data Type and select Container.  Now you can right-click to insert a field, which you can specify what data type it is.  Insert as many fields as needed.  After you have entered those in, right-click on the Custom Data Type name and select Properties.  Go to the C Struct Passing tab and click the "Allow Objects of this Type to be Passed as Structs".  Change packing to correlate with the C++ compiler you are using and also configure the properties for each field.
    Once you have done this, you will be able to pass that VARIANT as a struct to a C++ DLL.
    Thanks,
    Terry S.
    Staff Software Engineer
    National Instruments

  • Problems in using Labview DLL with TestStand!

    Hi,
    I tried to put the VI's to create a TCP/IP Connection, read/write Data to it and close it inside a LabVIEW DLL and use these functions with TestStand.
    The problem is to get access to the ConnectionID generated as TCP Network Refnum in LabVIEW.
    I don't know how to specify the prototype entry for this Refnum in LabVIEW and how to read it with TestStand.
    Another try to pass an ActiveXReference of SequenceContext and use the SetValIDispatch method to set a local variable (Type: ActiveXReference) to the returned ConnectionID of the TCPOpen.VI wasn't successful too.
    It seems to me that the connectionID isn't a normal ActiveXReference.
    Regards,
    Sunny

    Hi Sunny -
    You should treat this parameter as a pointer to an int when calling the DLL from TestStand (or any language like C or C++). Note that you can't do anything with the value outside of LabVIEW since it only has meaning inside of LabVIEW. You can only pass it around for use in other VIs you call from TestStand.
    Hope this helps....
    Kyle G.
    National Instruments
    Kyle Gupton
    LabVIEW R&D
    National Instruments

  • 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

  • Passing values from CVI dll to TestStand gives wrong values

    Initially I wanted to pass an array of booleans from CVI to TestStand.  I read that this was not possible because you cannot set Boolean as a parameter.
    So I declared it as unsigned intin CVI.
    Strangely enough, TestStand does receive it as an arrayof Booleans.  However the values are still wrong.  I wonder if it actually is possible to pass an array of Booleans.
    Using TestStand 3.1 and CVI ver 7.1 (no impact)
    Here is how I declare the parameters in CVI:
    void __declspec(dllexport) __stdcall MemTest
        CAObjHandle     thisContext,
        unsigned char *    apbResult,
        int             alComport,
        int                alSocketNum,
        UINT32            aulHostAddr,
        BOOL        *    apbTestOutcome,
        UINT32             testSize,
        UINT32          startAddress
    The other functions within CVI use an array of booleans.
    Here is how I declare the parameters in TestStand:
    Here are the results I get.  They should match...
    The obvious question is:
    How do I get the results in TestStand to match those from CVI?
    The printout >>  no. 1 Passed << etc..  are the values of the array apbResult in CVI.  bSippResuls should match.
    Message Edited by Ray.R on 10-16-2009 10:41 AM
    Attachments:
    TS_prms.PNG ‏29 KB
    TSwrongValues.PNG ‏12 KB

    Ray,
    Try this:
    void __declspec(dllexport) GetResults(unsigned char arg1[16])
     //Insert function body here.
     arg1[0] = (unsigned char)0;
     arg1[1] = (unsigned char)1;
     arg1[2] = (unsigned char)0;
     arg1[3] = (unsigned char)1;
     arg1[4] = (unsigned char)1;
     arg1[5] = (unsigned char)0;
     arg1[6] = (unsigned char)1;
     arg1[7] = (unsigned char)1;
     arg1[8] = (unsigned char)1;
     arg1[9] = (unsigned char)0;
     arg1[10] = (unsigned char)1;
     arg1[11] = (unsigned char)1;
     arg1[12] = (unsigned char)1;
     arg1[13] = (unsigned char)1;
     arg1[14] = (unsigned char)0;
     arg1[15] = (unsigned char)1;
    Regards
    Ray
    Regards
    Ray Farmer

  • Using cvirte.dll from teststand

    I am trying to use cvirte.dll from teststand to automatically print test result reports. I am starting with the example sequence PrintEntireReportWhenFinishedTesting.seq that I found on the NI website. I want to change the print font attribute. The dll doesn't include prototype information so I need information on the parameters for the SetPrintAttributeEx function. Specifically what number refers to the ATTR_PRINT_FONT_NAME attribute and what are acceptable values for the value of this parameter.
    Attachments:
    PrintEntireReportWhenFinishedTesting.seq ‏37 KB

    Wendell,
    I believe this question was also posted in the TestStand category. Since this is more of a TestStand question, it was seen and already answered. Please see Using cvirte.dll from teststand.
    Thanks!
    Shannon R
    Applications Engineer
    National Instruments

  • I want to write a program in LabView then pass the test results to teststand to check if it pass or fail without displaying the test stand program,

    I want to write a program in LabView and create an execute but I want to be able to pass test results to test stand to find it the unit pass ar fail the test then save the data to a database. How would i go about it.

    What's confusing is your statement that you want to do this "without display the test stand program". You can minimize the TestStand UI to the task bar but if you don't want TestStand to be running, how can TestStand evaluate the result. Explain a little more please.
    In the message body of your post, you just say you want to create a LabVIEW exe and pass the results to TestStand. What I would recomend is that instead of an exe, you create a dll and use TestStand's DLL adapter to call it and return the results. TestStand will evaluate it and do the logging.

  • Reporting mechanism on HTML report file, using TestStand 2012 SP1

    Hi,
    I am using TestStand 2012 SP1, where the reporting mechanism is configured to be in HTML format.
    I am not getting the full report of the sequence file which is executed, however I get a part of it printed on the HTML file.
    The following are the configured "Report options",
    ===========
    Contents Tab:
    ===========
    Report Format : HTML Document
    Default Numeric Format : %$.13f
    Include Step Result: Checked
                  Result Filtering Expression : Result.Status=="Failed"
                  Include Test Limits : Checked
                  Include Measurements : Checked
                  Include Arrays : Insert Table
                  Filter : Include All
    Include Execution Times : Checked
    On-The-Fly Rporting and Only Display Latest Results : Checked
    Select a Report Generator for producing the Report Body : DLL
    ===========
    Report File Pathname Tab:
    ===========
    Generate Report File Path : Checked
           File Name/Directory Options : Specify Report File Path by Expression
           Report File Path (Sequential Model) :
                            StationGlobals.TopLevelReportPath
                            +RunState.ProcessModelClient.AsPropertyObjectFile.​DisplayName+"Report_[<FileDate>]<Unique>.<FileExte​nsion>"
    Please let me know a solution to this problem.
    Thanks,
    Dharani

    Jason,
    Thankyou for replying.
    Yes, I need only the steps which had failed to print on the report file.
    The problem what I am facing is, if there are 10 failed steps, the report is not printed for all.
    Also the order of printing is not correct for the first step and the last step which is printed on the report file.
    I had used "Post Expression" for printing data for all the failed steps. Normally these post expressions should be printed beneath the step in the report file.
    However,
    1) For the first step which is printed on the html file, the post expression gets printed just above the step and also it gets printed beneath the step.
    2) For the last step which is printed on the html file, the post expression is not printed beneath the step.
    Please let me know if i need to provide some more information.
    Thanks,
    Dharani

  • How do you pass "struct" in an AJAX call URL? (CF11)

    Quote from CF11 documentation: "Note that "struct" is also available to be accessible through an AJAX argument. Now you can pass struct  in an AJAX URL to serialize a query object as struct."
    How? An example URL would be handy.

    "To serialize a query object as struct" overstates the case. You can serialize a struct, as well as a query, for sending by means of URL.
    For example, create the following 2 CFM pages in the same directory.
    testpage1.cfm
    <cfdump var="#url#">
    testpage2.cfm
    <cfset myStruct = structnew()>
    <cfset myStruct.myFirstKey = "uno">
    <cfset myStruct.mySecondKey = 2>
    <cfset myStructSerialized = serializeJSON(myStruct)>
    <!--- Uses built-in cfdocexamples datasource --->
    <cfquery name = "getBiololgyCourses" dataSource = "cfdocexamples">
        SELECT Course_ID, Dept_ID, CorNumber,
        CorName, CorLevel
        FROM CourseList
        WHERE Dept_ID = 'BIOL'
        ORDER by CorNumber asc
    </cfquery>
    <cfset biologyCoursesSerialized = serializeJSON(getBiololgyCourses)>
    <cflocation url="testpage1.cfm?myVar=#myStructSerialized#&biologyCourses=#biologyCoursesSerialized#">

  • 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

  • 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.

Maybe you are looking for

  • Gradual slowdown of MacBook during the day--why?

    I run lots of programs all the time on my May 2006 MacBook 2.0 ghz core duo (first MacBook). However, it seems that after a restart the MB runs fine, but within 4-6 hours, and especially after 2-3 days, I have to restart since things are just running

  • Renaming a file inside a function in PL/SQL

    Hi, I have a file called TMP_g2_response_data. I have some data in it. I read the data inside my function. Once I read the data, I want to move it to some another file. Basically I want to rename the file TMP_g2_response_data to TMP_g2_response_data.

  • Cache deadlock

    We have had a few co-occurrence of a deadlock on one of our caches. Thread seems stuck in com.tangosol.net.internal.StorageVersion.waitForPendingUpdates method. Any clues? The stack trace for the worker threads on the offending node(two configured) i

  • Changing height of a row in a table control

    Hi all, I have developed a webdynpro application in which i am using a table control in the view. Can anyone tell me how can i change the height of a row in the table control? thanx in advance anuradha

  • About Oracle applications (Questions)

    Hi All, What is purpose of Attribute columns, Segment Columns, & Reference Columns in Oracle applications tables (oracle e-business suite tables)? Any help would appreciate Thanks, [email protected]