Documentation ¶
Overview ¶
Package sysfs provides generic access to linux gpio.
It is intended to be used while implementing support for a single board linux computer
Index ¶
- Constants
- func NewI2cDevice(location string, address int) (d *i2cDevice, err error)
- func SetFilesystem(f Filesystem)
- func SetSyscall(s SystemCaller)
- func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)
- type DigitalPin
- type File
- type Filesystem
- type I2cDevice
- type MockFile
- func (f *MockFile) Close() error
- func (f *MockFile) Fd() uintptr
- func (f *MockFile) Read(b []byte) (n int, err error)
- func (f *MockFile) ReadAt(b []byte, off int64) (n int, err error)
- func (f *MockFile) Seek(offset int64, whence int) (ret int64, err error)
- func (f *MockFile) Sync() (err error)
- func (f *MockFile) Write(b []byte) (n int, err error)
- func (f *MockFile) WriteString(s string) (ret int, err error)
- type MockFilesystem
- type MockSyscall
- type NativeFilesystem
- type NativeSyscall
- type SystemCaller
Constants ¶
const ( // IN gpio direction IN = "in" // OUT gpio direction OUT = "out" // HIGH gpio level HIGH = 1 // LOW gpio level LOW = 0 // GPIOPATH default linux gpio path GPIOPATH = "/sys/class/gpio" )
const ( I2C_SLAVE = 0x0703 I2C_SMBUS = 0x0720 I2C_SMBUS_WRITE = 0 I2C_SMBUS_READ = 1 I2C_SMBUS_I2C_BLOCK_DATA = 8 // Adapter functionality I2C_FUNCS = 0x0705 I2C_FUNC_SMBUS_READ_BLOCK_DATA = 0x01000000 I2C_FUNC_SMBUS_WRITE_BLOCK_DATA = 0x02000000 )
Variables ¶
This section is empty.
Functions ¶
func NewI2cDevice ¶
NewI2cDevice returns an io.ReadWriteCloser with the proper ioctrl given an i2c bus location and device address
func SetFilesystem ¶
func SetFilesystem(f Filesystem)
SetFilesystem sets the filesystem implementation.
Types ¶
type DigitalPin ¶
type DigitalPin interface { // Unexport unexports the pin and releases the pin from the operating system Unexport() error // Export exports the pin for use by the operating system Export() error // Read reads the current value of the pin Read() (int, error) // Direction sets the direction for the pin Direction(string) error // Write writes to the pin Write(int) error }
DigitalPin is the interface for sysfs gpio interactions
func NewDigitalPin ¶
func NewDigitalPin(pin int, v ...string) DigitalPin
NewDigitalPin returns a DigitalPin given the pin number and an optional sysfs pin label. If no label is supplied the default label will prepend "gpio" to the pin number, eg. a pin number of 10 will have a label of "gpio10"
type File ¶
type File interface { Write(b []byte) (n int, err error) WriteString(s string) (ret int, err error) Sync() (err error) Read(b []byte) (n int, err error) ReadAt(b []byte, off int64) (n int, err error) Seek(offset int64, whence int) (ret int64, err error) Fd() uintptr Close() error }
A File represents basic IO interactions with the underlying file system
type Filesystem ¶
type Filesystem interface {
OpenFile(name string, flag int, perm os.FileMode) (file File, err error)
}
Filesystem opens files and returns either a native file system or user defined
type I2cDevice ¶
type I2cDevice interface { io.ReadWriteCloser SetAddress(int) error }
I2cDevice is the interface to a specific i2c bus
type MockFile ¶
type MockFile struct { Contents string Seq int // When this file was last written or read. Opened bool Closed bool // contains filtered or unexported fields }
A MockFile represents a mock file that contains a single string. Any write overwrites, and any read returns from the start.
type MockFilesystem ¶
type MockFilesystem struct { Seq int // Increases with each write or read. Files map[string]*MockFile }
MockFilesystem represents a filesystem of mock files.
func NewMockFilesystem ¶
func NewMockFilesystem(files []string) *MockFilesystem
NewMockFilesystem returns a new MockFilesystem given a list of file paths
func (*MockFilesystem) Add ¶
func (fs *MockFilesystem) Add(name string) *MockFile
Add adds a new file to fs.Files given a name, and returns the newly created file
type NativeFilesystem ¶
type NativeFilesystem struct{}
NativeFilesystem represents the native file system implementation