Jump to content

Tim_S

Members
  • Posts

    873
  • Joined

  • Last visited

  • Days Won

    17

Everything posted by Tim_S

  1. I'm not familiar with what you are doing, so it's difficult to say if that's correct or not. Have you tried the code to see if you get the same behavior? Have you tried a simple VI to do just the AO you want to occur?
  2. Oops... missed that. Sorry, need more caffeine this morning.
  3. Have you looked at the example "Voltage - Finite Output.vi" ?
  4. You can request 0 elements from the DMA to obtain the number of elements waiting.
  5. Have you looked at the example "DMA Multichannel Acquisition - cRIO"?
  6. What do the objects look like to your camera? All cameras pick up more infrared than our eyes do. Some cameras also pick up ultraviolet. Have you tried looking at the greyscale image? The camera may show the distinction between the roller and belt quite clearly where our eyes do not.
  7. Anything you can do to reduce ambient light and just use the light source you've set up will help. Ask the camera and light supplier to bring in different models and types of lights; my experience is they carry around a bag of different light sources if not a couple of different cameras as well.
  8. I would recommend using a lawyer if you wish to pursue working with them. That could get quite expensive depending on what you want the lawyer to do. I expect that the lawyer can write up some standard contract "boilerplate" text for a fairly reasonable fixed fee; that may be sufficient for your needs with future customers as well. Of course, a lawyer can also review contracts that could be highly detrimental to you as well.
  9. Yes, including the subVIs. The VI you're trying to load will be broken (not able to run) if anything the VI uses (or subVIs, subVIs of subVIs, etc., use) is missing.
  10. I believe you are seeing expected behavior. To load from a source distribution, you have to include all files needed. By excluding, you are telling the source distribution build that those files are not needed. The files would have to be already present on the target system in the expected or findable location (such as user.lib if you're loading from the development environment) for this to work.
  11. Yes, this hierarchy keeps you from crosslinking between packed libraries and source code, so no conflicts. You can do this for multiple levels/ layers, but you have to make sure you don't loop backwards. LibA can use LibB and LibC, but you have problems when LibC tries to use LibA. Whatever you are compiling must not depend on something you're going to compile later.
  12. You have the right articles for building a plugin to be used in an executable. I recommend using packed libraries for this. To do this, you would have to: Design your base "Parent" object in its own project. Build a packed library containing the parent object. Design your executable in its own project using the parent object in the packed library. Use the method described in the articles to load the plugin at run-time. Design your plugin in its own project using the parent object in the packed library. Beware of linking to the source of the parent object in the executable or the plugin; this will create conflicts. The best way to eliminate the conflicts is to move the source code out to Never-Never-Land where the project won't find it, then load the project and start cleaning up the conflicts.
  13. I don't have LV2013 installed, so I'm going on your text and the link. I have something similar to the case you're describing. My use case is where "LibC" is a record object, and LibA and LibB are different types of plugins to the system. I think I avoided the issue you're having as my design uses a queue to talk between LibA and LibB. The typedef of the queue is not contained within LibA or LibB and only contains simple data types (string, boolean, numeric...). I see two options for you: 1) evaluate your code's design and look at what needs to be where, or 2) merge LibA and LibB into a larger conjoined LibAB as the article you linked to suggests.
  14. As a note, clicking the stop button won't stop your VI until some other event occurs. If I understand what you're trying to do, you want to cause any double-clicks on a row to edit the "Control" column? If that's the case, you can change the column of the cell position to always be the control column. There is a little more than that, so make sure to read the help for the Edit Position property.
  15. I'm finding a property (LV 2012) called "Housing Size" that could be used with the position to determine the slider area versus the scale area. I don't see an equivalent method to map the click coordinates to a numeric value.
  16. I put it in a single VI as a constant and wire that to an indicator (equivalent of a global). My adversary is the equivalent of "keeping out your little sister". I have user name, password and permissions for people who are generally honest people in the first place. I'm not working with government/corporate secrets or preventing people from destroying the world, so this works fine. I have more problems with operating system security where (the more benign) people want to go check out facebook or email and install games.
  17. OK, I understand your question now. Yes, you can have app2 initiate a TCP connection and leave it open. app1 just has to listen for the connection. Either side can write to a TCP connection once it's open. The connection will stay open so long as nothing breaks it. The client will have to poll for new data... there isn't a way around that with communication.
  18. You need the IP to create a TCP connection (which is what I assume you want). You can broadcast a message over UDP from app2 to app1; this is like shouting "I am here!" over the network. That broadcast can provide the IP to 'register' app2 with app1.
  19. As for the sending of objects, I've sent objects over TCP using Flatten to String in LabVIEW 8.6. I had to send the size of the flattened object string before sending the flattened object for it to work as there wasn't a termination character I could use.
  20. The best way I've found to reduce the penalty is to incur it at start-up of the system when I've put everything into lookup tables (I've use variants for this). Start-up occurs infrequently in the systems I'm working with (every 6 months?), so the hit to production is minimal.
  21. I don't have LV 2013 loaded, so I wasn't able to open your example. The first thing that comes to mind is to look at the frequency contents using a FFT. Tim
  22. LabVIEW only permits adding front panel object when editing. People have worked out alternative methods of changing the user interface such as the above suggestions.
  23. Rather than replacing the controls, you may be able to get what you're looking for with something like the Boolean XControl (http://lavag.org/files/file/34-boolean-xcontrol/).
  24. I have a Win7 laptop with i7 with 8GB and a 240 GB SSD. The machine boots up very nicely and has excellent performance for having a virtual machine open. We're using the native virtual machines, which are adequate for what we need. I keep most of the virtual machines on an external USB drive as each one can take up quite a bit of space. I would rather have at least 1TB as 240 GB really isn't enough space. The only other issue I've run into is having two virtual machines running (hibernating counts as running) will crash Win7; I don't know if this is an issue with Win7, Bitlocker, the standard configuration from IT, etc.
×
×
  • Create New...

Important Information

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