mavlink

package
v0.0.0-...-4f9df97 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 11, 2016 License: MIT Imports: 11 Imported by: 10

Documentation

Index

Constants

View Source
const FRAME_START = 0xFE

Variables

View Source
var (
	ProtocolName    string
	ProtocolVersion uint8
	MessageFactory  [256]func() Message
)

The following variables will be set by importing a protocol definition package.

View Source
var (
	SendLogger             *log.Logger
	ReceiveLogger          *log.Logger
	AllErrorsLogger        *log.Logger
	UnreportedErrorsLogger *log.Logger
	DebugLogger            *log.Logger
)
View Source
var FRAME_START_BYTE = []byte{FRAME_START}

Functions

func FixString

func FixString(chars []byte) string

func LogEverything

func LogEverything(logger *log.Logger)

func MessageName

func MessageName(id uint8) string

func MessageNameID

func MessageNameID(id uint8) string

func NameIDFromMessage

func NameIDFromMessage(msg Message) string

func Send

func Send(writer io.Writer, systemID, componentID, sequence uint8, message Message) error

Types

type Connection

type Connection struct {
	// contains filtered or unexported fields
}

func NewConnection

func NewConnection(wrappedConn io.ReadWriter, systemID uint8) *Connection

func (*Connection) Close

func (conn *Connection) Close(writeTimeout time.Time) error

Close stops reading from wrappedConn after the current read finishes and stops writing when there are no more buffered packets or the current time has reached writeTimeout. After that, if wrappedConn implements io.Closer, its Close method will be called and the result returned.

func (*Connection) Receive

func (conn *Connection) Receive() *Packet

func (*Connection) Send

func (conn *Connection) Send(componentID uint8, message Message, onErr func(*Packet))

type ErrInvalidChecksum

type ErrInvalidChecksum struct {
	Packet             *Packet
	CalculatedChecksum uint16
	ReceivedChecksum   uint16
}

func (*ErrInvalidChecksum) Error

func (e *ErrInvalidChecksum) Error() string

type ErrPacketLoss

type ErrPacketLoss int

func (ErrPacketLoss) Error

func (loss ErrPacketLoss) Error() string

type ErrUnknownMessageID

type ErrUnknownMessageID uint8

func (ErrUnknownMessageID) Error

func (id ErrUnknownMessageID) Error() string
type Header struct {
	PayloadLength  uint8
	PacketSequence uint8
	SystemID       uint8
	ComponentID    uint8
	MessageID      uint8
}

func (*Header) Bytes

func (header *Header) Bytes() []byte

func (*Header) FieldsShortString

func (header *Header) FieldsShortString() string

func (*Header) FieldsString

func (header *Header) FieldsString() string

func (*Header) SetBytes

func (header *Header) SetBytes(data []byte)

func (*Header) ShortString

func (header *Header) ShortString() string

func (*Header) String

func (header *Header) String() string

type Message

type Message interface {
	TypeID() uint8       // ID of the message
	TypeName() string    // Name of the message
	TypeSize() uint8     // Size in bytes of the message
	TypeCRCExtra() uint8 // CRC_EXTRA
	FieldsString() string
	String() string
}

type Pacemaker

type Pacemaker struct {
	// contains filtered or unexported fields
}

func NewPacemaker

func NewPacemaker(conn *Connection, componentID uint8, freq time.Duration, newMsg func() Message) *Pacemaker

func (*Pacemaker) Stop

func (p *Pacemaker) Stop()

type Packet

type Packet struct {
	Header  Header
	Message Message
	Err     error
	OnErr   func(*Packet)
}

func NewPacket

func NewPacket(systemID, componentID, sequence uint8, message Message) (packet *Packet)

func ParsePacket

func ParsePacket(s string) (packet *Packet, err error)

func Receive

func Receive(reader io.Reader) (*Packet, error)

func ReceiveLogErr

func ReceiveLogErr(reader io.Reader) (packet *Packet)

ReceiveLogErr calls Receive and returns a *Packet if there was no error. If Receive returns an error, and LogUnreportedErrors is true, then the error will be logged. The only exception is the error io.EOF. In that case the error won't be logged and a nil packet will be returned.

func (*Packet) ReadFrom

func (packet *Packet) ReadFrom(reader io.Reader) (n int64, err error)

func (*Packet) ShortString

func (packet *Packet) ShortString() string

func (*Packet) String

func (packet *Packet) String() string

func (*Packet) WireBytes

func (packet *Packet) WireBytes() []byte

func (*Packet) WireSize

func (packet *Packet) WireSize() int

func (*Packet) WriteTo

func (packet *Packet) WriteTo(writer io.Writer) (n int64, err error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL