annulla
Visualizzazione dei risultati per 
Cerca invece 
Intendevi dire: 

Community Nugget 5-Mar-2007

Wow! TonP's code opens, if not a new world, at least a new country to me! I usually managed getting enum strings in a more dumb way.

I also use typedefs extensively during the earlier design stages. I often start creating my data structures just after having choosen the overall program architecture, before writing any other code! This step also helps me to focus what was left out in my analysis.

I would like to add a sub-nugget to Ben's very good work.
When treating cluster typedefs (one of the most common cases), using Unbundle by Name and Bundle by Name instead of normal Unbundle and Bundle nodes helps you to keep your code valid when you change the typedef (unless you are removing cluster members, of course). These nodes are resilient to many changes, like altering member names, numeric data representation, control reordering (this last may be needed  sometimes, mainly for Strictly Typed typedefs).
But don't rely too much on this feature! If you are making extensive changes to the data structures, LabView can be "confused" and scramble all Unbundle by Name and Bundle by Name nodes; for example, if you change member ordering AND member names at the same time, your nodes will be corrupted; I verified this up to version 8.0.1.
So the final word is: make changes in steps! in the example above, make sure that all vi's using the typedef are in memory, then change member ordering, then Apply Changes and save, then change member names, then Apply changes again.
I got this problem once when I "inherited" a set of typedefs that did not satisfy me for their unconsistent naming and order. It may become a nightmare if the application is very large and you don't have a recent backup.

Paolo
-------------------
LV 7.1, 2011, 2017, 2019, 2021
Messaggio 11 di 46
8.713Visualizzazioni

Nicely done, Ben.


@TonP wrote:
Using 1$s allows me to reuse the first input twice

Unfortunately, this only seems to work in recent versions. Smiley Triste


___________________
Try to take over the world!
Messaggio 12 di 46
8.716Visualizzazioni
Yes version 8.x if I recall correctly.

Ton
Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
Nederlandse LabVIEW user groep www.lvug.nl
My LabVIEW Ideas

LabVIEW, programming like it should be!
0 Kudos
Messaggio 13 di 46
8.713Visualizzazioni
I'd like to take this opportunity to agree wholeheartily with what Pincpanter wrote.

Defining the data before coding is something I also (try to) do, but this is something which can of course be done without Typedefs.  The real bonus of Typedefs comes when it's time to make those inevitable unplanned changes to the data structure.  Having already typedeffed (sp?) everything saves a WHOLE LOT of work.

Also the "automatic reassignment" of cluster names within an input and output bundle can be really annoying.  These are the kinds of bugs which can really hurt, taking ages to hunt down since the mistake is by no way apparent.  Is this still present in LV 8.20?

Shane.
Using LV 6.1 and 8.2.1 on W2k (SP4) and WXP (SP2)
Messaggio 14 di 46
8.699Visualizzazioni

Wow, so many good replies so little time.

Scott,

Thank you sharing the details of your fix. That is an elegant solution to having the best of both worlds.

Guenter, Pinc, and Shane,

I think you are telling me that you start to define you data structures before wiring! I was hoping that I was not alone in that step. It helps me define the functionality of my "fuzzy clouds" and how they interact. The dynamic update of type def's let's me move boyond that phase without having to worry about if I missed anything.

Ton,

Nice example of cross application type definitions! I find the customized icons allow my thoughts to focus on the work being done rather than "how is it being done".

 

Re: Type def update bug

LV had this problem prior to LV 7.1. I concidered it amoung the worst type of bug since it was "silent but deadly." I have not seen it since LV 7.1. If you have seen this issue since LV 7.1, PLEASE POSTY AN EXAMPLE so we can get this fixed.

Thank you all for bumping this Nugget up a notch with your replies!

Ben 

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Messaggio 15 di 46
8.688Visualizzazioni

Ben,

Thank you for a great nugget. I think I have climbed up a notch on the LV food chain with the knowledge that you have given.

 

Woderful post.




Joe.
"NOTHING IS EVER EASY"
Messaggio 16 di 46
8.660Visualizzazioni

Very well done Ben!

I will need to explore this very shortly with a new project!

Thanks,

RayR

Messaggio 17 di 46
8.621Visualizzazioni

Joe and Ray,

I look at is a "boot-straping" the LV community to a higher level.

Here is an example that clearly illustrates the benefits of wrapping the type def's in a sub-VI.

The type def that was wrapped up is nice and neat. Meanwhile the cluster constant I did not wrap-up EXPLODED!

Ben

Message Edited by Ben on 03-05-2007 10:25 AM

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Messaggio 18 di 46
8.608Visualizzazioni

Thanks Ben,

You gave me an ideas for my project.

RayR

Messaggio 19 di 46
8.593Visualizzazioni

Hi Ben,

Excellent post, Sir.

You re really not only the master of SD ( State Diagrams ), but TD ( Type Defs ) too.

Where is CC ?! Is he in hibernation ?! U Cute Cocoon, come out please... Smiley Strizza l'occhio

I'm thinking that U re in the pipeline for the next nugget.

Regards,

- Partha ( CLD until Oct 2027 🙂 )
Messaggio 20 di 46
8.485Visualizzazioni