TS_StationOptionsGetExecutionMask CVI Function usage

Hello,
I am trying to use the CVI function TS_StationOptionsGetExecutionMask to modify execution mask properties programatically. When I try and run the user interface I get an error "No such interface supported".
What object handle shouold be used with this function?
What context is it in?
I have tried the Engine handle, the Application Manager handle, etc. Always the same error.
There is a very serious lack of information on NI's part. There is plenty of help about classes and properties, but the help and information on methods and specifically the TestStand library functions for Labwindows/CVI is non-exsistent. Plenty of Labview help out there on using classes and manipulating properties and such, but zilch the NI's forgotten step-child LabWindows!
John O'C
Staff Test Systems Engineer
Woodward, Inc.
Skokie, Illinois, USA
"Life is not a journey to the grave with the intention of arriving safely
in a pretty and well preserved body, but rather to skid in broadside,
thoroughly used up, totally worn out, and loudly proclaiming...
Wow...What a Ride!"
Solved!
Go to Solution.

Hey John,
We have a whitepaper on using the TestStand API in LabWindows/CVI that you might find useful. It describes the process of passing the SequenceContext into a CVI code module and then explains the structure of properties and methods in CVI, as well as what types of object references are needed for various function calls. Using the TestStand API in CVI is a bit different from using it in LabVIEW and .NET, since C does not natively support objects. However, once you become familiar with the structure of the API in CVI, it should become a bit easier to navigate and use. 
I hope this helps, and please let us know if you have any more questions about it!
Daniel E.
TestStand Product Support Engineer
National Instruments

Similar Messages

  • Ni-DAQ 7.1 and CVI Function panels

    I have an XP system running TestStand 1.0.3 with CVI 6.0, and hardware NI-4070 and NI-6713. I have downloaded NI-DAQ 7.1 driver. However, I cannot find any CVI function panels for the DAQ. During the installation, I selected CVI and all it's subfeatures, but I did not see any installed.

    Hi,
    To offer support for driver upgrades. the NI-DAQ installer is the one that installs the DAQ libraries for CVI. The first thing to try is to run the NI-DAQ installer from the add/remove programms applet and make sure that support for CVI is selected.
    FYI: CVI 6.0 only supports the Traditional DAQ driver, to use DAQmx you would need to upgrade to CVI 7.0; click here for more info.
    I hope this helps.
    Regards,
    Juan Carlos
    N.I.

  • How can I use CVI function TS_PropertyExists in Full-Featured Operator Interface

    I'm trying to use the CVI function
    HRESULT CVIFUNC TS_PropertyExists (CAObjHandle objectHandle, ERRORINFO *errorInfo, const char *lookupString, long options, VBOOL *val)
    in full-featured operator interface source code shipped with TestStand 3.1. I have problem with the objectHandle parameter which I don't know how to use. Is there already a variable declared and initiliased in operator interface source code which corresponds the objectHandle parameter ? If not, how can I get an objectHandle ?
    /Petri

    Petri,
    The object handle parameter is the ActiveX object handle obtained from Automation Method or property.
    This object would depend on which property you want to check for existence.
    Check the Using LabWindows/CVI with TestStand reference manual for more information.
    Best Regards.

  • Calling cvi functions from test stand using structs

    WE got some Issue regarding the process of calling cvi function using test stand

    I'm sorry to hear that you have some issues calling cvi functions. There is a shipping example that demonstrates how to call a CVI function and pass a structure. The example can be found in <TestStand>\Examples\StructPassing\C\Struct Passing to a C DLL.seq.
    If the example program does not resolve your issues, post again and please describe the problem in detail.
    Regards,
    Shannon R.
    Applications Engineer
    National Instruments

  • Producing warnings when cvi function parameters do not match function prototypes

    Is there a function prototype in cvi code which would generate an error/
    warning that my parameters do not match those of the function prototype. I
    am using MSVC 6 for development.
    Ed Manlove
    [email protected]

    There is a parameter in the Options>>Build Options menu that do that : check "Require fonctions prototype".
    I think that a function can't do that because you have to check that during the compilation. If you want to check parameters at the run time ( like , scanf function ) you have to do by yourself inside the function.

  • VISA Shared resources by lock CVI functions

    Hello,
    Attach to the post : http://forums.ni.com/t5/LabWindows-CVI/VISA-Shared-resources/m-p/1000856#M43685
    I use LabWindows/CVI 2013 SP2.
    I have a share VISA problem : 2 functions VISA (Read and Write), on the same ressource.
    I want to protect the access to the ressource VISA with the lock functions.
    Like they propose and also the "ThreadLockTimeout" NI example.
    So only at the beginning of the software, I do step 1 : cmtStatus = CmtNewLock ("", 0, &LockHandleRS), add before that, to a free handle in case of...
    Only at the end, step 4 : cmtStatus = CmtDiscardLock (LockHandleRS), add to a "LockHandleRS = 0".
    In each read and the write VISA function (20 ms < time < 100 ms, timeOut =2 s),
    I try to use different methodes, without success :
    - to lock (step 2) :
         1) cmtStatus = CmtGetLock (LockHandleRS)
         2) cmtStatus = CmtTryToGetLock (LockHandleRS, &lock), add to a while loop (for timeOut)
         3) cmtStatus = CmtGetLockEx (LockHandleRS, 0, timeOut, &lock)
         4) and even, statusRS = viLock (portVISA, VI_EXCLUSIVE_LOCK, timeOut, VI_NULL, VI_NULL)
    - the VISA read/write function :
         "viWrite" for the ask, following by a "viRead" for the answer
         (VISA read function (# measure) : for only an acknowledge echo traitment and read data reponse)
         (VISA write function (# order) : for only an acknowledge echo traitment)
    - to unlock (if lock successfull) (step 3)
         1)2)3) cmtStatus = CmtReleaseLock (LockHandleRS)
         4) statusRS = viUnlock (portVISA)
    I display every wrong "cmtStatus" and "statusRS", but nothing appears.
    The VISA read function is called following an "EveryNCallback" DAQmx function (every 0.5 s).
    The VISA write function is called punctually, by an operator action throught various interfaces.
    If I use only the periodic VISA read function, no problem on lock/unlock.
    N.B. : Lock function (step 2) take only # 100 µs (for case 2) : at the 1rst iteration).
    N.B. : I use the same external lock/unlock functions for the VISA read/write.
    But nearly at every VISA write asking (3 on 5), I can display 2 consecutive successfull locks function (VISA read and write) ???
    N.B. : same time (100 µs).
    Following, of course, to 2 unlock functions (step 3).
    And every time, the echo of the VISA read function is treat by the VISA write function.
    And the echo of the VISA read traitment is truncked.
    So for me, I treat it like 2 VISA errors (read/write).
    ======================================
    I try to improve the NI example to show my problem.
    I hope that I do not make so much big mistakes, which would cancel the interest of this example.
    Into this small code lines, I can reproduce my problem (by quick applies on F1 button).
    I do not implimente all the fonctions I try.
    Into a bigger one, it is very easy to reproduce (even with the other functions).
    N.B. : In my final application, the thead n°1, look like more to a CVICALLBACK, than a thread with a while loop inside.
    But the problem still the same.
    Thanks a lot for consideration.
    Certified LabWindows/CVI DEVELOPER (2004)
    LabVIEW since 5.01 | LabWindows/CVI since 4.01
    Attachments:
    ThreadLockTimeout.7z ‏127 KB

    Hello,
    With NI France support, we improve to the NI example again.
    We show, with adding timing, that the example can display the message in a wrong sense (with a  software slowing down, at this moment, why ???) (see Explication°1.png).
    If we display the message before the release (//#define M2), we can not reproduce the double lock (and release),
    but also any software slowing down.
    So this example can not be use to help me to resolve my application lock trouble.
    It is not representative of my problem, which is always in progress.
    Certified LabWindows/CVI DEVELOPER (2004)
    LabVIEW since 5.01 | LabWindows/CVI since 4.01
    Attachments:
    ThreadLockTimeout n°2.7z ‏289 KB

  • Sql functions usage in sql loader

    Hi all,
    Can some one share sample code for using sql 'decode' function with sqlloader control file?
    Thanks

    Took about 30 seconds to find this link at google:
    http://www.orafaq.com/faqloadr.htm#MODIFY
    Dim

  • How to find out PL/SQL function usage in Discoverer workbooks?

    We have to make changes to one PL/SQL function that has been registered in Administrator. Is it possible to find out in which reports the function is used? The function is called in calculations and it returns certain time information. We have to add one argument to the function and therefore have to change calculations where the function is called. We have too many workbooks to manually check them all.
    I am aware how to find out which folders and items are used in workbooks but can't find the same information about functions. We are using Discoverer 10.1.2.2
    Thanks in advance!

    Hi,
    If you calculation is in the EUL you can look at the item dependencies, but if your calculation is in the workbook there is no way other than using the workbook dump (d51wkdmp.exe) utility or opening the workbook and manually checking.
    You might want to consider overlaying the PL/SQL function definition so that there are 2 variants of the function. You can then add the extra parameter as an optional parameter in Discoverer. The correct variant will be called depending on how many parameters are used.
    Hope that helps,
    Rod West

  • @prompt functions usage in Derived table

    How can we use prompt functions in Derived table?.Please repaly ASAP.
    Advanced thanks.
    Thanks&Regards
    Ramu

    Hi Ramu,
    It is quite straight foward.You define your derived table using the normal sql but then put in the @prompt code in the where clause.
    This worked for me in XI 3.0 using the Efashion universe.
    SELECT
    Article_Lookup_criteria.Article_Lookup_criteria_id,
    Article_Lookup_criteria.Article_criteria_id,
    Article_Lookup_criteria.criteria_type
    FROM
    Article_Lookup_criteria
    WHERE
    Article_Lookup_criteria.criteria_label = @prompt('Label,'A',,Mono,Free,Presistent)
    Regards
    Alan

  • Grouping Function usage in SQL

    All,
    How does grouping function work, does it also depends on the sequence of columns used in group by rollup
      select deptno,job, group_id(), sum(sal), grouping(deptno) , grouping(job)
      from emp
      group by rollup (deptno, job) 
      If the query is run by "rollup(job,deptno)" grouping (deptno) returns 1 where as if "rollup(deptno,job)" grouping (deptno) returns 0.
    Does the column sequence in group by rollup decides the returning of grouping(deptno) function. I feel to have some misunderstanding of the way its said in ORACLE documentation. We referred to the below link for our understanding.
    http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/functions071.htm
    Request the PRO's to discuss and clarify on this.

    Hi,
    ramarun wrote:
    All,
    How does grouping function work, GROUPING (x) returns 1 if the current row represents a superaggregate of x, and 0 otherwise. In other words, if GROUPING (x) is 0, then the row represents a single value of x. If GROUPING (x) is 1, then the row represents a total of all values of x.
    For example the query you posted may produce results like this:
    `   DEPTNO JOB       GROUP_ID()   SUM(SAL) GROUPING(DEPTNO) GROUPING(JOB)
            20 ANALYST            0       6000                0             0
               ANALYST            0       6000                1             0
            10 CLERK              0       1300                0             0
            20 CLERK              0       1900                0             0
            30 CLERK              0        950                0             0
               CLERK              0       4150                1             0
            10 MANAGER            0       2450                0             0
            20 MANAGER            0       2975                0             0
            30 MANAGER            0       2850                0             0
               MANAGER            0       8275                1             0
            10 PRESIDENT          0       5000                0             0
               PRESIDENT          0       5000                1             0
            30 SALESMAN           0       5600                0             0
               SALESMAN           0       5600                1             0
                                  0      29025                1             1Look at the last three rows. On this row
    `   DEPTNO JOB       GROUP_ID()   SUM(SAL) GROUPING(DEPTNO) GROUPING(JOB)
            30 SALESMAN           0       5600                0             0GROUPING (deptno) is 0; so the row represents only deptno=30.
    GROUPINT (job) is 0, so the row represents only job='SALESMAN'.
    SUM (sal) is 5600, so the total salary of all salesmen in department 30 is 5600.
    Now look at this row:
    `   DEPTNO JOB       GROUP_ID()   SUM(SAL) GROUPING(DEPTNO) GROUPING(JOB)
               SALESMAN           0       5600                1             0GROUPING (deptno) is 1; so the row does not represent any one deptno; it is a superaggregate of all deptnos. Notice that the deptno column is NULL, even though there are no rows in the table where deptno is NULL.
    GROUPING (job) is 0, so the row represents only job='SALESMAN'.
    SUM (sal) is 5600, so the total salary of all salesmen in any department is 5600. (As it happens, all the salesmen are in department 30, so this sum is the same as on the previous row.)
    Now look at the last row:
    `   DEPTNO JOB       GROUP_ID()   SUM(SAL) GROUPING(DEPTNO) GROUPING(JOB)
                                  0      29025                1             1GROUPING (deptno) is 1; so the row does not represent any one deptno; it is a superaggregate of all deptnos. Notic that both deptno and job are both NULL on this row of output, even though neither column is ever NULL in the table.
    GROUPING (job) is 0, so the row represents only job='SALESMAN'.
    SUM (sal) is 5600, so the total salary of people with any job and any department is 29025.
    does it also depends on the sequence of columns used in group by rollup Excellent question! Try it an see. Change the order or columns in the GROUP BY clause and see. If you get different results, then the order does matter.
    select deptno,job, group_id(), sum(sal), grouping(deptno) , grouping(job)
    from emp
    group by rollup (deptno, job)  If the query is run by "rollup(job,deptno)" grouping (deptno) returns 1 where as if "rollup(deptno,job)" grouping (deptno) returns 0. You get different results; therefore the order does matter.
    Does the column sequence in group by rollup decides the returning of grouping(deptno) function...Yes.
    "GROUP BY ROLLUP (deptno, job)" means a superaggregate row for each value of job, representing all deptnos, will be formed. That is, you will get one row representing all analysts; another row representing all clerks, another row representing all managers, and so on. This will be similar to the results that you would get if you never mentioned the first expression in the ROLLUP list, that is, deptno. You will not get a superaggregate row representing any one deptno, say, 10.
    "GROUP BY ROLLUP (job, deptno)" means a superaggregate row for each value of deptno, representing all jobs, will be formed. That is, you will get one row representing all anlysts; another row representing deprtment 10, another row representing department 20, and so on. This will be similar to the results that you would get if you never mentioned the first expression in the ROLLUP list, that is, job. You will not get a superaggregate row representing any one job, say, 'ANALYST'.

  • Function usage question

    Hi All,
    I am using two different functions to return different values by passing same two values to the function. Both these functions use a cursor to fetch different columns data from the same table. Is there a way in which I can combine both these functions. Use both cursors within the same function and return two values?
    Please suggest what would be a good approach. Thanks.

    You need to consider the purpose of the function. It does not make sense to combine two functions, if the two functions are logically very different.
    For example, claiming that performance improvement is the reason to combing functions MOD and TRUNC into a single function, is not valid. These two functions are logically very different. The fact that two functions may internally do similar things cannot be used as the reason two combine those two functions into a single function.
    As for returning more than one value by a function. Yes, this is possible and very common. Many languages and operating system kernels have functions that returns a structure, where the structure has multiple field/members.
    In PL/SQL, you will define the structure either as a user-defined SQL Data Type, or PL/SQL structure in a package header.
    The PL/SQL structure approach makes only sense when dealing only with PL/SQL (the structure will never be touched by SQL) and/or when it contains PL/SQL data types.
    E.g.
    create or replace package typelib is
      type TFile is record
         directory       varchar2(200),
         filename        varchar2(200),
         handle          UTL_FILE.file_type,
         opened          boolean
    end;A function can then be defined that returns this structure, e.g.
    create or replace function MakeTempFile return TypeLib.TFile is .. Using user-defined SQL types are often a better choice as these types are in fact o-o classes. You can create custom constructors for them, add methods, subclass them, etc.

  • What is the CVI function use to get the Read-Only attribute of currently loaded sequence file in TS?

    I am working with CVI 8.0 and TS 3.5.  The VCI code is called from the process model (I want to get the attribute of the currently loaded users sequence file)

    Never mind.  I found it.

  • Predefine Partner Function Usage

    We have added a couple of new partner functions in R3, which I want to send over to CRM.  I have figured enough out so that I can either create a new partner function or assign a standard partner function for the information that is coming from R3.  So I am trying to decide to either use standard or create new partner functions.  But I have not found how the standard partner functions should be used.  Is there any document that will list how partner function should be used for.  We are starting a new sales model where we have people on the road talking to customer, we have main person in the office to maintain the customer relationships, and another person who does the data entry/ order taking.  I current got Key Account Manager for the first role, Sales Representative for the second and Sales Assistant for the last.  But if there is a better mapping that would be great.  But I am just trying to understand what SAP is thinking with each of the partner functions.
    Thanks.
    Matthew Stroh

    Hi Kapil. Thanks for your fast answer.
    I have been checking both messages but I still have some questions. What happens if I have more than one plant for ordering in the same company code/sale organization of destination? Must I create more than one customer for delivering company code/sale organization?
    SAP lets you to assign different customers for different plants in IMG/ material management/ Purchasing/ Purchase order/ Set up stock transport order/ define shipping data for plants
    Here you can define a different customer per plant. Obviously you can assign the same customer for more than one plants, although we create and assign one different customer per plant.
    If we introduce a customer per sale organization in "Menu Path: IMG/ SD / Billing/ Intercompany Billing/ Define Internal Customer Number By Sales Organization" which one has got priority?
    Best regards.
    Edited by: sapera01 on Feb 5, 2010 12:00 PM

  • @Match Function Usage

    Hi All,
    I am trying to use the @Match function within Datacopy but it gives me an error. Here is my code. Any help is appreciated.
    FIX (No_GEO, Plan, Functional)
    Datacopy @Match(Entity, "CC_????_S") TO @Match(Entity, "CC_????");
    ENDFIX

    A syntax issue -- you're not going to be able to use the @MATCH function on the left hand side of the equal side.
    Here's the formula you need:
    FIX(everything you listed in all of your FIXes bar Plan and Entity)
    FIX(@MATCH("Entity", "CC_????"))
    "Plan" = @MEMBER(@CONCATENATE(@NAME(@CURRMBR("Entity")), "_S")) ;
    ENDFIX
    ENDFIX
    This formula:
    1) Selects the current member in the Entity dimension through @CURRMBR
    2) Makes #1 a text string with @NAME
    3) Concatenates the _S
    4) Turns #3 into a member name with @MEMBER
    5) Assigns the value to the Plan Scenario
    The FIX around the members is so that just the CC_???? members get impacted.
    Regards,
    Cameron Lackpour

  • Function usage in OWB 10g Mapping

    Hi,
    I'm a newbie of OWB 10g.
    I do have in flat file (.csv) a column with value as "ABC 1.2", "ABC 2.0", "XYZ 2.1", "XYZ 3.0" etc.
    I wanted this value to placed to the oracle database table as such & as truncated value as "ABC" for both version of ABC & as "XYZ" for versions of XYZ.
    I have mapped in the mapping editor where the database table has 2 columns. One to place the data from flat file as such & the other column to be the truncated or transformed value.
    I have mapped from flat file to the first column as such & for the value to the second column i do have a function which does the process of transformation.
    I validated, Generated, Deployed & all are successful. On execution of the deployed mapping
    I face a problem as :
    Record 7: Rejected - Error on table "username"."tablename", column "second column name".
    Column not found before end of logical record (use TRAILING NULLCOLS)
    Since i have 256 records, to all those i do face the same situation for all records.
    Plz do enlighten me how to go about to place the data from flat file to the database table column as the same value & the transformed value in another column in database table.
    Thx in Advance.

    Patrick is correct. i have earlier assumed you had the procedure created and was just attempting to executing a mapping from it.
    by the way, the "instruction" to use this script is embedded in the run_my_owb_stuff.sql file itself (i will cut and paste it here)
    [BEGIN EXTRACT]
    How to use install and use function:
    - Logon to runtime repository owner and run this script. This creates a function run_my_owb_stuff
    - grant execute to run_my_owb_stuff to <runtime access user>
    - connect as runtime access user and run something along the lines of:
    begin
    dbms_output.put_line('result '
    || to_char(<runtime repository owner>.run_my_owb_stuff( '<runtime repository owner>'
    , '<target location>'
    , '<type: PLSQL, PROCESS or SQL_LOADER>'
    , '<mapping or process name>'
    , '<system parameters>'
    , '<custom parameters>'
    end ;
    Because of the defaults you can leave any input parameters into
    run_my_owb_stuff empty, such as p_system_parameters and
    p_custom_parameters. For an implementation, consider changing the
    defaults (such as p_repos_owner) to make live easier. Also, consider
    taking out the dbms_output.put_line messages in a production situation.
    To run this script, a user has to have been granted roles WB_R_<runtime
    repos owner> and WB_U_<runtime repos owner>. The runtime access user
    will have these roles granted.
    [END EXTRACT]

Maybe you are looking for

  • Extracting data of data type 'real' from the sql server database

    Hi, In my job, my source is a sql server database. I am connecting to the source sql server database using ODBC (sqlserver driver) in the datastore. In one of my source tables i have a field of data type real.If one of the value is 3.45678 , data ser

  • TS3276 I have an OS X 10.6.8  AND until this week mail was operating well.

    Mail will no longer hold my password and now the only way I can get it is to go to Web Mail at my internet provider's web-site.  Any suggestions?

  • Won't work on windows live mail

    I cannot ge Verizon e-mails to work in conjunction with Windows Live mail. My Yahoo & Google mails work fine. I probably need to set it manually, am trying to get the setings on Verizon , but cannot find them. T.I.A.

  • Variables in Script

    Iam new to script can any one tell me the meaning of &GF_CP_TOTAL_TXBAS(R)& ,,&GF_CP_TOTAL_TXBTR(R)& here in brackets they used R what does it mean. Thanks in advance, RRK. Edited by: Alvaro Tejada Galindo on Feb 6, 2008 4:55 PM

  • SnowLeopard update crashes CS4 applications

    Snow Leopard is crashing any application I try to run save a few utilities. All CS4 apps crash on launch after update to 10.6.4. Here is a report from Flash which hangs on launch... Date/Time:       2010-06-17 09:20:30 -0700 OS Version:      10.6.4 (