Documentation ¶
Overview ¶
Package encoder implements the encoder component
Index ¶
- Constants
- Variables
- func DependencyTypeError(name, actual interface{}) error
- func Named(name string) resource.Name
- func NamesFromRobot(r robot.Robot) []string
- func NewUnimplementedInterfaceError(actual interface{}) error
- func WrapWithReconfigurable(r interface{}) (resource.Reconfigurable, error)
- type DirectionAware
- type Encoder
- type IncrementalConfig
- type IncrementalEncoder
- func (e *IncrementalEncoder) Close() error
- func (e *IncrementalEncoder) RawPosition() int64
- func (e *IncrementalEncoder) Reset(ctx context.Context, offset int64, extra map[string]interface{}) error
- func (e *IncrementalEncoder) Start(ctx context.Context)
- func (e *IncrementalEncoder) TicksCount(ctx context.Context, extra map[string]interface{}) (int64, error)
- type IncrementalPins
- type SingleEncoder
- func (e *SingleEncoder) AttachDirectionalAwareness(da DirectionAware)
- func (e *SingleEncoder) Close() error
- func (e *SingleEncoder) Reset(ctx context.Context, offset int64, extra map[string]interface{}) error
- func (e *SingleEncoder) Start(ctx context.Context)
- func (e *SingleEncoder) TicksCount(ctx context.Context, extra map[string]interface{}) (int64, error)
- type SingleWireConfig
- type SingleWirePin
- type Ticks
Constants ¶
const SubtypeName = resource.SubtypeName("encoder")
SubtypeName is a constant that identifies the component resource subtype string "encoder".
Variables ¶
var Subtype = resource.NewSubtype( resource.ResourceNamespaceRDK, resource.ResourceTypeComponent, SubtypeName, )
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 NamesFromRobot ¶
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.
type IncrementalConfig ¶
type IncrementalConfig struct { Pins IncrementalPins `json:"pins"` BoardName string `json:"board"` }
IncrementalConfig describes the configuration of a quadrature encoder.
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 ¶
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.
type SingleWirePin ¶
type SingleWirePin struct {
I string `json:"i"`
}
SingleWirePin describes the configuration of Pins for a Single encoder.