Interface Feeder

    • Method Detail

      • isEnabled

        boolean isEnabled()
        Return true is the Feeder is currently enabled and can be considered in Job planning.
        Returns:
      • setEnabled

        void setEnabled​(boolean enabled)
      • getPart

        Part getPart()
        Get the Part that is loaded into this Feeder.
        Returns:
      • setPart

        void setPart​(Part part)
        Set the Part that is loaded into this Feeder.
      • getPickLocation

        Location getPickLocation()
                          throws java.lang.Exception
        Gets the Location from which the currently available Part should be picked from. This value may not be valid until after a feed has been performed for Feeders who update the pick location. The location Z might mean part underside or part surface, depending on the feeder type, as determined by isPartHeightAbovePickLocation().
        Returns:
        Throws:
        java.lang.Exception
      • isPartHeightAbovePickLocation

        default boolean isPartHeightAbovePickLocation()
        Returns:
        True if the part height needs to be added to the pick location. The distinction is needed for part height probing
      • getJobPreparationLocation

        Location getJobPreparationLocation()
        Some feeders need preparation for a Job that is best done up front and in bulk, such as vision calibration, actuating covers, checking OCR labels etc. Some prep requires the head moving to the feeder. For efficiency the JobProcessor uses a Travelling Salesman algorithm to visit all these feeders. The locations for these visits are gathered using getJobPreparationLocation().
        Returns:
        The location for the feeder Job preparation visit or null if none.
      • prepareForJob

        void prepareForJob​(boolean visit)
                    throws java.lang.Exception
        Prepares a Feeder for usage in a Job. This is done for all the feeders that are enabled and contain Parts that are used in pending placements. Preparation is done when the Job is started, so it can perform bulk initialization that should not be postponed until the Nozzle.feed()
        Parameters:
        visit - true for visits along the getJobPreparationLocation() travel path, false for general preparation (second pass for visited feeders).
        Throws:
        java.lang.Exception
      • feed

        void feed​(Nozzle nozzle)
           throws java.lang.Exception
        Commands the Feeder to do anything it needs to do to prepare the part to be picked by the specified Nozzle. If the Feeder requires Head interaction to feed it will perform those operations during this call.
        Parameters:
        nozzle - The Nozzle to be used for picking after the feed is completed. The Feeder may use this Nozzle to determine which Head, and therefore which Actuators and Cameras it can use for assistance.
        Throws:
        java.lang.Exception
      • postPick

        void postPick​(Nozzle nozzle)
               throws java.lang.Exception
        Throws:
        java.lang.Exception
      • canTakeBackPart

        boolean canTakeBackPart()
      • takeBackPart

        void takeBackPart​(Nozzle nozzle)
                   throws java.lang.Exception
        Asks the feeder to take back the part currently on the nozzle.
        Throws:
        java.lang.Exception
      • getFeedRetryCount

        int getFeedRetryCount()
        If feed() throws an Exception during job processing, the job processor will retry the feed() call this many times before raising the error.
        Returns:
      • getPickRetryCount

        int getPickRetryCount()
        If post pick checks such as isPartOn() fail during job processing, the job processor will retry the pick and check process this many times before raising the error. Note that this does not include re-feeding the part.
        Returns: