APM:Libraries
AP_GPS_UAVCAN.h
Go to the documentation of this file.
1 /*
2  This program is free software: you can redistribute it and/or modify
3  it under the terms of the GNU General Public License as published by
4  the Free Software Foundation, either version 3 of the License, or
5  (at your option) any later version.
6 
7  This program is distributed in the hope that it will be useful,
8  but WITHOUT ANY WARRANTY; without even the implied warranty of
9  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  GNU General Public License for more details.
11 
12  You should have received a copy of the GNU General Public License
13  along with this program. If not, see <http://www.gnu.org/licenses/>.
14  */
15 
16 //
17 // UAVCAN GPS driver
18 //
19 #pragma once
20 
21 #include <AP_Common/AP_Common.h>
22 #include <AP_HAL/AP_HAL.h>
23 
24 #include "AP_GPS.h"
25 #include "GPS_Backend.h"
26 
27 class AP_GPS_UAVCAN : public AP_GPS_Backend {
28 public:
30  ~AP_GPS_UAVCAN() override;
31 
32  bool read() override;
33  void set_uavcan_manager(uint8_t mgr);
34 
35  // This method is called from UAVCAN thread
36  void handle_gnss_msg(const AP_GPS::GPS_State &msg) override;
37 
38  const char *name() const override { return "UAVCAN"; }
39 
40 private:
41  bool _new_data;
42  uint8_t _manager;
43 
46 };
Definition: AP_GPS.h:48
AP_GPS::GPS_State _interm_state
Definition: AP_GPS_UAVCAN.h:44
const char * name() const override
Definition: AP_GPS_UAVCAN.h:38
~AP_GPS_UAVCAN() override
bool read() override
AP_HAL::Semaphore * _sem_gnss
Definition: AP_GPS_UAVCAN.h:45
uint8_t _manager
Definition: AP_GPS_UAVCAN.h:42
void set_uavcan_manager(uint8_t mgr)
void handle_gnss_msg(const AP_GPS::GPS_State &msg) override
Common definitions and utility routines for the ArduPilot libraries.
AP_GPS_UAVCAN(AP_GPS &_gps, AP_GPS::GPS_State &_state, AP_HAL::UARTDriver *_port)