pigpio

package module
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Nov 3, 2022 License: MIT Imports: 8 Imported by: 0

README

Go PiGPIO Socket Interface

Go Reference

Implementation of the PiGPIO socket to communicate with the PiGPIO daemon. Can be used to communicate over network or localhost.

import "github.com/BxNiom/go-pigpio"

For documentation have a look at docs/README.md


Progress
Title Progress Description Status
🟢 connection socket create a socket and connect to daemon Finished
🟢 gpio mode set gpio mode Finished
🟢 read/write read/write gpio value Finished
🟢 PWM software PWM Finished
🟢 hardware hardware PWM and clock Finished
🟢 wave add/create/modify waves Finished
🟢 i2c communication with I2C devices Finished
🟢 spi communication with SPI devices Finished
🟢 filter noise and glitch filters Finished
🟢 serial open/read/write to tty Finished
🟢 callbacks Finished
🟢 scripts Finished
🟢 file open/read/write files Finished
🟢 error codes implement pigpiod error codes Finished
🟡 documentation currently using comments from pypigpio
modify to fit go code

⚪ Todo | 🟡 Work in progress | 🟠 Features todo | 🟢 Done

Changelog
  • RC 1.1

    • File operations added
    • Changed error message if data read failed
  • RC1

    • First release candidate

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BCM

type BCM uint32
const (
	// The BCM GPIO 00
	Bcm00 BCM = 0
	// The BCM GPIO 01
	Bcm01 BCM = 1
	// The BCM GPIO 02
	Bcm02 BCM = 2
	// The BCM GPIO 03
	Bcm03 BCM = 3
	// The BCM GPIO 04
	Bcm04 BCM = 4
	// The BCM GPIO 05
	Bcm05 BCM = 5
	// The BCM GPIO 06
	Bcm06 BCM = 6
	// The BCM GPIO 07
	Bcm07 BCM = 7
	// The BCM GPIO 08
	Bcm08 BCM = 8
	// The BCM GPIO 09
	Bcm09 BCM = 9
	// The BCM GPIO 10
	Bcm10 BCM = 10
	// The BCM GPIO 11
	Bcm11 BCM = 11
	// The BCM GPIO 12
	Bcm12 BCM = 12
	// The BCM GPIO 13
	Bcm13 BCM = 13
	// The BCM GPIO 14
	Bcm14 BCM = 14
	// The BCM GPIO 15
	Bcm15 BCM = 15
	// The BCM GPIO 16
	Bcm16 BCM = 16
	// The BCM GPIO 17
	Bcm17 BCM = 17
	// The BCM GPIO 18
	Bcm18 BCM = 18
	// The BCM GPIO 19
	Bcm19 BCM = 19
	// The BCM GPIO 20
	Bcm20 BCM = 20
	// The BCM GPIO 21
	Bcm21 BCM = 21
	// The BCM GPIO 22
	Bcm22 BCM = 22
	// The BCM GPIO 23
	Bcm23 BCM = 23
	// The BCM GPIO 24
	Bcm24 BCM = 24
	// The BCM GPIO 25
	Bcm25 BCM = 25
	// The BCM GPIO 26
	Bcm26 BCM = 26
	// The BCM GPIO 27
	Bcm27 BCM = 27
	// The BCM GPIO 28
	Bcm28 BCM = 28
	// The BCM GPIO 29
	Bcm29 BCM = 29
	// The BCM GPIO 30
	Bcm30 BCM = 30
	// The BCM GPIO 31
	Bcm31 BCM = 31
)

type Callback

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

func (*Callback) Bit

func (c *Callback) Bit() int

func (*Callback) Edge

func (c *Callback) Edge() Edge

func (*Callback) Handle

func (c *Callback) Handle() int

type CallbackFunc

type CallbackFunc func(*GpioPin, uint)

CallbackFunc is used for gpio callbacks

type Command

type Command int

type Edge

type Edge int8
const (
	EdgeRising  Edge = 0
	EdgeFalling Edge = 1
	EdgeEither  Edge = 2
)

type File

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

func (*File) Close

func (f *File) Close() error

func (*File) Filename

func (f *File) Filename() string

func (*File) Handle

func (f *File) Handle() int

func (*File) Mode

func (f *File) Mode() FileMode

func (*File) Read

func (f *File) Read(count int) ([]byte, error)

func (*File) Seek

func (f *File) Seek(offset int, from FileSeekFrom) (int, error)

func (*File) Write

func (f *File) Write(data []byte) error

type FileMode

type FileMode int
const (
	FileRead      FileMode = 1
	FileWrite     FileMode = 2
	FileReadWrite FileMode = 3
	FileAppend    FileMode = 4
	FileCreate    FileMode = 8
	FileTrunc     FileMode = 16
)

type FileSeekFrom

type FileSeekFrom int
const (
	FromStart   FileSeekFrom = 0
	FromCurrent FileSeekFrom = 1
	FromEnd     FileSeekFrom = 1
)

type GenericPulse

type GenericPulse struct {
	GpioOn  *GpioPin
	GpioOff *GpioPin
	Delay   int
}

func CreatePulse

func CreatePulse(gpioOn *GpioPin, gpioOff *GpioPin, delay int) GenericPulse

type GpioLevel

type GpioLevel int
const (
	Low   GpioLevel = 0
	High  GpioLevel = 1
	Off   GpioLevel = 0
	On    GpioLevel = 1
	Clear GpioLevel = 0
	Set   GpioLevel = 1
)

GpioLevels

type GpioMode

type GpioMode int
const (
	ModeInput  GpioMode = 0
	ModeOutput GpioMode = 1
	ModeAlt0   GpioMode = 4
	ModeAlt1   GpioMode = 5
	ModeAlt2   GpioMode = 6
	ModeAlt3   GpioMode = 7
	ModeAlt4   GpioMode = 3
	ModeAlt5   GpioMode = 2
)

GpioModes

type GpioPin

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

func (*GpioPin) AddCallback

func (gp *GpioPin) AddCallback(edge Edge, fn CallbackFunc) Callback

AddCallback calls a user supplied function (fn) whenever the specified GPIO edge is detected. The user supplied function receives two parameters, the GPIO and the tick.

func (*GpioPin) GetMode

func (gp *GpioPin) GetMode() (GpioMode, error)

GetMode returns the GPIO mode

func (*GpioPin) Pwm

func (gp *GpioPin) Pwm() *GpioPwm

func (*GpioPin) Read

func (gp *GpioPin) Read() (GpioLevel, error)

Read returns GPIO level

Example:

pi.Gpio(23).SetMode(ModeInput)
pi.Gpio(23).SetPullMode(pudDown)
fmt.Println(pi.Gpio(23).Read())
// Output:    0

func (*GpioPin) RemoveCallback

func (gp *GpioPin) RemoveCallback(cb Callback)

func (*GpioPin) Servo

func (gp *GpioPin) Servo() *GpioServo

func (*GpioPin) SetGlitchFilter

func (gp *GpioPin) SetGlitchFilter(steady int) error

SetGlitchFilter sets a glitch filter on a GPIO.

Level changes on the GPIO are not reported unless the level has been stable for at least steady microseconds. The level is then reported. Level changes of less than steady microseconds are ignored.

Parameters:

steady: 0 - 300000

Example:

pi.Gpio(8).SetGlitchFilter(100)

func (*GpioPin) SetMode

func (gp *GpioPin) SetMode(mode GpioMode) error

SetMode sets GPIO mode

Parameters:

mode: GpioMode

Example:

pi.Gpio(4).SetMode(4, ModeInput)   // GPIO 4 as input
pi.Gpio(4).SetMode(17, ModeOutput) // GPIO 17 as output
pi.Gpio(4).SetMode(24, ModeAlt2)   // GPIO 24 as ALT2

func (*GpioPin) SetNoiseFilter

func (gp *GpioPin) SetNoiseFilter(steady int, active int) error

SetNoiseFilter sets a noise filter on a GPIO.

Level changes on the GPIO are ignored until a level which has been stable for steady microseconds is detected. Level changes on the GPIO are then reported for active microseconds after which the process repeats.

Parameters:

steady: 0 - 300000
active: 0 - 1000000

Example:

pi.Gpio(8).SetNoiseFilter(1000, 5000)

func (*GpioPin) SetPullMode

func (gp *GpioPin) SetPullMode(mode PullUpDownMode) error

SetPullMode sets or clears the internal GPIO pull-up/down resistor

Parameters:

mode: PullUpDownMode

Example:

pi.Gpio(17).SetPullMode(PudOff)
pi.Gpio(23).SetPullMode(PudUp)
pi.Gpio(24).SetPullMode(PudDown)

func (*GpioPin) Trigger

func (gp *GpioPin) Trigger(pulseLen int, level GpioLevel) error

Trigger send a trigger pulse to a GPIO. The GPIO is set to level for pulseLen (1-100) microseconds and then reset to not level.

Example:

pi.Gpio(17).Trigger(10, High)

func (*GpioPin) Write

func (gp *GpioPin) Write(level GpioLevel) error

Write sets GPIO level

Example:

gpio := pi.Gpio(17)
gpio.SetMode(ModeInput)

gpio.Write(Low)
fmt.Println(gpio.Read)
// Output: 0

gpio.Write(High)
fmt.Println(gpio.Read)
// Output: 1

type GpioPwm

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

func (*GpioPwm) GetDutyCycle

func (pwm *GpioPwm) GetDutyCycle() (int, error)

func (*GpioPwm) GetFrequency

func (pwm *GpioPwm) GetFrequency() (int, error)

func (*GpioPwm) GetRange

func (pwm *GpioPwm) GetRange() (int, error)

func (*GpioPwm) GetRealRange

func (pwm *GpioPwm) GetRealRange() (int, error)

func (*GpioPwm) Gpio

func (pwm *GpioPwm) Gpio() *GpioPin

func (*GpioPwm) SetDutyCycle

func (pwm *GpioPwm) SetDutyCycle(dutyCycle int) (int, error)

func (*GpioPwm) SetFrequency

func (pwm *GpioPwm) SetFrequency(freq int) error

func (*GpioPwm) SetRange

func (pwm *GpioPwm) SetRange(max int) error

type GpioServo

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

func (*GpioServo) GetPulseWidth

func (s *GpioServo) GetPulseWidth() (int, error)

func (*GpioServo) Gpio

func (s *GpioServo) Gpio() *GpioPin

func (*GpioServo) SetPulseWidth

func (s *GpioServo) SetPulseWidth(width int) error

type I2C

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

func (*I2C) Address

func (i *I2C) Address() int

func (*I2C) BlockProcessCall

func (i *I2C) BlockProcessCall(register int, data []byte) ([]byte, error)

func (*I2C) Bus

func (i *I2C) Bus() int

func (*I2C) Close

func (i *I2C) Close() error

func (*I2C) Flags

func (i *I2C) Flags() I2CFlags

func (*I2C) Handle

func (i *I2C) Handle() int

func (*I2C) ProcessCall

func (i *I2C) ProcessCall(register int, val int16) (int16, error)

func (*I2C) ReadByte

func (i *I2C) ReadByte() (byte, error)

func (*I2C) ReadDevice

func (i *I2C) ReadDevice(count int) ([]byte, error)

func (*I2C) ReadRegisterBlock

func (i *I2C) ReadRegisterBlock(register int) ([]byte, error)

func (*I2C) ReadRegisterByte

func (i *I2C) ReadRegisterByte(register int) (byte, error)

func (*I2C) ReadRegisterWord

func (i *I2C) ReadRegisterWord(register int) (int, error)

func (*I2C) WriteByte

func (i *I2C) WriteByte(val byte) error

func (*I2C) WriteDevice

func (i *I2C) WriteDevice(data []byte) error

func (*I2C) WriteQuick

func (i *I2C) WriteQuick(bit GpioLevel) error

func (*I2C) WriteRegisterBlock

func (i *I2C) WriteRegisterBlock(register int, data []byte) error

func (*I2C) WriteRegisterByte

func (i *I2C) WriteRegisterByte(register int, val byte) error

func (*I2C) WriteRegisterWord

func (i *I2C) WriteRegisterWord(register int, val int16) error

type I2CCommand

type I2CCommand byte
const (
	I2CCmdEnd         I2CCommand = 0
	I2CCmdEsc         I2CCommand = 1
	I2CCmdStart       I2CCommand = 2
	I2CCmdCombinedOn  I2CCommand = 2
	I2CCmdStop        I2CCommand = 3
	I2CCmdCombinedOff I2CCommand = 3
	I2CCmdAddress     I2CCommand = 4
	I2CCmdFlags       I2CCommand = 5
	I2CCmdRead        I2CCommand = 6
	I2CCmdWrite       I2CCommand = 7
)

I2C commands

type I2CFlags

type I2CFlags uint16
const (
	I2CWrite      I2CFlags = 0x0000 /* write data */
	I2CRead       I2CFlags = 0x0001 /* read data */
	I2CTen        I2CFlags = 0x0010 /* ten bit chip address */
	I2CReceiveLen I2CFlags = 0x0400 /* length will be first received byte */
	I2CNoReadAck  I2CFlags = 0x0800 /* if I2C_FUNC_PROTOCOL_MANGLING */
	I2CIgnoreNak  I2CFlags = 0x1000 /* if I2C_FUNC_PROTOCOL_MANGLING */
	I2CRevDirAddr I2CFlags = 0x2000 /* if I2C_FUNC_PROTOCOL_MANGLING */
	I2CNoStart    I2CFlags = 0x4000 /* if I2C_FUNC_PROTOCOL_MANGLING */
)

I2C flags

type Pi

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

func Initialize

func Initialize(host string, port int) (*Pi, error)

Initialize

Create a new connection to pigpio daemon If connection to remote host failed make sure pigpiod-remote remote interface is enabled

host: host ip address e.g. localhost, 192.168.178.100

port: daemon port

func (*Pi) ClearBank

func (p *Pi) ClearBank(bank PiBank, mask int) (int, error)

func (*Pi) ClearWaves

func (p *Pi) ClearWaves() error

func (*Pi) Close

func (p *Pi) Close() error

Close

Close socket connection to pigpiod

func (*Pi) CreateSerialWave

func (p *Pi) CreateSerialWave(padPercent int, pulses ...SerialPulse) (*Wave, error)

func (*Pi) CreateWave

func (p *Pi) CreateWave(padPercent int, pulses ...GenericPulse) (*Wave, error)

func (*Pi) CreateWaveChain

func (p *Pi) CreateWaveChain() *WaveChain

func (*Pi) CurrentTick

func (p *Pi) CurrentTick() (uint, error)

func (*Pi) Gpio

func (p *Pi) Gpio(bcm BCM) *GpioPin

func (*Pi) HwReversion

func (p *Pi) HwReversion() uint

func (*Pi) ListFiles

func (p *Pi) ListFiles(pattern string) ([]string, error)

func (*Pi) MaxCBS

func (p *Pi) MaxCBS() (int, error)

func (*Pi) MaxMicros

func (p *Pi) MaxMicros() (int, error)

func (*Pi) MaxPulses

func (p *Pi) MaxPulses() (int, error)

func (*Pi) OpenFile

func (p *Pi) OpenFile(filename string, mode FileMode) (*File, error)

func (*Pi) OpenI2C

func (p *Pi) OpenI2C(bus int, address int, flags I2CFlags) (*I2C, error)

func (*Pi) OpenSPI

func (p *Pi) OpenSPI(channel int, baud int, flags int) (*SPI, error)

func (*Pi) OpenSerial

func (p *Pi) OpenSerial(tty string, baud int) (*Serial, error)

func (*Pi) ReadBank

func (p *Pi) ReadBank(bank PiBank) (int, error)

func (*Pi) SetBank

func (p *Pi) SetBank(bank PiBank, mask int) (int, error)

func (*Pi) Socket

func (p *Pi) Socket() *Socket

func (*Pi) StoreScript

func (p *Pi) StoreScript(code string) (*Script, error)

type PiBank

type PiBank byte
const (
	Bank1 PiBank = 1
	Bank2 PiBank = 2
)

type PiError

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

func (*PiError) Code

func (pe *PiError) Code() int

func (*PiError) CodeMessage

func (pe *PiError) CodeMessage() string

func (*PiError) Error

func (pe *PiError) Error() string

func (*PiError) InnerError

func (pe *PiError) InnerError() error

func (*PiError) Message

func (pe *PiError) Message() string

type PullUpDownMode

type PullUpDownMode int
const (
	PudOff  PullUpDownMode = 0
	PudDown PullUpDownMode = 1
	PudUp   PullUpDownMode = 2
)

Pull-Up-Down

type SPI

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

func (*SPI) Close

func (s *SPI) Close() error

func (*SPI) Read

func (s *SPI) Read(count int) ([]byte, error)

func (*SPI) Write

func (s *SPI) Write(data []byte) error

func (*SPI) Xfer

func (s *SPI) Xfer(data []byte) ([]byte, error)

type Script

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

func (*Script) Code

func (s *Script) Code() string

func (*Script) Delete

func (s *Script) Delete() error

func (*Script) Handle

func (s *Script) Handle() int

func (*Script) Run

func (s *Script) Run(params ...int) error

func (*Script) Status

func (s *Script) Status() (ScriptStatus, []int, error)

func (*Script) Stop

func (s *Script) Stop() error

func (*Script) Update

func (s *Script) Update(params ...int) error

type ScriptBuilder

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

func (*ScriptBuilder) Add

func (sc *ScriptBuilder) Add(x int) *ScriptBuilder

Add

Add x to accumulator A+=x; F=A

func (*ScriptBuilder) And

func (sc *ScriptBuilder) And(x int) *ScriptBuilder

And

And x with accumulator A&=x; F=A

func (*ScriptBuilder) Call

func (sc *ScriptBuilder) Call(tag int) *ScriptBuilder

Call

Call subroutine at tag L push(PC+1); PC=L

func (*ScriptBuilder) Cmp

func (sc *ScriptBuilder) Cmp(x int) *ScriptBuilder

Cmp

Compare x with accumulator F=A-x

func (*ScriptBuilder) Code

func (sc *ScriptBuilder) Code() string

func (*ScriptBuilder) Dcr

func (sc *ScriptBuilder) Dcr(y int) *ScriptBuilder

Dcr

Decrement register --*y; F=*y

func (*ScriptBuilder) Dcra

func (sc *ScriptBuilder) Dcra() *ScriptBuilder

Dcra

Decrement accumulator --A; F=A

func (*ScriptBuilder) Div

func (sc *ScriptBuilder) Div(x int) *ScriptBuilder

Div

Divide x into accumulator A/=x; F=A

func (*ScriptBuilder) Evtwt

func (sc *ScriptBuilder) Evtwt() *ScriptBuilder

Evtwt

Wait for an event to occur A=wait(x); F=A

func (*ScriptBuilder) Halt

func (sc *ScriptBuilder) Halt() *ScriptBuilder

Halt

Halt

func (*ScriptBuilder) Inr

func (sc *ScriptBuilder) Inr(y int) *ScriptBuilder

Inr

Increment register ++*y; F=*y

func (*ScriptBuilder) Inra

func (sc *ScriptBuilder) Inra() *ScriptBuilder

Inra

Increment accumulator ++A; F=A

func (*ScriptBuilder) Jm

func (sc *ScriptBuilder) Jm(tag int) *ScriptBuilder

Jm

Jump if minus to tag L if (F<0) PC=L

func (*ScriptBuilder) Jmp

func (sc *ScriptBuilder) Jmp(tag int) *ScriptBuilder

Jmp

Jump to tag L PC=L

func (*ScriptBuilder) Jnz

func (sc *ScriptBuilder) Jnz(tag int) *ScriptBuilder

Jnz

Jump if non-zero to tag L if (F) PC=L

func (*ScriptBuilder) Jp

func (sc *ScriptBuilder) Jp(tag int) *ScriptBuilder

Jp

Jump if positive to tag L if (F>=0) PC=L

func (*ScriptBuilder) Jz

func (sc *ScriptBuilder) Jz(tag int) *ScriptBuilder

Jz

Jump if zero to tag L if (!F) PC=L

func (*ScriptBuilder) Ld

func (sc *ScriptBuilder) Ld(y int, x int) *ScriptBuilder

Ld

Load register with x *y=x

func (*ScriptBuilder) Lda

func (sc *ScriptBuilder) Lda(x int) *ScriptBuilder

Lda

Load accumulator with x A=x

func (*ScriptBuilder) Mlt

func (sc *ScriptBuilder) Mlt(x int) *ScriptBuilder

Mlt

Multiply x with accumulator A*=x; F=A

func (*ScriptBuilder) Mod

func (sc *ScriptBuilder) Mod(x int) *ScriptBuilder

Mod

Modulus x with accumulator A%=x; F=A

func (*ScriptBuilder) Or

func (sc *ScriptBuilder) Or(x int) *ScriptBuilder

Or

Or x with accumulator A|=x; F=A

func (*ScriptBuilder) Pop

func (sc *ScriptBuilder) Pop(y int) *ScriptBuilder

Pop

Pop register y=pop()

func (*ScriptBuilder) Popa

func (sc *ScriptBuilder) Popa() *ScriptBuilder

Popa

Pop accumulator A=pop()

func (*ScriptBuilder) Push

func (sc *ScriptBuilder) Push(y int) *ScriptBuilder

Push

Push register push(y)

func (*ScriptBuilder) Pusha

func (sc *ScriptBuilder) Pusha() *ScriptBuilder

Pusha

Push accumulator push(A)

func (*ScriptBuilder) Ret

func (sc *ScriptBuilder) Ret() *ScriptBuilder

Ret

Return from subroutine PC=pop()

func (*ScriptBuilder) Rl

func (sc *ScriptBuilder) Rl(y int, x int) *ScriptBuilder

Rl

Rotate left register x bits *y<<=x; F=*y

func (*ScriptBuilder) Rla

func (sc *ScriptBuilder) Rla(x int) *ScriptBuilder

Rla

Rotate left accumulator x bits A<<=x; F=A

func (*ScriptBuilder) Rr

func (sc *ScriptBuilder) Rr(y int, x int) *ScriptBuilder

Rr

Rotate right register x bits *y>>=x; F=*y

func (*ScriptBuilder) Rra

func (sc *ScriptBuilder) Rra(x int) *ScriptBuilder

Rra

Rotate right accumulator x bits A>>=x; F=A

func (*ScriptBuilder) Sta

func (sc *ScriptBuilder) Sta(y int) *ScriptBuilder

Sta

Store accumulator in register y=A

func (*ScriptBuilder) Sub

func (sc *ScriptBuilder) Sub(x int) *ScriptBuilder

Sub

Subtract x from accumulator A-=x; F=A

func (*ScriptBuilder) Sys

func (sc *ScriptBuilder) Sys(str string) *ScriptBuilder

Sys

Run external script (/opt/pigpio/cgi/str) system(str); F=A

func (*ScriptBuilder) Tag

func (sc *ScriptBuilder) Tag(tag int) *ScriptBuilder

Tag

Label the current script position N/A

func (*ScriptBuilder) Wait

func (sc *ScriptBuilder) Wait(x int) *ScriptBuilder

Wait

Wait for a GPIO in x to change state A=wait(x); F=A

func (*ScriptBuilder) Write

func (sc *ScriptBuilder) Write(gpio *GpioPin, level GpioLevel) *ScriptBuilder

Write

Write level to gpio

func (*ScriptBuilder) X

func (sc *ScriptBuilder) X(y1 int, y2 int) *ScriptBuilder

X

Exchange contents of registers y1 and y2 t=*y1;*y1=*y2;*y2=t

func (*ScriptBuilder) Xa

func (sc *ScriptBuilder) Xa(y int) *ScriptBuilder

Xa

Exchange contents of accumulator and register t=A;A=*y;*y=t

func (*ScriptBuilder) Xor

func (sc *ScriptBuilder) Xor(x int) *ScriptBuilder

Xor

Xor x with accumulator A^=x; F=A

type ScriptStatus

type ScriptStatus int
const (
	Unknown    ScriptStatus = -1
	Initiating ScriptStatus = 0
	Halted     ScriptStatus = 1
	Running    ScriptStatus = 2
	Waiting    ScriptStatus = 3
	Failed     ScriptStatus = 4
)

type Serial

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

func (*Serial) Baud

func (s *Serial) Baud() int

func (*Serial) Close

func (s *Serial) Close() error

func (*Serial) DataAvailable

func (s *Serial) DataAvailable() (bool, error)

func (*Serial) Handle

func (s *Serial) Handle() int

func (*Serial) Read

func (s *Serial) Read(count int) ([]byte, error)

func (*Serial) ReadByte

func (s *Serial) ReadByte() (byte, error)

func (*Serial) TTY

func (s *Serial) TTY() string

func (*Serial) Write

func (s *Serial) Write(data []byte) error

func (*Serial) WriteByte

func (s *Serial) WriteByte(data byte) error

type SerialPulse

type SerialPulse struct {
	Gpio     *GpioPin
	Baud     int
	DataBits int
	StopBits int
	Offset   int
	Data     []byte
}

func CreateSerialPulse

func CreateSerialPulse(gpio *GpioPin, baud int, data []byte) SerialPulse

func CreateSerialPulseEx

func CreateSerialPulseEx(gpio *GpioPin, baud int, data []byte, offset int, dataBits int, stopBits int) SerialPulse

type Socket

type Socket struct {
	Connection net.Conn
	// contains filtered or unexported fields
}

func NewSocket

func NewSocket(host string, port int) (*Socket, error)

NewSocket

Create a new socket connection to host:port

func (*Socket) Address

func (s *Socket) Address() *net.TCPAddr

func (*Socket) Close

func (s *Socket) Close() error

func (*Socket) Host

func (s *Socket) Host() string

func (*Socket) Port

func (s *Socket) Port() int

func (*Socket) Read

func (s *Socket) Read(len int) ([]byte, error)

func (*Socket) SendCommand

func (s *Socket) SendCommand(command Command, p1 int, p2 int, extData []byte) (int, error)

type Wave

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

func (*Wave) Delete

func (w *Wave) Delete() error

func (*Wave) Handle

func (w *Wave) Handle() int

func (*Wave) IsBusy

func (w *Wave) IsBusy() bool

func (*Wave) Once

func (w *Wave) Once() (int, error)

func (*Wave) Repeat

func (w *Wave) Repeat() (int, error)

func (*Wave) Stop

func (w *Wave) Stop() error

type WaveChain

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

func (*WaveChain) Bytes

func (wc *WaveChain) Bytes() []byte

func (*WaveChain) Delay

func (wc *WaveChain) Delay(us int) *WaveChain

func (*WaveChain) LoopBegin

func (wc *WaveChain) LoopBegin() *WaveChain

func (*WaveChain) LoopEnd

func (wc *WaveChain) LoopEnd(repeat int) *WaveChain

TODO wrong loop and delay (x + y*256)

func (*WaveChain) LoopForever

func (wc *WaveChain) LoopForever() *WaveChain

func (*WaveChain) Run

func (wc *WaveChain) Run() error

func (*WaveChain) Wave

func (wc *WaveChain) Wave(w *Wave) *WaveChain

Directories

Path Synopsis
examples
pwm

Jump to

Keyboard shortcuts

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