code: func (m *Driver) Start() error {
  	go func() {
  		for {
  			packet, err := m.adaptor().ReadMAVLinkPacket()
  			if err != nil {
  				m.Publish(ErrorIOEvent, err)
  				continue
  			}
  			m.Publish(PacketEvent, packet)
  			message, err := packet.MAVLinkMessage()
  			if err != nil {
  				m.Publish(ErrorMAVLinkEvent, err)
  				continue
  			}
  			m.Publish(MessageEvent, message)
  			time.Sleep(m.interval)
  		}
  	}()
  	return nil
  }
docs: // Start begins process to read mavlink packets every m.Interval
  // and process them