Jump to content

Feedback Requested: The LabVIEW Container Idea


Recommended Posts

Well.... here it goes. This is my first LAVA post and I'm pumped! Figured I'd start out by asking for ya'lls (yes I'm from Texas) opinion on a side project I've had in the works for a while. I've developed in LabVIEW for just about a decade, even before my career at NI, and I've run into cases where I wished the array shared some of the characteristics of the cluster and the cluster had some attributes of the array. For example, I wish I was able to name and index my array elements by name like you can with the cluster while also not having to hard code that name on the block diagram with something like an unbundle. Almost like a dynamic unbundle by name... or something like that.

 

So I've put together something I call the LabVIEW container that has the "dynamic-ness" of an array and the hierarchy mixed type named data "feel" of the cluster. It also behaves like a tree because of the "One parent - Many child" model. 

 

Here's a super short 5 minute video describing the concept and demonstrating a functional prototype. I've also created a community document that goes into much more detail and from which you can, if you so desire (  :yes: ), download the Container and give it a spin.

 

I'm still doing a TON of cleaning under the hood, and adding things like VI documentation at the moment, but I'd like to get ya'lls feedback on the usefulness of the idea and thoughts on the API.

 

This is something I'm really excited about and I hope that it benefits the LabVIEW community.

 

Thanks ya'll!!!!

 

Chris

Link to post
Share on other sites

I like it. There's so many ways you can combine clusters, arrays, classes, and variant hashes.. I can recall at some time or another storing all sorts of data including classes inside variants for name lookup, iterating over arrays of classes containing arrays of classes, making arrays of clusters of arrays, many clustosauruses,   etc etc etc etc. Having a generic solution is really useful and hopefully leads to cleaner / easier to interpret code.. What would be very useful too is a way to visit every element in the tree.  

Link to post
Share on other sites
 What would be very useful too is a way to visit every element in the tree.  

 

Hey MarcCG,

Thanks for the props! It's kinda funny. I've created some "hidden VIs" for my own purposes and one of them is to return an array of references to each node in the tree. In effect I flatten the hierarchy into an array so that you can touch every element. After install, the vi is located at

..vi.lib_ApplicationToolsContainersContainersContainerTestsTesting UtilitiesReturnEntireHierachyofContainers.vi

Have a look at JSON LabVIEW in the CR, as it is uses another container-like structure so might be similar (or not, as I haven’t looked at your code).  Is your Container by-ref or by-value?  Looks like by-ref as you have “Create”, “Destroy” and “Copy” methods.

 

Hey drjdpowell

The Containers are by-reference. I didn't want to create copies of Containers in the tree so I store references to children in parents.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By drjdpowell
      I am just starting on trying to be able to use Python code from a LabVIEW application (mostly for some image analysis stuff).  This is for a large project where some programmers are more comfortable developing in Python than LabVIEW.  I have not done any Python before, and their seem to be a bewildering array of options; many IDE's, Libraries, and Python-LabVIEW connectors.  
      So I was wondering if people who have been using Python with LabVIEW can give their experiences and describe what set of technologies they use.
    • By Yaw Mensah
      I have installed Labview 2020 on Dedian Buster using the rpm to deb conversion method via alien. Due to Architecture mismatch i deleted the *i386.rpm files before conversion.
      My Problem is that after creating a project at "Build Specification"-> "rigth click" i am only able to select "Source Distribution". Application does not show up as an option. 
      I will be grateful for any suggestions.
      Thank you in advance.
    • By javier_r
      VIPM.io now allows you to post LabVIEW Resources, Ideas, and Tools. For example, you could post a link to a video tutorial or blog article about a package. You can also post ideas, like feature requests or new tools. Best of all, package developers are notified when you post your ideas and resources, and you can comment and discuss posts with the community. Take a look at this video to learn more: https://www.vipm.io/posts/664960df-f111-4e13-989a-24be8207182d/

    • By Shuvankar Das
      I want to connect My ccd camera with labview. The details of my system is given bellow. I cannot connect it please help   OS:  WINDOWS 7, 64bit   LabView Run-Time 2013(64-bit) NI-IMAQ 4.8 NI-IMAQdx 4.3   Camera: QICAM Monochrome Cooled (QIC-F-M-12-C) Model QICAM Resolution 1392 x 1040 Sensor 1/2" Sony ICX205 progressive-scan interline CCD Pixel Size 4.65 x 4.65µm Cooling Type Peltier thermoelectric cooling to 25˚C below ambient Digital Output 12 bit Video Output FireWire (IEEE 1394b) Max. Frame Rate 10 fps full resolution @ 12 bits Pixel Scan 20, 10, 5, 2.5MHz Mount Type C-mount optical format  
       
    • By javier_r
      Hello everybody!
      Wondering how many people have tried the new vipm.io site. We have added a ton of features to make it easy to Discover LabVIEW Tools and there are some cool ones coming soon.
      Check it out and let me know what you think 😀
       
      Javier

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.