Documentation ¶
Overview ¶
Package sysfs implements a sane library to interact with sysfs provided hardware access.
sysfs a virtual file system rooted at /sys/.
This package also include drivers using devfs.
https://www.kernel.org/doc/Documentation/filesystems/sysfs.txt
Index ¶
- Variables
- func I2CSetSpeedHook(h func(f physic.Frequency) error) error
- type I2C
- type LED
- func (l *LED) DefaultPull() gpio.Pull
- func (l *LED) Func() pin.Func
- func (l *LED) Function() string
- func (l *LED) Halt() error
- func (l *LED) In(pull gpio.Pull, edge gpio.Edge) error
- func (l *LED) Name() string
- func (l *LED) Number() int
- func (l *LED) Out(level gpio.Level) error
- func (l *LED) PWM(d gpio.Duty, f physic.Frequency) error
- func (l *LED) Pull() gpio.Pull
- func (l *LED) Read() gpio.Level
- func (l *LED) SetFunc(f pin.Func) error
- func (l *LED) String() string
- func (l *LED) SupportedFuncs() []pin.Func
- func (l *LED) WaitForEdge(timeout time.Duration) bool
- type Pin
- func (p *Pin) DefaultPull() gpio.Pull
- func (p *Pin) Func() pin.Func
- func (p *Pin) Function() string
- func (p *Pin) Halt() error
- func (p *Pin) In(pull gpio.Pull, edge gpio.Edge) error
- func (p *Pin) Name() string
- func (p *Pin) Number() int
- func (p *Pin) Out(l gpio.Level) error
- func (p *Pin) PWM(gpio.Duty, physic.Frequency) error
- func (p *Pin) Pull() gpio.Pull
- func (p *Pin) Read() gpio.Level
- func (p *Pin) SetFunc(f pin.Func) error
- func (p *Pin) String() string
- func (p *Pin) SupportedFuncs() []pin.Func
- func (p *Pin) WaitForEdge(timeout time.Duration) bool
- type SPI
- func (s *SPI) CLK() gpio.PinOut
- func (s *SPI) CS() gpio.PinOut
- func (s *SPI) Close() error
- func (s *SPI) Connect(f physic.Frequency, mode spi.Mode, bits int) (spi.Conn, error)
- func (s *SPI) LimitSpeed(f physic.Frequency) error
- func (s *SPI) MISO() gpio.PinIn
- func (s *SPI) MOSI() gpio.PinOut
- func (s *SPI) MaxTxSize() int
- func (s *SPI) String() string
- type ThermalSensor
- func (t *ThermalSensor) Halt() error
- func (t *ThermalSensor) Precision(e *physic.Env)
- func (t *ThermalSensor) Sense(e *physic.Env) error
- func (t *ThermalSensor) SenseContinuous(interval time.Duration) (<-chan physic.Env, error)
- func (t *ThermalSensor) String() string
- func (t *ThermalSensor) Type() string
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var LEDs []*LED
LEDs is all the leds discovered on this host via sysfs.
Depending on the user context, the LEDs may be read-only or writeable.
var Pins map[int]*Pin
Pins is all the pins exported by GPIO sysfs.
Some CPU architectures have the pin numbers start at 0 and use consecutive pin numbers but this is not the case for all CPU architectures, some have gaps in the pin numbering.
This global variable is initialized once at driver initialization and isn't mutated afterward. Do not modify it.
var ThermalSensors []*ThermalSensor
ThermalSensors is all the sensors discovered on this host via sysfs. It includes 'thermal' devices as well as temperature 'hwmon' devices, so pre-configured onewire temperature sensors will be discovered automatically.
Functions ¶
Types ¶
type I2C ¶
type I2C struct {
// contains filtered or unexported fields
}
I2C is an open I²C bus via sysfs.
It can be used to communicate with multiple devices from multiple goroutines.
func NewI2C ¶
NewI2C opens an I²C bus via its sysfs interface as described at https://www.kernel.org/doc/Documentation/i2c/dev-interface.
busNumber is the bus number as exported by sysfs. For example if the path is /dev/i2c-1, busNumber should be 1.
The resulting object is safe for concurent use.
Do not use sysfs.NewI2C() directly as the package sysfs is providing a https://periph.io/x/periph/conn/i2c Linux-specific implementation.
periph.io works on many OSes!
Instead, use https://periph.io/x/periph/conn/i2c/i2creg#Open. This permits it to work on all operating systems, or devices like I²C over USB.
func (*I2C) Close ¶
Close closes the handle to the I²C driver. It is not a requirement to close before process termination.
type LED ¶
type LED struct {
// contains filtered or unexported fields
}
LED represents one LED on the system.
func LEDByName ¶
LEDByName returns a *LED for the LED name, if any.
For all practical purpose, a LED is considered an output-only gpio.PinOut.
Example ¶
package main import ( "fmt" "log" "periph.io/x/periph/conn/gpio" "periph.io/x/periph/host" "periph.io/x/periph/host/sysfs" ) func main() { // Make sure periph is initialized. if _, err := host.Init(); err != nil { log.Fatal(err) } for _, led := range sysfs.LEDs { fmt.Printf("- %s: %s\n", led, led.Function()) } led, err := sysfs.LEDByName("LED0") if err != nil { log.Fatalf("failed to find LED: %v", err) } if err := led.Out(gpio.Low); err != nil { log.Fatal(err) } }
Output:
func (*LED) PWM ¶
PWM implements gpio.PinOut.
This sets the intensity level, if supported. The frequency is ignored.
func (*LED) SupportedFuncs ¶
SupportedFuncs implements pin.PinFunc.
type Pin ¶
type Pin struct {
// contains filtered or unexported fields
}
Pin represents one GPIO pin as found by sysfs.
func (*Pin) DefaultPull ¶
DefaultPull implements gpio.PinIn.
It returns gpio.PullNoChange since gpio sysfs has no support for input pull resistor.
func (*Pin) Pull ¶
Pull implements gpio.PinIn.
It returns gpio.PullNoChange since gpio sysfs has no support for input pull resistor.
func (*Pin) SupportedFuncs ¶
SupportedFuncs implements pin.PinFunc.
type SPI ¶
type SPI struct {
// contains filtered or unexported fields
}
SPI is an open SPI port.
func NewSPI ¶
NewSPI opens a SPI port via its devfs interface as described at https://www.kernel.org/doc/Documentation/spi/spidev and https://www.kernel.org/doc/Documentation/spi/spi-summary
The resulting object is safe for concurrent use.
busNumber is the bus number as exported by devfs. For example if the path is /dev/spidev0.1, busNumber should be 0 and chipSelect should be 1.
It is recommended to use https://periph.io/x/periph/conn/spi/spireg#Open instead of using NewSPI() directly as the package sysfs is providing a Linux-specific implementation. periph.io works on many OSes! This permits it to work on all operating systems, or devices like SPI over USB.
func (*SPI) Close ¶
Close closes the handle to the SPI driver. It is not a requirement to close before process termination.
Note that the object is not reusable afterward.
func (*SPI) LimitSpeed ¶
LimitSpeed implements spi.ConnCloser.
type ThermalSensor ¶
type ThermalSensor struct {
// contains filtered or unexported fields
}
ThermalSensor represents one thermal sensor on the system.
func ThermalSensorByName ¶
func ThermalSensorByName(name string) (*ThermalSensor, error)
ThermalSensorByName returns a *ThermalSensor for the sensor name, if any.
func (*ThermalSensor) Halt ¶
func (t *ThermalSensor) Halt() error
Halt implements conn.Resource. It is a noop.
func (*ThermalSensor) Precision ¶
func (t *ThermalSensor) Precision(e *physic.Env)
Precision implements physic.SenseEnv.
func (*ThermalSensor) Sense ¶
func (t *ThermalSensor) Sense(e *physic.Env) error
Sense implements physic.SenseEnv.
func (*ThermalSensor) SenseContinuous ¶
SenseContinuous implements physic.SenseEnv.
func (*ThermalSensor) String ¶
func (t *ThermalSensor) String() string
func (*ThermalSensor) Type ¶
func (t *ThermalSensor) Type() string
Type returns the type of sensor as exported by sysfs.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package sysfssmoketest verifies that sysfs specific functionality work.
|
Package sysfssmoketest verifies that sysfs specific functionality work. |