Documentation
¶
Index ¶
- type BCM
- type Callback
- type CallbackFunc
- type Command
- type Edge
- type File
- type FileMode
- type FileSeekFrom
- type GenericPulse
- type GpioLevel
- type GpioMode
- type GpioPin
- func (gp *GpioPin) AddCallback(edge Edge, fn CallbackFunc) Callback
- func (gp *GpioPin) GetMode() (GpioMode, error)
- func (gp *GpioPin) Pwm() *GpioPwm
- func (gp *GpioPin) Read() (GpioLevel, error)
- func (gp *GpioPin) RemoveCallback(cb Callback)
- func (gp *GpioPin) Servo() *GpioServo
- func (gp *GpioPin) SetGlitchFilter(steady int) error
- func (gp *GpioPin) SetMode(mode GpioMode) error
- func (gp *GpioPin) SetNoiseFilter(steady int, active int) error
- func (gp *GpioPin) SetPullMode(mode PullUpDownMode) error
- func (gp *GpioPin) Trigger(pulseLen int, level GpioLevel) error
- func (gp *GpioPin) Write(level GpioLevel) error
- type GpioPwm
- func (pwm *GpioPwm) GetDutyCycle() (int, error)
- func (pwm *GpioPwm) GetFrequency() (int, error)
- func (pwm *GpioPwm) GetRange() (int, error)
- func (pwm *GpioPwm) GetRealRange() (int, error)
- func (pwm *GpioPwm) Gpio() *GpioPin
- func (pwm *GpioPwm) SetDutyCycle(dutyCycle int) (int, error)
- func (pwm *GpioPwm) SetFrequency(freq int) error
- func (pwm *GpioPwm) SetRange(max int) error
- type GpioServo
- type I2C
- func (i *I2C) Address() int
- func (i *I2C) BlockProcessCall(register int, data []byte) ([]byte, error)
- func (i *I2C) Bus() int
- func (i *I2C) Close() error
- func (i *I2C) Flags() I2CFlags
- func (i *I2C) Handle() int
- func (i *I2C) ProcessCall(register int, val int16) (int16, error)
- func (i *I2C) ReadByte() (byte, error)
- func (i *I2C) ReadDevice(count int) ([]byte, error)
- func (i *I2C) ReadRegisterBlock(register int) ([]byte, error)
- func (i *I2C) ReadRegisterByte(register int) (byte, error)
- func (i *I2C) ReadRegisterWord(register int) (int, error)
- func (i *I2C) WriteByte(val byte) error
- func (i *I2C) WriteDevice(data []byte) error
- func (i *I2C) WriteQuick(bit GpioLevel) error
- func (i *I2C) WriteRegisterBlock(register int, data []byte) error
- func (i *I2C) WriteRegisterByte(register int, val byte) error
- func (i *I2C) WriteRegisterWord(register int, val int16) error
- type I2CCommand
- type I2CFlags
- type Pi
- func (p *Pi) ClearBank(bank PiBank, mask int) (int, error)
- func (p *Pi) ClearWaves() error
- func (p *Pi) Close() error
- func (p *Pi) CreateSerialWave(padPercent int, pulses ...SerialPulse) (*Wave, error)
- func (p *Pi) CreateWave(padPercent int, pulses ...GenericPulse) (*Wave, error)
- func (p *Pi) CreateWaveChain() *WaveChain
- func (p *Pi) CurrentTick() (uint, error)
- func (p *Pi) Gpio(bcm BCM) *GpioPin
- func (p *Pi) HwReversion() uint
- func (p *Pi) ListFiles(pattern string) ([]string, error)
- func (p *Pi) MaxCBS() (int, error)
- func (p *Pi) MaxMicros() (int, error)
- func (p *Pi) MaxPulses() (int, error)
- func (p *Pi) OpenFile(filename string, mode FileMode) (*File, error)
- func (p *Pi) OpenI2C(bus int, address int, flags I2CFlags) (*I2C, error)
- func (p *Pi) OpenSPI(channel int, baud int, flags int) (*SPI, error)
- func (p *Pi) OpenSerial(tty string, baud int) (*Serial, error)
- func (p *Pi) ReadBank(bank PiBank) (int, error)
- func (p *Pi) SetBank(bank PiBank, mask int) (int, error)
- func (p *Pi) Socket() *Socket
- func (p *Pi) StoreScript(code string) (*Script, error)
- type PiBank
- type PiError
- type PullUpDownMode
- type SPI
- type Script
- type ScriptBuilder
- func (sc *ScriptBuilder) Add(x int) *ScriptBuilder
- func (sc *ScriptBuilder) And(x int) *ScriptBuilder
- func (sc *ScriptBuilder) Call(tag int) *ScriptBuilder
- func (sc *ScriptBuilder) Cmp(x int) *ScriptBuilder
- func (sc *ScriptBuilder) Code() string
- func (sc *ScriptBuilder) Dcr(y int) *ScriptBuilder
- func (sc *ScriptBuilder) Dcra() *ScriptBuilder
- func (sc *ScriptBuilder) Div(x int) *ScriptBuilder
- func (sc *ScriptBuilder) Evtwt() *ScriptBuilder
- func (sc *ScriptBuilder) Halt() *ScriptBuilder
- func (sc *ScriptBuilder) Inr(y int) *ScriptBuilder
- func (sc *ScriptBuilder) Inra() *ScriptBuilder
- func (sc *ScriptBuilder) Jm(tag int) *ScriptBuilder
- func (sc *ScriptBuilder) Jmp(tag int) *ScriptBuilder
- func (sc *ScriptBuilder) Jnz(tag int) *ScriptBuilder
- func (sc *ScriptBuilder) Jp(tag int) *ScriptBuilder
- func (sc *ScriptBuilder) Jz(tag int) *ScriptBuilder
- func (sc *ScriptBuilder) Ld(y int, x int) *ScriptBuilder
- func (sc *ScriptBuilder) Lda(x int) *ScriptBuilder
- func (sc *ScriptBuilder) Mlt(x int) *ScriptBuilder
- func (sc *ScriptBuilder) Mod(x int) *ScriptBuilder
- func (sc *ScriptBuilder) Or(x int) *ScriptBuilder
- func (sc *ScriptBuilder) Pop(y int) *ScriptBuilder
- func (sc *ScriptBuilder) Popa() *ScriptBuilder
- func (sc *ScriptBuilder) Push(y int) *ScriptBuilder
- func (sc *ScriptBuilder) Pusha() *ScriptBuilder
- func (sc *ScriptBuilder) Ret() *ScriptBuilder
- func (sc *ScriptBuilder) Rl(y int, x int) *ScriptBuilder
- func (sc *ScriptBuilder) Rla(x int) *ScriptBuilder
- func (sc *ScriptBuilder) Rr(y int, x int) *ScriptBuilder
- func (sc *ScriptBuilder) Rra(x int) *ScriptBuilder
- func (sc *ScriptBuilder) Sta(y int) *ScriptBuilder
- func (sc *ScriptBuilder) Sub(x int) *ScriptBuilder
- func (sc *ScriptBuilder) Sys(str string) *ScriptBuilder
- func (sc *ScriptBuilder) Tag(tag int) *ScriptBuilder
- func (sc *ScriptBuilder) Wait(x int) *ScriptBuilder
- func (sc *ScriptBuilder) Write(gpio *GpioPin, level GpioLevel) *ScriptBuilder
- func (sc *ScriptBuilder) X(y1 int, y2 int) *ScriptBuilder
- func (sc *ScriptBuilder) Xa(y int) *ScriptBuilder
- func (sc *ScriptBuilder) Xor(x int) *ScriptBuilder
- type ScriptStatus
- type Serial
- func (s *Serial) Baud() int
- func (s *Serial) Close() error
- func (s *Serial) DataAvailable() (bool, error)
- func (s *Serial) Handle() int
- func (s *Serial) Read(count int) ([]byte, error)
- func (s *Serial) ReadByte() (byte, error)
- func (s *Serial) TTY() string
- func (s *Serial) Write(data []byte) error
- func (s *Serial) WriteByte(data byte) error
- type SerialPulse
- type Socket
- type Wave
- type WaveChain
- func (wc *WaveChain) Bytes() []byte
- func (wc *WaveChain) Delay(us int) *WaveChain
- func (wc *WaveChain) LoopBegin() *WaveChain
- func (wc *WaveChain) LoopEnd(repeat int) *WaveChain
- func (wc *WaveChain) LoopForever() *WaveChain
- func (wc *WaveChain) Run() error
- func (wc *WaveChain) Wave(w *Wave) *WaveChain
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
}
type File ¶
type File struct {
// contains filtered or unexported fields
}
type FileSeekFrom ¶
type FileSeekFrom int
const ( FromStart FileSeekFrom = 0 FromCurrent FileSeekFrom = 1 FromEnd FileSeekFrom = 1 )
type GenericPulse ¶
func CreatePulse ¶
func CreatePulse(gpioOn *GpioPin, gpioOff *GpioPin, delay int) GenericPulse
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 ¶
GetMode returns the GPIO mode
func (*GpioPin) Read ¶
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) SetGlitchFilter ¶
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 ¶
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 ¶
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 ¶
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)
type GpioPwm ¶
type GpioPwm struct {
// contains filtered or unexported fields
}
type GpioServo ¶
type GpioServo struct {
// contains filtered or unexported fields
}
type I2C ¶
type I2C struct {
// contains filtered or unexported fields
}
func (*I2C) BlockProcessCall ¶
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 ¶
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) CreateSerialWave ¶
func (p *Pi) CreateSerialWave(padPercent int, pulses ...SerialPulse) (*Wave, error)
type PiError ¶
type PiError struct {
// contains filtered or unexported fields
}
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
}
type Script ¶
type Script struct {
// contains filtered or unexported fields
}
func (*Script) Status ¶
func (s *Script) Status() (ScriptStatus, []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) 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
}
type SerialPulse ¶
func CreateSerialPulse ¶
func CreateSerialPulse(gpio *GpioPin, baud int, data []byte) SerialPulse
type Wave ¶
type Wave struct {
// contains filtered or unexported fields
}
Source Files
¶
- bcm.go
- binary.go
- callback.go
- cb_ev_manager.go
- command.go
- error.go
- file.go
- gpio.go
- gpio_const.go
- i2c.go
- i2c_zip.go
- pi.go
- pi_bank.go
- pi_file.go
- pi_i2c.go
- pi_script.go
- pi_serial.go
- pi_spi.go
- pi_wave.go
- pulse.go
- pwm.go
- script.go
- script_builder.go
- serial.go
- servo.go
- socket.go
- spi.go
- wave.go
- wave_chain.go