2014-04-27 19:56:18 -07:00
|
|
|
package firmata
|
2014-04-26 03:11:51 -07:00
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
2014-06-12 16:22:34 -07:00
|
|
|
"testing"
|
2014-07-10 14:28:54 -07:00
|
|
|
|
|
|
|
"github.com/hybridgroup/gobot"
|
2014-04-26 03:11:51 -07:00
|
|
|
)
|
|
|
|
|
2014-06-13 16:01:39 -07:00
|
|
|
func initTestFirmataAdaptor() *FirmataAdaptor {
|
|
|
|
a := NewFirmataAdaptor("board", "/dev/null")
|
|
|
|
a.connect = func(f *FirmataAdaptor) {
|
|
|
|
f.Board = newBoard(gobot.NullReadWriteCloser{})
|
2014-06-12 16:22:34 -07:00
|
|
|
f.Board.Events = append(f.Board.Events, event{Name: "firmware_query"})
|
|
|
|
f.Board.Events = append(f.Board.Events, event{Name: "capability_query"})
|
|
|
|
f.Board.Events = append(f.Board.Events, event{Name: "analog_mapping_query"})
|
|
|
|
}
|
2014-06-13 16:01:39 -07:00
|
|
|
a.Connect()
|
2014-07-10 14:28:54 -07:00
|
|
|
a.Board.Pins = make([]pin, 100)
|
2014-06-13 16:01:39 -07:00
|
|
|
return a
|
2014-06-12 16:22:34 -07:00
|
|
|
}
|
2014-04-26 03:11:51 -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-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-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-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-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-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-06-13 16:01:39 -07:00
|
|
|
a.Board.Events = append(a.Board.Events, event{Name: fmt.Sprintf("digital_read_%v", pinNumber), Data: []byte{0x01}})
|
|
|
|
gobot.Expect(t, a.DigitalRead(pinNumber), 0x01)
|
2014-06-12 16:22:34 -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-06-13 16:01:39 -07:00
|
|
|
a.Board.Events = append(a.Board.Events, event{Name: fmt.Sprintf("analog_read_%v", pinNumber), Data: []byte{byte(value >> 24), byte(value >> 16), byte(value >> 8), byte(value & 0xff)}})
|
|
|
|
gobot.Expect(t, a.AnalogRead(pinNumber), 133)
|
2014-06-12 16:22:34 -07:00
|
|
|
}
|
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-06-13 16:01:39 -07:00
|
|
|
a.Board.Events = append(a.Board.Events, event{Name: "i2c_reply", I2cReply: i2cReply})
|
|
|
|
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
|
|
|
}
|