Jump to content

hooovahh

Moderators
  • Posts

    3,388
  • Joined

  • Last visited

  • Days Won

    283

Everything posted by hooovahh

  1. 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. 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.
  3. 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
  4. 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.
  5. Oh I know an easier one to that (rube anyone?)
  6. 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)
  7. Crosspost Does the NI Uninstaller exist on disk? Normally this is in the following directory C:\Program Files (x86)\National Instruments\Shared\NIUninstaller
  8. Very good point, that isn't hard to add, just look evaluate the negative symbol only on the first iteration of the for loop.
  9. 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.
  10. 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.
  11. Oh neat thanks this is very helpful.
  12. 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.
  13. 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.
  14. Topics merged, please do not make multiple threads for the same discussion.
  15. 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.
  16. 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.
  17. 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?
  18. 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.
  19. 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
  20. 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.
  21. 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
  22. I laughed but that could be read a few different ways. Let me clarify I actually made several efforts to use the Actor Framework. So I wasn't trying to say I hate this thing that I've never used. I was trying to say I made an effort and didn't like some things about it. It isn't complete crap, but it over complicates things where I don't need it to be, and doesn't do some of the common things I would like it to. People with different needs may find exactly what they need in the Actor Framework.
  23. Full disclosure I don't use the Actor Framework and am not a fan. That being said, NI apparently did consult with many real world CLA's on how to make the Actor Framework. I don't know who in particular they consulted with, but the intent was to get the opinions of those that would end up using the framework, and try to understand the best way to make it. Also if you are a CLA and have the opinion that the framework is UNREADABLE, then I feel there is something wrong here. Either the framework does need major overhauling, or maybe you need to look at some training on the framework. I'm not trying to suggest you aren't competent please don't read it that way. I just don't know how much you have invested in trying to understand the framework and certainly anyone new to it will feel lost (I know I do). I often fall back into the QMH on a fresh install of LabVIEW, or the JKI state machine if I have a chance to install it. For larger applications I usually spin my own actor type design using user events and variants. I can't get over several things with the Actor Framework like the re-entrant actors, which make debugging difficult. Honestly it might just be how I think about my applications, but there is never a time when I would want to kill just a single actor. The only time an actor should close, is if the global quit was issued. With plugin architectures, and factory designs I can see a need, but that just isn't the world I live in. EDIT: Just saw this crosspost.
  24. It says it was reported on Jan 26 2015. I am looking into a way to get that notice removed. I feel it is the kind of complaint that should be discussed before considering a submission broken. Until then here is what the user complained about.
  25. I sorta agree. I mean on the surface I wonder why do I need a VI for every read/write property? Why can't I just specify what data is public, and if that data is read only, write only, or both. Then have the property node work without needing to write a tons of VIs, even if the majority of it is done through scripting and templates. But having a VI for these actions does add other flexibility. Like if I perform a write I can have that VI do more than just set some data, it can also manipulate the data or perform some other action other than just a bundle by name. That does make we wonder why NI choose to do what they did, and allow public data accessed through a property node, via a VI call.
×
×
  • Create New...

Important Information

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