From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Accessing Properties/Methods of a Derived Class of the Object Reference

I am trying to access a proprietary DLL for controller memory access over CAN. Please see attached the VI that scans the network and lists the controller addresses.

 

 

In the picture below, inside the for loop, I am trying to access the methods in the JDMemAccessController Class which is a derived class from the JDController Class. So, I am trying to type cast the variant object I receive to a object of type JDMemAccessController (as mentioned in this Link)

 

Typecast.jpg

 

However, JDMemAccessController is a dependent object and not a creatable object (as specified in this link ). So, my automation refnum is pointing to the incorrect class. Therefore, I am not able to type cast it to the correct derived class as mentioned above.

 

In C#, the code for this looks as simple as this

Controller = Network.Controllers[index] as JDMemAccessController;

 

Has anyone encountered a similar problem or suggest a possible work-around?

 

Thanks,

0 Kudos
Message 1 of 2
(2,110 Views)

Hi Madan,

 

That is quite a doozy of an issue!

 

I think that the best way to do this, especially since you already know the C# code, would be to write a C# function to return a reference, instead of a variant.  Then you can compile this C# code into a dll and the call it from LabVIEW.

 

Have a great day,

 

Chris V

Applications Engineer
National Instruments
0 Kudos
Message 2 of 2
(2,089 Views)