fake

package
v0.25.0 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2024 License: AGPL-3.0 Imports: 14 Imported by: 0

Documentation

Overview

Package fake implements a fake board.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AnalogReader added in v0.11.0

type AnalogReader struct {
	Value      int
	CloseCount int
	Mu         sync.RWMutex
	// contains filtered or unexported fields
}

An AnalogReader reads back the same set value.

func (*AnalogReader) Close added in v0.11.0

func (a *AnalogReader) Close(ctx context.Context) error

Close does nothing.

func (*AnalogReader) Read added in v0.11.0

func (a *AnalogReader) Read(ctx context.Context, extra map[string]interface{}) (int, error)

func (*AnalogReader) Set added in v0.11.0

func (a *AnalogReader) Set(value int)

Set is used during testing.

type Board

type Board struct {
	resource.Named

	AnalogReaders map[string]*AnalogReader
	Digitals      map[string]*DigitalInterruptWrapper
	GPIOPins      map[string]*GPIOPin

	CloseCount int
	// contains filtered or unexported fields
}

A Board provides dummy data from fake parts in order to implement a Board.

func NewBoard

func NewBoard(ctx context.Context, conf resource.Config, logger logging.Logger) (*Board, error)

NewBoard returns a new fake board.

func (*Board) AnalogReaderByName

func (b *Board) AnalogReaderByName(name string) (board.AnalogReader, bool)

AnalogReaderByName returns the analog reader by the given name if it exists.

func (*Board) AnalogReaderNames

func (b *Board) AnalogReaderNames() []string

AnalogReaderNames returns the names of all known analog readers.

func (*Board) Close

func (b *Board) Close(ctx context.Context) error

Close attempts to cleanly close each part of the board.

func (*Board) DigitalInterruptByName

func (b *Board) DigitalInterruptByName(name string) (board.DigitalInterrupt, bool)

DigitalInterruptByName returns the interrupt by the given name if it exists.

func (*Board) DigitalInterruptNames

func (b *Board) DigitalInterruptNames() []string

DigitalInterruptNames returns the names of all known digital interrupts.

func (*Board) GPIOPinByName

func (b *Board) GPIOPinByName(name string) (board.GPIOPin, error)

GPIOPinByName returns the GPIO pin by the given name if it exists.

func (*Board) Reconfigure added in v0.2.36

func (b *Board) Reconfigure(ctx context.Context, deps resource.Dependencies, conf resource.Config) error

Reconfigure atomically reconfigures this board© in place based on the new config.

func (*Board) SetPowerMode added in v0.2.28

func (b *Board) SetPowerMode(ctx context.Context, mode pb.PowerMode, duration *time.Duration) error

SetPowerMode sets the board to the given power mode. If provided, the board will exit the given power mode after the specified duration.

func (*Board) Status

func (b *Board) Status(ctx context.Context, extra map[string]interface{}) (*commonpb.BoardStatus, error)

Status returns the current status of the board.

func (*Board) StreamTicks added in v0.24.0

func (b *Board) StreamTicks(ctx context.Context, interruptNames []string, ch chan board.Tick, extra map[string]interface{}) error

StreamTicks starts a stream of digital interrupt ticks.

func (*Board) WriteAnalog added in v0.11.0

func (b *Board) WriteAnalog(ctx context.Context, pin string, value int32, extra map[string]interface{}) error

WriteAnalog writes the value to the given pin, which can be read back by adding it to AnalogReaders.

type Config

type Config struct {
	AnalogReaders     []board.AnalogReaderConfig     `json:"analogs,omitempty"`
	DigitalInterrupts []board.DigitalInterruptConfig `json:"digital_interrupts,omitempty"`
	FailNew           bool                           `json:"fail_new"`
}

A Config describes the configuration of a fake board and all of its connected parts.

func (*Config) Validate

func (conf *Config) Validate(path string) ([]string, error)

Validate ensures all parts of the config are valid.

type DigitalInterruptWrapper added in v0.2.36

type DigitalInterruptWrapper struct {
	// contains filtered or unexported fields
}

DigitalInterruptWrapper is a wrapper around a digital interrupt for testing fake boards.

func NewDigitalInterruptWrapper added in v0.2.36

func NewDigitalInterruptWrapper(conf board.DigitalInterruptConfig) (*DigitalInterruptWrapper, error)

NewDigitalInterruptWrapper returns a new digital interrupt to be used for testing.

func (*DigitalInterruptWrapper) AddCallback added in v0.2.36

func (s *DigitalInterruptWrapper) AddCallback(c chan board.Tick)

AddCallback adds a callback to be sent a low/high value to when a tick happens.

func (*DigitalInterruptWrapper) Close added in v0.2.36

Close does nothing.

func (*DigitalInterruptWrapper) RemoveCallback added in v0.2.36

func (s *DigitalInterruptWrapper) RemoveCallback(c chan board.Tick)

RemoveCallback removes a listener for interrupts.

func (*DigitalInterruptWrapper) Tick added in v0.2.36

func (s *DigitalInterruptWrapper) Tick(ctx context.Context, high bool, nanoseconds uint64) error

Tick is to be called either manually if the interrupt is a proxy to some real hardware interrupt or for tests. nanoseconds is from an arbitrary point in time, but always increasing and always needs to be accurate.

func (*DigitalInterruptWrapper) Value added in v0.2.36

func (s *DigitalInterruptWrapper) Value(ctx context.Context, extra map[string]interface{}) (int64, error)

Value returns the current value of the interrupt which is based on the type of interrupt.

type GPIOPin

type GPIOPin struct {
	// contains filtered or unexported fields
}

A GPIOPin reads back the same set values.

func (*GPIOPin) Get

func (gp *GPIOPin) Get(ctx context.Context, extra map[string]interface{}) (bool, error)

Get gets the high/low state of the pin.

func (*GPIOPin) PWM

func (gp *GPIOPin) PWM(ctx context.Context, extra map[string]interface{}) (float64, error)

PWM gets the pin's given duty cycle.

func (*GPIOPin) PWMFreq

func (gp *GPIOPin) PWMFreq(ctx context.Context, extra map[string]interface{}) (uint, error)

PWMFreq gets the PWM frequency of the pin.

func (*GPIOPin) Set

func (gp *GPIOPin) Set(ctx context.Context, high bool, extra map[string]interface{}) error

Set sets the pin to either low or high.

func (*GPIOPin) SetPWM

func (gp *GPIOPin) SetPWM(ctx context.Context, dutyCyclePct float64, extra map[string]interface{}) error

SetPWM sets the pin to the given duty cycle.

func (*GPIOPin) SetPWMFreq

func (gp *GPIOPin) SetPWMFreq(ctx context.Context, freqHz uint, extra map[string]interface{}) error

SetPWMFreq sets the given pin to the given PWM frequency.

Jump to

Keyboard shortcuts

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