encoder

package
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 8, 2022 License: AGPL-3.0 Imports: 15 Imported by: 0

Documentation

Overview

Package encoder implements the encoder component

Index

Constants

View Source
const SubtypeName = resource.SubtypeName("encoder")

SubtypeName is a constant that identifies the component resource subtype string "encoder".

Variables

Subtype is a constant that identifies the component resource subtype.

Functions

func DependencyTypeError

func DependencyTypeError(name, actual interface{}) error

DependencyTypeError is used when a resource doesn't implement the expected interface.

func Named

func Named(name string) resource.Name

Named is a helper for getting the named Encoder's typed resource name.

func NamesFromRobot

func NamesFromRobot(r robot.Robot) []string

NamesFromRobot is a helper for getting all encoder names from the given Robot.

func NewUnimplementedInterfaceError

func NewUnimplementedInterfaceError(actual interface{}) error

NewUnimplementedInterfaceError is used when there is a failed interface check.

func WrapWithReconfigurable

func WrapWithReconfigurable(r interface{}) (resource.Reconfigurable, error)

WrapWithReconfigurable converts a regular Encoder implementation to a reconfigurableEncoder. If encoder is already a reconfigurableEncoder, then nothing is done.

Types

type DirectionAware

type DirectionAware interface {
	DirectionMoving() int64
}

DirectionAware lets you ask what direction something is moving. Only used for SingleEncoder for now, unclear future. DirectionMoving returns -1 if the motor is currently turning backwards, 1 if forwards and 0 if off.

type Encoder

type Encoder interface {
	// TicksCount returns number of ticks since last zeroing
	TicksCount(ctx context.Context, extra map[string]interface{}) (int64, error)

	// Reset sets the current position of the motor (adjusted by a given offset)
	// to be its new zero position.
	Reset(ctx context.Context, offset int64, extra map[string]interface{}) error

	generic.Generic
}

A Encoder turns a position into a signal.

func FromDependencies

func FromDependencies(deps registry.Dependencies, name string) (Encoder, error)

FromDependencies is a helper for getting the named encoder from a collection of dependencies.

func FromRobot

func FromRobot(r robot.Robot, name string) (Encoder, error)

FromRobot is a helper for getting the named encoder from the given Robot.

type IncrementalConfig

type IncrementalConfig struct {
	Pins      IncrementalPins `json:"pins"`
	BoardName string          `json:"board"`
}

IncrementalConfig describes the configuration of a quadrature encoder.

func (*IncrementalConfig) Validate

func (config *IncrementalConfig) Validate(path string) ([]string, error)

Validate ensures all parts of the config are valid.

type IncrementalEncoder

type IncrementalEncoder struct {
	A, B board.DigitalInterrupt

	CancelCtx context.Context

	generic.Unimplemented
	// contains filtered or unexported fields
}

IncrementalEncoder keeps track of a motor position using a rotary incremental encoder.

func NewIncrementalEncoder

func NewIncrementalEncoder(
	ctx context.Context,
	deps registry.Dependencies,
	cfg config.Component,
	logger golog.Logger,
) (*IncrementalEncoder, error)

NewIncrementalEncoder creates a new IncrementalEncoder.

func (*IncrementalEncoder) Close

func (e *IncrementalEncoder) Close() error

Close shuts down the IncrementalEncoder.

func (*IncrementalEncoder) RawPosition

func (e *IncrementalEncoder) RawPosition() int64

RawPosition returns the raw position of the encoder.

func (*IncrementalEncoder) Reset

func (e *IncrementalEncoder) Reset(ctx context.Context, offset int64, extra map[string]interface{}) error

Reset sets the current position of the motor (adjusted by a given offset) to be its new zero position..

func (*IncrementalEncoder) Start

func (e *IncrementalEncoder) Start(ctx context.Context)

Start starts the IncrementalEncoder background thread.

func (*IncrementalEncoder) TicksCount

func (e *IncrementalEncoder) TicksCount(ctx context.Context, extra map[string]interface{}) (int64, error)

TicksCount returns number of ticks since last zeroing.

type IncrementalPins

type IncrementalPins struct {
	A string `json:"a"`
	B string `json:"b"`
}

IncrementalPins describes the configuration of Pins for a quadrature encoder.

type SingleEncoder

type SingleEncoder struct {
	generic.Unimplemented
	I board.DigitalInterrupt

	CancelCtx context.Context
	// contains filtered or unexported fields
}

SingleEncoder keeps track of a motor position using a rotary encoder.

func NewSingleEncoder

func NewSingleEncoder(
	ctx context.Context,
	deps registry.Dependencies,
	cfg config.Component,
	logger golog.Logger,
) (*SingleEncoder, error)

NewSingleEncoder creates a new SingleEncoder.

func (*SingleEncoder) AttachDirectionalAwareness

func (e *SingleEncoder) AttachDirectionalAwareness(da DirectionAware)

AttachDirectionalAwareness to pre-created encoder.

func (*SingleEncoder) Close

func (e *SingleEncoder) Close() error

Close shuts down the SingleEncoder.

func (*SingleEncoder) Reset

func (e *SingleEncoder) Reset(ctx context.Context, offset int64, extra map[string]interface{}) error

Reset sets the current position of the motor (adjusted by a given offset) to be its new zero position.

func (*SingleEncoder) Start

func (e *SingleEncoder) Start(ctx context.Context)

Start starts the SingleEncoder background thread.

func (*SingleEncoder) TicksCount

func (e *SingleEncoder) TicksCount(ctx context.Context, extra map[string]interface{}) (int64, error)

TicksCount returns the current position.

type SingleWireConfig

type SingleWireConfig struct {
	Pins      SingleWirePin `json:"pins"`
	BoardName string        `json:"board"`
}

SingleWireConfig describes the configuration of a single encoder.

func (*SingleWireConfig) Validate

func (cfg *SingleWireConfig) Validate(path string) ([]string, error)

Validate ensures all parts of the config are valid.

type SingleWirePin

type SingleWirePin struct {
	I string `json:"i"`
}

SingleWirePin describes the configuration of Pins for a Single encoder.

type Ticks added in v0.1.2

type Ticks struct {
	Ticks int64
}

Ticks wraps the returned ticks value.

Directories

Path Synopsis
Package fake implements a fake encoder.
Package fake implements a fake encoder.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL