Jump to content

Michael Aivaliotis

Administrators
  • Posts

    6,217
  • Joined

  • Last visited

  • Days Won

    120

Posts posted by Michael Aivaliotis

  1. QUOTE (Mark Yedinak @ Apr 6 2009, 09:24 AM)
    ...After twenty plus years of software development there is one thing I have learned for sure and that it that virtually everything is subject to change at some point regardless of how much we believe it won't. I would rather prepare for the possibility of change rather than write that something that is rigid and very difficult to change.
    Amen Brother!

  2. I know in the recent versions of LabVIEW you can select a group of controls and edit properties on them. This is great.

    Even better would be to be able to:

    • Select a group of front panel controls (or blog diagram terminals).
    • Right-click on one of the group
    • Perform any of the actions on the create menu.
    • For example:
      Create Reference would create one reference for each selected control
      Create Property Visible would create one Visible property for each selected control

  3. QUOTE (Yair @ Mar 23 2009, 12:40 PM)

    Most people use LabVIEW professionally and in production environments. They rarely have the time, inclination or ability to dig up stuff like this.

    Personally, I feel it would be a huge waste of time for me to try to reverse engineer it (even if I did know something about the original format), as there is other stuff to do and this, while nice to have, is never something that I really needed.

    Talk about buzz kill!

    I love that this (supposedly 15 year old) is poking around. Hack away flarn2006! Let us know what you find.

  4. QUOTE (Jeffrey Habets @ Mar 21 2009, 03:28 AM)

    This is actually what I do in most all of my code.. All my parallel processes are implemented as active objects. The object takes care of allocating all necessary stuff before spawning the process and cleans up afterwards. Depending on the nature of the task of the process, I'll simply use an "Abort VI" to stop the process or a message with response notifier. For me, the usage for one over the other is about 50/50 I guess.

    Jeffrey, I also do this however I use dynamic events or queues to stop the process. Never abort.

    I don't like imposing rules on things like this because even though you can have general guidelines and best practices, it really depends on the specific application at hand, the corporate style guidelines and (at the end of the day), the comfort level of the programmer.

    So I'm not saying you should never use abort, but it needs to be designed-in and all editors of the code must understand the caveats of this method.

  5. QUOTE (Ale914 @ Mar 20 2009, 06:53 AM)
    If you have an SSH access to the server and your hosting provider premit you to install application, maybe you can
    Well, It's a dedicated server, so I can do whatever I want. The problem is Linux scares me. My fear is performing an installation that will somehow crash the server, which even a reboot can't fix. I can't afford to have the server go down because you guys will start yelling at me.

  6. QUOTE (Aristos Queue @ Mar 20 2009, 06:57 AM)

    I'm still not saying this method is good or bad; I'm just walking through arguments to see if this path works. It seems like a more effective way to stop a process than having to code boolean checks all over your code, especially when LV has such nice hooks right in the assembly code at the end of each clump of nodes to detect abort.

    You might have some point here but understand that you are arguing against an ingrained and taught (even by NI) philosophy that says you should never abort a VI (or use ctrl+period). Using abort has very limited uses. I can see it used if you are absolutely sure that it won't cause problems or if you've designed it in to be aborted from the start.

  7. QUOTE (SULLutions @ Mar 20 2009, 03:23 AM)

    ...and I also own Conway and Watts "A Software Engineering Approach to LabVIEW". I found the book to be much more helpful in easing me into the OOP world. It doesn't get you all the way there, but it does show you why you should explore OOP and teaches you how small modifications to your current coding practices can give you many of the advantages of OOP.

    I also unfortunately own this book. The words "Software Engineering" threw me off. The main useful sections are the ones describing how to create and use functional globals. There is an introduction to OO concepts but it's very weak. If you're a total novice then this book will help a bit, but don't count on it changing your life. The book had a very short lifespan when it was first released. It was relavent at the time but is way out of date and boring now.

    Is there an LVOOP book out? Is anyone writing one? I'd buy that!

  8. I took an object oriented analysis class many years ago (before lvoop was released) and after I finished it I got a much better understanding of OOP. There is no coding at the analysis stage. I actually had a lot of fun. Honestly, I don't know how anyone can program OOP without a better understanding of analysis. Just my 2 cents. :2cents:

  9. QUOTE (gmart @ Mar 18 2009, 03:13 PM)
    A clarification. A project ,by itself, does not load VIs into memory when it is loaded. It is able to determine what dependencies are needed/used without loading VIs into memory. The project does load project items such as libraries or classes which may load VIs.
    This is important to note. Thank you gmart for reminding everyone. If some of you see the "loading VIs" dialog popup when you are opening a project, this is because you either use LV classes or lvlibs. Only VIs called by the classes or contained in the lvlibs are loaded into memory, other VIs are not. Watch out for this.

  10. QUOTE (Aristos Queue @ Mar 18 2009, 03:07 PM)
    Is that more or less dirty? Can it be made acceptable somehow?
    It depends. Can the VI that is being aborted tell if it is? If so then it can exit gracefully. Otherwise, it's a no-no in my books. I would only abort a VI if it's a runaway process, a very very simple VI or I've exhausted all other forms of communication. Like a divorce is to marriage.

  11. I also use a similar stop functional global concept to trap aborts from parallel processes. Mine also has a reset input so you can clear the abort after you've acted upon it.

    I'd like to address the use of cases to "case-out" code after an abort. Depending on the granularity of your state machine, you may be able to get away with handling the abort up front and avoiding the need to place the abort checking too deeply in your code. here's how I handle it using the JKI state machine.

    post-2-1237413680.png?width=400

    I try to avoid putting looping code inside subVIs where I have to later abort them. Instead I use the natural looping of the state machine to repeat test tasks.

×
×
  • Create New...

Important Information

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