LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Class ID and Name Lists for LV 8.5


falkpl wrote:

why is this info so hard to get?  Why isnt there an enum provided with this info in it fro each version of labview?  I find it useful for generic operations on a referenced object.


I agree this would be a useful feature.  You should file a suggestion for it at the Product Suggestion Center.
 
-D
0 Kudos
Message 11 of 18
(1,605 Views)


Darren wrote:

The names of public VI Server classes should never change.


The problem here is with "should". I know of classes which did change their name, but those classes were private, so they don't hold up to your rule. I can't think off hand of any public ones which changed, but I can't discount the option either. 
 
The main question is whether it is guaranteed anywhere that they won't change. Along the same lines, is NI using the names or the IDs in its own code?

___________________
Try to take over the world!
Message 12 of 18
(1,603 Views)

tst wrote:

...is NI using the names or the IDs in its own code?

All of my shipping VI Server code (and believe me, there's a lot of it) uses Class Names.  I don't use Class IDs at all.  I've seen the code from some of my colleagues and they all use Class Names too.
 
-D
Message 13 of 18
(1,601 Views)
In case anyone is interested, here are the changes in class names that I noticed while comparing the Excel spreadsheet I linked to above with the classes in LV 8.2 (LV 6.0 name -> LV 8.2 name):

Variant -> LVVariant
GraphOrChart -> GraphChart
NumWithScale -> NumericWithScale
OldKnobScale -> ?
MCListbox -> MulticolumnListbox
MeasureData -> ?
BVTag -> ?
DAQName -> DAQmxName
VISAName -> VISAResourceName
IVIName -> IVILogicalName
TabArrayTabControl -> ?
ConPane -> Pane (?)

I also heartily second the wish for an enum containing all of the class names (or even better, a ring with class names and class IDs); I'll probably end up inputting it all manually, and if so I'll post the enum here.


Message Edited by peppergrower on 04-17-2008 01:39 PM
Message 14 of 18
(1,577 Views)

The Class Name property (which is the only way you can access the class names programmatically) was not made available until LabVIEW 6.1, so I'm guessing the 6.0 class names in that spreadsheet may be "approximate".  In LabVIEW 6.1, the class names for all the objects you listed, along with all other public VI Server object names, are exactly the same as they are in LabVIEW 8.5.

-D



Message Edited by Darren on 04-17-2008 01:53 PM
Message 15 of 18
(1,574 Views)
Ah, okay, that makes sense.  Good to know they haven't changed since they were first made available.
0 Kudos
Message 16 of 18
(1,567 Views)

 


Create a new VI and press Ctrl-Shift-B.  This brings up the Class Browser.  Make sure the "Object library" ring is set to "VI Server".  Now, if you click the "Class" ring, you'll see the names of every available VI Server class.

 

 

I've noticed that GenClassTagRef and SharedVariable (strict) are not listed in the Class Browser.  Are these not "classes"?

 

I was recently trying to convert a control reference to a more specific shared variable control reference.  Obtaining the "target class" constant for "To More Specific Class" took several steps, and I was wondering if there was a more straightforward way of obtaining the constant.

 

Please see attachments.

 

Thanks,

Jason


Certified LabVIEW Architect
TestScript: Free Python/LabVIEW Connector

One global to rule them all,
One double-click to find them,
One interface to bring them all
and in the panel bind them.
Download All
0 Kudos
Message 17 of 18
(1,363 Views)

Hi Jason,

 

There is no shorter known way of getting to a specific target class for a shared variable. Shared variable belongs to the control class but is behaves like a regular scoped variable.

 

Ipshita C.

National Instruments
Applications Engineer
0 Kudos
Message 18 of 18
(1,340 Views)