-
Posts
94 -
Joined
-
Last visited
-
Days Won
4
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by Ryan Podsim
-
Writing from abroad?
Ryan Podsim replied to iyeager's topic in Remote Control, Monitoring and the Internet
As far as "is it possible?" Yes, it is possible. Think your biggest hurdle will probably be an IT issue. First you will need a computer to act as a server that can be "seen" by the Internet, so security will be a concern. Additionally the suitcase system will need access to internet(which you said it had), but there might be security concerns on your customer side, especially if you are using their network and connection. Outside of access, visibility and security; the internet is no different to a program then any in-office network. How much data are you talking about? A few bytes or a few megabytes every few minutes? If it's a few bytes then you might want to look at web services for the posting new data to the server. If it's more, then look at standard TCP/IP or NI-PSP for data transfer. Depending on the number of deployed systems you have, you might want to think about bandwidth requirements, how many simultaneous connections you want to handle, and how you will deploy the new system. -
Another option would be to use the Picture plot functions. That would enable to you as many graphs as you want. It would a little more complex on the coding side and you do loose the zoom and pan functionality on the built in graphs.
-
Increment once on boolean change
Ryan Podsim replied to eddiemerckx's topic in Application Design & Architecture
Sounds to me like you need to implement a SR(shift-register) in your while loop to hold the last value of the Boolean in question and do a comparison between the boolean in question it's previous value. Example -
How to execute a executable program from LabVIEW?
Ryan Podsim replied to Yanan's topic in Application Design & Architecture
Not sure what you're looking for, but the System Exec.vi is only way I know of to launch an EXE. Communicating with the EXE is a different matter and dependent on the EXE. There is no way I know of the embed and exe in a VI only call one. -
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.
-
Parallel loops with priorities
Ryan Podsim replied to mike5's topic in Application Design & Architecture
Why not place each parallel loop in separate subVIs and set the execution priority of the subVI? -
Even though I'm not a CLA( or CLD for that matter, atleast not yet), I would also be interested the presentations.
-
A quick search of ni.com will get you this.
-
Launching a Dynamic VI Staticly
Ryan Podsim replied to Ryan Podsim's topic in Application Design & Architecture
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? -
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? 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
-
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
-
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.
-
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
-
Debug Project (String scroll bar)
Ryan Podsim replied to Ryan Podsim's topic in Development Environment (IDE)
Thanks, I figured was a property node for setting the scroll position, I was simply looking in the wrong spot. I didn't realize that the Open VI Reference would except the VI's name. Guess it would help to read the help files sometimes. -
Programmatically create separate windows
Ryan Podsim replied to menghuihantang's topic in User Interface
I'm a bit curious. Why did you use the timeout event with a timeout of 10 ms timeout instead of the mouse move event? I'm merely curious. I want to learn from the masters. -
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
-
Programmatically create separate windows
Ryan Podsim replied to menghuihantang's topic in User Interface
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 -
How to improve performance with FPGA generate frequency.
Ryan Podsim replied to Thang Nguyen's topic in Hardware
The nested loop seems a bit unnecessary, but you're on the right track. Below is what I did. I don't have a counter that reads that low, accurately, but at 5kHz it right on the money. I did notice that it adds 2 counts, which gives you a correspondingly slower frequency. I'm sure that could be fixed. -
How to improve performance with FPGA generate frequency.
Ryan Podsim replied to Thang Nguyen's topic in Hardware
The first this I would do is replace the divide by 2 with a Right Shift, as a divide is a very expensive operation on an FPGA. The next thing I would do is calculate Cycle Period in Tick before sending to the FPGA, as this would increase your resolution. Though the frequency to are dealing with that doesn't seem like it would have much of an effect.