powersensor

package
v0.36.0 Latest Latest
Warning

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

Go to latest
Published: Aug 5, 2024 License: AGPL-3.0 Imports: 12 Imported by: 6

Documentation

Overview

Package powersensor defines the interfaces of a powersensor

Index

Constants

View Source
const SubtypeName = "power_sensor"

SubtypeName is a constant that identifies the component resource API string "power_sensor".

Variables

View Source
var (
	// ErrMethodUnimplementedVoltage returns error if the Voltage method is unimplemented.
	ErrMethodUnimplementedVoltage = errors.New("Voltage Unimplemented")
	// ErrMethodUnimplementedCurrent returns error if the Current method is unimplemented.
	ErrMethodUnimplementedCurrent = errors.New("Current Unimplemented")
	// ErrMethodUnimplementedPower returns error if the Power method is unimplemented.
	ErrMethodUnimplementedPower = errors.New("Power Unimplemented")
)
View Source
var API = resource.APINamespaceRDK.WithComponentType(SubtypeName)

API is a variable that identifies the component resource API.

Functions

func Named

func Named(name string) resource.Name

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

func NamesFromRobot

func NamesFromRobot(r robot.Robot) []string

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

func NewRPCServiceServer

func NewRPCServiceServer(coll resource.APIResourceCollection[PowerSensor]) interface{}

NewRPCServiceServer constructs a PowerSesnsor gRPC service serviceServer.

Types

type PowerSensor

type PowerSensor interface {
	resource.Sensor
	resource.Resource
	// Voltage returns the voltage reading in volts and a bool returning true if the voltage is AC.
	Voltage(ctx context.Context, extra map[string]interface{}) (float64, bool, error)

	// Current returns the current reading in amperes and a bool returning true if the current is AC.
	Current(ctx context.Context, extra map[string]interface{}) (float64, bool, error)

	// Power returns the power reading in watts.
	Power(ctx context.Context, extra map[string]interface{}) (float64, error)
}

A PowerSensor reports information about voltage, current and power.

Voltage example:

// Get the voltage from device in volts.
voltage, isAC, err := myPowerSensor.Voltage(context.Background(), nil)

Current example:

// Get the current reading from device in amps.
current, isAC, err := myPowerSensor.Current(context.Background(), nil)

Power example:

// Get the power measurement from device in watts.
power, err := myPowerSensor.Power(context.Background(), nil)

func FromDependencies

func FromDependencies(deps resource.Dependencies, name string) (PowerSensor, error)

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

func FromRobot

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

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

func NewClientFromConn

func NewClientFromConn(
	ctx context.Context,
	conn rpc.ClientConn,
	remoteName string,
	name resource.Name,
	logger logging.Logger,
) (PowerSensor, error)

NewClientFromConn constructs a new client from connection passed in.

Directories

Path Synopsis
Package fake is a fake PowerSensor for testing
Package fake is a fake PowerSensor for testing
Package ina this is blank for mac
Package ina this is blank for mac
Package register registers all relevant motors
Package register registers all relevant motors
Package renogy implements the renogy charge controller sensor for DC batteries.
Package renogy implements the renogy charge controller sensor for DC batteries.

Jump to

Keyboard shortcuts

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