-
Posts
6,203 -
Joined
-
Last visited
-
Days Won
111
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by Michael Aivaliotis
-
Labview 3.0 -> Labview 7.0 - what are the benefits
Michael Aivaliotis replied to JayParnell's topic in LabVIEW General
The key point here is the question by your customer "how much more efficient will the software development be". This is really a moot point since LV version 3.0 is not supported anymore. It's just like saying how much more efficient is it to work with WinXP vs. Windows 3.11? Can you quantify that? It's unfortunate that you cornered yourself like this. Does the customer really have a choice in using LV3.0? Not really, you need to explain this to them. I assume they are trying to reduce the cost of integration by pointing out that you will be able to develop the project faster and cheaper in LV7.0. LabVIEW is still LabVIEW. You still use wires to connect objects and you still have a front panel and a diagram. On the other hand, NI has introduced several wizards that allow you to acquire and view data using only 3 nodes. In essence, you can develop a system in 5 minutes!... Or can you? I'm not sure what you are developing and how the new LV7 features will benefit your development. You need to discuss this with your internal engineers and decide how much of a savings you really have. Assuming you are a systems integrator, you probably have a library of code to dip into or old projects to recompile. This is where your real savings are, in code reuse. -
horizontal version of codeless radio button
Michael Aivaliotis replied to donroth's topic in User Interface
I just thought I would make this post complete by submitting the vertical version of the codeless radio button. Just in case people don't have it... Download File:post-10-1073107221.ctl -
I'm sorry no-one else responded in a reasonable time but I'll try to close this one off for others that might be in the same predicament. Basically you need to use a shift register. You can right-click on the borders of FOR and While loops to create shift registers. The shift register is a powerful tool and it allows you to carry the data from previous iterations into the present one. So, in your case, you would average the new data (add then devide by 2) with the previous data then pass it along back on the shift register. This can be repeated for as many iterations as you wish. On the outside of your loop you can place the saving of your data. At that point you would have an average of all the dat collected from previous loop iterations. This would be carried on the shift register.
-
I agree with Jack that the picture control will do it, however (be warned) it's NOT a walk in the park. If you don't mind using ActiveX controls you can probably find one that will do what you want. Do a search for "activex controls" on the web and you will uncover a goldmine of stuff. Some of what you find are products you have to buy but they probably have free timed versions. Other items are free... One link I found is this: http://www.programmersheaven.com/zone15/ca...at228/index.htm If you need any help with ActiveX, let me know.
-
I have consulted with some people from National Instruments during NIWEEK 2003 and it may be possible to borrow their webcasting capabilities to assist the LAVA user groups in performing LIVE webcasts of meetings. However, if this is not possible we will forge ahead on our own and figure out a solution.
-
MS Visual SourceSafe Bug
Michael Aivaliotis replied to Michael Aivaliotis's topic in Source Code Control
It appears to be a known issue. I just got this from Info-Labview: -
MS Visual SourceSafe Bug
Michael Aivaliotis replied to Michael Aivaliotis's topic in Source Code Control
Thanks Jim. I guess I should move this to the buglist. -
Using unnamed strict-typedef clusters.
Michael Aivaliotis replied to Michael Aivaliotis's topic in LabVIEW Bugs
This issue has been confirmed by NI. So I guess the solution is to always name your clusters in your strict-type defs. -
Has anyone gotten LV7 to work successfully with Microsoft Visual SourceSafe? It appears that this version of LV has problems integrating with it. I have sent a support request to NI. I can reproduce this on three different computers. Anyone else out there? I keep getting an error message that says: "Microsoft Visual Studio is not installed". However it is definitly installed...
-
There is a new feature in lv7 that auto-relinks the item names in the bundle by name node if you rename the objects in the cluster. I wonder if this is the culprit. In any case this is what happens. You can create a strict-typedef cluster and leave it unnamed. This is fine because you can assign a name to it when you actually use it. In my case, I use typedef clusters inside other typedef clusters. When I place it, I label it. The fun starts when you decide to disconnect the typedef cluster. When this happens, LV tries to use the original name given in the typedef. Of course since this does not exist, it shows up as a blank entry in the bundle by name. If you try to relink it, you can't, because empty names simply don't exist in the pull-down list. Now why would you want to disconnect the typdef, you ask? Well, you may not want to but the application builder shure as hell wants to! it breaks all the links to the typdefs and uses plain controls. Once it tries to do this it finds a whole bunch of bundle (and unbundle) by name nodes that it can't resolve. I've attached an image of the solution that uses a plain bundle. Also and image of what happens when you disconnect a typedefed object. I've also attached a toplevel.vi that you can try to build into an application. If you open the built app, you will se that the vi is broken. Download File:post-16-1073112613.zip
-
Just want to let everyone know that now we can have ctrl+click in listboxes... just like everyone else. No more shift+click to select multiple items! Ya!
-
Panel resize event - can I filter events?
Michael Aivaliotis replied to Michael Aivaliotis's topic in User Interface
A bit of head scratching and some head banging later, I figured it out. The solution is quite simple actually. Lucky for us, the last event which occures after you the mouse is up, is registered and shows as being equal to previous. This will do exactly what I want. Some extra checking is required to trap maximize and restore sizes, but overall is a robust solution. -
I love the panel resize event, however what happens if you have a slow routine that runs in response to this event? Every single pixel increment of the panel resize fires an event. Is there a way to filter out and ignore all the intermeadiate panel sizes and only acknowledge the last panel size?
-
With all this talk lately of subpanels and how they compare to "true" child windows, I decided to see if i could create this same effect with the new sub-panels in LV7. In the LabVIEW examples, there is a VI that shows how you can dynamically register events and click+drag a front panel object. Using this same approach, I tried to do the same with subpanels. The only drawback is that when you register the subpanel event, you lose the ability to click on the subpaneled VI. I thought it would be nicer if you were limited to dragging the titlebar (just like child windows). I then proceeded to edit the subpanel frame and make it "look" like it had a titlebar. Oops, editing the sub-panel frame is forbidden! I then decided to embed the subpanel in a cluster along with a boolean. the boolean would simulate the titlebar. This approach seems to work well. The only thing left to do is track when the mouse is on the edge of the cluster and perform resizing (like child windows). Too bad resizing subpanels and dragging isn't automatic. :roll: Download File:post-15-1073110865.llb
-
VI callback (non-activex)
Michael Aivaliotis replied to Michael Aivaliotis's topic in LabVIEW General
Someone emailed me the following: Some more discussion at NIWeek is expected... -
VI callback (non-activex)
Michael Aivaliotis replied to Michael Aivaliotis's topic in LabVIEW General
Someone asked me how would I pass data back to the caller. Well, it is really simple since you would use the user parameter. I've attached a modified version with data sent back to caller. This would be the easiest method, however you can wire anything into this even a queue reference if you please. then data can be tossed onto a queue. Download File:post-15-1073111204.llb -
In another post, Jim Kring suggested using callback vi's in his own development.:
-
Yes well, i'm trying to build an installation package for my LV7 executable using installshield so I'm collecting the files necessary for this. So far I've noticed that there are merge modules that you can use in installshield. These are the same ones that the LV7 install utility uses during build time. So far, by poking around, i've found that there are several dll's that you can install to give you support for specific hardware. For example: serial: NiViAsrl.dll gpib: NiVi488.dll ethernet: NiViEnet.dll all need: NiViSv32.dll This means that when you click the check-box: incude serial support, all that happens is the installer calls the merge module which specifies the dll's required. I just wish all of this was documented better or at least give us the resources to selectivly install support for the required hardware. If i can check-off serial why can't I check-off GPIB? Also, to this day I haven't used the built-in LV install creator. Call me stubborn but I just like the flexibility and power that installshield provides. If only NI would publish information on these merge modules and how to use them.
-
ok, serpdrv has been removed from the shared run-time folder in 7.0. Where has it gone and do I still need it for distributions?
-
Static VI reference
Michael Aivaliotis replied to Michael Aivaliotis's topic in Application Design & Architecture
Yes, I just noticed this. Another curious thing... if you run the execution state property on the vi , right after the static reference, it shows the vi running. Is this because it is set for re-entrant run? This means you can run a vi that is running? I guess tis only works for reentrant vi's right? Well, i still don't understand the point of this static reference. -
OK, can someone please explain how the static vi reference helps me in LV7? I mean you can drag a vi into it and it gives you a reference but is it really just for property nodes? The online help says: The Static VI Reference acts as a subVI and appears in the VI hierarchy of the top-level VI. You cannot use the Call By Reference node, Run VI method, or any other method to run a VI inside the Static VI Reference node. You also cannot use the Abort VI, Revert VI, Make Current Values Default, Export VI Strings, or Import VI Strings methods on the Static VI Reference node. To avoid recursion, you cannot have a reference to the top-level VI that the Static VI Reference is in. How boring... NI, why do you give us crippled capabilities?
-
With dynamic events, I was wondering if there was a way to have controls with multiple functions. A good example would be a START button that would change into a STOP button. It would be great to have one event case per funtion and determine dynamically which case will execute for the specified button press. I was thinking that you would have to register the control for each individual function you wanted. Then the question arrises, how do you switch registration over to another event case. Any suggestions?
-
Strict-Typed indicator creates coercing constants.
Michael Aivaliotis replied to Michael Aivaliotis's topic in LabVIEW Bugs
I don't know how i did it but here it is: Download File:post-15-1073110288.llb -
Strict-Typed indicator creates coercing constants.
Michael Aivaliotis posted a topic in LabVIEW Bugs
I create a strict-type indicator of enum datatype. I place it on the front panel of a VI. I right-click on the diagram terminal and select "create constant". The diagram constant is a strict-type as well. This is correct, however if you notice the wire connection to the indicator has a coercion dot. Why? Also, on another note. Before (in lv6.1), if you right-clicked on a strict-typed control, you would have the option of "Update From Type def.". Now in 7 this menu item is still there but greyed out. Why?