LabVIEW Development Best Practices Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

A Call for Better LabVIEW Design Patterns

David,

Quite possibly.  I will see what the response is tomorrow, and to what extent and in what format it is appropriate to share this.  (That might be worth some discussion.)

What I have implemented is a generic object-based asynchronous messaging system (probably an example is appropriate), and an object-oriented XML-based configuration file handler (where the high-level library would likely be of interest).  The latter uses the existing XML schema, which, while not ideal, suits our purposes since only LabVIEW applications handle the XML.  (Well, a user can edit it, too.)  [For the record, for a separate task we tried to implement our own XML parser for objects--or at least one to handle objects on top of JKI's Easy XML Toolkit VIs.  Unfortunately, a generic solution for objects is simply not possible with the current LabVIEW standard interface, so our solution is necessarily rather customized.  It works but I don't like it--definitely a workaround.  I'm hoping NI releases an improved XML schema--compatible with a popular schema used in other development environments--very soon!]

0 Kudos
Message 21 of 56
(2,539 Views)

I am also very interested to see your object-based asynchronous message system.  Are you still considering posting an example?

0 Kudos
Message 22 of 56
(2,539 Views)

I'm glad to hear you are interested!  I agreed to present at the next user group meeting, but that is in September.  I already outlined the talk, though (I know what I want to say), and it sounds like it would be beneficial to release at least part of this ahead of time, so I'll work on it--hopefully next week.  (I have to finish some conference papers this weekend.)

0 Kudos
Message 23 of 56
(2,539 Views)

RogerI wrote:

Why should we discourage reinvention and rework of existing patterns? For example, as we have seen, there are many different ways of doing reference based LV oop, good and bad. Let the coders decide what is a good realization of a pattern, and what is not?

In LV there is a gap between the fairly "low level" operations, such as handling arrays, strings, and the other extreme with magic express stuff. The one thing missing is the middle ground with flexible primitives that can be used for any pattern without being overly restrictive. Inherit or use the middle ground and create your own patterns or reimplement existing patterns. To do this, I miss is standard class library such as the one Java offers. E.g. java.io, java.sql, java.xml, etc.

/Roger


The lack of a mid-level api has been a long-standing frustration for me too.  There are a few of us over on Lava who are kicking off an open source project to bring some of this functionality to Labview.  You can read about it here.

0 Kudos
Message 24 of 56
(2,539 Views)

"This would have been fantastic to get natively in LV."

Might not be possible if they are under the GPL...

0 Kudos
Message 25 of 56
(2,539 Views)

Here you go:

http://decibel.ni.com/content/docs/DOC-11524

I'd be interested to hear thoughts and feedback.

Nate Moehring

SDG
0 Kudos
Message 26 of 56
(2,536 Views)

Thanks for the structured, detailed presentation.  Look forward to working through the material...


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.
0 Kudos
Message 27 of 56
(2,536 Views)

Hi Paul, just wanted to follow up with you and see if you had any more information on the object-based asynchronous message system.  If you do I would be very interested to learn about it!

0 Kudos
Message 28 of 56
(2,536 Views)

Hi, Jon!

I started writing something up three weeks ago.  I put a lot together (probably half) but I didn't finish.  The bad news was that I had to finish presentations for a technical conference the next week.  The corresponding good news is that those presentations included much of this material, so they will help me finish something for the audience here.  Anyway, I had a couple days vacation, too, but I caught up with life this past weekend so I will finish this material very soon.  It seems to be a good time to get this out since there is currently much discussion here and on LAVA on the same sort of architecture questions, and I think we have something that I think will be helpful to many.  (I think our solution is super clean, relatively quite simple, and understandable in multiple contexts.)  So 1) I haven't forgotten, 2) I will finish by Monday, if not sooner, and 3) thanks for pushing me!  Sorry I haven't finished this yet!

Paul

0 Kudos
Message 29 of 56
(2,536 Views)

That sounds great!  I will keep an eye out for it.  I appreciate you putting this together, it sounds very interesting!

0 Kudos
Message 30 of 56
(2,536 Views)