Jump to content

infinitenothing

Members
  • Posts

    362
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by infinitenothing

  1. You might have to show us some pictures. It sounded like you had some edge detection which should give you points that make a circle on the edge of the cylinder. You can use a circle fit to get the radius which will give you an area. If you need, you can take an average inside the circle to get the height of the cylinder.
  2. Something like this?: http://zone.ni.com/reference/en-XX/help/370281P-01/imaqvision/imaq_fit_circle_2/
  3. Any sort of inter-module communication will have certain messages that you want to get across regardless of the error.
  4. I don't think you attached code as you had intended but have you considered putting a case structure in your <0.6 case that would trigger in a range. You could use the "In Range and Coerce" function and wire the "In Range?" output to the inner case selector.
  5. Relevant idea http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Visual-indication-that-VI-will-run-even-on-error/idi-p/1587044 At the very least it should be in the context help when I hover over that terminal.
  6. Yeah, I've seen it mutate even without changing platforms. They are delicate.
  7. I tried this in 8.6 and I got the same behavior. Not sure what's up with 2009.
  8. I'm not sure where this is documented but it's pretty consistent. Here's a simplified diagram showing this behavior with a numeric. If you wire the indicators to the connector pane, they get defaulted at the end of the run.
  9. The distinction was where they were implemented. If the memory is implemented higher up, its easier to unit test the lower level VIs.
  10. No. Something happens after the false case runs. The VI returns default data for all its unwritten indicators. The moral of the story is to not use controls or indicators as memory storage. The preferred memory storage unit is a shift register in the test vi. A feedback node in the subVIs is the next best thing.
  11. Maybe explain how you fixed it for future visitors. https://xkcd.com/979/ You might phrase it differently. It's hard for us to think from the perspective of someone that's lost.
  12. Why? Doubtful. Did you try what I suggested above?
  13. And since you don't have type safety, if you have multiple state machine threads, you have to be careful to keep your queues straight and not send your message down the wrong pipe.
  14. Wait for a "C" from the receiver and then run "Xmodem Send.vi"
  15. Did you see how I was trying to stop it? The front panel reference dies when you close the probe and the property node throws an error.
  16. Something like this but with better reference handling?
  17. What happens when you threshold your "edges" image? Can you just use particle analysis to "fill holes" on that img? Alt path: It looks like a regular threshold should work on your ROIs if you manually select the threshold right? Maybe do an erosion to get rid of the small particles? If that's the case maybe you can find some safe areas where you know there won't be any white? The corners maybe? Use that to set your threshold.
  18. Can you tell us a bit more about what your desired measurement is? Are you just trying to get the area of the white stuff? Usually, you want to make this work as easy as possible for the software (crap in crap out principle) so you want to control the lighting and have a fixed ROI. Secondly you might want to use an auto threshold method so that it dynamically changes if the lighting control isn't perfect. Third, you'll notice the top of your image is much darker than the bottom. Your eyes are really good at subtracting shadows. Here's an example illusion based on that effect. You'll need have a different threshold for different parts of the image (preferably a gradient) to compensate for this.
  19. Since you're facing a "cosmetic" issue, string manipulation seems OK. If you need rounding, you'll have to get really clever and maybe count how many characters exist to the left of the decimal and use number to fractional string.
  20. Maybe the dev board is talking TTL levels and you need a level shifter? Something like this: https://www.sparkfun.com/products/449
  21. Do you have any extra channels? Just throw two in parallel and sum the currents* *Warning, following electronics advice from random internet patrons may blow up your equipment
  22. You need to convert your array to a list of coordinates and pass it to the linear fit function.
  23. Is there a reason to use named queues? If I ever want to grab a reference to a queue without a wire, I just call a non-rentrant VI that looks like the attached code The advantages are: One place to setup queue size No typos Can output multiple refs What are the advantages of a named queue? Dynamic queue selection Anything else?
  24. What do you mean by "it times out"? What's timing out? what soft of rate do you want from your top VI? What's the motivation for separating the loops?
×
×
  • Create New...

Important Information

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