mavlink.h 877 B

123456789101112131415161718192021222324252627282930313233
  1. /*
  2. mavlink class for handling OpenDroneID messages
  3. */
  4. #pragma once
  5. #include "transport.h"
  6. #include "parameters.h"
  7. /*
  8. abstraction for MAVLink on a serial port
  9. */
  10. class MAVLinkSerial : public Transport {
  11. public:
  12. using Transport::Transport;
  13. MAVLinkSerial(HardwareSerial &serial, mavlink_channel_t chan);
  14. void init(void) override;
  15. void update(void) override;
  16. private:
  17. HardwareSerial &serial;
  18. mavlink_channel_t chan;
  19. uint32_t last_hb_ms;
  20. uint32_t last_hb_warn_ms;
  21. uint32_t param_request_last_ms;
  22. const Parameters::Param *param_next;
  23. void update_receive(void);
  24. void update_send(void);
  25. void process_packet(mavlink_status_t &status, mavlink_message_t &msg);
  26. void mav_printf(uint8_t severity, const char *fmt, ...);
  27. void handle_secure_command(const mavlink_secure_command_t &pkt);
  28. void arm_status_send(void);
  29. };