fake

package
v0.26.0 Latest Latest
Warning

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

Go to latest
Published: Apr 29, 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

func AddCallback added in v0.26.0

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

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

func Tick added in v0.26.0

func Tick(ctx context.Context, s *DigitalInterruptWrapper, 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.

Types

type Analog

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

An Analog reads back the same set value.

func (*Analog) Close

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

Close does nothing.

func (*Analog) Read

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

func (*Analog) Set

func (a *Analog) Set(value int)

Set is used to set the value of an Analog.

func (*Analog) Write added in v0.26.0

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

type Board

type Board struct {
	resource.Named

	Analogs  map[string]*Analog
	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) AnalogByName added in v0.26.0

func (b *Board) AnalogByName(name string) (board.Analog, error)

AnalogByName returns the analog pin by the given name if it exists.

func (*Board) AnalogNames added in v0.26.0

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

AnalogNames returns the names of all known analog pins.

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, error)

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) StreamTicks added in v0.24.0

func (b *Board) StreamTicks(ctx context.Context, interrupts []board.DigitalInterrupt, 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) Close added in v0.2.36

Close does nothing.

func (*DigitalInterruptWrapper) Name added in v0.26.0

func (s *DigitalInterruptWrapper) Name() string

Name returns the name of the digital interrupt.

func (*DigitalInterruptWrapper) RemoveCallback added in v0.2.36

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

RemoveCallback removes a listener for interrupts.

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