Jump to content

Black Pearl

Members
  • Posts

    410
  • Joined

  • Last visited

  • Days Won

    13

Posts posted by Black Pearl

  1. QUOTE (ASTDan @ May 21 2009, 02:29 PM)

    I would like your thoughts on the creating the custom Error text file. NI seems to promote that in the Intermediate classes. When I create custom Errors I just use a state machine in my Error handling routine. I tried using the file but I didn't like switching back and forth. I prefer to see them in my block diagram. I would be curious on what you think on using a text file to create you custom errors

    I use the <err> and <append> tags. This also avoids collisions with other errors I might define with the same code. (I have made two VIs: Overwrite error and Add Details to Error).

    Moving the custom error messages around from project to project was to much hassle.

    Felix

  2. QUOTE (Cat @ May 21 2009, 02:16 PM)

    I should look into that. The problem is (I assume) I'd have to redo it every time I move or upgrade LV. But, since I already have to mess around with the menu configuration every time I upgrade or install on a new computer (no 3-D controls for me! They were cute looking for about a week) I could deal with it all at the same time.

    I haven't looked into that, but it might be as easy as replace the mnu files each time. The VIPM should be able to do this. But you could also code that process with LV on your own. This is actually pretty advisable, because it documents all the steps to do.

    Felix

  3. QUOTE (gleichman @ May 21 2009, 03:27 AM)

    I agree that usability is a key. I'd sure like to know who at NI thought it was a grand idea to share error 7 between File I/O and GPIB. "Why does my system have a GPIB error? ... Because your configuration is pointing to a file that doesn't exist." I have NEVER in 16 years had a user tell me that there was a File I/O error when an error 7 occured.

    This is a historical flaw, I don't remember why that happend. They had no central repositiory for the error these times, maybe. But yes, every user is reporting you a GPIB error and never ever a file error.

    Felix

  4. I would like to see an error handling for multiloop architectures with a dedicated error handling loop. The overall idea is presented in the 'LabVIEW Style book' by P. Blume. But there are no details on the error handling specifically.

    One really important thing is how to report errors to users. Using the normal error dialog works nice for me, but users click it away most of the time and then give me a call 'your software is not working'. This is more about psychology than SE.

    Felix

  5. My planning before the posts about of NDA and such stuff was joking around:

    That's the newly recruited service staff of NI, which are here to get the answers they should give on the offical forum... (o.k., they arn't that bad, but sometimes...)

    Felix

  6. Actually, it is the default selector value (I just recently made this account). Furthermore, it is fun to assign oneself a Version that does not officially exist.

    Felix

    Edit: It make sense to have it listed, as those persons woul be able to read 8.6 code, though they propably need to post in the version they have as non-beta license. So you could spare yourself a downgrade to something like 7.1 (I heared that downgrading is easily possible inside the 8.x familiy.

  7. QUOTE (jgcode @ May 13 2009, 08:10 AM)

    Dude I don't even think its out yet.

    Major release are done at NI WEEK.

    This is a major release.

    The only place I have seen its name is on Darren's Blog.

    Unless I, like you, have been left behind!! :o

    People were invited to apply for the beta testing on NI forum.

    Felix

  8. QUOTE (Darren @ May 11 2009, 09:41 PM)

    I don't consider it a blind spot. My http://forums.ni.com/ni/board/message?board.id=170&thread.id=380412' target="_blank">favorite feature of LabVIEW 8.5 was the For Loop with Break. I've probably used it hundreds, if not thousands, of times in code I've written in the past 2 years. And the few times I've needed the index of the For Loop when it stopped, I just used the iteration count within the loop. If I ever needed to know how many times the loop ran, I would just drop an increment in the loop and wire it to the iteration count. I never would have considered it a shortcoming of the For Loop that I had to do this.

    -D

    Ah, yes, that works perfectly. 0 iterations, defaults to 0. 1 iteration is 0+1=1.

    Felix

  9. Just to add, in 7.1 we have external nodes, not XNodes. External nodes are said to be even more problematic than XNodes and will not be supported by some version of LV (I don't know if it is already discontinued or when it might happen). This prevented me from looking deeper into that issue, as I have some ideas to use them. But having 'rusty nails' code that breaks and no one except you has any clue on how this was done, I think of it as a really bad idea.

    On the other hand, in the informal documentation on external Nodes, there is a merge error VI, with the same behaviour as the build array function. So if you really, really want to do it, this way already was gone once...

    But again, be warned to explore those fields. You'll be a lone wolf on death march and no one will come to rescue you if you're lost in the mystical woods of intangible wires.

    Felix

  10. QUOTE (Justin Goeres @ May 8 2009, 02:40 PM)

    I agree that it's sort of counterintuitive at first, but what would you expect the result to be instead? Even though the For Loop executes zero times, there has to be a data value on the I wire coming out -- that's the nature of dataflow. In this case, what's happening is that wire is taking the default value of its datatype (I32), and that value is 0.

    Not correct, as the 0 isn't coming out of the I when the loop executes 0 times, the tunnel is giving the default value of 0, which is the same as the I terminal output on first execution.

    My only 'wish' would be, that executing a loop 0 times would resulat in a different value as executiong it 1 time (be it -1 as default value or start counting at 1). But I'm sure it won't be implemented, as it would certainly break a lot of existing code.

    To push that point a bit further, I think that for loops of iteration 0 are potential troublemakers. If you don't use a shift register, you might end up with default data instead of the real data (happend once to me with a reference). It is neigther issueing a broken error nor throwing an error 'by wire', and can't be figured out after the loop has executed (actually not executed).

    Another thing is, that the while loop isn't called 'repeat until' loop. In the text based languages I know, the difference is that the stop condition is evaluated before (unlike in LV) loop execution on a while statement. You can't run into that issue in LV-while loops (repeat until statements).

    To summarize: you will seldom step on that trap so don't learn it by painful experience and difficutl to debug (and we all fear race conditions, don't we, and that's just because they are difficult to debug, ever had a 'Heisenbug'?).

    One way to avoid that issue would be to have a required error in/out terminal on the for loops (with shift register behaviour) and an optional terminal 'allowed to execute 0 times'. But that would make such a basic concept a bit too feature-rich for standard users.

    Felix

  11. QUOTE (jdunham @ May 7 2009, 08:19 AM)

    You may be right that you don't need to build your labview nightly, since it compiles all the time. But the underlying tenet is that you try to make sure your code (at least the trunk version) is nearly always in a state where it could be released, perhaps with many features missing, rather than getting into a pit where it is broken for weeks at a time. On our project we build an EXE, so we do have a nightly process to build it if there have been any SVN checkins. Ideally you will have automated tests running against the nightly version while you sleep. (Still working on that!)

    Can you hint me how to automate these nightly builds (and tests).

    And furthermore, isn't that an option to just buy one single license ($$) of the application builder for the whole team, as only the developer 'responsible' for the nightly builds will need to install it?

    @Joe Z: I'm mainly searching for software/tools, as we are settings up a network based development enviornment. Later on it will be moved in the grip of the IT-gods. But for now we are free to experiment around and and choose the software.

    The books are meant to get some ideas of what we might need and for what purposes we could use the tools.

    And I found a nice new wave for surfing the web, as book sometimes link to blogs covering similar topics...

    Felix

  12. Thanks for all that info so far, feel free to add more...

    One question:

    QUOTE (Dan DeFriese @ May 7 2009, 03:08 PM)

    Though, I assume you meant requirements specification. Nobody, will ever hand you a complete set of requirements. You'll have to dig for them...then YOU put them in writing and review with the customer. Yes, things will change...but any changes after the initial commitment should be tracked using a defect tracking tool:

    Do I read correctly between the lines, that these tracking tools go further than just bug fixing?

    Felix

  13. QUOTE (PaulG. @ May 6 2009, 09:19 PM)

    The VI Analyzer? I don't know about that but I don't know how you can be invisible to the View>VI Hierarchy window.

    I havn't tested, but if you can mimik the VI that passes all VI references (by loading a vi with the same name in the same context/namespace before the user launches the analyzer), and then you can filter. Just name the original file something else, and you don't loose the original functionality. Including it in your distribution will be illagal, but you can load a copy into memory, rename it, and discard it when done.

    As said, I can't promis that it works. I hav tried (unsucessfully) to hack the 'New...' dialog to get access to control templates (*.ctt) there, but they used a reference to a tree control (only way to deal with trees, so no intention I guess), otherwise I would just have renamed the original Vi and addded the ctt.*'s to the dialog.

    Felix

  14. Ok, now it's more going to be fun in hacking than real work (*).

    Some more specs on that point:

    - No SubVis, because it is the absolute easy hacker's trick to exploit the SubVi boundary in pre LV8 code. The Inlining VI (with some messing up and removing documentation) is already done, but not polished yet.

    - I want to inform the (informed) developer (via placed icon) that security Vi is in place.

    Furthermore, I'm pretty sure I can even fool VI analyzer, just by using the boundary trick and loading a Filter VI of the same name in the Analyzer context, that just skips the VI where that code resides.

    * So why I would say it's more on the fun side now, is that the skills you need to hack that would easily allow you to write the code on your own in less time.

    Felix

  15. QUOTE (i2dx @ Oct 1 2006, 09:26 AM)

    I don't use gmail, too - just because of the reason that I'm paranoid and do not want my personal information stored on the servers of a company which is famous for collecting information and make them availiable for everyone!?

    or FreeBSD on a PDA :)

    Nested Virtual machines on a computer cluster. So you have a dedicated sandbox for each beta testing software... Of course you should back up the feed by some SCC repository running as beta on a VM ...

    Ok, we are nerds, aren't we?

    I actually never tried LAVA with scotch and cigar, I prefer wine or beer and electronic beats... (Would be a nice poll to go for: whoch drinks do you like to be served with lava: Coffee/caffeine, Scotch/Alcohol, LAVA is addictive enough).

    Felix

  16. Here the idea:

    Code is placed inside structure (sequence or other); auto grow of; sized to Icon size

    VI is placed on top of structure to hide the code

    Both are grouped or locked, so moving the Vi don't reveal the code below.

    Problem 1:

    I can't size any structure small enough to fit behind a standard icon. Not even with private properties.

    Workaround: Place it behind an express VI (ha, finally found out what they are good for!).

    Problem 2:

    I can't lock or group the elements. A private property (write only) exists, though.

    I don't want to dig into (use) external nodes (I use LV 7!), because of upward compatibility issues. But they hide behind icons (though unlocking with the ini keys shows larger sequences). Even more, they are protected from resizing and grouped with the loop (using private properties I see the timed loop having to structures beside, can't resize these with private properties though).

    Any ideas?

    Felix

  17. Thanks, keep the posts comin'. I'm still missing the big guys....

    As a general note: we as developers are pretty much free to go with any method we like, so to say I don't need a book to convince management to any method. But on the other hand, this means we software engineers will have to negotiate a 'common practice' among ourselfes. Always implying that someone isn't ok with it and any method will not be followed literally/in detail (one of the reasons to go with agile instead of formal methods).

    So I really need a book that is written for engineers that do a lot of LV programming (and maybe never have heard of OOP!).

    Any of us is in charge of some projects and pulling others in on demand for support, and the unifying conceopt is best described by 'autonomy'.

    Books in general: Give some more review please. It is a good starting point to look for readers reviews and the authors blog, but I would like a LV'er statement on the books (otherwise I could just hit a amazon search, and other forum users will benefit as well...).

    @Several Posters: OpenG and SVN rocks!

    @Chris Davis: VIPM: Community or Pro? If Pro isn't an option, can we go with SVN for that?

    @Paul: Enterprise Architect looks good. Any experience to share about uml and LV (propably we'd go for a new thread for this, but I'm eager on that one)? I'll sign up for a trial as time will permit.

    To go further: After some reading, I see that there are several ways to 'do agile developement'. Can you share any experience of which concepts work well with LV and which don't? (so I don't see any reason to do 'nightly builts').

    Felix

  18. I'm looking into some general aspects of software developement 'best practices'. So I would like to get some recommendations on books covering that topic which are useful for LV developers. We are already 'fluent' in LV, so we don't need (or have already) books on LV. But having pictures/drawings would be gentle for our minds and having cryptic C# class hierarchies would bore us to death.

    We don't have any formal method yet for our design process. A good overview of concepts would be nice to have to narrow down the choices. But also I will go a bit more into detail, so you could hopefully hint us on a set of methods to look at.

    We are the software guys in a scientific environment. So it is all a bit chaotic with ever changing requirenments. And we never ever get any specs on how to design our software. This leads to feature creep/scope creep both by internal featureitis and customers new ideas (they are scientists!). The later we are on schedule, to longer the list of features to implement.

    I feel that we can't escape that scenario, so we need to go for some 'agile software developement' (what are similar concepts that might fit?). It is obvious that we need to educate us as well as the customer on that design process to get things done faster (which might be the main obstacle for too formal methods). But we also want to keep the line that we design/own the software and they don't.

    Another issue might be our internal developements of reusable VIs/libraries. In that case it's all software guys that want to get things done, with at least some idea of what we want to have. Propably we could use a more formal approach there.

    Apart from books, having software tools to help us in the design process/project management would be an issue, preferrable open source/free of charge (we use SVN already).

    Felix

  19. Cross-post from http://forums.ni.com/ni/board/message?boar...hread.id=405018

    resonance wasn't to greate there.

    I'm planning an application with a plugin architecture, that will look up a directory during runtime for available plugins. I know I could do it using .llb Top-Level VIs. But I would prefere to have the plugins 'compiled', so as exe or dll. Is that a straight foreward build of those plugins or do we need to take care of some things? And how about compatibility when we use plugins of a newer LabVIEW version?

    Felix

×
×
  • Create New...

Important Information

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