transport.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. parent class for handling transports
  3. */
  4. #pragma once
  5. #include "mavlink_msgs.h"
  6. /*
  7. abstraction for opendroneid transports
  8. */
  9. class Transport {
  10. public:
  11. Transport();
  12. virtual void init(void) = 0;
  13. virtual void update(void) = 0;
  14. uint8_t arm_status_check(const char *&reason);
  15. const mavlink_open_drone_id_location_t &get_location(void) const {
  16. return location;
  17. }
  18. const mavlink_open_drone_id_basic_id_t &get_basic_id(void) const {
  19. return basic_id;
  20. }
  21. const mavlink_open_drone_id_authentication_t &get_authentication(void) const {
  22. return authentication;
  23. }
  24. const mavlink_open_drone_id_self_id_t &get_self_id(void) const {
  25. return self_id;
  26. }
  27. const mavlink_open_drone_id_system_t &get_system(void) const {
  28. return system;
  29. }
  30. const mavlink_open_drone_id_operator_id_t &get_operator_id(void) const {
  31. return operator_id;
  32. }
  33. uint32_t get_last_location_ms(void) const {
  34. return last_location_ms;
  35. }
  36. void set_parse_fail(const char *msg) {
  37. parse_fail = msg;
  38. }
  39. protected:
  40. // common variables between transports. The last message of each
  41. // type, no matter what transport it was on, wins
  42. static const char *parse_fail;
  43. static uint32_t last_location_ms;
  44. static uint32_t last_basic_id_ms;
  45. static uint32_t last_self_id_ms;
  46. static uint32_t last_operator_id_ms;
  47. static uint32_t last_system_ms;
  48. static mavlink_open_drone_id_location_t location;
  49. static mavlink_open_drone_id_basic_id_t basic_id;
  50. static mavlink_open_drone_id_authentication_t authentication;
  51. static mavlink_open_drone_id_self_id_t self_id;
  52. static mavlink_open_drone_id_system_t system;
  53. static mavlink_open_drone_id_operator_id_t operator_id;
  54. };