mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-07-26 10:38:41 +00:00
75 lines
1.6 KiB
Go
75 lines
1.6 KiB
Go
package aht20
|
|
|
|
import (
|
|
"testing"
|
|
|
|
qt "github.com/frankban/quicktest"
|
|
"tinygo.org/x/drivers/tester"
|
|
)
|
|
|
|
func TestDefaultI2CAddress(t *testing.T) {
|
|
c := qt.New(t)
|
|
bus := tester.NewI2CBus(c)
|
|
dev := New(bus)
|
|
c.Assert(uint8(dev.Address), qt.Equals, uint8(Address))
|
|
}
|
|
|
|
func TestInitialization(t *testing.T) {
|
|
c := qt.New(t)
|
|
bus := tester.NewI2CBus(c)
|
|
fdev := tester.NewI2CDeviceCmd(c, Address)
|
|
fdev.Commands = defaultCommands()
|
|
bus.AddDevice(fdev)
|
|
|
|
// Set status to uninitialized to force initialization
|
|
fdev.Commands[CMD_STATUS].Response[0] = 0x0C
|
|
|
|
dev := New(bus)
|
|
dev.Configure()
|
|
|
|
// Check initialization command invoked
|
|
c.Assert(fdev.Commands[CMD_INITIALIZE].Invocations > 0, qt.Equals, true)
|
|
}
|
|
|
|
func TestRead(t *testing.T) {
|
|
c := qt.New(t)
|
|
bus := tester.NewI2CBus(c)
|
|
fdev := tester.NewI2CDeviceCmd(c, Address)
|
|
fdev.Commands = defaultCommands()
|
|
bus.AddDevice(fdev)
|
|
|
|
dev := New(bus)
|
|
dev.Read()
|
|
|
|
// Should be 25deg (250 decidegrees)
|
|
c.Assert(dev.DeciCelsius(), qt.Equals, int32(250))
|
|
|
|
// Should be 36.3% (363 decipercent)
|
|
c.Assert(dev.DeciRelHumidity(), qt.Equals, int32(363))
|
|
}
|
|
|
|
func defaultCommands() map[uint8]*tester.Cmd {
|
|
return map[uint8]*tester.Cmd{
|
|
CMD_INITIALIZE: {
|
|
Command: []byte{0xBE},
|
|
Mask: []byte{0xFF},
|
|
Response: []byte{},
|
|
},
|
|
CMD_TRIGGER: {
|
|
Command: []byte{0xAC, 0x33, 0x00},
|
|
Mask: []byte{0xFF, 0xFF, 0xFF},
|
|
Response: []byte{0x1C, 0x5D, 0x10, 0x66, 0x01, 0xD2, 0x93},
|
|
},
|
|
CMD_SOFTRESET: {
|
|
Command: []byte{0xBA},
|
|
Mask: []byte{0xFF},
|
|
Response: []byte{},
|
|
},
|
|
CMD_STATUS: {
|
|
Command: []byte{0x71},
|
|
Mask: []byte{0xFF},
|
|
Response: []byte{0x1C},
|
|
},
|
|
}
|
|
}
|