Jump to content

hooovahh

Moderators
  • Posts

    3,365
  • Joined

  • Last visited

  • Days Won

    268

Posts posted by hooovahh

  1. 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?

  2. 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 "####"

    FocusWindow.zip

  3. 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.

  4. 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?

  5. 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?

    • Like 1
  6. Hi,

    There is another NotifyIcon library (based on .NET) that could be merged with the NI library...

    The example is interesting too wink.gif

    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.

  7. 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.

    Array Focus (8.6).vi

    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.

  8. 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.

  9. Try these on for size!

    post-415-127005216553_thumb.png throwpc.gif

    post-415-127005224263_thumb.png

    That little white block on that last one is my 1920x1200 monitor. frusty.gif 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.

  10. 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.

  11. 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.

  12. 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.

  13. 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.

  14. 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.

  15. 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.

×
×
  • Create New...

Important Information

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