Documentation ¶
Overview ¶
Package mavlink contains the Gobot adaptor and driver for the MAVlink Communication Protocol.
Installing:
go get gobot.io/x/gobot/platforms/mavlink
Example:
package main import ( "fmt" "gobot.io/x/gobot" "gobot.io/x/gobot/platforms/mavlink" common "gobot.io/x/gobot/platforms/mavlink/common" ) func main() { adaptor := mavlink.NewAdaptor("/dev/ttyACM0") iris := mavlink.NewDriver(adaptor) work := func() { iris.Once(iris.Event("packet"), func(data interface{}) { packet := data.(*common.MAVLinkPacket) dataStream := common.NewRequestDataStream(100, packet.SystemID, packet.ComponentID, 4, 1, ) iris.SendPacket(common.CraftMAVLinkPacket(packet.SystemID, packet.ComponentID, dataStream, )) }) iris.On(iris.Event("message"), func(data interface{}) { if data.(common.MAVLinkMessage).Id() == 30 { message := data.(*common.Attitude) fmt.Println("Attitude") fmt.Println("TIME_BOOT_MS", message.TIME_BOOT_MS) fmt.Println("ROLL", message.ROLL) fmt.Println("PITCH", message.PITCH) fmt.Println("YAW", message.YAW) fmt.Println("ROLLSPEED", message.ROLLSPEED) fmt.Println("PITCHSPEED", message.PITCHSPEED) fmt.Println("YAWSPEED", message.YAWSPEED) fmt.Println("") } }) } robot := gobot.NewRobot("mavBot", []gobot.Connection{adaptor}, []gobot.Device{iris}, work, ) robot.Start() }
For further information refer to mavlink README: https://github.com/hybridgroup/gobot/blob/master/platforms/mavlink/README.md
Index ¶
- Constants
- type Adaptor
- type BaseAdaptor
- type Driver
- type MavlinkInterface
- type UDPAdaptor
- func (m *UDPAdaptor) Connect() error
- func (m *UDPAdaptor) Finalize() (err error)
- func (m *UDPAdaptor) Name() string
- func (m *UDPAdaptor) Port() string
- func (m *UDPAdaptor) ReadMAVLinkPacket() (*common.MAVLinkPacket, error)
- func (m *UDPAdaptor) SetName(n string)
- func (m *UDPAdaptor) Write(b []byte) (int, error)
- type UDPConnection
Constants ¶
const ( // PacketEvent event PacketEvent = "packet" // MessageEvent event MessageEvent = "message" // ErrorIOEEvent event ErrorIOEvent = "errorIO" // ErrorMAVLinkEvent event ErrorMAVLinkEvent = "errorMAVLink" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Adaptor ¶
type Adaptor struct {
// contains filtered or unexported fields
}
Adaptor is a Mavlink-over-serial adaptor.
func NewAdaptor ¶
NewAdaptor creates a new mavlink adaptor with specified port
func (*Adaptor) ReadMAVLinkPacket ¶ added in v1.5.0
func (m *Adaptor) ReadMAVLinkPacket() (*common.MAVLinkPacket, error)
type BaseAdaptor ¶ added in v1.5.0
type BaseAdaptor interface { gobot.Connection io.Writer ReadMAVLinkPacket() (*common.MAVLinkPacket, error) }
Adaptor is a Mavlink transport adaptor.
type Driver ¶
func NewDriver ¶
func NewDriver(a BaseAdaptor, v ...time.Duration) *Driver
NewDriver creates a new mavlink driver.
It add the following events:
"packet" - triggered when a new packet is read "message" - triggered when a new valid message is processed
func (*Driver) Connection ¶
func (m *Driver) Connection() gobot.Connection
func (*Driver) SendPacket ¶
func (m *Driver) SendPacket(packet *common.MAVLinkPacket) (err error)
SendPacket sends a packet to mavlink device
type MavlinkInterface ¶
type MavlinkInterface interface { }
type UDPAdaptor ¶ added in v1.5.0
type UDPAdaptor struct {
// contains filtered or unexported fields
}
func NewUDPAdaptor ¶ added in v1.5.0
func NewUDPAdaptor(port string) *UDPAdaptor
NewAdaptor creates a new Mavlink-over-UDP adaptor with specified port.
func (*UDPAdaptor) Connect ¶ added in v1.5.0
func (m *UDPAdaptor) Connect() error
Connect returns true if connection to device is successful
func (*UDPAdaptor) Finalize ¶ added in v1.5.0
func (m *UDPAdaptor) Finalize() (err error)
Finalize returns true if connection to devices is closed successfully
func (*UDPAdaptor) Name ¶ added in v1.5.0
func (m *UDPAdaptor) Name() string
func (*UDPAdaptor) Port ¶ added in v1.5.0
func (m *UDPAdaptor) Port() string
func (*UDPAdaptor) ReadMAVLinkPacket ¶ added in v1.5.0
func (m *UDPAdaptor) ReadMAVLinkPacket() (*common.MAVLinkPacket, error)
func (*UDPAdaptor) SetName ¶ added in v1.5.0
func (m *UDPAdaptor) SetName(n string)