-
Posts
3,392 -
Joined
-
Last visited
-
Days Won
284
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by hooovahh
-
Here's a way to open VIs without file dialogs for missing subVIs
hooovahh replied to Aristos Queue's topic in LabVIEW General
The first post is password protected for a reason and AQ mentions this. The private functions he used in 8.6 have not become public since then. If you have private methods enabled I believe he is using the Application >> UnattendedMode, setting it, then opening the VI refs, then clearing that. -
Here's a way to open VIs without file dialogs for missing subVIs
hooovahh replied to Aristos Queue's topic in LabVIEW General
Okay did NI change something, or am I crazy? I only have access to 2013 SP1 and 2014 SP1 at the moment but both of them don't appear to work as I thought this function used to. Attached is a VI saved in 2013 which should get the path to the Add File to Zip.vi in the vi.lib. It will then use this private function and try to read the VI Description. When it does it returns an error that the reference is no longer valid. So I ask again, am I crazy? Or did this undocumented function just demonstrate why it was undocumented? EDIT: Okay this might be because the VI is opened in a new application instance, and if it isn't being used it closes, which closes the VI references opened in that application instance. Because I noticed if I took the App Ref output and closed it manually later, then everything works as expected. Is this new? Open Without Refees.vi -
Need Help: Getting Screen Coordinates of GObject on Block Diagram
hooovahh replied to Jim Kring's topic in VI Scripting
Very funny Jim, I smiles throughout the video, but I laughed at "ship it". -
You used 4D arrays. That alone should be worth some extra credit.
-
It sounds like you've done everything right as far as I can tell. Does the camera work on a non cRIO device? Can you just plug it into your PC and have it show up in MAX? In Windows you have to enable Jump Packets, is there something like that on cRIO? Even if that wasn't there I'd still expect the hardware to be detected. This sounds like a thing NI can probably help with more. Are you getting support from an applications engineer on this yet?
- 2 replies
-
- crio
- gige camera
-
(and 1 more)
Tagged with:
-
Okay for this to work the first thing you'll need to do is convince Windows that there is two mice. By default if you plug in two mice into Windows, they both will control the same cursor. I'm guessing to do what you want you'll need two cursors (but I'm not sure). If you look at the Initialize Mouse on the pallet you'll see that there is a constant on the block diagram which is the "DeviceIndex" and is set to 0. I'm guessing you can make a copy of that VI, where that constant is a control input, and you can choose which mouse to initialize. But as I mentioned before I suspect that this will only work once Windows has two cursors but you might get lucky and it might not need that.
-
Okay because I like you guys (and I like XNodes) I've made an XNode that takes an input array of size 1 or greater, and will output an array of that same type, of that same size, but the values of the elements will be the default for that data type. It uses the method posted earlier by jcarmody. Feel free to look at how it works by looking at the XNode Template VI. Source is saved in 2013. Initialize Array XNode.zip
-
Oh fiddle sticks. Well I guess this method still works for numeric types that don't support things like NaN and Inf. EDIT: By the way this would make a good XNode. Wire in an array of any size, or any data type, and it will return an array of the same size and data type, with the default value for that data type.
-
-
Or wait until one of the spammers post links to the movie here. (but seriously though don't post links to pirated content you will be banned like the spammers)
-
Crosspost Does the NI Uninstaller exist on disk? Normally this is in the following directory C:\Program Files (x86)\National Instruments\Shared\NIUninstaller
- 2 replies
-
- ni software
- control panel
-
(and 1 more)
Tagged with:
-
Very good point, that isn't hard to add, just look evaluate the negative symbol only on the first iteration of the for loop.
-
Sniff the serial traffic. Either with another PC on the serial bus as a listener, or there is software that will listen to the traffic on a physical serial port and log. Then you can review the data later. Actually if you have this in HyperTerminal can't you just log the traffic there? Maybe copy and paste the communications after a download is complete? EDIT: Man-In-The-Middle, but maybe I should have said to Eavesdrop.
-
I'd start by maybe putting a man in the middle, and do your process as you normally have using HyperTerminal, but look at the trace of data going in and out. Then you can probably start there then read up on the particular protocol to help understand it more.
-
Oh neat thanks this is very helpful.
-
Lucki you win on simplicity for sure. But just to save a little bit of face I did a speed test and my method appears to be about 10 times faster on my I7 machine in LabVIEW 2013 SP1. Of course our two methods don't always return the same result. Yours considers NaN a number and depending on the application I could see wanting this feature or not, so I added it to mine. Also your method accepts scientific notation like "4e6" where mine doesn't, and yours accepts imaginary numbers like "1 + 2i" where mine doesn't. I never mentioned my application for this but I using this where a user can enter into a table some number. The table is of course a string but it needs to be evaluated for being a number otherwise indicate it is formatted incorrectly. In this case the user shouldn't ever think of entering NaN but if they do I'd consider that an invalid entry. Same with "4e6", generally users will think in floating point and would type the extra zeros. And users shouldn't enter imaginary numbers. Of course all these things are up to the developer to decide what types of input should be considered valid.
-
I hate being the one to ask...but could someone post this in 2013 or older? I'm in a PC transition and that's the only version I have installed at the moment.
-
Topics merged, please do not make multiple threads for the same discussion.
-
Need Help: Getting Screen Coordinates of GObject on Block Diagram
hooovahh replied to Jim Kring's topic in VI Scripting
That is a really neat document and I'm going to need to keep that in mind. These same properties don't apply to the block diagram, but as Yair mentioned many of them can help you calculate the size of objects that are shared on the FP and BD. -
This is a viable option for me, would you mind posting it? I found some .NET color selection VIs on the darkside but I couldn't get them to work for some reason and just moved on.
-
So lets say I have a Multicolumn Listbox. In this MCLB one of the cells isn't intended to contain text, but instead to just allow the user to set the background color of the cell. So the user clicks on the cell, and I will move a frameless color box control to be under the mouse, then I'll invoke a mouse click so the color selection box comes up. This all works well enough. It would work better if there were a property node for opening a color box but that's a different post. Now lets say the user doesn't pick a color, and instead when the color selection window comes up, the user clicks on another cell of the table. This mouse click will not behave like you would expect. If you click on a control the mouse down event won't be triggered. I'm guessing this is because the mouse down isn't registered, and instead the dismissal of the color box is seen. So what I'd like to do is perform another mouse click after the dismiss so it works like it normally would where the first click dismisses the color selection, and the second then clicks on whatever the user intended to. But the problem is how do I detect a dismissal of a color box control? Enums luckily have a "Operate Menu Dismissed" event that can be generated (with super secret stuff) but the color box doesn't have an equivalent event. So what's a good way to allow a user to select a color and have more control over this? Should I just resort to making a separate VI that floats that I can have more control over? Anyone make an XControl for color selection?
-
Ya know I've enjoyed my working career so far, but none of the projects I've worked on have asked me to ride in a vomit comet. That is really awesome.
-
Need Help: Getting Screen Coordinates of GObject on Block Diagram
hooovahh replied to Jim Kring's topic in VI Scripting
Okay attached is an example VI that I think does what you need. It will look for the screen coordinates to the Tick Count object on the block diagram. The only part I couldn't calculate is the width of the left edge of the window, and the height of the title bar of the window. Mine was 10px and 32px so I have them as controls but there is probably a way to figure out what this size is. Also I think we can assume the menu bar and debug buttons are always the same size so once this is determined once you won't need to recalculate it over and over. My code currently does this by removing these buttons then subtracting the difference in window size from when they were there. Get Object Position On Screen.vi -
Need Help: Getting Screen Coordinates of GObject on Block Diagram
hooovahh replied to Jim Kring's topic in VI Scripting
One thing that might help is you can hide the Menu and Button bar using a property node on the block diagram. I couldn't find one for removing the title bar, but I think that can be calculated. I think this is possible if there is a property to read the scrollbar position on the block diagram but I can't seem to find it. EDIT: Block Diagram Origin can give scrollbar position. I think this can be possible. -
Get all installed LabVIEW Versions
hooovahh replied to QueueYueue's topic in Development Environment (IDE)
I've posted this before but I can't seem to find where now. This is a VI that will read the Windows registry and return the development, and run time versions installed, along with the "Current" version, which is usually the last development version opened. LabVIEW Versions Installed.vi