Interface PeripheralController

All Superinterfaces:
Lifecycle

public interface PeripheralController
extends Lifecycle
Provides high-level methods for the system to control a peripheral device.
  • Method Details

    • process

      void process​(@Nonnull PeripheralJob job, @Nonnull PeripheralJobCallback callback) throws java.lang.IllegalStateException
      Lets the peripheral device associated with this controller process the given job. The callback is used to inform about the successful or failed completion of the job.
      Parameters:
      job - The job to process.
      callback - The callback to use.
      Throws:
      java.lang.IllegalStateException - If this peripheral device associated with this controller cannot process the job.
    • abortJob

      @ScheduledApiChange(when="6.0", details="Default implementation will be removed") default void abortJob()
      Aborts the current job, if any.

      Whether a job can actually be aborted depends on the actual peripheral/job semantics. The callback for the current job may still be called to indicate the job has failed, but it is not strictly expected to. The kernel will ignore calls to the callback after calling this method.

    • canProcess

      @Nonnull ExplainedBoolean canProcess​(@Nonnull PeripheralJob job)
      Checks if the peripheral device would be able to process the given job, taking into account its current state.
      Parameters:
      job - A job that might have to be processed.
      Returns:
      An ExplainedBoolean telling if the peripheral device would be able to process the job.
    • sendCommAdapterCommand

      void sendCommAdapterCommand​(@Nonnull PeripheralAdapterCommand command)
      Sends a PeripheralAdapterCommand to the communication adapter.
      Parameters:
      command - The adapter command to be sent.