-
Posts
3,392 -
Joined
-
Last visited
-
Days Won
284
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by hooovahh
-
Add a new invoke node to the block diagram
hooovahh replied to spaghetti_developer's topic in VI Scripting
An Invoke node can not be tied to a VI directly like it can to a control within that VI. But the easiest way would probably be to use a Static VI Reference, put your VI you want to reference into it, and then wire the reference to the invoke node method. You can also use the Open VI Reference if you know the VI Name or VI Path. -
I had similar issues with SVN. To resolve it I now use a SVN plugin to perform the rename for me, which renames it in SVN and in LabVIEW at once, so there is no issue. I wonder if the Mercurial API could help with this tool. http://lavag.org/files/file/162-mercurial-api/ That being said before using that API what I would do is a rename in LabVEW, then an update in SVN. This would cause both files to be there on disk. Then I did an SVN delete on the old one, and an SVN add on the new one.
-
Yes but often I find my self performing the cleanup after scripting, and then adjusting the wire bends manually because the cleanup and auto wire route only go so far.
-
Anyone else OCD about alignment and positioning in block diagrams?
hooovahh replied to Sparkette's topic in LabVIEW General
I don't remember ever seeing this, but I tend to try to have unique names in my cluster (and master configurationcluster) so maybe that is why I've never heard of that issue. I wonder if the In Place structure does the same thing. -
Launch an exe which is 'always included' within another exe
hooovahh replied to shred444's topic in LabVIEW General
When you select a file to be "Always Include" which isn't a LabVIEW file, it doesn't put it in the EXE. Go to the Destinations category and you'll likely see two things, your EXE and the "Support Directory" this is the location where files that don't go into the EXE will be when the build is done. So if I include a JPG file as Always Include it will go in the folder specified by the Support Directory. This is usually something like <folder where EXE exists>Support or data in older versions of LabVIEW. So what this all means is you can call "Motor Monitor.exe" from your top level EXE, but you will need to know the path relative to the main EXE which is defined by that Support Directory settings. You can also click the Preview category and choose Generate Preview to get an idea of the file structure that will exist after the build is made and it should show you where the Motor Monitor EXE will be. -
Well if you use an Invoke node instead of a Property Node you can get the "Text" from a comment. I have no idea how that will look if the comment is actually an image.
-
We are all of the engineering mind set, and as a result I'm sure each of us can come up with an equally effective way of blocking the spam. Block users, have Report to Moderators temporarily remove the post, blocking by IP etc. But many of us don't know what tools the LAVA Admins have to combat this issue. Until told otherwise I will just keep doing as Michael has instructed, and continue to report spam using the Report to Moderator.
-
I use the RSS, but I also go to the site and look at View New Content too. So while I notice RSS broke this morning, I just went to the site and clicked on all the new posts I was interested in. How can you rely on RSS alone anyway? Doesn't it only show new threads and not new posts?
-
DAQ 6229 to be used to measure RS232 serial coms
hooovahh replied to James Stigwood's topic in LabVIEW General
I think you could. I don't think you would want to but I think you could. The 6229 is nice that it has 32 digital lines on Port 0 because if you didn't know: Only DIO lines on Port 0 of a 'm' series card can perform buffered digital in or digital out. Search this page for "Port 0" and you'll see the catch http://sine.ni.com/ds/app/doc/p/id/ds-15/lang/en So we can read a buffered digital line on port 0. So this means we can setup the timing to read a digital line at 1MHz and read it for 1 second. Then you will get 1,000,000 values of 0 or 1. This can be done with finite or continuous reading like an analog input. Now when you get 1,000,000 you will likely have a difficult time understanding what that means as far as serial. You will need to look up RS-232 specifications to understand things like parity bits, and other communication layer things that will be in your read. If you can interpret that information correctly you will eventually get the ASCII representation of the message. I've never done this so I can't say if there are other issues that I didn't think of. But really is all this work worth less then the $13 USB to RS-323 adapter? Not all of these devices support talking to all serial devices, but they work for most applications. -
Reference casting dance sanity check
hooovahh replied to todd's topic in Application Design & Architecture
So this method is tricky in that it maybe harder to debug. You can get references to the control programatically so you don't need to create all those references and bundle them. Instead get all references on the front panel, then filter based on something. The attached demo uses the Label Text and says find all controls with the label that starts with the text "Boolean" Then it sorts the references then it sets them where everyother is a True and False. This same type of thing could be done but use some other attribute of the control to identify it. Maybe you look for controls that have a tip strip that start with "Cluster1:" and the full tip strip could be "Cluster1:1" for the first item and "Cluster1:2" for the second. Or maybe use the Control Description, or use the Label, but hide it and only show the Caption. Then you'll have an array of Control references that you can then convert to a Cluster of references. This issue I mentioned earlier with this technique is that a new developer may see the value of a control change, but when they right click and say Find >> There are no local variables or references. Get References to Controls.zip -
If you are on the front panel and CTRL+E CTRL+W then I just perform another CTRL+W. Like I said I think there could be a way to make CTRL+W close both front panel and block diagram when you are on the block diagram but the only method I know that would work would be hacky. Multimonitor setup here, so some times I don't even have a LabVIEW window active and press CTRL+E on accident, and you find what that key combination does in other programs (calculator brings up the date calculator, Explorer window brings up search, Chrome enters a ? in the URL). I also discovered the Project window behavior you this way.
-
Uh...so...future of LAVA?
-
What OS are you using? What .NET versions are installed? I've seen some kind of issues when on a fresh XP machine that has only a couple versions of .NET (say 1.0 and 1.5) but the NI installers require some first, and then you need several others that NI installs for things like MAX. I don't know if this will fix your issue or not but you can try to install all .NET components first separately and then try again. I'm guessing that's what the "Microsoft Run Time Engine" is referring to.
-
Yeah I don't mind clicking report for all of these, I just hope the admins can sort by posts, so if they see the same post reported as spam 20 times they can just delete that post and remove the 20 reports they get. On a slightly different topic does LAVA need more volunteers for admins? I always get the feeling that there are only a few admins, and almost 20,000 members (most with 0 or 1 post but still)
-
I hope this isn't some program Phillip wrote to post on Lava through a VI or something. That's what I always think of with these types of posts.
-
Well I sure hope it doesn't go away. I wanted to celebrate my 1000 posts by buying it to support this community. It looks like the entire store is being worked on, hopefully this means some new revamp, instead of removing it. EDIT: Also has anyone bothered to email support@lavag.org? I haven't because I figured someone else has about this topic already.
-
I suggest this: http://www.ni.com/white-paper/5241/en All of your while loops have a TRUE wired to the stop terminal, this means your VI will run for one execution, so changing the controls do nothing because the VI is no longer running. I also suggest looking into how to use the Waveform Graph and dealing with arrays. You need multiple points to be able to see a wave on a graph, but again you generate one data point in the top while loop and graph it instead of generating multiple data points and putting it on the graph.
-
Tell me I am not the only one that did not know you could do this. When you use an analog output you can have 1 Channel N samples, where you have an array of output values to set, and each one is set one at a time in a finite or continuous output mode. (this part I knew) What I didn't know is Counter Outputs also support writing to them with 1 Channel N samples. Normally you set a Counter Output as a Frequency and Duty Cycle pair, then when you need to change it you set it again. But I discovered yesterday (with a few examples) that you can write a array of Frequency Duty Cycle pairs, and the counter output will set them one at a time. It will set the next pair after one cycle has been completed at the frequency selected. In this way you can setup a counter to have 1KHz 50% for 1 second, then off for 1 second, then back on at 2Khz 20% for 1 second, then what ever and repeat. I was even more thrilled when I realized that the cDAQ 8 slot chassis have 4 internal counter outputs that can be tied to either of the two front BNC PFI terminals with no extra hardware. So attached is my quick demo which will perform a frequency sweep on a counter output going from Frequency Min, to Frequency Max, back to Frequency Min in the duration set by Sweep Duration all being hardware timed. Hope someone else finds this useful. Frequency Sweep Counter.zip
-
I think I just realized why on the NI forums you are not allowed to post a topic where the word "watch" appears in the body of the message. They apparently found it to be the easiest way to limit this type of spam.
-
Uno all the way. The LIFA toolkit is pretty neat and there are some libraries in there I didn't know were supported (I2C, SPI are a couple) I wrote an application using the NI 8451 to do all my SPI communication. When I was done I found the LIFA toolkit supported it. So I dropped in the LIFA VIs, commenting out the 8451 VIs, and my application worked just as well. You mean I could have used an open source $13 piece of hardware to do all my SPI communication instead? We still went with the NI solution for support, and all the other goodies but the next time around, I may budget to use the 8451 but actually use the Uno. We've also used the Mega but I think very few applications actually need the extra memory it comes with, really it's just for more I/O. You can even get an Uno and LabVIEW (Student edition) for $50 on sparkfun. One thing I would recommend for anyone who has a bunch of Arduinos, use XLoader to flash them with the LIFA instead of the IDE. It is faster, and it only takes a few clicks.
-
It unlocks the file duh...but seriously I think the reason they named it that, is because in Windows if you download an EXE Windows security will prompt you with normal UAC stuff when you go to run it. But if you go to the properties of the file there is an "Unlock" button which is you telling Windows you trust the EXE. Still I think a different term would have helped understand what it does.
-
The myDAQ states that the analog output rate is 200K samples per second. This means the output can be change up to 200,000 times in one second. This seems like alot but generally to create a sine wave you must output 10 times in one cycle to get a clear picture of what the signal looks like (back to the Nyquist). So the fastest sine wave you should ever generate on the myDAQ is 20KHz. You can output faster but you will have issues like what you are seeing. Alternatives is to purchase hardware that supports outputs that are faster. This USB X Series 6351 can output at 2.8MHz, so this can generate a sine wave at 280KHz without any problem. I've never used this particular hardware, and I don't know your application so I can't say if this meets your needs, or has too much functionality.
-
The cheap and dirty solution (my specialty) is a command line call to a function that does it for you. Here are a couple options. http://superuser.com/questions/94794/convert-a-mp3-to-wav-file-with-mplayer http://sourceforge.net/projects/snout/ https://quote.ucsd.edu/phonoloblog/2007/07/23/batch-convert-wav-to-mp3/ (this is Wav >> MP3 but I think it can be reversed) LAME Command line: "lame -V input.mp3 output.wav"
-
Where is this file located that you are trying to write to? I assume Program Files which Microsoft has said since Vista that area should be off limits for file writing. That being said most people still do it so it isn't such a big deal. My point is that you can choose to write files in a more secure (obscure) location that you will have write permissions on. Something like Application Data. If you do choose to leave the files in Program Files you can "Unlock" them during the install. This sets the permissions for you so any user can modify it. http://zone.ni.com/reference/en-XX/help/371361H-01/lvhowto/build_installer/ Step 6.
-
Yes I too find the new spam bots more annoying. When I go to my RSS feed I got quite excited when I saw new posts, then I had to wade through the 100+ junk posts to find any useful content. Maybe it was a coincidence but it seemed like activity from legitimate users of LAVA dipped when this was going on. Possibly because others found the spam inconvenient too. I'm all for limiting new user topics being made to so many a day. The CLAD level questions I'm not as much a fan of simply because I wouldn't want to hinder the new users from finding LAVA. It's a great resource if your new to LabVIEW or not but what ever keeps the spam out I guess.