Skip to main content

ProGlove documentation

Worker Feedback

The Worker Feedback feature allows you to trigger predefined feedback sequences on a connected scanner. A worker feedback sequence combines visual (LED), audio (buzzer), and haptic (vibration) cues to deliver a unified notification experience.

Use worker feedback to inform operators about specific workflow events — such as successful scans, errors, or other task-related notifications — improving process clarity and reducing errors on the floor.

Default worker feedback implementation

To send a worker feedback command to a connected scanner, use the triggerFeedback() method from the PgManager.

The feedback type is defined through PgPredefinedFeedback, which supports the following options:

  • PgPredefinedFeedback.Success

  • PgPredefinedFeedback.Error

  • PgPredefinedFeedback.NeutralYellow

  • PgPredefinedFeedback.NeutralPurple

  • PgPredefinedFeedback.NeutralCyan

PgCommandParams() is an optional parameter that can define additional command behavior, such as queue handling.

IPgCommandResult defines two callbacks:

  • onSuccess() – called when the feedback command was successfully executed.

  • onError(error: PgError) – called if an error occurs while sending the feedback.

Example implementation:

PgManager.triggerFeedback(
  command = PgCommand(
    commandData = PgPredefinedFeedback.Success,
    commandParams = PgCommandParams()
  ),
  callback = object : IPgCommandResult {
      override fun onSuccess() {
        // Handle successful feedback execution
      }
      override fun onError(error: PgError) {
        // Handle feedback execution error
      }
  }
)
Specific worker feedback examples
Success

A positive feedback typically used to indicate a successfully completed operation.

  • LEDs: Green, 1 short blink.

  • Vibration: 1 short.

  • Sound: 1 short beep.

// Creating new PgCommandParams setting the queueing behaviour
val pgCommandParams = PgCommandParams()
// Creating SUCCESS predefined callback
val successPredefinedFeedback: PgPredefinedFeedback = PgPredefinedFeedback.Success
// Wrapping the feedback data in a PgCommand with the PgCommandData
val triggerFeedbackCommand = PgCommand(successPredefinedFeedback, pgCommandParams)
pgManager.triggerFeedback(
    command = triggerFeedbackCommand,
    callback = this
)
Error

A negative feedback used to signal a failure or workflow error.

  • LEDs: Red, 3 short blinks.

  • Vibration: 3 short vibrations.

  • Sound: 1 short + 1 long beep.

// Creating new PgCommandParams setting the queueing behaviour
val pgCommandParams = PgCommandParams()
// Creating ERROR predefined callback
val errorPredefinedFeedback: PgPredefinedFeedback = PgPredefinedFeedback.Error
// Wrapping the feedback data in a PgCommand with the PgCommandData
val triggerFeedbackCommand = PgCommand(errorPredefinedFeedback, pgCommandParams)
pgManager.triggerFeedback(
    command = triggerFeedbackCommand,
    callback = this
)
Neutral Yellow

A neutral feedback often used to mark a custom event or state.

  • LEDs: Yellow, 4 short blinks.

  • Vibration: 2 short.

  • Sound: 2 short beeps.

// Creating new PgCommandParams setting the queueing behaviour
val pgCommandParams = PgCommandParams()
// Creating NEUTRAL_YELLOW predefined callback
val neutralYellowPredefinedFeedback: PgPredefinedFeedback = PgPredefinedFeedback.NeutralYellow
// Wrapping the feedback data in a PgCommand with the PgCommandData
val triggerFeedbackCommand = PgCommand(neutralYellowPredefinedFeedback, pgCommandParams)
pgManager.triggerFeedback(
    command = triggerFeedbackCommand,
    callback = this
)
Neutral Purple

Another neutral feedback variant, typically used for custom workflow signaling.

  • LEDs: Purple, 4 short blinks.

  • Vibration: 2 short.

  • Sound: 2 short beeps.

// Creating new PgCommandParams setting the queueing behaviour
val pgCommandParams = PgCommandParams()
// Creating NEUTRAL_PURPLE predefined callback
val neutralPurplePredefinedFeedback: PgPredefinedFeedback = PgPredefinedFeedback.NeutralPurple
// Wrapping the feedback data in a PgCommand with the PgCommandData
val triggerFeedbackCommand = PgCommand(neutralPurplePredefinedFeedback, pgCommandParams)
pgManager.triggerFeedback(
    command = triggerFeedbackCommand,
    callback = this
)
Neutral Cyan

A neutral feedback used for informational or custom process events.

  • LEDs: Cyan, 4 short blinks.

  • Vibration: 2 short.

  • Sound: 2 short beeps.

// Creating new PgCommandParams setting the queueing behaviour
val pgCommandParams = PgCommandParams()
// Creating NEUTRAL_CYAN predefined callback
val neutralCyanPredefinedFeedback: PgPredefinedFeedback = PgPredefinedFeedback.NeutralCyan
// Wrapping the feedback data in a PgCommand with the PgCommandData
val triggerFeedbackCommand = PgCommand(neutralCyanPredefinedFeedback, pgCommandParams)
pgManager.triggerFeedback(
    command = triggerFeedbackCommand,
    callback = this
)
Best Practices
  • Use Success and Error feedbacks for clear user confirmation in time-sensitive workflows.

  • Use Neutral feedbacks for custom or informational signaling without interrupting task flow.

  • Combine with the command queue feature to control execution order and priority if multiple feedbacks are triggered in short succession.