diff --git a/devices/apa102/apa102.go b/devices/apa102/apa102.go index cdd3556..2400bf1 100644 --- a/devices/apa102/apa102.go +++ b/devices/apa102/apa102.go @@ -210,7 +210,7 @@ func ToRGB(p []color.NRGBA) []byte { return b } -// Dev represents a strip of APA-102 LEDs as a strip connected over a SPI bus. +// Dev represents a strip of APA-102 LEDs as a strip connected over a SPI port. // It accepts a stream of raw RGB pixels and converts it to the full dynamic // range as supported by APA102 protocol (nearly 8000:1 contrast ratio). // @@ -284,7 +284,7 @@ func (d *Dev) Halt() error { // New returns a strip that communicates over SPI to APA102 LEDs. // -// The SPI bus speed should be high, at least in the Mhz range, as +// The SPI port speed should be high, at least in the Mhz range, as // there's 32 bits sent per LED, creating a staggered effect. See // https://cpldcpu.wordpress.com/2014/11/30/understanding-the-apa102-superled/ // diff --git a/devices/apa102/apa102_test.go b/devices/apa102/apa102_test.go index 9abfc52..075fdc7 100644 --- a/devices/apa102/apa102_test.go +++ b/devices/apa102/apa102_test.go @@ -552,18 +552,18 @@ func TestDrawRGBA(t *testing.T) { } func TestHalt(t *testing.T) { - bus := spitest.Playback{ + s := spitest.Playback{ Playback: conntest.Playback{ Ops: []conntest.IO{ {W: []byte{0x0, 0x0, 0x0, 0x0, 0xe1, 0x0, 0x0, 0x0, 0xe1, 0x0, 0x0, 0x0, 0xe1, 0x0, 0x0, 0x0, 0xe1, 0x0, 0x0, 0x0, 0xff}}, }, }, } - d, _ := New(&bus, 4, 250, 5000) + d, _ := New(&s, 4, 250, 5000) if err := d.Halt(); err != nil { t.Fatal(err) } - if err := bus.Close(); err != nil { + if err := s.Close(); err != nil { t.Fatal(err) } } @@ -580,14 +580,14 @@ func TestInit(t *testing.T) { // func Example() { - bus, err := spireg.Open("") + s, err := spireg.Open("") if err != nil { log.Fatalf("failed to open SPI: %v", err) } - defer bus.Close() + defer s.Close() // Opens a strip of 150 lights are 50% intensity with color temperature at // 5000 Kelvin. - dev, err := New(bus, 150, 127, 5000) + dev, err := New(s, 150, 127, 5000) if err != nil { log.Fatalf("failed to open apa102: %v", err) } diff --git a/devices/apa102/doc.go b/devices/apa102/doc.go index f177d35..685d4e8 100644 --- a/devices/apa102/doc.go +++ b/devices/apa102/doc.go @@ -2,7 +2,7 @@ // Use of this source code is governed under the Apache License, Version 2.0 // that can be found in the LICENSE file. -// Package apa102 drives a strip of APA102 LEDs connected on a SPI bus. +// Package apa102 drives a strip of APA102 LEDs connected on a SPI port. // // These devices are interesting because they have 2 PWMs: one global of 5 bits // of resolution and one per channel of 8 bits of resolution. This means that diff --git a/devices/bme280/bme280_test.go b/devices/bme280/bme280_test.go index 80d83f2..81e4477 100644 --- a/devices/bme280/bme280_test.go +++ b/devices/bme280/bme280_test.go @@ -41,7 +41,7 @@ var calib = calibration{ } func TestSPISense_success(t *testing.T) { - bus := spitest.Playback{ + s := spitest.Playback{ Playback: conntest.Playback{ Ops: []conntest.IO{ // Chipd ID detection. @@ -75,7 +75,7 @@ func TestSPISense_success(t *testing.T) { Standby: S1s, Filter: FOff, } - dev, err := NewSPI(&bus, &opts) + dev, err := NewSPI(&s, &opts) if err != nil { t.Fatal(err) } @@ -98,7 +98,7 @@ func TestSPISense_success(t *testing.T) { if env.Humidity != 995 { t.Fatalf("humidity %d", env.Humidity) } - if err := bus.Close(); err != nil { + if err := s.Close(); err != nil { t.Fatal(err) } } @@ -110,7 +110,7 @@ func TestNewSPI_fail(t *testing.T) { } func TestNewSPI_fail_len(t *testing.T) { - bus := spitest.Playback{ + s := spitest.Playback{ Playback: conntest.Playback{ Ops: []conntest.IO{ { @@ -122,18 +122,18 @@ func TestNewSPI_fail_len(t *testing.T) { DontPanic: true, }, } - if dev, err := NewSPI(&bus, nil); dev != nil || err == nil { + if dev, err := NewSPI(&s, nil); dev != nil || err == nil { t.Fatal("read failed") } // The I/O didn't occur. - bus.Count++ - if err := bus.Close(); err != nil { + s.Count++ + if err := s.Close(); err != nil { t.Fatal(err) } } func TestNewSPI_fail_chipid(t *testing.T) { - bus := spitest.Playback{ + s := spitest.Playback{ Playback: conntest.Playback{ Ops: []conntest.IO{ { @@ -144,10 +144,10 @@ func TestNewSPI_fail_chipid(t *testing.T) { }, }, } - if dev, err := NewSPI(&bus, nil); dev != nil || err == nil { + if dev, err := NewSPI(&s, nil); dev != nil || err == nil { t.Fatal("read failed") } - if err := bus.Close(); err != nil { + if err := s.Close(); err != nil { t.Fatal(err) } } diff --git a/devices/bme280/bme280smoketest/bme280smoketest.go b/devices/bme280/bme280smoketest/bme280smoketest.go index 88b2877..1018d40 100644 --- a/devices/bme280/bme280smoketest/bme280smoketest.go +++ b/devices/bme280/bme280smoketest/bme280smoketest.go @@ -38,12 +38,12 @@ func (s *SmokeTest) Description() string { // Run implements the SmokeTest interface. func (s *SmokeTest) Run(args []string) (err error) { f := flag.NewFlagSet("buses", flag.ExitOnError) - i2cName := f.String("i2c", "", "I²C bus to use") - spiName := f.String("spi", "", "SPI bus to use") + i2cID := f.String("i2c", "", "I²C bus to use") + spiID := f.String("spi", "", "SPI port to use") record := f.Bool("r", false, "record operation (for playback unit testing)") f.Parse(args) - i2cBus, err2 := i2creg.Open(*i2cName) + i2cBus, err2 := i2creg.Open(*i2cID) if err2 != nil { return err2 } @@ -53,21 +53,21 @@ func (s *SmokeTest) Run(args []string) (err error) { } }() - spiBus, err2 := spireg.Open(*spiName) + spiPort, err2 := spireg.Open(*spiID) if err2 != nil { return err2 } defer func() { - if err2 := spiBus.Close(); err == nil { + if err2 := spiPort.Close(); err == nil { err = err2 } }() if !*record { - return run(i2cBus, spiBus) + return run(i2cBus, spiPort) } i2cRecorder := i2ctest.Record{Bus: i2cBus} - spiRecorder := spitest.Record{Port: spiBus} + spiRecorder := spitest.Record{Port: spiPort} err = run(&i2cRecorder, &spiRecorder) if len(i2cRecorder.Ops) != 0 { fmt.Printf("I²C recorder Addr: 0x%02X\n", i2cRecorder.Ops[0].Addr) @@ -119,7 +119,7 @@ func (s *SmokeTest) Run(args []string) (err error) { return err } -func run(i2cBus i2c.Bus, spiBus spi.PortCloser) (err error) { +func run(i2cBus i2c.Bus, spiPort spi.PortCloser) (err error) { opts := &bme280.Opts{ Temperature: bme280.O16x, Pressure: bme280.O16x, @@ -138,7 +138,7 @@ func run(i2cBus i2c.Bus, spiBus spi.PortCloser) (err error) { } }() - spiDev, err2 := bme280.NewSPI(spiBus, opts) + spiDev, err2 := bme280.NewSPI(spiPort, opts) if err2 != nil { return err2 } diff --git a/devices/lepton/lepton_test.go b/devices/lepton/lepton_test.go index 58d492c..fdbc33e 100644 --- a/devices/lepton/lepton_test.go +++ b/devices/lepton/lepton_test.go @@ -199,7 +199,7 @@ func TestReadImg_fail_Tx(t *testing.T) { t.Fatal(err) } if _, err := d.ReadImg(); err == nil { - t.Fatal("spi bus Tx failed") + t.Fatal("spi port Tx failed") } if err := i.Close(); err != nil { t.Fatal(err) @@ -214,7 +214,7 @@ func TestReadImg_fail_OUt(t *testing.T) { t.Fatal(err) } if _, err := d.ReadImg(); err == nil { - t.Fatal("spi bus Tx failed") + t.Fatal("spi port Tx failed") } if err := i.Close(); err != nil { t.Fatal(err) diff --git a/devices/ssd1306/ssd1306.go b/devices/ssd1306/ssd1306.go index 697d2f9..40d574f 100644 --- a/devices/ssd1306/ssd1306.go +++ b/devices/ssd1306/ssd1306.go @@ -149,8 +149,8 @@ func NewI2C(i i2c.Bus, w, h int, rotated bool) (*Dev, error) { return newDev(&i2c.Dev{Bus: i, Addr: 0x3C}, w, h, rotated, false, nil) } -// newDev is the common initialization code that is independent of the bus -// being used. +// newDev is the common initialization code that is independent of the +// communication protocol (I²C or SPI) being used. func newDev(c conn.Conn, w, h int, rotated, usingSPI bool, dc gpio.PinOut) (*Dev, error) { if w < 8 || w > 128 || w&7 != 0 { return nil, fmt.Errorf("ssd1306: invalid width %d", w) diff --git a/devices/ssd1306/ssd1306_test.go b/devices/ssd1306/ssd1306_test.go index 1c5b3e3..7bcad1f 100644 --- a/devices/ssd1306/ssd1306_test.go +++ b/devices/ssd1306/ssd1306_test.go @@ -420,12 +420,12 @@ func TestSPI_3wire(t *testing.T) { } func TestSPI_4wire_String(t *testing.T) { - bus := spitest.Playback{ + port := spitest.Playback{ Playback: conntest.Playback{ Ops: []conntest.IO{{W: getInitCmd(128, 64, false)}}, }, } - dev, err := NewSPI(&bus, &gpiotest.Pin{N: "pin1", Num: 42}, 128, 64, false) + dev, err := NewSPI(&port, &gpiotest.Pin{N: "pin1", Num: 42}, 128, 64, false) if err != nil { t.Fatal(err) } @@ -433,7 +433,7 @@ func TestSPI_4wire_String(t *testing.T) { if s := dev.String(); s != expected { t.Fatalf("%q != %q", expected, s) } - if err := bus.Close(); err != nil { + if err := port.Close(); err != nil { t.Fatal(err) } } @@ -444,7 +444,7 @@ func TestSPI_4wire_Write_differential(t *testing.T) { buf2 := make([]byte, 128) buf2[130-128] = 1 buf2[131-128] = 2 - bus := spitest.Playback{ + port := spitest.Playback{ Playback: conntest.Playback{ Ops: []conntest.IO{ {W: getInitCmd(128, 64, false)}, @@ -455,7 +455,7 @@ func TestSPI_4wire_Write_differential(t *testing.T) { }, }, } - dev, err := NewSPI(&bus, &gpiotest.Pin{N: "pin1", Num: 42}, 128, 64, false) + dev, err := NewSPI(&port, &gpiotest.Pin{N: "pin1", Num: 42}, 128, 64, false) if err != nil { t.Fatal(err) } @@ -468,7 +468,7 @@ func TestSPI_4wire_Write_differential(t *testing.T) { if n, err := dev.Write(pix); n != len(pix) || err != nil { t.Fatal(n, err) } - if err := bus.Close(); err != nil { + if err := port.Close(); err != nil { t.Fatal(err) } } @@ -476,7 +476,7 @@ func TestSPI_4wire_Write_differential(t *testing.T) { func TestSPI_4wire_Write_differential_fail(t *testing.T) { buf1 := make([]byte, 1024) buf1[130] = 1 - bus := spitest.Playback{ + port := spitest.Playback{ Playback: conntest.Playback{ Ops: []conntest.IO{ {W: getInitCmd(128, 64, false)}, @@ -485,7 +485,7 @@ func TestSPI_4wire_Write_differential_fail(t *testing.T) { DontPanic: true, }, } - dev, err := NewSPI(&bus, &gpiotest.Pin{N: "pin1", Num: 42}, 128, 64, false) + dev, err := NewSPI(&port, &gpiotest.Pin{N: "pin1", Num: 42}, 128, 64, false) if err != nil { t.Fatal(err) } @@ -498,19 +498,19 @@ func TestSPI_4wire_Write_differential_fail(t *testing.T) { if n, err := dev.Write(pix); n != 0 || !conntest.IsErr(err) { t.Fatalf("expected conntest error: %v", err) } - if err := bus.Close(); err != nil { + if err := port.Close(); err != nil { t.Fatal(err) } } func TestSPI_4wire_gpio_fail(t *testing.T) { - bus := spitest.Playback{ + port := spitest.Playback{ Playback: conntest.Playback{ Ops: []conntest.IO{{W: getInitCmd(128, 64, false)}}, }, } pin := &failPin{fail: false} - dev, err := NewSPI(&bus, pin, 128, 64, false) + dev, err := NewSPI(&port, pin, 128, 64, false) if err != nil { t.Fatal(err) } @@ -522,7 +522,7 @@ func TestSPI_4wire_gpio_fail(t *testing.T) { if err := dev.Halt(); err == nil || err.Error() != "injected error" { t.Fatalf("expected gpio error: %v", err) } - if err := bus.Close(); err != nil { + if err := port.Close(); err != nil { t.Fatal(err) } } diff --git a/devices/ssd1306/ssd1306smoketest/ssd1306smoketest.go b/devices/ssd1306/ssd1306smoketest/ssd1306smoketest.go index 4fff62e..28f6840 100644 --- a/devices/ssd1306/ssd1306smoketest/ssd1306smoketest.go +++ b/devices/ssd1306/ssd1306smoketest/ssd1306smoketest.go @@ -57,8 +57,8 @@ func (s *SmokeTest) Run(args []string) (err error) { s.delay = 2 * time.Second f := flag.NewFlagSet("buses", flag.ExitOnError) - i2cName := f.String("i2c", "", "I²C bus to use") - spiName := f.String("spi", "", "SPI bus to use") + i2cID := f.String("i2c", "", "I²C bus to use") + spiID := f.String("spi", "", "SPI port to use") dcName := f.String("dc", "", "DC pin to use in 4-wire SPI mode") w := f.Int("w", 128, "Display width") @@ -68,7 +68,7 @@ func (s *SmokeTest) Run(args []string) (err error) { record := f.Bool("record", false, "record operation (for playback unit testing)") f.Parse(args) - i2cBus, err2 := i2creg.Open(*i2cName) + i2cBus, err2 := i2creg.Open(*i2cID) if err2 != nil { return err2 } @@ -78,12 +78,12 @@ func (s *SmokeTest) Run(args []string) (err error) { } }() - spiBus, err2 := spireg.Open(*spiName) + spiPort, err2 := spireg.Open(*spiID) if err2 != nil { return err2 } defer func() { - if err2 := spiBus.Close(); err == nil { + if err2 := spiPort.Close(); err == nil { err = err2 } }() @@ -93,11 +93,11 @@ func (s *SmokeTest) Run(args []string) (err error) { dc = gpioreg.ByName(*dcName) } if !*record { - return s.run(i2cBus, spiBus, dc, *w, *h, *rotated) + return s.run(i2cBus, spiPort, dc, *w, *h, *rotated) } i2cRecorder := i2ctest.Record{Bus: i2cBus} - spiRecorder := spitest.Record{Port: spiBus} + spiRecorder := spitest.Record{Port: spiPort} err = s.run(&i2cRecorder, &spiRecorder, dc, *w, *h, *rotated) if len(i2cRecorder.Ops) != 0 { fmt.Printf("I²C recorder Addr: 0x%02X\n", i2cRecorder.Ops[0].Addr) @@ -149,7 +149,7 @@ func (s *SmokeTest) Run(args []string) (err error) { return err } -func (s *SmokeTest) run(i2cBus i2c.Bus, spiBus spi.PortCloser, dc gpio.PinOut, w, h int, rotated bool) (err error) { +func (s *SmokeTest) run(i2cBus i2c.Bus, spiPort spi.PortCloser, dc gpio.PinOut, w, h int, rotated bool) (err error) { s.timings = make([]time.Duration, 2) start := time.Now() i2cDev, err2 := ssd1306.NewI2C(i2cBus, w, h, rotated) @@ -158,7 +158,7 @@ func (s *SmokeTest) run(i2cBus i2c.Bus, spiBus spi.PortCloser, dc gpio.PinOut, w return err2 } start = time.Now() - spiDev, err2 := ssd1306.NewSPI(spiBus, dc, w, h, rotated) + spiDev, err2 := ssd1306.NewSPI(spiPort, dc, w, h, rotated) s.timings[1] = time.Since(start) if err2 != nil { return err2 diff --git a/experimental/devices/bitbang/spi.go b/experimental/devices/bitbang/spi.go index 2585fdd..f7ecbad 100644 --- a/experimental/devices/bitbang/spi.go +++ b/experimental/devices/bitbang/spi.go @@ -31,7 +31,7 @@ type SPI struct { csn gpio.PinOut // CS mu sync.Mutex - maxHzBus int64 + maxHzPort int64 maxHzDev int64 mode spi.Mode bits int @@ -60,8 +60,8 @@ func (s *SPI) LimitSpeed(maxHz int64) error { } s.mu.Lock() defer s.mu.Unlock() - s.maxHzBus = maxHz - if s.maxHzDev == 0 || s.maxHzBus < s.maxHzDev { + s.maxHzPort = maxHz + if s.maxHzDev == 0 || s.maxHzPort < s.maxHzDev { s.halfCycle = time.Second / time.Duration(maxHz) / time.Duration(2) } return nil @@ -78,7 +78,7 @@ func (s *SPI) DevParams(maxHz int64, mode spi.Mode, bits int) error { s.mu.Lock() defer s.mu.Unlock() s.maxHzDev = maxHz - if s.maxHzDev != 0 && (s.maxHzBus == 0 || s.maxHzDev < s.maxHzBus) { + if s.maxHzDev != 0 && (s.maxHzPort == 0 || s.maxHzDev < s.maxHzPort) { s.halfCycle = time.Second / time.Duration(maxHz) / time.Duration(2) } s.mode = mode