spi: rename variables 'bus' to 'port' where applicable (#143)

As people like to copy paste code, make sure that the semantic of the variable
names is always relevant w.r.t. the object they refer to. In particular, do not
use 'bus' to refer to an spi.Port or spi.PortCloser, as this is blur the
distinction.

Also rename a few fooName to fooID.
pull/1/head
M-A 9 years ago committed by GitHub
parent 77af758e41
commit e1b4eec42a

@ -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/
//

@ -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)
}

@ -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

@ -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)
}
}

@ -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
}

@ -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)

@ -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)

@ -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)
}
}

@ -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

@ -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

Loading…
Cancel
Save