commit a8b17bc54b4254a08f66e2e2317342d3d276b136
parent 6b6a681b8704a3f31f725b6e9498016eaf2fa65f
Author: Brian C. Lane <bcl@brianlane.com>
Date: Fri, 28 May 2021 15:41:36 -0700
lint: Cleanup lint complaints in the sgp30 code
Diffstat:
4 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/cmd/run-sgp30/main.go b/cmd/run-sgp30/main.go
@@ -32,7 +32,7 @@ func main() {
if err != nil {
log.Fatal(err)
}
- defer d.Halt()
+ defer d.Halt() //nolint
sn, err := d.GetSerialNumber()
if err != nil {
diff --git a/sgp30/example_test.go b/sgp30/example_test.go
@@ -32,7 +32,7 @@ func Example() {
if err != nil {
log.Fatal(err)
}
- defer d.Halt()
+ defer d.Halt() //nolint
sn, err := d.GetSerialNumber()
if err != nil {
diff --git a/sgp30/sgp30.go b/sgp30/sgp30.go
@@ -14,12 +14,8 @@ import (
"periph.io/x/periph/conn/i2c"
)
-const (
- SGP30_ADDR = 0x58
-)
-
var (
- CRC8_SGP30 = crc8.MakeTable(crc8.Params{
+ crc8sgp30 = crc8.MakeTable(crc8.Params{
Poly: 0x31,
Init: 0xFF,
RefIn: false,
@@ -31,7 +27,7 @@ var (
)
func checkCRC8(data []byte) bool {
- return crc8.Checksum(data[:], CRC8_SGP30) == 0x00
+ return crc8.Checksum(data[:], crc8sgp30) == 0x00
}
// New returns a SGP30 device struct for communicating with the device
@@ -42,7 +38,7 @@ func checkCRC8(data []byte) bool {
//
// eg. pass 30 * time.Second to save the baseline data every 30 seconds
func New(i i2c.Bus, baselineFile string, baselineInterval time.Duration) (*Dev, error) {
- d := &Dev{i2c: &i2c.Dev{Bus: i, Addr: SGP30_ADDR}}
+ d := &Dev{i2c: &i2c.Dev{Bus: i, Addr: 0x58}}
if _, err := d.GetSerialNumber(); err != nil {
return nil, err
}
@@ -63,12 +59,14 @@ func New(i i2c.Bus, baselineFile string, baselineInterval time.Duration) (*Dev,
return d, nil
}
+// Dev holds the connection and error details for the device
+// as well as the path to the baseline file and how often to save it.
type Dev struct {
i2c conn.Conn // i2c device handle for the sgp30
baselineFile string // Path and filename for storing baseline values
baselineInterval time.Duration // How often to save the baseline data
lastSave time.Time // Last time baseline was saved
- err error
+ err error //nolint
}
// Halt implements conn.Resource.
@@ -160,7 +158,9 @@ func (d *Dev) ReadAirQuality() (uint16, uint16, error) {
if err != nil {
return 0, 0, fmt.Errorf("sgp30: Error while reading baseline: %w", err)
}
- ioutil.WriteFile(d.baselineFile, baseline[:], 0644)
+ if err = ioutil.WriteFile(d.baselineFile, baseline[:], 0644); err != nil {
+ return 0, 0, err
+ }
}
return word(data[:], 0), word(data[:], 3), nil
@@ -201,7 +201,9 @@ func (d *Dev) SetBaseline(baseline []byte) error {
}
// Send InitAirQuality
- d.StartMeasurements()
+ if err := d.StartMeasurements(); err != nil {
+ return err
+ }
// Send a 0x201e + TVOC, CO2 baseline data (2 words + CRCs)
data := append(append([]byte{0x20, 0x1e}, baseline[3:6]...), baseline[0:3]...)
diff --git a/sgp30/sgp30_test.go b/sgp30/sgp30_test.go
@@ -27,7 +27,7 @@ var (
func TestWord(t *testing.T) {
data := []byte{0x00, 0x01, 0x80, 0x0A, 0x55, 0xAA, 0xFF, 0x7F}
result := []uint16{0x0001, 0x800A, 0x55AA, 0xFF7F}
- for i := 0; i < len(result); i += 1 {
+ for i := 0; i < len(result); i++ {
if word(data, i*2) != result[i] {
t.Errorf("word error: i == %d", i)
}