Jump to content

Wire Warrior

Members
  • Posts

    226
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by Wire Warrior

  1. I sat for (and passed :cool:) my CLD recert back in March. The format is much like the CLAD exam but the questions can be quite broad. Some study is definitely in order if you haven't been LabVIEW programming lately. The best preparation you can do is to take the re-certification preparation exams. Those cover much of the material.

    Good luck!

    Jason

  2. You might try running the Desktop Execution Trace Toolkit (DETT) when testing your program. Even without the inclusion of user messages it can provide some insight to your issue. I have to agree with SuperS_5 it does sound like you have a memory or resource leak problem. Check to make sure every refnum you open you close. I would also make sure if you're doing any file access that you are not running into a problem with the hard disk slowing down the system and causing an issue that way. If you haven't done it you can bring up the task manager (assuming windows here) and then go to the processes tab to check the memory and CPU usages for your program. That could give a clue.

    Oh and one last thought.....is there a virus checker on the machine? We have had issues with that. If the virus checker runs a scan it can cause a resource starvation on your computer.

    Good luck,

    Jason

  3. On the controls palette under modern or class there is a sub palette called containers. In this palette are a number of different items in particular the tab control I was talking about. A tab control can hold other controls or indicators and can have multiple pages. Its a real good way to group controls in meaningful ways. If you bring up example finder (Help >> Find Examples...) and look in the Controlling Front Panel Objects Programmatically under the Building User Interfaces folder you will find the tab control properties example. This will give you an idea of what can be done with a tab.

    I suppose another way to approach your problem is to simple place a picture control behind all the controls and draw the boxes in that though you could see a performance hit doing that since it can cause a significant number of updates to the front panel redrawing everything whenever only one thing changes.

    Jason

  4. By the way, does anyone else feels its dumb that NI only offers CLD/CLA shirts in sizes up to XL? i feel cheated ... all that work, and all i get is a shirt i can't wear ....

    Congrats on passing! Here's one for you :beer_mug: and your co-worker :beer_mug:. Well I got a XXL CLD shirt recently.

    To get my shirt I simply contact Geoff Smith from the NI Certifications dept. and he helped me out.

    Matter of fact I wore for the first time just yesterday.

    Jason

  5. Yesterday day at work our software manager, a long time text based programmer, can into the office where we sat and declared, "You win. I admit it." We asked what he meant and he said that he just realized that he had programmed graphically in his text based language (FORTH).

    It seems that he was doing some coding for a piece of test code for an embedded system that would place 16 values on a bus and toggle a read/write line for each bus value. Desiring to keep the code as simple as possible, i.e. no loops, he simply coded it direcly like the pseudo-code below:

    Write value 1 to busToggle lineWrite value 2 to busToggle line....Write value 16 to busToggle line

    Since the toggling of the line was being control by direct setting of a registry bit, he realized that he could simply make a macro to lay down that code. Of course now he needed a name for the macro, and since FORTH would let him use any characters other than colon, period, space, & a couple of similar ones and he desired that it should be clear that the code was test only he chose to name it "_/~\_" for easy identification. (This is a square wave in ASCII) The compiler was of course happy with this since one binary pattern is as good as another to a computer. He continued along happy completing the inital version of his code then broke for lunch quite happy with himself for his creative naming.

    At this time I do have to say he has taken LabVIEW Basics I & II so that he can assist with code reviews but preferred text based programming over graphical. For time to time we (the LV programmers) and he/them (the text based programmers) have engaged in good natured ribbing for fun.

    Back to the story, after lunch our happy text based programmer sits down with his test code to continue development. Looking at his code he thinks to himself, "how clever I am to have used a picture of a square wave for my macro's name." It is at this point he realizes that he has started graphical programming just like LabVIEW. Seeing that he doesn't want to wait until WE realize this during a code review or debug session because that would give us too much fuel for the ribbing, he opts for the only honorable thing......."Admit that graphical programming wins."

    After having seen so many "LabVIEW Sucks" type of posts over the years, I just had to share this story.

    One interesting though we had in talking about this though.....to the computer using a series of bits read as text by humans to represent a "block of code" is no different than using a series of bits read as a picture by humans to represent a "block of code". The difference ultimately exists in the mind of the programmer not in the language/computer constructs.

    Jason

    • Like 1
  6. I have superimposed three gauges programatically by wiring three postion property nodes together. Upon clicking "run", they are misaligned. I can align them manually, save my work then try again, and they still misalign. I checked sizing with the "set height and width" control, and all three gauges are the same wth a reading of 300. Please help me overcome this one.

    Your problem comes in the programmatic positioning. If you delete the position updates and manually align your controls center points then run the VI it will work out as you desire. What causes this is that the control sizes are not matched. If you click on the individual controls and look at the outline of the select box you can see that you have 3 different sizes even though the properties gives the same size for all three. I suspect this has something to do with the way you customized the controls.

    You can also check out this community page for a similar example someone has made.

    Jason

  7. Must admit I I havn't had a lot of experience with DETT (labview tends to have very pungent code smells and my DETT tends to crash quite often yes.gif). But.....

    If you put them in conditional statements you can turn them on and off from a conditional define in the project. You can then build with or without just by changing a value and the compiler will take care of the rest.

    That's what I had in mind as the "take them out option".

    My thoughts for leaving them in are that a DETT trace could be initated without having to do a recompile.

    Jason

  8. Good catch, jgcode. Actually, these are new additions to our re-use library to answer an issue we've had on the MFG floor and these components will be included in all new apps and retro-fitted into some portion of existing apps. That's why I asked this question. Trying to identify the final version of these VI's. The company standard for DETT is a good point. On our development machines we have it installed but on the deployment machines we prefer not to have any development tools (as learned from painful lessons) and that means we would not take the step of installing DETT.

    Any other thoughts?

    jason

  9. I am in the process of debugging an issue that only shows up on a built application. Obviously the Desktop Execution Trace Toolkit is ideal for the job particularly after I sprinkle in some user defined messages. The question comes on the heels of my realizing that some of these messages needed to be placed in our re-use library VI's. For long term I can see where making these custom messages part of the re-use library could be useful should future issues arise but what is the unforeseen impact of leaving these messages in? Is there any worth worrying about?

    Jason

  10. Sounds like you might be better of to have Scan Validation step which determines whether or not the scanner data is worth putting on the stack in the first place. Just guessing from your stated direction i.e. the LIFO, are you getting multiple scans returned by the scanner and only the final one in the set is good?

    Jason

×
×
  • Create New...

Important Information

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