Jump to content

asbo

Members
  • Posts

    1,256
  • Joined

  • Last visited

  • Days Won

    29

Everything posted by asbo

  1. I thought you might be able to track the combo box's enter/leave events and use that to dictate logic in the tab control leave event, but the combo dropdown itself doesn't re-establish the bounds of the control and when you mouse to select something in the list, LabVIEW still registers the combo leave event. You could instead track mouse down events on the combo box, but that becomes messy when you need to figure out if the user clicked off the combo box somewhere (anywhere) else.
  2. If I recall, you'll want to watch for at least the WM_CLOSE event, but there are a couple other system-level ones (WM_SHUTDOWN?) that might be prudent as well. MSDN has good documentation on this... somewhere. Here's the post that link was referencing: http://lavag.org/top...ueryendsession/. Keep in mind that WM_QUERYENDSESSION is *only* for system shutdowns, which is one of several ways an application can be asked to terminate.
  3. Does it require you to install a tool, a bit like the integration toolkit used by Microsoft VPC? IIRC, VMWare has something akin.
  4. You make an excellent point. My inclination would probably be a product of the duration of these tests - if we're talking on the scale of single-second operations, a parallel pattern probably isn't going to pay out (to development and debug time) unless you have a non-trivial number of tests which can all equally be run independently. My mind still draws to the hardware example MikaelH gave, have you used this pattern before on a software-only routine or is it just thought-play?
  5. I have not specifically used LV in a *nix virtual machine, but as a warning VMs tend to make direct hardware access difficult or impossible, in case you were planning to run DAQ/Vision/etc.
  6. I should be more conscientious than I am If you have Office 2010, I noticed that Internet-originating files are automatically sandboxed by the suite.
  7. I think it's an interesting accessory to the bag of tricks, but like ShaunR don't tend to have situations where there are several generic possibilities to solve an error. Either I'll know the details of the proceeding functionality and can specifically handle the outcome, or I don't know enough and consider it a cancel/abort/stop action. That's not to say it doesn't have utility in discovery-esque scenarios, like Mikael describes. In fact, I think it's the only sane, scalable way to tackle such a problem. I don't often find myself in the situation that Norm describes in the original thread with several difference references types, but I think it's an acceptable solution in situations where you're trying to maximize reuse and minimize redundancy.
  8. You should update your profile, which says you are using LabVIEW 7. You posted the VI in LV2011.
  9. Of course, I was only joking - please, no one go out and use software you don't understand the license to.
  10. It doesn't appear to have structured event/messaging capability, but check out the LabPython extension - at the very least, it will let you get/set variables within your Python session.
  11. No attachment, but here's how I would do it: use a producer loop to read the serial port (the Bytes At Port property may come in handy) which will message a consumer/GUI loop when (an) EOL character(s) is detected. That way, the GUI doesn't know about any incoming data until you've qualified it as "ready" to display. The downside to this is that the application may appear unresponsive while it's waiting for a complete response from the device.
  12. Have you compared application instances? I'm not sure if you're using a particular (Windows-specific) definition for memory space or application space, but my understanding of named queues is that the look-up is bounded by LabVIEW's concept of application instances and my presumption would be that these cannot span different processes or working sets.
  13. If you make your change backward compatible, get a hold of Norm and see if he'll incorporate it into the package.
  14. Having only gleaned a little from the VIs names, I presume it uses string/token-based analysis to validate the strings as an IP address. There exists the the "String to IP" and "IP to String" LabVIEW nodes, I wonder if these would be faster to use for IPv4 addresses? There may be OS-specific calls which are faster, In general, though, I think that these would be helpful only in data validation scenarios, rather than actual networking scenarios - if you plug in an ill-formed address, the networking node will return the correct error and you should handle it downstream. Also, your IPv6 reference link got mangled.
  15. To be honest, I'm not a master of license interpretation either (isn't it better to ask forgiveness than permission? ). I meant for you to see how someone else has done it, maybe to give you an idea of how to approach your problem. You might contact ShaunR directly to see what his take is on your circumstance.
  16. Indeed, Chrome 16 definitely does this (it's what I'm using) and I think Firefox was the first browser I used to have it, back around 3.x. I think even IE has hopped on the bandwagon by now (8.x or 9.x). But to directly answer the question, I don't remember seeing a spell-check option either; not that I ever had to look for it...
  17. I guess it wasn't clear you weren't referring to usability of the code. There is no issue with building an executable on one version of Windows and running it on another, so long as the bitness (x86 vs x64) and LV runtime versions matches. In both cases, the program won't try to execute if it doesn't have the correct prerequisites. The issues we were discussing have more to do with the practical question, "Will code I write on a Win7 PC always work on a WinXP PC?"
  18. And more importantly, you can show us what you've tried, discuss why it doesn't work, etc... Questions like, "How do I process this object in Vision?" are fairly vague and unlikely to get the kind of answer you're looking for ... mostly because you haven't sent anyone a purchase order yet.
  19. If you can access the application data folder fine, why did you move the application as well? I ask because I feel that applications burrowing into my root folder is messy and crude. Granted, on test PCs this rarely matters. Additionally, if your application configuration does not explicitly need to be accessible by all users, an application will always have write permissions to the user's My Documents folder (unless it's been deleted, of course, but I've never seen this in practice).
  20. It's not a set of rules, but I know that ShaunR released a tool on the LAVA CR aimed to do comprehensive localization. It and the relevant discussion might be useful to you - it's called Passa Mak and if you search the forums you should find a few more mentions of it.
  21. I believe this is simply NI standard. For example, if you right-click an array, under the Data Operations menu, you get the choice Insert Element Before. Similarly, in the Edit Items property pane of a Ring control, the Insert button adds an item before the currently selected item. I agree it's not very intuitive, but it's something you grow accustomed to. You could probably wrap the Item Add VI to correct this without much trouble.
  22. If I'm doing maintenance to code that wasn't mine originally, I'll either leave a dated, initialed comment describing the change, a DDS with the new and old version, or a combination of the two. When developing, I'll often use the DDS as a sort of temporary version control, showing other attempts at functionality, but typically once I get things working satisfactorily I wipe them all out. I agree with Darin's notion that the occasions where old and new code sizes align is rare, so this is part of why I tend not to leave them.
  23. I agree with Tim_S. It's unclear to me, though; are you using the Allocate...Stack function or is this just an example of deprecation? If the former, what is Microsoft's official recommendation for its successor? In any case, if all of your functionality works on all the platforms you want to support *right now* then I'd write the code and call it a day. No point in coding circles around a problem which may never come to be. To identify a Web Server port, issue a HEAD request and see if you get a valid HTTP response. There may be a built-in way to do this, but this is what came to mind. To identify a VI server, use the Open Application Reference node and see if the node does not return an error. If you cannot test from LabVIEW, I don't know what else you can do.
  24. What interface do you have to the microcontroller? If it's UART-based, that's easily implementable with VISA. I'm not sure if I should intuitively know what parameters you're measuring, but what those are will depend on what measurement hardware you'll need - DMM/analog input/whatever. I'm not sure exactly where your algorithm fits in either, but you may have to write your own implementation for the tuning. You can generate your input signals with a programmable power supply or signal generator.
  25. You're going to have to be more clear about what "doesn't work" means. Do you mean that the popup loop exits prematurely, so you never have an opportunity to press the popup button? If you're just waiting for a button press and a boolean state change, an event case might be a better fit. Note that even in this case, the popup can only be generated once. I added the Main Loop's stop button to the timeout case to allow the VI to complete properly.
×
×
  • Create New...

Important Information

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