Jump to content

Michael Aivaliotis

Administrators
  • Posts

    6,196
  • Joined

  • Last visited

  • Days Won

    104

Posts posted by Michael Aivaliotis

  1. I think it's probably because most people only use the event case for the UI (and generally wire -1 to it).

    I would think twice before generalizing like that. User events are at the top of my list and many others I've talked to, when it comes to inter-process communication. Also, using the timeout frame is a common use-case for reading other data that needs polling or other updates between events. In fact, at the CLA summit, there were many requests by other CLAs to extend the capabilities of the Event Structure even further, since handling user events is simply not enough.

    Even though, at the end of the day, I'd really like NI to find a solution to this problem which allows me to register for events all willy nilly-like and only selectively create cases to handle them - my gut tells me that, If I I don't need to react on an event then I shouldn't really be registering for it in the first place, should I. For now, I would chalk it up to: "Hey, I just learned something cool and I really should spread the word about this 'best practice' to my colleagues and warn them about it." Education is important.

    Maybe there should be an option to unset this should be available (like an "allow unhandled events to be registered" checkbox in the event dialog if the dynamic event handles are shown)

    I really like the option of having a right-click menu toggle in the future that would allow you to enforce that you must have a case for every registered event. The default behavior should be as it is now. This way, anyone relying on the old behavior doesn't get screwed during an upgrade. However, I would also like an options switch to allow setting the default mode for event structures. Similar to the auto-grow option. At least, this way there would be a documentation entry which the user can browse to find out more.

  2. Yes, you're very close. Basically my old data had a large array-like piece of data. Searching and sorting that data is slow, so I went ahead and built pre-sorted index arrays that ride along with the original data to enable binary searches etc. So now when I load the document, if the index arrays don't exist, they need to be built. In this case it's not so much a matter of fixing as creating if it doesn't exist.

    I dunno man. It sounds like you need a database instead of a file. Just load the data you need based on a query. But that's a whole other thread perhaps.

  3. Don't use any type definitions inside your class data.

    I'm not sure I'm following what your final implementation looks like. You're letting LabVIEW load the object with the binary read function and then fixing your index if it's bad? Is the index a scalar value that requires some logic to determine its value? I would probably use the class version number to determine what code to execute on the data to fix the index. At the end of the day, you still need to do some "fixing".

    When I've had to do this. I use a multi-stage sequential conversion routine. based on what version I'm reading. So if you have 3 versions of your file then you would do 1->2->3. Needing 2 conversion routines.

    I've stayed away from using the class versioning system for saving object data because I tend to use typedef clusters in my objects. Ya, I know, bad - bad Michael. I'm slowly trying to ween myself from this habit.

    • Like 1
  4. The book describes how I used to program like 10 years ago. I later migrated to OpenGoop, Very out of date. It's very light on the OO concepts as well. Native LVOOP is the only way to go moving forward and this book doesn't help you get there.

    Not saying you can't use the methods described, but why would you when there are better ways.

    As far as the printing, I was lucky to get the first one out in 2003. So quality was excellent.

  5. Not specifically from this board, necessarily, but I'm looking for ways to build my skills. I'm the only person who uses the language at my company and I get around well enough to run our test sector, but if I'm going to move up or on, I need to get better.

    Does NI sponsor user groups? Are there real-world LAVA lounges? Any pointers in the right direction are appreciated. Thanks.

    Where are you located?

  6. I've seen this delay before, but not LV2010. I've seen this in LV2009. It happened only in one project of mine. I tried several things to debug it and came to the conclusion that it was due to the complexity of the VIs and not the entire project. Editing some VIs was faster than others.

    Here's a video showing this:

    <object id="scPlayer" width="375" height="268" type="application/x-shockwave-flash" data="http://content.screencast.com/users/Michael_Aivaliotis/folders/Hidden/media/3ad6b147-09ef-4725-aaf6-610d3485d736/jingswfplayer.swf"> <param name="movie" value="http://content.screencast.com/users/Michael_Aivaliotis/folders/Hidden/media/3ad6b147-09ef-4725-aaf6-610d3485d736/jingswfplayer.swf"> <param name="quality" value="high"> <param name="bgcolor" value="#FFFFFF"> <param name="flashVars" value="thumb=http://content.screencast.com/users/Michael_Aivaliotis/folders/Hidden/media/3ad6b147-09ef-4725-aaf6-610d3485d736/FirstFrame.jpg&containerwidth=375&containerheight=268&content=http://content.screencast.com/users/Michael_Aivaliotis/folders/Hidden/media/3ad6b147-09ef-4725-aaf6-610d3485d736/00000023.swf&blurover=false"> <param name="allowFullScreen" value="true"> <param name="scale" value="showall"> <param name="allowScriptAccess" value="always"> <param name="base" value="http://content.screencast.com/users/Michael_Aivaliotis/folders/Hidden/media/3ad6b147-09ef-4725-aaf6-610d3485d736/"> Unable to display content. Adobe Flash is required. </object>

    I do use the SCC with LabVIEW (Visual Source Safe). What do I have to do, disable integrated SCC in LabVIEW? It seems that there are so many don't do this or don't do that (don't have the project open, don't use 32-bit PCs, don't use the Find feature, etc.) in order to have LV2010 work properly.

    Bruce

    I don't know what all you guys are talking about. All of this feels like superstition. Don't walk under a ladder or else you get bad luck. Gimme a break.

  7. In general I agree with you. However, LV disallows more than just editing when a vi is locked. I can't copy-and-paste code or controls from a locked vi to the vi I'm working on. I can't right-click >> Find All Instances of a locked vi. (That one really irritates me.) Personally I enable those options on my dev computers, but I think it's a tougher sell to make it a default setting.

    I agree with you too! Why can't we prevent editing (changing the code) but allow copying and find all instances etc?

  8. @Michael: Do you have a link to LAVA CR etiquite? My code is deep in development and has some horrific syntax and improperly named VIs and controls. Is "unreleasable" code ok to release to CR? :) I assume it is easy enough to "upRev" when available. Some have suggested I Blog about my Lunar Lander antics but I'm not sure it is blog worthy... maybe worthy of a thread here? dunno...

    I am interested in having my code critiqued but I'm afraid the easy ugly gets in the way.

    I just want to see it. You can just attach it to the current thread as a zip file. Whatever you have.

    Edit: I just moved this thread to a different subforum.

  9. Stupid question. Why does your plugin class have to be in a separate project? Your statement: "To make it easier for people to add their own functionality to the program without having to dig into the full project" is not clear to me.

    Which class is the reusable component? Classes are libraries and libraries are by design meant to be reused.

×
×
  • Create New...

Important Information

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