Jump to content

Phillip Brooks

Members
  • Posts

    899
  • Joined

  • Last visited

  • Days Won

    50

Everything posted by Phillip Brooks

  1. LabVIEW 8 Easter Egg Seemed appropriate to pass along, this might also be worth cross-posting in the LV8 LAVA forum... Posted today, 19 Oct 2005 on the Info-LabVIEW forum; by Stephen Mercer: Easter Egg: A hidden feature of a piece of software, generally something that has no functional impact, just fun visual impact. I happen to like these little hidden corners of a product, provided they take up little to no space on the end user's harddrive. Since I started working at NI, I've put one or two into LabVIEW. But the one I planned for LV8.0 turned out to be a sufficiently good idea that it got documented. If you look at the documentation for the "icon editor dialog box", the last line of the documentation says, "Use the lv_icon VI template in the labview\resource\plugins directory to create a VI with which you can edit VI icons outside of the Icon Editor dialog box." In LV8.0, take a look in the directory labview 8.0\resource\plugins\ There you will find a file called lv_icon.vit. On the front panel of this VI Template are instructions for how to build your own icon editor that will replace the one used in LabVIEW when editing the icons of VIs. There is another file called SAMPLE_lv_icon.vi which is a trivial example of one such replacement icon editor. Just rename that file to be lv_icon.vi and then see what happens when you try to edit a VI's icon in LabVIEW. Have you ever wanted to be able to load your icon in some other piece of graphics software, edit it, and then put it into your VI without cutting and pasting every time you want to edit it? Have you ever thought about just building an icon editor in LabVIEW with features that you like? I saw comments on this mailing list recently about maintaining an icon library. You could write an icon editor that integrated such a library into itself. In short what started out as a project to open a backdoor for creating silly icon editors for an easter egg idea turned into a real opportunity for LV users to improve/change their icon editing experience. This is one of the small features of LV8.0 that most users will never need or want, but I figured some of the gurus on this list might use this feature to great advantage. Pojundery, Stephen R. Mercer -= LabVIEW R&D =-
  2. Pick one, bone-head! :laugh: This is the message I got once when trying to compile a Novell Shell driver using the Netware 2.x (Late 80s). I was specifically trying to create a dialup driver by following the instructions in the manual. There were two dialog options; OK and HELP. I Clicked HELP and saw a duplicate box with OK and HELP. Tried HELP one more time and got "Pick one, bone-head!" :laugh: I reported it to Novell and got an appology letter. Don't know what happened to the programmer, but I imagine in today's environment, one might be let go for that.
  3. It's not the same as a FP group, but you could use a loop with count of 1 or a sequence structure to create a grouping.
  4. I Moved up to 1280x1024 with my new job. The Dell I received has a nice monitor and graphics card, and the legacy code I work with was done on a dual screen 1280x1024 setup (lots of scrolling made me give in). I had created a two tone background image that gave me a 1024x768 rectangle in the upper left of my screen so I could check my front panel size for use on the ATE computer. After attending the LabVIEW Intermediate I&II classes, I found a couple of similar backgrounds on the CD that also left room for the menu bar (assumed bottom) so I use this instead. (See attached) I don't maximize the diagram, I use the extra real estate for the control and tool palettes. The only time I find myself scrolling is when I start getting into ActiveX calls and control references; the size of the property and method nodes don't make things easy.
  5. Image Toolbox by George Zou. http://www.geocities.com/gzou999/gtool.html The diagram have been removed, but the output returns Pixmap data for use in your application.
  6. If your application is already built, it may take some work. Whenever I've needed to load parameters from an INI file, I: 1. Create clusters that contain the variable elements that I need to read/write. 2. Save these as typedef'd controls and use these in my sub-vis. 3. Use the OpenG INI read and write functions to load and store the clusters in INI sections and variables. If a variable is added, you can edit the typedef'd control. This should update anywhere you've placed the control. Don't change the order of your cluster elements, just add elements to the end. By using simple typedefs instead of strict, you can move the elements around within the cluster frame on the front panel without breaking your code; you can even hide elements that you don't need. I generally try not to delete elements from my clusters once I've added them. If your software design process is working, you shouldn't need to make that many changes
  7. I THINK some countries have a requirement that the domain must be hosted in country. Example YOURDOMAIN.co.th (Thailand domain) must resolve to a server located within the borders of Thailand. Otherwise, they can't enforce laws (porn, political, etc). Don't know about the Virgin Islands. How about a domain name like "openg.vi" ?
  8. Anyone ever consider registering a Virgin Islands domain name? ( LabVIEW.VI )?!
  9. Unbundling is used for the Cluster data type. If you are trying to select a specific row or column of your 2D array, then you want to use the "Index Array" function in the Array pallet.
  10. The displayed value includes a character suffix that indicates magnitude; I believe 'p' indicates Positional. http://en.wikipedia.org/wiki/Positional_notation
  11. I agree. It doesn't have to be a blast from a shotgun with both barrels, though. I recently demonstrated the fact that you can expand the Index Array function to someone. He had 12 discreet Index Array functions connected to the same array, with one index input to each. They were indexing elements 0-11. I showed him a "trick" and he nearly fell out of his chair. This is someone who has been programming in LabVIEW for 6 years. He's also fond of globals and locals and sequences that nested 5 and six deep ; he blows up when he can't create a sequence local in my code to move data around. I feel like I've got a good handle on all the features/functions of LaBVIEW (5 years+ I just completed the Intermediate I & II classes) and now need to think at a higher level. Many LabVIEW users are just that; users. If you need to create sequence, then a sequence is what you must use! Sort of like an apprentice tradesman; if the only tool you have is a hammer, then everything looks like a nail!
  12. Could just as easily been titled "How to eliminate vendors based on drivers.
  13. :thumbdown: Well, timed loops are limited to 1 msec resolution when running under windows. You can select 1 MHz clock only with RT; this won't work because I need the DLL. Still thinking....
  14. I will have three A/D channels generating single WORD data running at 1200 Hz each. These will not be synchronized. The channels are enabled and disabled manually, this is a monitoring function I may need to switch hardware and DLL at some pint (this is a VME Single Board Computer), but the alternate DLL offers the same functionality (pointer to a ISH routine). I really don't want to write a wrapper DLL. I might be able to poll using timed loops, I'm evaluating this now...
  15. I have a DLL that monitors hardware. When an defined interrupt occurs, the DLL calls an interrupt handler by way of a pointer to the handler. I need to handle this from LabVIEW. Below is the API documentation for the function. The vmeConnectLM() hooks an interrupt handler when a location monitor is signaled (interrupt occurred). ULONG vmeConnectLM( BYTE LMNumber, // LM number 0-3. ULONG PtrToHandler. // Handler address for the LM INT. ); Parameters LMNumber - The LM number range of 0-3. PtrToHandler - Pointer to a handler to be called when the INT occurs. Return Values Zero, if successful; otherwise an Error Code. Remarks A vmeAcquireInt() API call must be performed before any interrupt can be enabled or disabled. The handler suppose is to be declared as typedef void (*FUNC)(ULONG). If this command is successful, the Location Monitor interrupt specified by LMNumber will automatically be enabled. The parameter passed into the handler will be the LMNumber. How/what can I associate to this DLL function?
  16. If you're just trying to understand LabVIEW, you might check out http://www.iit.edu/~labview/Dummies.html This will help guide you through things like the front panel, block diagram, etc. Good luck!
  17. Well, after reading the comp.lang.labview threads a bit closer, then action engine is really just a "functional global". I've ONLY been using LabVIEW since 5.1, and never been exposed to the LV2 or functional global concept. I understood the concept, but the term "action engine" bothered me. The answer (for me) is here: http://forums.lavausergroup.org/index.php?showtopic=273
  18. I'm involved in a new project where I will be using templates. These templates make use of sub-vis referred to as Action Engines. I've searched various LabVIEW materials, Google and (most importantly) the LAVA Forums. I can't find any references to an Action Engine implementation. It appears that these action engines are passed references to front panel vis and contain uninitialized shift registers. the Actions are enumerated, and current states are returned as outputs. I understand how they work, but where does this term Action Engine com from? I did see a couple of posts on comp.lang.labview regarding action engines.
×
×
  • Create New...

Important Information

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