Jump to content

shansen1

Members
  • Posts

    2
  • Joined

  • Last visited

Everything posted by shansen1

  1. Interesting. I hadn't considered using messages only because I am typically sharing arrays of numeric data. I'm assuming you aren't passing around arrays of data via messages, so how is that particular case handled? How big does the message data have to get before it starts significantly impacting performance? (i.e., if I pass a cluster of N elements as message data, how big does N have to get before seeing performance hits in a typical application)? That is interesting, especially because it seems that it would make debugging easier (deadlock time can be monitored by looking at the queue size). Hmmm, I can't think of a single case where I didn't want to share data!
  2. Hello all! I am new to LAVA, but I have been lurking for many years and have gotten a lot of great advice and insight into LabVIEW programming here. I recently got my CLD, and I'm trying to get a better handle on doing things the Right way. One issue I run into regularly is how to deal with class private data. I typically use device classes, where each class represents a different embedded device that my application communicates with. One main loop is used to send/receive data from each device, and then other loops handle the UI updates, background calculations, etc. I think that is all pretty standard. Due to the by-value nature of wires, I cannot create a device class and pass it to several loops without forking the device private data. When the main update loop updates the class's private data, all other loops do not see this change due to the class having been forked. So what I've ended up doing is putting DVR references in each class's private data, and then the get/set accessor VIs use an IPE structure to access the data via the DVR ref. This all works pretty well, but on many forums (especially NI forums) I see seasoned LV programmers saying that DVRs + IPE should almost never be used. I've considered using FGVs instead of the DVR, but that seems similar in that the data would be stored in the FGV instead of the class's private data DVR, so what is the difference? I feel like I must be missing something here. It seems that class private data should be a DVR by default, otherwise what is the point if the class wire is forked? How do you guys deal with this issue?
×
×
  • Create New...

Important Information

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