Step Type ActiveX/COM

Hi!
I want to know what is exactly ActiveX/COM step Type. I don't know what kind of program produce this type of step.
Thanks
Capblans

Hi,
You would use these step type to interface to the methods and properties of an activex/com object.
Tpyically you would use this step type to interface with the TestStand API methods and properties. Also code generated using Visual Basic.
There is a couple of articles (application notes) here that maybe helpful.
Within the TestStand\examples folders and on the NI website are examples using the ActiveX/COM adapter
Regards
Ray Farmer
Regards
Ray Farmer

Similar Messages

  • Is there an IviSwitch step type?

    I would like to use the built-in IVI step types that comes with TestStand 2.0, to control my IVI instrument drivers. I am going to use several switching drivers, and I noticed there are IVI step types for DMM, Scope, Function Generators and DC Power supplies. Is there a step type for the IVI Switch class drivers?

    This will be available in TS 2.0.1 (free upgrad to TS 2.0) in a couple of months.

  • Get Type of Step by activex

    Hi guys,
    I want to get the Type of the Step by activex. I have the name but in case of a Statement Step the name can be changed.
    If I get the Field Type that we can found on the tab Properties, General I will be able to get information I want following the Step Type.
    Thanks in advance.

    Oh pfhenry21.  I am hurt that you wouldn't trust my solution... however, I completely understand.  Alas, I'm not always right.  But in this case I am. 
    Did you give it a go?
    Most objects in TestStand inherit from the PropertyObject class.  The PropertyObject class has a property called Name.  In my statement I return the StepType object by using Step.StepType.  Then I use the Name property to get the name of that object.  NOTthe name of the Step.  If I used Step.Name then you would be correct in assuming that the name will change and can be anything.
    And ultimately you will most likely be using something like: RunState.Sequence.Main[Some Index or Step Name].StepType.Name.  Or if you are in an engine callback you would use something like: Parameters.Step.StepType.Name.  Or if you are iterating through the sequence in an external code module it would depend on how you are getting the steps.
    Hope this helps you understand it a little better.
    Regards,
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Create step type for a COM step

    Hi,
    I'm using the COM adapter to interface with TestComplete.
    My current setup is I have a Master sequence file that contains two calling sequence files ( one for each test).
    The individual called sequence file have 4 steps as listed:
    Get Property: Create new object
    Calling a method to open project
    Call method to run test, and pass parameter to TestComplete
    Get property result
    My problem is if I want to pass a different parameter in the Call method to run test Step, I have to create another sequence file to do this.
    Is there a way to create a single Step Type to call method, run the test and pass parameter to TestComplete?  and how will it affect the other steps in this sequence file (e.g. Create new object, open project, Get property resut)?
    Thanks!
    Solved!
    Go to Solution.

    Jigg,
    Thanks for your help.  Please see attached file.
    Yes, I have to create another sequence file(with the 4 steps) if I need to pass a different parameter value to TestComplete via COM.
    note: the parameters that are used by the 4 steps are all in the Parameter tab.
    Regards,
    ph
    Attachments:
    sequence call with parameters.doc ‏160 KB

  • Programmatically modify ActiveX/COM-step module settings

    Would like to modify programmatically ActiveX/COM-step module settings (Automation Server, Object reference, Object class, method/property, parameters-list).
    Can't find this in context. How this can be modified?
    Thanks!
    Solved!
    Go to Solution.

    Hey bestware,
    You need to get a reference to the step: RunState.Sequence.Main["MyActiveXStep"]
    Then you can use that to convert to the ActiveX module: RunState.Sequence.Main["MyActiveXStep"].Module.AsActiveXModule
    Once you have that you can do whatever you'd like with it.  You can read in the help more about this.  Search for ActiveXModule.
    You sould see all sorts of properties: MemberType, MemberName, ServerID, ActiveXReferenceExpr.  If you read about them they are refering to the different things you want to set.  For instance the ActiveXReferenceExpr is where you store the Object Reference.  The MemberType is Call Method (1), Get Property(2), Set Property(4) or Don't Call(-1), etc... 
    So to change the step to be a Get Property step I would do this:
    RunState.Sequence.Main["MyActiveXStep"].Module.AsActiveXModule.MemberType = 2
    To store an Object Reference to Locals.MyObj I would do this:
    RunState.Sequence.Main["MyActiveXStep"].Module.AsActiveXModule.ActiveXReferenceExpr = "Locals.MyObj"
    Hope this gets you pointed in the right direction. 
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Programmatically Insert ActiveX/COM Step Using LabVIEW

    Hi,
    I would like to be able to create sequences like the one attached, using LabVIEW.
    This sequence has only 2 steps, a LabVIEW VI call, and an ActiveX/COM Adapter Call.
    I have been able to do this using an adaptation of the code here: https://decibel.ni.com/content/docs/DOC-36337
    However, I am struggling to add the ActiveX/COM step.
    Any help would be gratefully received.
    Thanks,
    Dan
    CLD
    Solved!
    Go to Solution.
    Attachments:
    Valve Control - Test 1.seq ‏6 KB

    Obviously there is a way if you look for it
    Since you have an existing object of the "Step" class you can also get a "Module" object for it. Afterwards you have to specify that this is an ActiveX module. If you do not know that - probably you need to get it from the "Adapter" object somehow... Our case is simplier, so you just cast it to the ActiveX module and ... set some properties like ServerId, ActiveXReferenceExpr and so on.
    I have attached an example for you. Interesting thing is the ServerId - I have just read this chain from the TS for similar step and reused it here so don't ask me how to obtain it automatically
    You still have to fill your "Properties" like "file" - but I will graciously leave this job for you =
    Best Regards,
    CLA, CTD, CLED @ Test & Measurements Solutions Poland
    Attachments:
    ActiveX Step_2.vi ‏24 KB

  • Programati​cally Assigning Step Type Properties

    I have developed several COM instrument drivers in Visual Basic 6.0 which I can call from TestStand using the ActiveX/COM adapter. However, I would like to be able to create a custom step type for each of these ActiveX servers. Each server provides several creatable classes and a number of interfaces. Ideally I'd like to create a custom step type that references the GUID of my server but have the ability to programatically assign the step properties such as Interface ID and CoClass ID to use the classes and interfaces of my server that I want need to access.
    I have noticed that it is possible to create a step type (IEngine.NewStepType method) and set the Automation Adpater. Then I can programatically access its hidden properties (e.g.TS.SData.Call.CoClass). However, I am unsure of how to save and/or access this newly created step type. Where is it stored and how can I insert steps using of the new step type?
    I have attached a sequence I've been working on. This has dependencies on a Station global and a server unique to my system but illustrates what I've been trying to do. Do you have any advice of what I need to do next or have any examples available where this sort of thing has been done in the past.
    Thanks.

    Hi David,
    Here is some steps for saving your Step types.
    You will need to create a type palette Ini file to hold your step types.
    Get a PropertyObjectFile reference by calling Engine.NewPropertyObjectFile(FileType_TypePaletteF​ile).
    Set the path of the ini file with PropertyObjectFile(Path).
    Get a TypeUserList reference by calling PropertyObjectFile.TypeUsageList().
    Get a count of the number of Types in the TypeUsageList by calling TypeUsageList.NumTypes().
    This point create your Step types (as you have done). You will need a PropertyObject reference to your steptypes for use with the TypeUsageList.InsertType().
    Using each steptype PorpertyObject reference.
    Insert the Type into the TypeUsageList by calling TypeUsageList.InsertType(step type propertyobject ref, index (which will be your count), typeCategoryParam = TypeCategory_StepType)
    Call the PropertyObjectFile.IncChangeCount() to indicate file changed.
    Increment the count and repeat Insert for each of your step types.
    save the ini file PropertyObjectFile.SaveFileIfModified(prompt = TRUE).
    Tidy up by releasing references etc.
    I know this works for TestStand 2.0.1f1 and hopefully it will work for 3.1. Unfortunately I haven't got 3.x installed on a PC to try it.
    Hope this gets you started.
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • The type library information for 'TestStand IVI Step Types' was not found (Error code: -18351)

    Hi,
    I get the error in the message subject when I add an IVI-C step (no matter IVI Power Supply, IVI Dmm or others) and try to edit the step by pressing Ctrl+E (or double-click the step and click "Edit IVI Power Supply" for instance).
    I have installed 2 IVI-C libraries that I downloaded from 'NI idnet' both with IVI technology (namely agn330xa_MS.msi and agn6700_MS.msi). They can both be seen in Add/Remove programs under "NI IVI Specific Drivers" group.
    The error message says "Make sure the server is registered".
    Does anybody know what server is it complaining about and how can the registration be done?
    Regards,
    S. Eren BALCI
    www.aselsan.com.tr
    Attachments:
    error 18351.jpg ‏66 KB

    Hi ebalci,
    I believe this error is occurring because the ActiveX components that are used by the IVI step types are either not properly installed or not properly registered.  I would recommend first making sure that the IVI compliance package and NI-VISA are installed on the system.  If both of these are already installed, I would recommend running the TestStand Version Selector because this should re-register the ActiveX components used by the IVI step type.  The TestStand Version Selector can be found by going to the Start Menu>>Programs>>National Instruments>>TestStand 3.5.  You will need to select the version of TestStand you want to use and click the "Make Active" button.  I have also pasted links below to VISA and the IVI compliance package.  Hope this helps!
    NI-VISA
    IVI Compliance Package
    Pat P.
    Software Engineer
    National Instruments

  • Python ActiveX/COM - Which engine am I getting?

    Currently, I have TestStand calling some Python code to run some of our tests.  I'm wondering if it's possible to have the Python code manipulate variables from the running TestStand instance?  This post shows how to access the TestStand API from Python: http://forums.ni.com/t5/NI-TestStand/Exchange-data-with-TestStand-from-a-python-thread/m-p/1314571#M...
    Based on what I've read, it seems that when you get a handle on an ActiveX/COM Engine object, its not the same Engine as is currently running (that called the python script).  (see post 6 of this post: http://forums.ni.com/t5/NI-TestStand/using-C-as-User-Interface-in-TestStand/m-p/1404192#M31492).  
    If this is true, then the engine I get in Python isn't the engine I want.
    Can anybody confirm/deny?

    Ok. Probably the easiest way to pass a reference across processes is to use the TestStand synchronization step types and corresponding synchronization manager API. On the TestStand side, before launching your python process, create a queue or notification (using the corresponding synchronization step type), giving it a name that begins with an '*' character. Synchronization objects whose name begins with an '*' character are global per machine. Then before, launching your python app, either enqueue the reference you wish to pass to python or set the notification with such a reference. Then inside of your python code, create a new instance of the engine, and call GetSyncManager() on it with the name you used for your queue or notification. You also need to import the TestStand synchronization manager type library, which will then allow you to convert the sync manager reference to a SyncManager data type. Call GetQueue or GetNotification on it, then call the corresponding method on the queue or notification to dequeue or wait for the notification. You will need to create a destination object using the engine as follows: engine.NewPropertyObject(PropValType_Reference, false, "", 0). See the API help for teststand for more information.
    Hope this helps,
    -Doug

  • Comment utiliser le bouton grisé ? dans l'editeur ActiveX/COM?

    bonjour,
    je souhaiterais associer une aide à chacun de mes "steps" dans l'éditeur d'ActiveX/COM. Il y a un bouton "?" grisé et je veux le rendre actif.
    Comment créer le lien entre ce bouton, le fichier d'aide et ma "Method"?
    J'ai cherché sur le forum et j'ai trouvé un seul cas identique et sans réponse pour l'instant "Add Documentation to custom DLL-Teststeps".
    merci pour votre aide.
    P.F
    Solved!
    Go to Solution.

    I do not know French that well, but I know the answer to your question so hopefully someone can translate this for you if needed.
    Basically what you need to do is add a helpfile tag and helpcontext and/or helpstring tags to the library, methods, and interfaces in your COM object's type library. If you are using C++ and an .idl file it looks something like this:
    At the top of your idl file:
        uuid(LibraryGUID),
        version(1.0),
        helpstring("Help string"),
        helpfile("..\\Doc\\Help\\TSAPIRef.chm")
    library libraryName
    For each interface:
        [helpcontext(HlpIDConstant) ,helpstring(HelpString) ,
            uuid(InterfaceGUID),
            dual,
            pointer_default(unique)
        interface MyInterface : IDispatch
    For each method:
            [helpcontext(HlpIDConstant) ,helpstring(HelpString), id(642)] HRESULT                MyMethod();
     Hope this helps,
    -Doug
    Message Edited by dug9000 on 06-19-2009 11:49 AM

  • I need to pass data from an Access database to Teststand by using the built in Data step types(open data

    base /open SQL Statement etc) the first time i defined the system everything was fine but when i changed the Database (using M.S.Access) the " open SQL Statement" it would show the tables but not thier columns ,I"m using win98 sec edition / Teststand 1.0.1i need to pass data from an Access database to Teststand by using the built in Data step types(open database /open SQL Statement etc) the first time i defined the system everything was fine but when i changed the Database (using M.S.Access) the " open SQL Statement" it would show the tables but not thier columns ,I"m using win98 sec edition / Teststand 1.0.1
    When I tried the same thing on another cmputer the same thing
    happend
    appreiciate u"r help

    base /open SQL Statement etc) the first time i defined the system everything was fine but when i changed the Database (using M.S.Access) the " open SQL Statement" it would show the tables but not thier columns ,I"m using win98 sec edition / Teststand 1.0.1Hello Kitty -
    Certainly it is unusual that you can still see the tables available in your MS Access database but cannot see the columns? I am assuming you are configuring an Open Statement step and are trying to use the ring-control to select columns from your table?
    Can you tell me more about the changes you made to your file when you 'changed' it with MS Access? What version of Access are you using? What happens if you try and manually type in an 'Open Statement Dialog's SQL string such as...
    "SELECT UUT_RESULT.TEST_SOCKET_INDEX, UUT_RESULT.UUT_STATUS, UUT_RESULT.START_DATE_TIME FROM UUT_RESULT"
    Is it able to find the columns even if it can't display them? I am worried that maybe you are using a version of MS Access that is too new for the version of TestSt
    and you are running. Has anything else changed aside from the file you are editing?
    Regards,
    -Elaine R.
    National Instruments
    http://www.ni.com/ask

  • Java Step Types with Java Virtual Machine higher than java-6u16?

    Documentation of Java steps says, that these steps are tested with java version 6 update 16. I am talking about the java step types that can be found in directory <TestStand Public>\TestStand 2010\Examples\Java. 
    If I install another java version, e. g. java 7, step "Start JVM" will exit with an error "-4" and error message "Could not launch JVM.". While Debugging source code of JavaCall.dll, I figured the failing code line out:
    "fpCreateJVM(&jvm,(void**)&env,&vm_args);" is the execution of function "JNI_CreateJavaVM" and returns error code -4.
    Till now I could not find out, why the jvm does not start. I guess -4 means "Insufficient memory to create the JVM." (http://zone.ni.com/reference/en-XX/help/370052J-01/tssuppref/infotopics/java_steps_errors/)
    Has anyone an advice for me?

    This post gave me a hint: http://stackoverflow.com/questions/3400292/jni-enomem-from-jni-createjavavm-when-calling-dll-that-us...
    Though my development computer has enough ram, jvm is started within the Teststand process which offers limited memory. I changed JavaCall.c and added parameter "-Xmx64m" to the jvm creation call. Now it works with jre 7.
    Because memory space Teststand offers to the jvm is different on different computers, an implementation would be nice that checks how much memory is available and then passes the calculated <MEM> as parameter "-Xmx<MEM>m". Here is an example implementation: https://forums.oracle.com/forums/thread.jspa?threadID=1546540

  • How to get the entry point in the ActiveX/COM adaptor

    below is the description of the Demo of using the ActiveX/COM to call new seq . 
    API Demo
    1. Manually add a Message Popup step to the MainSequence of a
    new sequence file. Save the sequence file as launch.seq.
    2. Create another sequence file and save the file as caller.seq.
    3. In the MainSequence of the caller.seq file, add Action steps
    using the ActiveX/COM Adapter to call into the TestStand API and
    launch the launch.seq file in a new execution.You might need the
    following two methods to complete this step.
    . Engine.GetSequenceFileEx
    . Engine.NewExecution
    so the question as follows:
    1.i call the method of get sequencefileEx
    2. call the method of getmodlesequenceFile
    3.call the method of evalEntryPointNameExpression
    4.call the method of NewExecution.
    but at the step of 3. i haven't get the entry point.
    so how to solve this issue? thanks
    Attachments:
    QQ图片20140115200924.jpg ‏58 KB
    QQ图片20140115201708.jpg ‏100 KB

    This is a duplicate post of this:
    http://forums.ni.com/t5/NI-TestStand/How-to-get-the-entry-point-in-the-ActiveX-COM-adaptor/m-p/27005...

  • Add-on step types for TestStand?

    I am almost certainly reinventing some wheels with Teststand by creating some basic test types.
    For example, I just wrote a custom step type for taking an analog measurement from a DAQmx instrument. Surely someone has done this before, and surely someone will want to do it again. There's nothing proprietary about code that simple, and I'd be happy to give it away if there was a place to post it.
    Two questions:
    1. Is there an open-source repository for sharing custom step types?
    2. Are there add-ons for purchase with canned step types beyond those which come with TestStand?
    -Arthur

    Hi Jigg, 
    I looked at Averna.com, and I don't see any add-ins available on their website. It looks like they offer services mostly. 
    It's a good point about TS projects being so varied and customized. However, if custom step types are well architected, as the built-in step types are, then they ought to be reusable by others. 
    You're right also that I can accomplish my DAQmx steps easily using an Action step with the LV adapter. My motivation for the custom step is to improve the interface for setting up such an action. In particular, when using an IO channel in TS, I have to manually type in a text string for the DeviceName value, whereas I'd like to choose from a list of global names (e.g. with the global channel list control in LV). I can get this affect by using an Enum in a wrapper VI, which maps to an array of channel constants; but this is fragile if the available channels are changed (e.g. added, removed or renamed in MAX).
    Additionally, a custom step type is better than a step template for my purposes, because I can propagate changes in the step type to instances of steps throughout the test. This is incredibly valuable to me during development and debugging. It saves me time when I want to update a step that I've used many times throughout a test sequence. Although TS isn't itself a programming language, I find that I expect it to share certain traits with programming languages to facilitate development, such as type abstractions and a strict enforcement of congruency between types and instances. But I digress....
    Thanks for your suggestions.

  • The custom step type

    How can I possibly do the custom step type with MS VB and after that to use this with ActiveX Automation Adapter?
    "Only a life lived in the service to others is worth living..." - Albert Einstein

    Hi,
    The process of generating custom steps is basically the same what every adapter you use. ( See user manual chapter 9)
    As an example I've taken the Computer Demo sequence found in the TestStand\Examples\ for VB and created a custom step for the Power On test.
    Attached is the an ini file called MyTest.ini. Places this in Teststand\cfg\TypePalettes folder.
    Then launch TestStand and you should find the new step in the palette.
    (This is for TestStand 2.0.1)
    Hope this get you started
    Regards
    Ray Farmer
    Regards
    Ray Farmer
    Attachments:
    MyTypes.ini ‏41 KB

Maybe you are looking for