Jump to content

Ryan Podsim

Members
  • Posts

    94
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Ryan Podsim

  1. I think it comes down to a more fundamental reason... Money. Yes, NI hardware may cost more, but it works 99% of time. The low hardware cost solutions may look appealing, but how much developer time and debug time does it take to making it work? What does that time cost you? I'll admit if I was going to be shipping 1 million plus units, hardware cost would be a factor, but the test systems I design usually only number in the 10s so development time is the driving factor and the less time I spend 'making it work' the better.

  2. Thanks AQ, I'm not sure how I missed the "Static VI Reference". That is what I need for most of the VIs.

    Most of the VI's I want to launch are small sub-process or dialog type VI's to provide the user with inforation while the main app continues to function normally. In one case, I need to display a report/graph of the collected data the user can view, print, save... I had been calling the VI by path, but was having problems with the VI going missing(usually we forgot to "always include" the VI in the build spec) and figured there had to be a better/easier way.

    MikealH, Will that work with libraries also or just classes?

  3. I'll start with my intent. I would like to be able to launch a VI dynamically using some sort of explicit reference. I have included the Project and VI's I created in trying. I used a simple setup of trying to launch a VI that displayed a one button dialog.

    At first I thought "Use a Strict VI reference". That didn't work. :( (see Launch reference.vi) You can't explicitly link a VI to a Strict VI reference. OK - not perfect but surely there is a way.

    Seconded I thought "Lets have the VI I want to call give me it's path and launch it by opening a reference". That didn't work either. (see Launch non rentrant.vi) I get an error stating that "The VI is not in a state compatible with this operation." This is the point I don't get. I can call the VI directly (see Launch direct.vi) Why can't I launch it through the VI server?:frusty: I know its not actively running but the execution state is "Running" and I can neither Run or Abort the VI since its calling VI is running.

    I can launch the VI if it is set as rentrant. (see Launch rentrant.vi)

    The point of this exercise was to avoid the problems with path relations and app build issues with dynamic VI's not being included. I have a series of VI's that I would like to launch dynamically (eg. a calculator that can be launched via a menu option but not interfere with the main application). And no, creating a separate EXE for the dynamic VI's would not be acceptable. I will need to be able to deploy this is the run-time environment and possibly over multiple OS's.

    Any Ideas, directions, or solutions would appreciated.

    LAVAG Dynamic.zip

  4. Howdy,

    I am wondering if it is possible to replace the befault build pocedure with a custon build procedure. I would like to interject a VI that would run before the build application process that would check for some custom requirements before allowing the build. This would be for building an Application(exe). I know I can programaticaly build something using a build spec, but what I want to know is if I can override the right click on the build spec process from the project with my own process. If I could have the build process run a VI post build that would even be acceptable.

    Any help on this would be greatly appreciated.

    cross post: http://forums.ni.com...hread.id=473656

  5. I'm not sure I follow what you what to do. Do you want to execute your loop on the rising edge of the square wave? or have it execute as fast as possible when the square wave is high? I'm going to assume you intend to use the square wave as a clock signal, in which case I don't believe that is possible in the traditional sense. What you can do is poll the signal and check for a transition from low to high(false to true) and place your code in a case statement that only executes on that transition. An example of what I mean is below. If you want you code to execute as long as fast as possible when the signal is high simply wire the I/O directly to a case statement.

    post-16203-126412299052_thumb.png

  6. I was playing around with this idea, (since I've been thinking of trying the same thing) and came up with the following project. If you open the project the only VI scans the first open project(to work this needs to be the only open project) and shows all build specs and creates a build spec. It doesn't modify any of the settings but that should be easy once the spec is created.

    Sandbox Project.zip

  7. Howdy!

    I am currently working on a simple Debug message system project. Its 2 VI's, one is the console and other is a wrapper for a queue. The console waits for elements in the queue and displays them in the string control on the front panel; and the wrapper is just a VI that obtains, en-queues the message, and releases the queue reference.

    My question is I would like the string control to read top to bottom in the order the messages are received and programmaticly(sp) "scroll" to bottom when needed. What I can't find is a way to scroll. I can set if the vertical scroll bar is visible but can seem to find a way to change the scroll position.

    I know I could flip everything upside down and have the last message received be the top message, but what would be the fun in that. (It's be like giving up).

    Additionally, I would like to have the Send Debug Message.vi check if the Debug console is running and if not; run it. I can get a list of all VI's in memory but I'm not sure how to get a reference to a specific VI. (meaning I'm not sure how to get the full path of a VI in memory) I remember reading about someone having an Abort all Running VIs but can't find it. I would think that would have my answer.

    I have attached what I currently have.

    Thanks for your help

    Debug.zip

  8. I don't know how to make the needles do a circular motion, unless the controls on the front panel have a angle property to modify. But they don't.

    The needle part is actually fairly easy. Use a "Gauge" control and set all but the needle color to be Transparent.

    Here is an example I did up real quick.

    I used 3 gauges one for the minute hand, one for the hour hand and one for the numbers. Once running right the clock face and select Exit to stop.

    Ryan

    Clock.zip

×
×
  • Create New...

Important Information

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