Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation


About JimboH

  • Rank
  1. Thanks all for the feedback. I haven't changed the default buffer size yet so I'll give that a try: http://digital.ni.com/public.nsf/allkb/D5AC7E8AE545322D8625730100604F2D I'm also doing minimal processing (read a couple of bytes and conditionally throw onto a queue) in addition to the packet splitting, so I hadn't split it up yet into separate read and split loops but I'll try that next. After some brief web searching it wasn't immediately obvious if there was some system way to detect buffer overflow. I'll probably just do some testing and convince myself that at high rates exceeding my
  2. Way to read the documenation! Thanks. I'm not sure how to improve the reading I have. I've tried two options: 1) Processing an entire "read" and concatenating a partial packet (if it exists) to the next read 2) Implementing a circular buffer. The first was a lot simpler but performance was not great. The second was much more difficult and I didn't see much performance gain (if any). I think it is likely due to memory copying that isn't immediately clear to me. Ideally I would only have one fixed space in memory that I am ever working with for all packets, in addition to the memory generate
  3. I am not. There is no error input to the first udp read. The second udp read has an input but I clear the error if it is 113. However, I never get to the second udp read because the first udp read is always empty and I have a case structure around the second one in which it doesn't run if the first one returns no data.
  4. Hi all, Thanks so much for the help. I had some errors in my implemenation (U8 vs I32) and bytes vs quadlets (bytes*4). After fixing them the problem remains. I wasn't sure of the error off hand, but I confirmed it is 113. Unfortunately ignoring it seems not to work as there is simply no data returned. My guess is this is a Labview implementation that if this error occurs it chooses to retain the data for a subsequent read rather than require concatenation. This error occurs on the first read. I thought it might be a startup issue but on subsequent read loops I still get nothing.
  5. Hi all, I had a couple of questions related to reading udp packets in Labview. I am receiving 100 - 200 Mbps of variably sized packets. The first byte in the packet specifies its size in bytes*4. 1) When I perform a read, I have no idea how much data to request, so I set an arbitrary size. It seems in doing this that I am getting multiple packets together and that I subsequently need to parse the data into packets after reading. Doing so seems to slow down the machine a bit and I'm nervous I'm dropping packets (see next point). I also tried reading only 1 byte, then reading X number of byt
  6. I'd also be interested in any coding standards that people want to share. Some thoughts that I don't believe have been covered: - using required inputs on subvis where appropriate instead of leaving as recommended - use of typedef controls - removing the default from a case structure
  7. Thanks. I figured it out.
  8. Thanks for the reply. I have those vis as well. As perhaps the first comment on that page indicates, what I am looking for is lacking in that set of libraries. I was really hoping someone might have the files in their local collection ...
  9. I hadn't seen that vi, although there is this one as well http://zone.ni.com/devzone/cda/epd/p/id/3711 Neither vi demonstrates windows selection. I have an API which doesn't expose passing in a particular value to a program. Instead their code does allow a prompt in which you can type the value. To do this you need to first get the handle to the window, which is what that library helped with. I've found a couple of forum posts on the library, but the links are dead.
  10. Hi all, There had been a library floating around for a while called SendKey.llb. Does anyone have a copy of it that I could use in LV 2009? I am trying to get a handle to an open window and send some keys to it. Thanks, Jim
  11. Todd, Thanks for the reply. It seems your suggestion only modifies the library, not the vi on disk. I realize that sometimes that behavior is desirable (library mod only) but is there not an option which does both? Thanks, Jim
  12. I've been using Labview for 6 years now for research and one of the most confusing things for me is how code is supposed to be managed. I have been using Tortoise SVN with folder organization but with things getting more complicated I am starting to wonder what the "right" way of doings things is. I've looked through a variety of posts and official documentation and haven't found what I am looking for (or haven't realized it was what I needed). I'm using LV2009 32 bit, JKI TotoiseSVN Tool (demo), Tortoise SVN 1.7.6, Win 7 x64, and have little interest in actual code deployment. Fe
  13. I am using the acrobat reader activeX server in an activeX container and upon quitting the vi the activeX container does not return to design mode. Since the activeX container is still running it still handles things like right click events, not allowing me to switch to design mode. I am using Labview 8.2. Is there another way to force the activeX container to design mode? Thanks. Oops. I just realized that if I select design mode before running the vi, the container would return to design mode afterwards.
  14. I've noticed that tables, at least in 8.2, allow "unlimited" scrolling with the mouse scroll wheel, and keep scrolling down to new areas of the table. I've noticed that listboxes don't have this "feature" and I'm considering switching over to using them. Before I do I was wondering if it is possible to disable this feature, so that I can still scroll with the mouse wheel (or perhaps not, but still scroll with the mouse), but limit the scrollbar so that it doesn't scroll into areas bigger than the content of the table itself.
  15. I understand the double precision comparison problem and thank you for the suggestion, I was just curious if that was exposed at all in the menu ring as it would seem that Labview might consider double precision comparison a problem and have something built in to compensate. Otherwise the suggested solution seems to be that I need to iterate through all of the values in the menu ring, find the one that is closest, and then set the menu ring to be that close value of the menu ring that nearly matches my input.
  • Create New...

Important Information

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