Jump to content

jgcode

LabVIEW Tools Network
  • Posts

    2,397
  • Joined

  • Last visited

  • Days Won

    66

Everything posted by jgcode

  1. That is weird! I am assuming it is an IP Board Bug? Does anyone know if this been reported?
  2. Here is a good article on implementing a QSM, it is from the Expression Flow website. I am not sure what version the example download is in, but you should be able to easily replicate it from the article.
  3. I personally don't think OGPB is that complicated. Plus, in most cases you will have to (currently) use it with VIPM to create your top level palette menu. I think more emphasis should be directed to the .vipc files too. These will become an important part of the project under SCC. Its like having all the benefits of not copying your reuse library dependencies to your project, but the piece of mind that you are
  4. jgcode

    Wowzers!

    Case 42 contains another Case structure with 128 cases.
  5. jgcode

    Wowzers!

    I am having flashbacks to Will Ferrell running naked down the street...
  6. jgcode

    Wowzers!

    Cool. For the UI, its the old... buttons in a cluster, convert the cluster to an array, then search the array for a true, add 1 (so not found = 0), convert to an enum, that is wired to a case structure so your cases are descriptive...
  7. jgcode

    Wowzers!

    Thank goodness for that I prefer using Search Array (for a TRUE), then that would fix the issue you raised about latched buttons.
  8. No probs. Well I think you have, as that topic is a fairly good summary of the advantages/disadvantages of using Sequence Structures. And I think you can bump heads on this all day/week/year with anyone. If you like using them, then by all means use them. Below is my take on the subject. The only thing that is guaranteed in software development is CHANGE. Whilst your saying it is "set in stone" - that may be the case today, but will it be so in a month/ in a year etc... I have found that you cannot always predict the future. Therefore, I prefer I more flexible approach Sequence Structure do not provide me with that. You should be able to do this with good documentation. Relying on a developer to "read you code" and to make that assumption, is probably not the best idea (and not the fastest/easiest way to come up with that conclusion) Also, if you have problems with people editing something accidentally these could be avoided using a Source Code Control system. Well that one comes down to good programming. If your sequence is 100 cases long and you need to stop mid way through, you can't. You are stuck having to run the other 50. That is inflexible to me. Whichever design you choose, if you do add in an abort feature/function, you should do so cleanly, and tidy up your references etc.. to avoid leaks. Not doing so would be lazy/bad programming. No by definition a sequence is a succession of something. Not being able to run the same frame twice is not good for flexible/reusable code. Yes, but in the argument of Flat vs Stacked Sequence Structures, Flat would allow more code to be viewable. I am glad they did this. Sequence Structures are bad
  9. jgcode

    Wowzers!

    Can you do this for an integer? I think the poor guy must have been adding them manually!! Nothing. Why do you ask? Faster than 50ms? I doubt it. But, yes missing states is a downfall of a polled interface. Regardless of the event structure (this code is currently 7.1, thats how I got it) - Legitimate? Not really, all cases other than (0, 1, 2, 4, 8, 16, 64, 128 etc...) should have fallen under the Default case to do: "Do Nothing". OMG! Look at that nesting! Good luck with this project Keep em coming!
  10. jgcode

    Wowzers!

    Refactoring someone else code the other day and found this little beauty I thought I would share. Now, building the buttons into a boolean array then converting to an integer is not such a bad thing (I can think of more elegant ways but I digress). What made me smile was that the developer created a case for every integer although only a few are possible (0,1,2,4,8,16,32,64,128). That is a lot of work!! As I wanted to add a 9th button I decided not to follow their lead and add in another 128 cases. I refactored instead. I have no problem making fun of someone else's code, as I know I have written bodgies before too and am happy to share those
  11. I am sure this has been debated many a time, here is one link to another discussion
  12. Nah, I didn't. I was playing with this last year, and haven't gone back to it due to the fact I have been working mostly in 7.x since the start of this year (I could be wrong - this is off the top of my head) I have seen the other one in LAVA (by Gavin B I think?) and it was good, I think it could create menu hierarchies (child, parent etc...) but it was static. I was trying a dynamic approach - i.e. you are coding, you add a data-member, smash the quick drop shortcut and voila! The palette would update with the new VI. One of the problems I encountered was that the .mnu file would get corrupt once in a blue moon for some reason. I tried to fix it (in my code notes it says I did a workaround). If it still happens I could get around this possibly by deleting then recreating the menu file each time, but I was trying to optimise it. It just uses a bit of scripting and the MNU API. I was planning on posting it to LAVA though (one day ) so it was in a good state - I just added the readme file today and reran the build script. When you load the examples make sure they are not read-only. (This is in the readme) If you (or anyone) could let me know what you think that would be great! library_palette_manager-1.0.1-1_LV2009.zip On the flip site, I do find it easier to navigate using the project/library/class layouts because I categorise the layout the way I want with virtual folders. You could mimic this with palettes but it may be a bit of work. Having to look at all VIs in a palette can be a bit harder!
  13. Can someone please clarify this (so I know what to right too!)? http://opensource.org/licenses/bsd-license.php
  14. You have to go old school using LabVIEW Real Time as well e.g. for a Remote Panel interface.
  15. Yep, I use the project in the same way and I run into the same problem. I use the OpenG tool - Locate In Project a lot. Normally it's for locating a class in the project i.e. if I have a method VI on the BD and I want to get to another method in that class quickly. I did a Quick Drop tool for auto creating class palettes, that was handy because the palette shows up e.g. if you right click a method on the BD. But I have not down a project specific one.
  16. Well when I started here, that what was done. Aside from the fact everything is together I can't think of any. Hence, my reason to question... is it 'bad practice' / is there a better way?
  17. Funny! Sorry I mean: I (currently) like having the archive (of builds) under the project folder along with the source code, documents etc. Your method is different, but I was asking if there are any cons of having it separated? But you went into more detail below. Ok, looks like your layout is similar, and we do, do System Integration (you pointed out that you don't). I keep the stuff you mention with the application code. Essentially anything that is required to create the installer (which is usually the final product). Because usually the (NI) installer needs to point to config files, icons etc... (sometimes user manuals if they are installed). Everything thing else sits a layer up and is project management stuff. This is unless a project (or release) is under our internal library - then the final product is a package (.ogp/.vip) and there is no project management. Me too. But I like to keep an archive of releases so I can get to them easily/quickly (or maybe I am lazy) Its great hearing what others do. Keep it up!
  18. Hi Felix How do you structure your folder hierarchy for your SCC'd documents in relation to your code? And where to your external documents sit as well?
  19. Cool, so you got no worries separating the archive from the code? I thought it would be nice to keep it all together in the one place per project. But the reason I ask about 'bad practice' is I can see some problems with it and was wondering if they is a better way! What I am looking at is to try clean out the code project line so it is just code and code documentation. So I could branch a whole project, and it would make sense. Because obviously I don't want to branch exes etc... (they are there to get backed-up and retrieve if needed) and I don't want to branch my project stuff (knowledge base, timesheets, project management files etc...)... but I like having revisions of it and (at the moment) I like it being with the project. So at the moment my folders for a project are like this: <Repository>\<Client>\<Project> - <main-dev> this is my code line <Repository>\<Client>\<Project> - <rev1.0> if I need to branch <Repository>\<Client>\<Project> - <project management> <Repository>\<Client>\<Project> - <knowledge base> <Repository>\<Client>\<Project> - <archive> deliverables (e.g. exe's) etc... ...So my next question is how to people manage their documents? Do you use the same SCM provider as that as your code? How do you store it (folder structure) etc... relative to your code I am not looking for examples on how a repositry is managed (by versions vs by project etc..) but more on what do you do with non-code files (documents etc...)
  20. Yes, the DSC allows programmatic access to shared variables, creating SV etc... LabVIEW 2009 has a Shared Variable API but it is no where near as powerful as the DSC nor can it do what you are asking.
  21. Cool - I did not know that. If we only have to merge once - should we choose the In or the Out (is there any benefit of one over the other)? And what about the case with multiple DVRs on a single IPE?
  22. Yes that is interesting! I have been talking about using Shared Reentrancy for my classes. What bothers we know is that my reuse library is in 8.2 so the only option is Preallocated Reentrancy (which I use). Would a better choice be None? Therefore some uses cases for Preallocated Reentrancy would be: Where state must be maintained for each instance When non-blocking calls are required and we require better determinism - e.g. on a RTOS Shared Reentrancy could increase jitter. Are there anymore?
  23. Do you other people archive their exes/packages in their SCM? I have read this can be deemed bad practice - you should only check in non-generated files.
  24. I am of the same school of thought as you, for my applications I do not include my dist (build) folder into SCC. However, I do have a zip (archive) folder where I will store deliverables that are milestones (released to the client). Usually this is a zip file containing files for a CD installable. For my reusable code I also do not include the dist folder, but I will checkin my .ogp and .vip packages in my zip folder if they are releases (not for internal testing). As for the project, I too, do not bother with the .lvlps and .aliases files as they seem to get regenerated on .lvproj launch just fine. I also do not include any test files that get generated during (manual) testing, although I am conscious that removing these from under my SCC tree would make it a little cleaner.
×
×
  • Create New...

Important Information

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