ezopmp

package
v0.0.9 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2022 License: AGPL-3.0 Imports: 16 Imported by: 0

Documentation

Overview

Package ezopmp is a motor driver for the hydrogarden pump

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewMotor

func NewMotor(ctx context.Context, deps registry.Dependencies, c *Config, logger golog.Logger) (motor.LocalMotor, error)

NewMotor returns a motor(Ezopmp) with I2C protocol.

Types

type Config

type Config struct {
	motor.Config
	BusName     string `json:"bus_name"`
	I2CAddress  byte   `json:"i2c_address"`
	MaxReadBits int    `json:"max_read_bits"`
}

Config is user config inputs for ezopmp.

type Ezopmp

type Ezopmp struct {
	I2CAddress byte

	generic.Unimplemented
	// contains filtered or unexported fields
}

Ezopmp represents a motor connected via the I2C protocol.

func (*Ezopmp) GetPosition

func (m *Ezopmp) GetPosition(ctx context.Context, extra map[string]interface{}) (float64, error)

GetPosition will return the total volume dispensed.

func (*Ezopmp) GetProperties added in v0.0.9

func (m *Ezopmp) GetProperties(ctx context.Context, extra map[string]interface{}) (map[motor.Feature]bool, error)

GetProperties returns the status of optional features on the motor.

func (*Ezopmp) GoFor

func (m *Ezopmp) GoFor(ctx context.Context, mLPerMin, mins float64, extra map[string]interface{}) error

GoFor sets a constant flow rate mLPerMin = rpm, mins = revolutions.

func (*Ezopmp) GoTillStop

func (m *Ezopmp) GoTillStop(ctx context.Context, rpm float64, stopFunc func(ctx context.Context) bool) error

GoTillStop is unimplemented.

func (*Ezopmp) GoTo

func (m *Ezopmp) GoTo(ctx context.Context, mLPerMin, mins float64, extra map[string]interface{}) error

GoTo uses the Dose Over Time Command in the EZO-PMP datasheet mLPerMin = rpm, mins = revolutions.

func (*Ezopmp) IsMoving

func (m *Ezopmp) IsMoving(ctx context.Context) (bool, error)

IsMoving returns whether or not the motor is currently moving.

func (*Ezopmp) IsPowered

func (m *Ezopmp) IsPowered(ctx context.Context, extra map[string]interface{}) (bool, error)

IsPowered returns whether or not the motor is currently on.

func (*Ezopmp) ResetZeroPosition

func (m *Ezopmp) ResetZeroPosition(ctx context.Context, offset float64, extra map[string]interface{}) error

ResetZeroPosition clears the amount of volume that has been dispensed.

func (*Ezopmp) SetPower

func (m *Ezopmp) SetPower(ctx context.Context, powerPct float64, extra map[string]interface{}) error

SetPower sets the percentage of power the motor should employ between -1 and 1. Negative power implies a backward directional rotational for this pump, it goes between 0.5ml to 105ml/min.

func (*Ezopmp) Stop

func (m *Ezopmp) Stop(ctx context.Context, extra map[string]interface{}) error

Stop turns the power to the motor off immediately, without any gradual step down.

func (*Ezopmp) Validate

func (m *Ezopmp) Validate() error

Validate if this config is valid.

Jump to

Keyboard shortcuts

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