-
Posts
3,365 -
Joined
-
Last visited
-
Days Won
268
Content Type
Profiles
Forums
Downloads
Gallery
Posts posted by hooovahh
-
-
Yair-
Works! For our application, I just had to add a SetWindowPos (hWndInsertAfter = -1) afterward to keep the window in front (topmost)... Thanks for the help!
Wow that sure does work...it actually works a little too good. I wrote a VI that just waits 10 seconds then calls your VI to bring it forward. In the first 10 seconds I took notepad and put it frontmost manually. Then the VI brought it self to the front.
Problem is after the VI stopped executing it was still the front, meaning it was Always On Top, of all other windows...I then went to close the VI but nothing happened. I then realized it was because my VI was unsaved and the Save Dialog appeared but because my window was front most I couldn't see it. And because the save dialog was there I couldn't move my VI's window to see the Save Dialog window. I closed it by using the keyboard but how do I make the window not Always On Top after bringing it to the front?
-
I had some problems with making a LabVIEW window the frontmost of all windows at one point. Using Windows DLLs I could make a LabVIEW window become the topmost of all other LabVIEW windows, but if there was say notepad open I couldn't get it to make the window on top of notepad.
So I wrote a quick AutoIt program to do it and it seems to work fine. Source is included. It is a command line program where you can specify the Processor ID, or the Title of the window (not sure why I didn't implement hWnd). If the Processor ID has more than one window it just picks the first one. If you don't know the Processor ID of an application you can open the Task Manager, go to the Processes tab, and then in XP you can add a column called PID using the View >> Select Columns. Not sure how it's done in Windows 7 but I know it is there too.
Usage: FocusWindow.exe /PID ####
Will focus the window with the PID #### and return the HWND.
Usage: FocusWindow.exe /TITLE "####"
Will focus the window with the title "####"
-
I've never made anything like this in LabVIEW but there are several commonly used DLLs which give you this function.
Searching Hashes.dll in google came up with several places to get a DLL that calculates a whole bunch of hashes.
MD2
MD4
MD5
SHA1
SHA256
SHA384
SHA512
HAVAL128
HAVAL160
HAVAL192
HAVAL224
HAVAL256
GHOST
TIGER128
TIGER160
TIGER192
RIPE-MD128
RIPE-MD160
CRC32
CRC16
ARC-CRC
I don't have any VI that uses this DLL but I don't think it should be too hard to get the functionality you want.
-
I may be wrong but I thought the safely remove was primarily just for storage based devices. And doing so just ensures that you are not writing (or probably reading) to the device when you unplug it. I also heard somewhere that most devices don't need to be safely removed because of some weird buffering that goes on in Windows and removing it while writing won't screw it up just cause the files not to be written (because they didn't finish)
So if what I said was all true (and it might not be) then I would say there should be no problem in removing the device without going through the procedure to "safely remove" it. Have you ever tried to safely remove it and it say that it can't because it is being used? Try making a DAQ task that uses it then try to remove it. If it says it is okay to remove then I don't see a need to safely remove it. If it says that it can't be removed, that doesn't mean it will break it, only that it may need more investigating. I'm curious does the manuals say anything about safely removing the device?
-
Okay I've used the toolkit and I've had limited success but I might be able to help.
I've usually seen that modules talk both CAN and CCP on the same CAN bus. So one option is that maybe the device is already broadcasting the Exchange ID over CAN. You could do a CAN read, then close that CAN, then init the CCP engine using the same CAN hardware.
Another thing is that this seems odd to me. Inside the A2L file it should specify the CRO Id and the DTO Id, as well as the Baud Rate and Station ID and any SeedKey DLLs. These are all parameters that the module and the A2L agreed on. I always thought that the firmware that was on the module was also the same software as what generated the A2L, and that the parameters in the A2L should never need to be changed.
Do you have more than one module? Do they have different IDs?
- 1
-
Yeah the Read and Write DAQmx task can use a string. There is also a VI under DAQ Utility to take an array of string, and convert to a single string, that can be Read and get all of the channels.
-
Hi,
There is another NotifyIcon library (based on .NET) that could be merged with the NI library...
The example is interesting too
That example is crazy. Did you develop this or did you find it? I ask because I noticed some of the front panel controls would be a strange string of characters like "ƒCƒxƒ“ƒg“o˜^Refnum" and even the error clusters have some odd labels. Does this kind of thing happen when developing in a different language?
I think I understand how all the pieces work. The only thing is with this design I don't like is you need to have a callback VI for each item in the tray right? What if we needed to populate the list of items to appear when you right click? You could have the same call back VI for several events, but when when an event occurs there is no way to know what the user clicked on if because the only distinguishing part is between items is the VI that is called.
I'm also a little confused on what happens if you have more than 5 items when you right click. It seems you are registering all the events at the same time, so you need to know how many events there are, and there is a case structure in the SetMenu.vi that at the moment only goes to 5 items. It would be a pain to have to set that to the maximum number of items you expect to ever have in a tray.
I also didn't see a way to add a horizontal bar to separate items. Maybe BarBreak? or Break in the MenuItem property node.
-
This is not the right way to do this by any means, but here is what I have done in the past.
Instead of displaying an array and showing the 6 elements at a time, with a vertical scroll bar to scroll down the array elements, I would create 6 string controls. Then when the operator pressed enter it would toggle a boolean, this event would look at which of the 5 string controls had focus and then bring focus to the next one. If the last string control had focus it would move the vertical scroll bar down. And when the vertical scroll bar changed value it would take the 5 input strings, and put them in an array at the index that the scroll bar was at. This would give an illusion that the operator is seeing an array when really it is just several strings whos keyfocus could be controlled independently.
Attached is an example VI of how this all works. Sorry there isn't much comments or documentation but I think it is easy enough to follow most of the time. Just add new questions in the Get Questions case (there are 11 right now) and remember that Enter moves you to the next item. You could probably use Tab if you created an event for the keydown and used that instead of the boolean off screen. There is some issues with giving keyfocus at the beginning so you may have to click in the first element. Also you are required to enter an answer for each of the questions and you may loose keyfocus when the one button dialog box appears telling you to enter data for each element. Once you enter data for each item the output array (to the right) has the answers.
I'm hoping there is an easier way of doing this, but I couldn't find a way to get or set the keyfocus of an index in an array.
-
Never knew that OpenG had that function. I did find what appears to be the same functionality in the vi.lib.
<LabVIEW DIR>\vi.lib\Utility\GetType.llb\Get Type of Variant.vi
Found that when digging around the TDMS viewer. Using some more code from the viewer you can convert many data types to string.
-
What benefits does this have over this: http://lavag.org/top...w-tray-launcher ? Can the functionalities be merged?
I realize this is a month old but I wasn't able to check Lava consistently recently.
Yeah so my LabVIEW Tray Launcher is different from this application in a couple ways. In my application there is a registry tweak that makes it so that LabVIEW does not get ran when a .VI file is double clicked, but instead my program runs then launches LabVIEW based on what the user selects. This can be a good thing or an unwanted thing based on how you use LabVIEW.
Often I will download a VI from the web and I just want to open it quickly. So I'll choose the Open option in my web browser instead of download. It will download it to a temp directory then open it with my launcher then choose the right version of LabVIEW. This is an interesting case because I don't know the exact location of the saved VI (I could find out easily) and I don't know the version of LabVIEW it was written for. In this case the Shell Launcher wouldn't help because the VI would be opened with the default version of LabVIEW since you would need to right click the VI and choose the option to launch it.
On the other hand some people probably don't want my program taking over the .VI file extension and may want to right click the VI and choose the right one.
My program could be changed to be a right click menu option, and I'm sure that this program could be changed to be ran when double clicking a VI and not just right click.
My program does offer a few other features that might be useful but I'll try not to turn this into a post about my program.
-
QFT.
Being a programmer for someone else's science project is an exercise in frustration.
I agree, when a set of requirements aren't set in stone, then there isn't a good way to know when to end the project. In that kind of a situation, working by the hour is the only way to go.
-
I am having flashbacks to Will Ferrell running naked down the street...
"WE'RE GOING STREAKING" (caps is appropriate he was yelling) NSFW?
-
Try these on for size!
That little white block on that last one is my 1920x1200 monitor. I'd need about nine of them side by side to see the whole thing.
At least I don't have to refactor, but try and understand and document that! If it were up to me, it would be rewritten from scratch. That may happen yet at some point.
Hit the clean up button, I dare you.
-
Is there a reason you haven't tried the tabbed approach? Where tab 1 has just one graph, tab 2 has two graphs, tab 3 has three, up to the number you want. Then color the tab to be transparent (so the user doesn't know it is a tab) and then control which tab the operator sees.
That being said I've never had the "Scale FP objects" work properly for very long. Usually I could resize once and it would be okay, then I would scale it back to where it was and every thing would be moved around slightly, and alignments between objects would fail. Maybe grouping them would have helped.
-
Oooh god please see dis one. here i need to get the mean value at the base but peaks should remain same
Then you will have to find a way to not make an average on those values, or insert those values back into the smoothed data. Again realize this will make a time shift in your data. Good luck.
-
I've noticed the about says both 9.0 and 2009, and the Windows registry also has it as 9.0.
-
Hai,
If you dont mind can you tell me clearly about that? please see this one, I changed the file as " /t" and trying to lay the connection between mean and wave form
I already stated clearly (at least I think it is clear) what you need to do. I've said it twice here is a third time.
Perform the mean on the first X number of points, then do a mean starting at index 1 (instead of 0) for another X number of points. Do this FOR the whole list of data.
So again try to do a mean on points 0-4, then a mean on points 1-6, then a mean on points 2-7 FOR the whole set of data.
-
Hi,
I have one .txt file even i am testing with that, It's not coming... i selected the mean function and from that how can we get the wave form? Is this the correct procedure ?
oops sorry I forgot to attach the file
You have a period as the delimiter for the text file. The delimiter in the file is not a period, either change the file, or change the parameter you are delimiting on.
Did you just quote your self 3 times? Well if you quoted your self I'll quote my self because I already answered the question but maybe you didn't understand.
You can then calculate the mean of a small set of values, and the process another small set until you processed all of them.
Perform the mean on the first X number of points, then do a mean starting at index 1 (instead of 0) for another X number of points. Do this FOR the whole list of data.
-
Here is my code... which i have done till now... what function should i use to get that average smooth signal?
Couple things. First the file you provided as your data (Book1.xls) is in a file format that LabVIEW can't read from the "Read from Spreadsheet file" function. That function works with a ASCII file, generally a .TXT.
If you do get to the point to where your data is read, then I would suggest looking into the Mean function under the Probability and Statistics pallet (found under Mathematics). You can then calculate the mean of a small set of values, and the process another small set until you processed all of them.
-
I just want the average of certain peaks and valleys near to that.... here is the data file which we need to draw between 1st column and 8th colmn of given data file
I think want Francois wanted to see was what LabVIEW code you had made to try to accomplish your goal. We're all about helping at LAVA but we're not about spoon feeding. Show us some code trying to accomplish your goal and we'll point you in the right direction. If you don't have any code then you should look up some NI examples, or go through some LabVIEW training.
-
I wonder if we can do something that passes through the search term directly to such a google search?
I've seen this done on other forums. Where when you type in a search it just redirects to a site: search on google with those terms.
-
A.vi calls B.vi. Is there a way to acquire the path to A.vi from within B.vi without explicitly supplying this to B.vi?
Attached is a zip, in that zip is two VIs A and B. A calls B, and B gets the path of A using a reference to the VI and using a property node.
-
Very cool, I didn't watch all of it yet. And as a side note since when does youtube have 1080P videos? This video is still only 100MB if you were wondering.
EDIT: Also how many takes do you think it took to get right? and at 2:40 how many TVs did they destroy?
-
List them. Beta's count.
According to my registry the installed versions of LabVIEW are 6.0, 6.1, 7.1, 8.0, 8.2, 8.5, 8.6, and 2009, no betas.
Creating new file in Windows Vista and 7
in LabVIEW General
Posted
You might also want to try turning down your UAC settings as an administrator on that machine.