Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feeder Exceptions are Swallowed in Job Processing #398

Closed
vonnieda opened this issue Jan 2, 2017 · 0 comments
Closed

Feeder Exceptions are Swallowed in Job Processing #398

vonnieda opened this issue Jan 2, 2017 · 0 comments

Comments

@vonnieda
Copy link
Member

vonnieda commented Jan 2, 2017

The doFeedAndPick() method in the ReferencePnpJobProcessor has a bug where it swallows the Exception of the last feeder attempted. The feed loop should:

  1. Search for an enabled and compatible feeder.
  2. Attempt to feed the feeder, retrying the configured number of times if it fails.
  3. If the feeder fails to feed, store the last exception for later.
  4. If there are more enabled and compatible feeders, loop back to step 2.
  5. If all attempts have failed throw the stored error if one exists, or a generic error saying no feeders found.

Currently all but the storage of the last exception works. This was just left out.

The use case for this system is where you have multiple feeders for the same part. One of them becomes empty, so we automatically move on to the next. When all are empty we want to show the user the last error, which will have been "Feeder N is empty."

This bug is blocking the feeder slot system in #344

References:

@vonnieda vonnieda removed the ready label Jan 3, 2017
vonnieda added a commit that referenced this issue Jan 7, 2017
* develop: (97 commits)
  Adds a new ScriptRun CvPipeline stage that allows for custom programming of CvPipelines.
  Rearranged baclash fields a bit to clean up the GcodeDriverWizard.
  made textfields a bit more narrow
  moved form elements into two grid rows
  documentation
  form and keyword fixes
  more blackslah compensation GUI process - still need to fix form
  Fixes #398: Feeder exceptions are no longer swallowed during job processing. When reporting there are no feeders available, if a feed was previously attempted we store the error and forward it on.
  minor fix for NaN cases
  initial slack compensation experiments
  Trace open cv camera properties on initialize to make it easier to debug issues with this feature.
  Added a button to read the current property value on the open cv camera wizard.
  Adds support for setting opencv camera properties. Fixes #328.
  Testing setting camera width and height before and after open to see if it helps with #395.
  Added links to documentation in Help menu.
  Added support for boolean actuators in ReferenceAutoFeeder. Added support for post pick actuator in ReferenceAutoFeeder. Added post pick support to Feeders tab pick operation. Updated CHANGES.md for recent changes.
  Remove accidental import.
  Adds "Check For Updates..." menu item in Help menu. Fixes #391.
  Fix git config which was breaking api doc uploads.
  ReferenceCamera changes to fix performance issues in #392 and infinite loop: Added safeInternalCapture() which has retry on null images and returns a default image on failure, guaranteeing we never see a null image. While loops on getWidth(), getHeight(), and capture() replaced with safeInternalCapture()
  ...
vonnieda added a commit that referenced this issue Feb 7, 2017
* develop:
  Update changes for previous commit.
  Add a new scripting example that searches board locations for a QR code and disables the board in the job if any are found. Add the zxing barcode libarry to the distribution. Add a simple qr code read function in VisionUtils to make it easier to read a barcode.
  Added a warning about using the loose part feeder.
  Reformat before attempting to merge additional changes.
  Commit some of the changes from frantz's branch: * Adds GrabCut stage. * Improves MaskHsv to allow interior or exterior ranges. * Added MaskRectangle stage.
  More cleanup.
  Cleaning up old trash.
  Adds a new ScriptRun CvPipeline stage that allows for custom programming of CvPipelines.
  Rearranged baclash fields a bit to clean up the GcodeDriverWizard.
  made textfields a bit more narrow
  moved form elements into two grid rows
  documentation
  form and keyword fixes
  more blackslah compensation GUI process - still need to fix form
  Fixes #398: Feeder exceptions are no longer swallowed during job processing. When reporting there are no feeders available, if a feed was previously attempted we store the error and forward it on.
  minor fix for NaN cases
  initial slack compensation experiments
  Initial version of loose part feeder. Doesn't currently handle angle or pin 1 correctly. Intending to shift to a feature matcher.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant