-
Posts
1,209 -
Joined
-
Last visited
-
Days Won
46
Content Type
Profiles
Forums
Downloads
Gallery
Posts posted by Francois Normandin
-
-
Small modification to AQ's VI... Get the Value from the control associated with the terminal. Indeed, the datatype is always "LabVIEW Object" in this case.
Get Name of Class of Object From Terminal Reference.vi
(LV2011)
-
Congratulations Stephen and many thanks for your involvement in bringing OOP to LabVIEW.
I can say that it changed a lot of things in my programming, all of them for the better. It's given me the opportunity to tackle problems in a whole new light and I feel I've improved both my pleasure and productivity while tackling them.
I hope I can say the same again in 3-5 years.
-
NI has a set of wifi DAQs. Easy to deploy, reliable, same coding as any other NI modules.
http://sine.ni.com/nips/cds/view/p/lang/en/nid/205686
If you don't have the budget for these nice modules, you could setup a bluetooth connection (115 200bps) to get enough bandwidth.
http://arduino.cc/en/Main/ArduinoBoardBluetooth
You'll need to feed the microcontroller with your analog data which means you'll need to create a shield with 2x 16-bit analog ADC chips. But the rest is just sending your stream of bits over Bluetooth to your computer.
-
As pointed out by Asbo, for an arbitrary length string array, you can't make it into a fixed-sized cluster.However, you could use variants to build a "Variant Cluster".
If so, OpenG is your friend here. Furthermore, this works with any array type (see attached VI).
(OpenG VIs needed -> VIPM)
-
Is this code available? The link does not work. Please?
I couldn't find the old code. That was prior to me learning to use SCC ;-)
Here's something equivalent to what you're looking for. It's in LV2009. Launch the test VI to get an idea of the functions.
WinError_class.zip (LV 2009)
-
I think it's not about the connector pane, but rather the small "ears" I added to the icon
- 1
-
- Popular Post
- Popular Post
-
Without being demanding have you thought of creating a "Silver" style expansion pack? How much effort would required in getting that working?
Unzip this file under the "LabVIEW Data\LAVA\Control Templates" directory and you'll get a Silver-looking template installed.
Note that this button doesn't resize well, just like the other templates, because it creates a fixed-size image of all button states.
I'll investigate how to programatically change decals, but that's not something you should expect soon. I have too many other things on my mind.
You can also create your own templates and drop them in the same directory as stated above. SImply create three PNGs with the button backgrounds you wish and name them like the templates (templatename_1.png, templatename_2.png, templatename_3.png), then make sure that these pictures are "clipboard-copied" on the templatename.ctl different states. The rest is magic .
edit: You should do the template in the lowest possible version, so that it can be called from whichever version you use...
-
This seems to be the same problem than UI Tools: Control addon.
I'll check this and post a new version in VIP file format soon. Stay tuned.
New version uploaded with corrected namespacing for the JKI State Machine dependency.
Please report if this doesn't solve the problem.
Note that this package gets installed in the new LAVA palette...
-
New version available for LV2009 and above. (v1.2.1.9)
-
How do I install version 1.0.14, since VIPM will only let me downgrade to 1.0.15-1?
You can download previous versions in the CR. Links are on the right side of the page.
http://screencast.com/t/p6K4XBous
Quick link:
http://lavag.org/index.php?app=downloads&module=display§ion=download&do=version_download&id=196
-
In VIPM I had selected Refresh Palettes and Mass Compile so I'm not quite sure what I've done wrong.
The current versions for UI Tools Addon I have installed are:
Control Class = 1.1.0.3
Control Class (System) = 1.1.0.3
jki_lib_state_machine = 2.0.0-1
Should I just re-install the previous version (1.1.0.1 or 1.0.15-1)?
Hi Chris,
Sorry for the late reply, I've been on vacation last week.
This package is an opg file dating back to vipm 3. I had to deal with post-install and pre-uninstall VIs myself. I might have made a mistake in the code and there's a messing up during upgrading.
When I downgraded to 1.0.15 in LV2010, I got the same problem you have. (missing jki files with uitools namespace)
I downloaded 1.0.14 and downgraded it one more step and it worked. But I couldn't get version 1.0.15 or 1.1.0 working. It seems the error is also with the Bitman dependencies.
I'll try and put up a package 1.2 in *.vip format.
In the meantime, you can use 1.0.14. Let me know if that's a workable solution in the meantime.
-
- Popular Post
- Popular Post
This VI was in the Candidates folder for the String Package.
I'd find more natural to find this in the MD5 palette.
- 3
-
Hi,
I've installed your addon in LV2011 (RGT 2011) and it works fine in the IDE.
But when creating an executable using the RGT (only for Microsoft Word) the application throws an error 2208 and doesn't execute on a machine without the full development system.
Can anybody confirm this?
Regards,
Bastian
Hi Bastian,
just to make sure... this add-on doesn't give you access to Word and Excel reports without a purchased license from NI. It simply adds OpenOffice Writer to the list of choices in the Report Generation Palette.
If you have a valid RGT for Word license and my add-on doesn't work in an executable, then it's something I'll investigate.
There shouldn't be any links between the RGT for Word/Excel sold by NI and this piece of code, but the package does replace a single VI to select the right class (the one including ooWriter in the Enum). It has been done in LV2009, so perhaps something has changed in LV2011.
Did you ever try the addon in an executable with LV2009 or 2010? (Is this a new issue with 2011?)
-
I am trying to use similar pieces to what have been mentioned so far. However, I need to be able to spawn VI clones of several different VIs that have different connector panes from each other (different inputs, but same outputs) to be run in subpanels, and then read the outputs from these clones.
I played with exactly what you describe when the new LV2011 was launched. However, I decided to implement an event callback instead of reading results with the Asynchronous Call function. I used my Dynamic Dispatched method to make sure that all children clones received the event reference to notify the caller of the results. If you need the clones to send different data, make your event type be of a common ancestor to all these types and your caller can deal with each answer in a different way as it sees fit.
-
That's a very old thread... I'm not sure I remember why I wrote my answer like that. Of course, you're right that it is not a viable solution to use code that could break later.
I think I meant that if you make your package "version = 9.0", then you will not be able to install it on other LV versions using VIPM. In essence, you would not be able to update your code to a new version unless you get rid of all this package's VIs. That will prevent it from breaking in a future LabVIEW version because you cannot use it unless you copy it by yourself instead of using VIPM. But if you do so, you cannot blame the original packager for the break in your code. That's what I think I meant by "limit your responsability": by making it strictly a LV9.0 package.
For the rest, I kind of suggested that it might never break, so the packager could take a chance and just package it for any future versions... That in itself is not good advice (but that seems to have been what I meant at the time) and Chris suggested a better approach would be to incrementally repackage it each year and deprecate the old package. I agree with that.
-
You wouldn't have to make a totally new package - once the functionality is confirmed in the new version, then you'd just need to update the old package to support the new version, right? Does VIPM allow selection of different versions? Say, 2009 and 2010 only?
Like Jon said.
Of course, vip files are not editable using text editor due to checksum, but an opg file certainly would be updatable easily for newer versions... Not that I would do that: it would be faster to simply change the install requirements and repackage it as you suggest.
-
I'm working on a system to implement biological detection protocols specifically for listeria separation, lysis, trapping, amplification and detection.
-
At one particular instance of my application, I want to force the child to call the parent method (irrespective of having dynamic dispatch terminal – addition function in this case).
Is anyone aware of any work around for this type of usage?
Thanks,
Vidula
The problem comes from your choice of inheritance hierarchy.
Inheritance should always be a "Is A?" relationship.
In your case here, multiplication is not an addition... so multiplication should not be the child of addition. They could both be children of a parent class named something like "Arithmetic operation". Addition is an arithmetic operation, multiplication is an arithmetic operation.
Now it does not mean that you cannot perform an addition in one instance and a multiplication in another, but this should be implemented differently and never forced arbitrarily from the outside.
Consider this example where you have a parent class that is a generic 2D geometry where you have stored a collection of points that delimit any geometry (array of points).
You could have a child class for a triangle, which would always have 3 points. And you could have another child for rectangles, which would have 4 points.
When you call a method that is common to both children, for example "Measure Area", you will be calling the parent method which will dynamically dispatch the appropriate child method depending on the object type that is propagating on your wire. The implementation of the children methods will differ.
- 1
-
Perhaps you can use the call chain to get the caller's reference and give it the focus back once your dialog is loaded. You'd most probably see a flicker in the screen though...
Otherwise, there are probably some OS commands that you can call... but it's just a guess.
-
You can also take a look at BitMan by vugie. It is downloadable with VIPM directly from the LabVIEW Tools Network.
-
And now the problem: When setting the Edit Position this way the tree structure scrolls so that the value column (column 1) is at te left most position, so now I can edit, but I can't see what I am editing
I tried using the "Top Left Visible Cell" Property but then the cell I want to edit loses focus...
Is there any way to make the tree structure scroll to the left again? so that both columns are visible
Or another way to easily edit a cell?
The way you code it is correct. However I only see the described behavior when the column I edit is larger than the control width.
I don't think you get what you want unless you set your column widths so that both your columns can be shown completely at the same time.
If the horizontal scrolling bar is shown, then it's a good bet that the cells will shift when you edit.
-
Seems the file is no longer available for download, cannot find it in the repository too. Does anybody have a working link?
-
Check my answer in the other thread.
The API presented there has no hidden code, so you might want to particularly look at the Set Private Data VI.
Suggestions for OpenG LVOOP Data Tools
in OpenG Developers
Posted
The native LabVIEW variant palette doesn't have a "Variant Constant". I personally find this one very useful.