Jump to content

hooovahh

Moderators
  • Posts

    3,392
  • Joined

  • Last visited

  • Days Won

    284

Everything posted by hooovahh

  1. The only way I've been able to do this is by cheating. I would have a horizontal splitter with only the tabs in the top pane, and the contents of the tabs in the lower pane. Then when you change the value in the top tab control it changes the value in the bottom tab control. Then when the bottom tab control changes value, I also fit the appropriate control to the pane. This gives the illusion of a single tab that fits to the pane but really it is two tabs. This technique falls apart if you try to have more complicated controls then just a single graph, or table in each tab. It is still do-able but I've found my self performing manual resizing of controls if the pane is resized. Attached is a quick demo that uses a graph, a single column listbox and a table. Cheating Tabs.vi
  2. I don't think it's free but it comes with a trial. http://joule.ni.com/nidu/cds/view/p/id/2758/lang/en
  3. I also set this every time I'm doing any nice UI stuff. Too bad it can't be set programatically. http://forums.ni.com/t5/LabVIEW/Setting-quot-Scale-Objects-While-Resizing-quot-programmatically/td-p/1970005
  4. Please post the code you've tried already. In either case here is a post talking a little about sine fitting. http://forums.ni.com/t5/LabVIEW/Sine-fit-algorithm/td-p/1616536
  5. Wow I've never seen that happen before. You ran that VI un edited? I had normal results sorry. One thing I'd be curious about is if you use the invoke node to Fit Control to Pane (on the sub panel, or the tree) does it fix this? To be clear I don't think you should have to do this to have it function properly I'm just wondering if this would fix the issue.
  6. Would you mind trying that link again. I only see an image of a map looking at Springfield, IL.
  7. If you are ever unsure of the range a number holds I just test it. Put in a few numbers into both controls and then try to end numbers into the control to see the range and resolution. I agree that the controls aren't labeled in an intuitive way but I can always test it to make sure it is working right.
  8. I think that AQ would know if there was, and he said there isn't. Until someone proves him wrong I will trust him.
  9. I really like that quote because at one point, joking or not Gary Rubin said that in a post. I thought it was funny so I made it my signature. Crelf at first was not amused and thought having that as my signature would perpetuated the idea that this account was ran by crelf and he was just irking people. We are separate people of course or so we'd like you to believe. Regarding the Zimbabwe 100 Trillion dollar bill. I heard that when that bill was issues before it was in the hands of consumers, inflation had grown even more, and when the banks got those 100 trillion dollar bills they were instructed to write another zero on the end of each bill. Not sure if it was true or not. I've thought about buying some just to have in my wallet for a tip, or a joke with a bartender. http://zimbabwedollars.net/
  10. Not sure the kind of work you will be doing, but at one point we had some remote developers write the software to talk to a device over serial (I think it was a power supply). The developer needed to power cycle the device periodically, to put it back into a known state. So we hooked up a USB NI daq card, and told him that P0.0 would toggle a relay that would turn 120VAC off to an outlet. Later he needed to see the device to see the status of the front panel. So we hooked up a web cam and gave him the IP address so he could see the device update in real time.
  11. I could see this used in a document explaining how the software components communicate. Sure you'd probably want a section explaining each relationship in more detail, but it would to spice up a boring software document with some graphics. I do something similar with my software design documents, but they are custom made, and could be error prone. I may miss some messaging connection between nodes where this software wouldn't.
  12. Literally orders of magnitude faster I'll give you that. My only concern would be that Xnodes are the deep underbelly of LabVIEW and have no support, and NI's official opinion is that they should not be used (unless the XNode is made by NI of course). Which is why I was looking for non-XNode code that can do the same and still be as easy to use as the XNode. Turns out my first attempt met those criteria but is much much slower.
  13. I was making some subVI that used a private method, and I wanted to know by looking at the subVI that it was private and shouldn't be used in end applications. I thought the easiest way was to color the icon to have a background the same brownish color that private methods have. I had difficulty finding the color that was the closes because of this reason and ended up trying a bunch of things to get it right. It just seemed odd to me that LabVIEW's property nodes had a color that my subVI could not come very close to. All of this apparently is due to the limitation Darin mentioned.
  14. I don't know what you mean by this. Yes it is possible to scale up the example to support any number of items for any data types. Your new method is the most obvious, but I was originally trying to stay true to the XNode feel, where there is a terminal that is added, then the new data is wired to it, and the selector chooses which one. This method has two operations to add a new item to the selector. Add the new terminal, and connect the data to the new terminal. Your method is similar but if I needed to select from a large number of items (say 50) then making the bundle to be of that size is easier then adding a new 50 cases to a case structure. Of course if I needed to select from 50 different items I may do something altogether different. But to be honest I use your method all the time, and made my method for the first time today.
  15. It is possible, given the limitation that all arrays have the same number of elements and are the same size. If I have 4 3D arrays to choose from they all need to be the same size in each dimension. But using clusters does have another runtime issue. A cluster can be mixed data types, so if Item 1 is a string, and Item 2 is a double an error will occur with my method if you select item 2 because the Variant to Data will throw an error at runtime, but still allow the VI to run, where your method will create a broken arrow.
  16. Oh give me a break. I wanted something scalable with as few clicks as possible to add new items, using as little foot print as possible. Normally I wouldn't use such a function but I challenge anyone to come up with a better solution that is smaller, or uses less clicks to add items. ALSO I used a cluster because my arrays are not the same size so a build array function would cause wrong data (without the added code to know the size the output should be) which I don't need to worry about with a cluster.
  17. Okay so build array and index won't work for arrays, but build cluster and select will work. Don't let me detract from the work you did. I have yet to make an XNode from scratch and what you learned can be valuable knowledge. I just won't be using your XNode is all.
  18. No recommendations but I did want to comment on number 3. Outlook doesn't throw any RSS feeds into your inbox. They have an RSS Feeds folder, then under that is a folder for each feed. I also wasn't aware that Google Reader was going away. I set it up a few years ago and used it off and on but I didn't like the way it did a few things so hardly used it.
  19. Seems neat, so how is this different than a build array and index?
  20. Your code makes me sad. I've seen worst code before but your code should be cleaned up and documented before your project is complete. First issue you will run into is the fact that your DAQ card is probably not a simultaneous sampling card. So when you tell the card to read 1000 samples on two channels, it will read 1000 samples on one channel, then 1000 samples on the next channel. So your samples will not be taken at the same time, and your phase will not be correct because by the time you are done taking 1000 samples on the first channel, the second waveform will have changed. If you are taking measurements at the same time then this isn't an issue but many DAQ cards don't support this. Have you tried graphing the two signals you read? This may help in seeing why the phase calculation is not what you expect. Attached is a VI that calculates the phase difference between two signals using the same technique you have and it gives the correct results even with noise. Signal Phase.vi
  21. I know the original issue has been solved but an alternative to polling for changes is using the System.IO.FileSystemWatcher class. http://forums.ni.com/t5/LabVIEW/execute-vi-when-a-certain-file-is-in-a-certain-directory/m-p/397763?view=by_date_ascending#M198073 This VI can be modified to have file changes on a single file.
  22. Great suggestion. Won't work in my case but thanks. In my scenario (which I probably should have mentioned) I'm envisioning a time when a VI could be shown in a floating window, or in a subpanel. When it is in a subpanel I would remove the menu bar (so it looks more like part of the main VI), and then have some other mechanism to run the menu bar from the main VI, possible through a right click menu. When the menu bar isn't being seen (and in a subpanel) the Alt + F method (for file) doesn't work. I can of course catch the event of a separate right click menu and show the same options as a menu bar, I just thought if there is a way from the Main VI to call the menu item of the VI in a subpanel then no extra code would be required.
×
×
  • Create New...

Important Information

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