Jump to content

Fab

Members
  • Posts

    193
  • Joined

  • Last visited

  • Days Won

    15

Posts posted by Fab

  1. Now that several months have gone by, how do you feel about Mercurial?

    I use Fogbugz too and I just went to their Fogbugz and Kiln world tour and the link between Fogbugz, Kiln and Mercurial seemed very promising. But since LabVIEW handles binary files I don't know how useful it is going to be.

    I have been using TortoiseSVN and I gave up long time ago on branches and merges. It was a nightmare, the Fogcreek guys made it sound like in Mercurial this was not an issue and they use TortoiseHg, which would make the transition easy. I will just need to remember that there is an extra layer involved and push/pull needs to be done besides the commit/update. They also mentioned a tool that converts a SVN repository into a Hg repository.

    Anyway, before going on this "adventure", I wanted to make sure I asked you guys how it has been working for you. Should I stay on SVN? or jump on Mercurial?

    Thanks,

    Fab

  2. Hi,

    I figured there would be more people using Execution Trace Toolkit in this group than in the general LabVIEW community forum in the dark side ph34r.gif.

    I have been using Desktop Execution Trace Toolkit 2009 to debug an application. We have been able to locate most of the reference leaks and fixed them. However, there is a reference leak that when I double click on the Execution Trace Toolkit line points to an Unbundle by name post-17236-047685100 1285008407_thumb.pn

    The other times I got a reference leak, it would point to a place where a reference would actually get created such as Obtain Queue, Obtain Semaphore, etc.

    Any idea why it is pointing to an Unbundle by name function?, also the event details are "VI: 0xD8300076", but I can not find that reference anywhere else in the trace report.

    Thanks,

    Fab

  3. This has to do with the way LV handles resource cleanup.

    When a hierarchy that a reference was created in goes idle (or out of memory), that reference is automatically destroyed.

    So, in your case, the top level VI in the hierarchy is the FGV. You run it, the subVI creates the reference, then the FGV goes idle, so the reference is destroyed. You run it again and call the second case, but by now the reference no longer points to an existing resource.

    In the second case it works because the FGV does not become idle.

    Yair,

    Thanks, that makes sense. Now I need to see why when called inside the big application the FGV goes out of memory.

    Fab

  4. This sounded exactly like the problem I am having, unfortunately the solution mentioned above does not help me, the semaphore is being initialized sad.gif

    While running "Desktop Execution Trace Toolkit" in the code I am debugging, I realized that the semaphores used inside a FGV were returning error 1 after trying to acquire a semaphore and error 1111 after trying to release it.

    I simplified the code to the bare bones to see if I could reproduce this problem.

    post-17236-083341400 1284485033_thumb.pn

    Here is the odd behavior:

    If I run the FGV with the single enum enabled and I run first "init" and then "acquire-release", I get "Error 1 occurred at Dequeue Element in Acquire Semaphore.vi"

    If I enable the other case in the disable structure (an array of init, acquire-release, destroy) and single step through the code with highlighted execution there are no errors.

    This might be basic knowledge regarding semaphores, but I don't understand why if the semaphore refnum is saved in the shift register, it is no longer valid the next time the VI is ran.

    Please help me understand if this is valid behavior.

    Thanks,

    Fab

  5. Norm,

    Thanks for sharing this, I like this template a lot. worshippy.gif For one thing, it does not have a broken arrow to begin with and you can run it (albeit it doesn't do anything particular) and exit gracefully. Also

    Why did you decide to run as a "wizard", was that to show a "working" example of the template? I like that it creates not only the template, but all the supporting files as well nicely packaged in a project. Are there any other reasons?

    Other than the dynamic event registration of the 'User Parameters', what do you see as not necessary?

    I believe you mentioned it during the presentation at NI Week, but I don't remember exactly, so, why do you use the dynamic event registration as opposed to adding event cases for all the individual user parameters?

    Please post your 'Why did you do that?' questions and I'll gladly inform and instruct why the design choices were made (including why did I use colors)

    So, why did you use colors? I like it, because it gives you a "map" of where you are at and ... well... it looks "pretty" rolleyes.gif

    Thanks again for sharing,

    Fab

  6. Dan,

    Fair question :-)

    After crashing and burning a few times, and floundering around trying to learn how to create typedefs and custom controls (having never used them or "needed" them before), I looked at the example to get my bearings. I closed it completely and then programmed from the Standard State Machine template. The wire labeling motif I stole directly from the example - again, I've not had wire labels before.

    I believe my pausing timer is a little more elegant than the provided example, but I would gladly take commentary about it.

    Really, this was my first concerted effort to use queues and state machines. The existing LV code in my lab has none of this "advanced" (read: basic, but difficult for a non-programmer to comprehend) architecture.

    While I know that there's no provided code ahead of time for the CLD, I felt for a first-time attempt it would be instructive for me to look at the example and attempt to rewrite it "in my own words" as it were. This is that attempt. I would appreciate some discussion of memory usage, documentation, style, etc.

    I'm trying my hand now at the Security System example without any provided code - my purpose for posting was to get some feedback as to the errors I'm making here so that I avoid repeating them.

    Thank you for your reply!

    -David

    David,

    I just took a quick look at your code, in general you have done a good job of documenting what your controls do in the front panel (opening context help shows what they are supposed to do).

    One thing I noticed is that you did not have error in / error out controls/indicators in your subVIs and that they were not connected to the connector terminals on the bottom. And I didn't see any error wires, you might want get in the habit of wiring those and having some sort of error handling.

    My advise would be to do the exams with a chronometer, and without looking at the solution ahead of time. See what you can do on the 4 hours time. Don't try to finish the entire thing and get it to work, 4 hours is not enough to have the entire application 100% perfect.

    Also, check the LabVIEW Artisan's blog, he has very good advice for the CLD: http://labviewartisan.blogspot.com/2009/01/labview-certification-preparing-for-cld.html

    Good luck!

    Fab

  7. Hey I am Really sorry for confusing you... I want to zoom the waveform in the graph........

    That is a lot easier, right click on the graph>>visible items>>Graph Palette

    Then just click on the magnifying glass button to select what type of zoom tool you want to use. To turn the zooming off, click on the button at the left of the magnifying glass.

    Fab

  8. Avinash,

    Here is an example that might help you, it provides an area on your GUI to enlarge the graph and you can select from different graphs:

    http://decibel.ni.co...t/docs/DOC-9501

    Fab

    Okay I knew I remembered seeing an example of this. If you look in the NI Developer Zone there is a LV7.1 example for how to do the very thing your asking about. Here is the link to the Example Program. I bet this will really go a long way to answering your questions.

    Jason

    Jason,

    That is an example for LabWindows CVI 7.1 oops.gif

  9. Cat,

    I really wanted to meet you. I kept asking all the girls if they were Cat, how could I miss you at the BBQ??? Also, too bad that you left earlier, I gave a ride to the "Chick Posse" after the BBQ... oh well, hopefully we will meet next NI Week.

    Fab

  10. Cat,

    I was wondering the same thing. Please, post back about your experience with Twitter... see if I finally join everyone else ;)... It has been hard enough for me to move from my "lurker" status to starting to finally post on LAVA.

    Fab

×
×
  • Create New...

Important Information

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