1
0
mirror of https://github.com/hybridgroup/gobot.git synced 2025-05-04 22:17:39 +08:00
hybridgroup.gobot/platforms/firmata/firmata_adaptor_test.go

107 lines
2.6 KiB
Go
Raw Normal View History

2014-04-27 19:56:18 -07:00
package firmata
import (
"fmt"
2014-06-12 16:22:34 -07:00
"testing"
2014-07-14 14:10:04 -07:00
"time"
2014-07-10 14:28:54 -07:00
"github.com/hybridgroup/gobot"
)
2014-06-13 16:01:39 -07:00
func initTestFirmataAdaptor() *FirmataAdaptor {
a := NewFirmataAdaptor("board", "/dev/null")
a.connect = func(f *FirmataAdaptor) {
2014-07-14 14:10:04 -07:00
f.board = newBoard(gobot.NullReadWriteCloser{})
f.board.initTimeInterval = 0 * time.Second
f.board.pins = make([]pin, 100)
f.board.events["digital_read_1"] = gobot.NewEvent()
f.board.events["analog_read_1"] = gobot.NewEvent()
gobot.Publish(f.board.events["firmware_query"], nil)
gobot.Publish(f.board.events["capability_query"], nil)
gobot.Publish(f.board.events["analog_mapping_query"], nil)
2014-06-12 16:22:34 -07:00
}
2014-06-13 16:01:39 -07:00
a.Connect()
return a
2014-06-12 16:22:34 -07:00
}
2014-06-13 16:01:39 -07:00
func TestFirmataAdaptorFinalize(t *testing.T) {
a := initTestFirmataAdaptor()
gobot.Expect(t, a.Finalize(), true)
2014-06-12 16:22:34 -07:00
}
2014-06-13 16:01:39 -07:00
func TestFirmataAdaptorConnect(t *testing.T) {
a := initTestFirmataAdaptor()
gobot.Expect(t, a.Connect(), true)
2014-06-12 16:22:34 -07:00
}
2014-07-14 14:10:04 -07:00
2014-06-13 16:01:39 -07:00
func TestFirmataAdaptorInitServo(t *testing.T) {
a := initTestFirmataAdaptor()
a.InitServo()
2014-06-12 16:22:34 -07:00
}
2014-07-14 14:10:04 -07:00
2014-06-13 16:01:39 -07:00
func TestFirmataAdaptorServoWrite(t *testing.T) {
a := initTestFirmataAdaptor()
a.ServoWrite("1", 50)
2014-06-12 16:22:34 -07:00
}
2014-07-14 14:10:04 -07:00
2014-06-13 16:01:39 -07:00
func TestFirmataAdaptorPwmWrite(t *testing.T) {
a := initTestFirmataAdaptor()
a.PwmWrite("1", 50)
2014-06-12 16:22:34 -07:00
}
2014-07-14 14:10:04 -07:00
2014-06-13 16:01:39 -07:00
func TestFirmataAdaptorDigitalWrite(t *testing.T) {
a := initTestFirmataAdaptor()
a.DigitalWrite("1", 1)
2014-06-12 16:22:34 -07:00
}
2014-07-14 14:10:04 -07:00
2014-06-13 16:01:39 -07:00
func TestFirmataAdaptorDigitalRead(t *testing.T) {
a := initTestFirmataAdaptor()
2014-06-12 16:22:34 -07:00
// -1 on no data
2014-06-13 16:01:39 -07:00
gobot.Expect(t, a.DigitalRead("1"), -1)
2014-06-12 16:22:34 -07:00
pinNumber := "1"
2014-07-14 14:10:04 -07:00
gobot.Publish(a.board.events[fmt.Sprintf("digital_read_%v", pinNumber)],
[]byte{0x01})
2014-06-13 16:01:39 -07:00
gobot.Expect(t, a.DigitalRead(pinNumber), 0x01)
2014-06-12 16:22:34 -07:00
}
2014-07-14 14:10:04 -07:00
2014-06-13 16:01:39 -07:00
func TestFirmataAdaptorAnalogRead(t *testing.T) {
a := initTestFirmataAdaptor()
2014-06-12 16:22:34 -07:00
// -1 on no data
2014-06-13 16:01:39 -07:00
gobot.Expect(t, a.AnalogRead("1"), -1)
2014-06-12 16:22:34 -07:00
pinNumber := "1"
value := 133
2014-07-14 14:10:04 -07:00
gobot.Publish(a.board.events[fmt.Sprintf("analog_read_%v", pinNumber)],
[]byte{
byte(value >> 24),
byte(value >> 16),
byte(value >> 8),
byte(value & 0xff),
},
)
2014-06-13 16:01:39 -07:00
gobot.Expect(t, a.AnalogRead(pinNumber), 133)
2014-06-12 16:22:34 -07:00
}
2014-07-14 14:10:04 -07:00
func TestFirmataAdaptorAnalogWrite(t *testing.T) {
a := initTestFirmataAdaptor()
a.AnalogWrite("1", 50)
}
2014-06-13 16:01:39 -07:00
func TestFirmataAdaptorI2cStart(t *testing.T) {
a := initTestFirmataAdaptor()
a.I2cStart(0x00)
2014-06-12 16:22:34 -07:00
}
2014-06-13 16:01:39 -07:00
func TestFirmataAdaptorI2cRead(t *testing.T) {
a := initTestFirmataAdaptor()
2014-06-12 16:22:34 -07:00
// [] on no data
2014-06-13 16:01:39 -07:00
gobot.Expect(t, a.I2cRead(1), []byte{})
2014-06-12 16:22:34 -07:00
i := []byte{100}
i2cReply := map[string][]byte{}
i2cReply["data"] = i
2014-07-14 14:10:04 -07:00
gobot.Publish(a.board.events["i2c_reply"], i2cReply)
2014-06-13 16:01:39 -07:00
gobot.Expect(t, a.I2cRead(1), i)
2014-06-12 16:22:34 -07:00
}
2014-06-13 16:01:39 -07:00
func TestFirmataAdaptorI2cWrite(t *testing.T) {
a := initTestFirmataAdaptor()
a.I2cWrite([]byte{0x00, 0x01})
2014-06-12 16:22:34 -07:00
}