bmxx80: switch to a required Opts pattern

Issue #194
pull/1/head
Marc-Antoine Ruel 8 years ago
parent caf4bf4327
commit ad7ff7dcea

@ -126,7 +126,7 @@ func TestNewSPIBME280_fail_len(t *testing.T) {
DontPanic: true,
},
}
if dev, err := NewSPI(&s, nil); dev != nil || err == nil {
if dev, err := NewSPI(&s, &DefaultOpts); dev != nil || err == nil {
t.Fatal("read failed")
}
// The I/O didn't occur.
@ -148,7 +148,7 @@ func TestNewSPIBME280_fail_chipid(t *testing.T) {
},
},
}
if dev, err := NewSPI(&s, nil); dev != nil || err == nil {
if dev, err := NewSPI(&s, &DefaultOpts); dev != nil || err == nil {
t.Fatal("read failed")
}
if err := s.Close(); err != nil {
@ -164,7 +164,7 @@ func TestNewI2CBME280_fail_io(t *testing.T) {
},
DontPanic: true,
}
if dev, err := NewI2C(&bus, 0x76, nil); dev != nil || err == nil {
if dev, err := NewI2C(&bus, 0x76, &DefaultOpts); dev != nil || err == nil {
t.Fatal("read failed")
}
// The I/O didn't occur.
@ -182,7 +182,7 @@ func TestNewI2CBME280_fail_read_calib1(t *testing.T) {
},
DontPanic: true,
}
if dev, err := NewI2C(&bus, 0x76, nil); dev != nil || err == nil {
if dev, err := NewI2C(&bus, 0x76, &DefaultOpts); dev != nil || err == nil {
t.Fatal("invalid chip id")
}
if err := bus.Close(); err != nil {
@ -229,7 +229,7 @@ func TestNewI2C280_write_config(t *testing.T) {
},
DontPanic: true,
}
if dev, err := NewI2C(&bus, 0x76, nil); dev != nil || err == nil {
if dev, err := NewI2C(&bus, 0x76, &DefaultOpts); dev != nil || err == nil {
t.Fatal("3rd calib read failed")
}
if err := bus.Close(); err != nil {
@ -254,7 +254,7 @@ func TestNewI2C280Opts_temperature(t *testing.T) {
func TestNewI2C280_bad_addr(t *testing.T) {
bus := i2ctest.Playback{}
if dev, err := NewI2C(&bus, 1, nil); dev != nil || err == nil {
if dev, err := NewI2C(&bus, 1, &DefaultOpts); dev != nil || err == nil {
t.Fatal("bad addr")
}
if err := bus.Close(); err != nil {
@ -283,7 +283,7 @@ func TestI2CSenseBME280_fail(t *testing.T) {
},
DontPanic: true,
}
dev, err := NewI2C(&bus, 0x76, nil)
dev, err := NewI2C(&bus, 0x76, &DefaultOpts)
if err != nil {
t.Fatal(err)
}
@ -320,7 +320,7 @@ func TestI2CSenseBMP280_success(t *testing.T) {
{Addr: 0x76, W: []byte{0xf7}, R: []byte{0x4a, 0x52, 0xc0, 0x80, 0x96, 0xc0}},
},
}
dev, err := NewI2C(&bus, 0x76, nil)
dev, err := NewI2C(&bus, 0x76, &DefaultOpts)
if err != nil {
t.Fatal(err)
}
@ -373,7 +373,7 @@ func TestI2CSenseBME280_success(t *testing.T) {
{Addr: 0x76, W: []byte{0xf7}, R: []byte{0x4a, 0x52, 0xc0, 0x80, 0x96, 0xc0, 0x7a, 0x76}},
},
}
dev, err := NewI2C(&bus, 0x76, nil)
dev, err := NewI2C(&bus, 0x76, &DefaultOpts)
if err != nil {
t.Fatal(err)
}
@ -422,7 +422,7 @@ func TestI2CSense280_idle_fail(t *testing.T) {
},
DontPanic: true,
}
dev, err := NewI2C(&bus, 0x76, nil)
dev, err := NewI2C(&bus, 0x76, &DefaultOpts)
if err != nil {
t.Fatal(err)
}
@ -458,7 +458,7 @@ func TestI2CSense280_command_fail(t *testing.T) {
},
DontPanic: true,
}
dev, err := NewI2C(&bus, 0x76, nil)
dev, err := NewI2C(&bus, 0x76, &DefaultOpts)
if err != nil {
t.Fatal(err)
}
@ -502,7 +502,7 @@ func TestI2CSenseContinuous280_success(t *testing.T) {
{Addr: 0x76, W: []byte{0xF5, 0xa0, 0xf4, 0x6c}},
},
}
dev, err := NewI2C(&bus, 0x76, nil)
dev, err := NewI2C(&bus, 0x76, &DefaultOpts)
if err != nil {
t.Fatal(err)
}
@ -600,7 +600,7 @@ func TestI2CSenseContinuous280_command_fail(t *testing.T) {
},
DontPanic: true,
}
dev, err := NewI2C(&bus, 0x76, nil)
dev, err := NewI2C(&bus, 0x76, &DefaultOpts)
if err != nil {
t.Fatal(err)
}
@ -634,7 +634,7 @@ func TestI2CSenseContinuous280_sense_fail(t *testing.T) {
},
DontPanic: true,
}
dev, err := NewI2C(&bus, 0x76, nil)
dev, err := NewI2C(&bus, 0x76, &DefaultOpts)
if err != nil {
t.Fatal(err)
}

@ -124,9 +124,16 @@ const (
F16 Filter = 4
)
// Opts is optional options to pass to the constructor.
// DefaultsOpts returns the default options used.
//
// Recommended (and default) values are O4x for oversampling.
// Defaults to use O4x (4x oversampling) for all measurements.
var DefaultOpts = Opts{
Temperature: O4x,
Pressure: O4x,
Humidity: O4x,
}
// Opts defines the options for the device.
//
// Recommended sensing settings as per the datasheet:
//
@ -343,9 +350,6 @@ func (d *Dev) Halt() error {
//
func (d *Dev) makeDev(opts *Opts) error {
if opts == nil {
opts = &defaults
}
d.opts = *opts
d.measDelay = d.opts.delayTypical280()
@ -505,12 +509,6 @@ func (d *Dev) wrap(err error) error {
return fmt.Errorf("%s: %v", strings.ToLower(d.name), err)
}
var defaults = Opts{
Temperature: O4x,
Pressure: O4x,
Humidity: O4x,
}
var doSleep = time.Sleep
var _ conn.Resource = &Dev{}

@ -26,7 +26,8 @@ func Example() {
log.Fatalf("failed to open I²C: %v", err)
}
defer b.Close()
d, err := bmxx80.NewI2C(b, 0x76, nil)
d, err := bmxx80.NewI2C(b, 0x76, &bmxx80.DefaultOpts)
if err != nil {
log.Fatalf("failed to initialize bme280: %v", err)
}

Loading…
Cancel
Save