Line data Source code
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 : // ExternalAHRS GPS driver which accepts gps position data from an external AHRS unit 18 : // 19 : #pragma once 20 : 21 : #include <AP_Common/AP_Common.h> 22 : #include <AP_HAL/AP_HAL_Boards.h> 23 : 24 : #include "AP_GPS.h" 25 : #include "GPS_Backend.h" 26 : 27 : #if AP_EXTERNAL_AHRS_ENABLED 28 : 29 : class AP_GPS_ExternalAHRS : public AP_GPS_Backend 30 : { 31 : public: 32 : 33 : using AP_GPS_Backend::AP_GPS_Backend; 34 : 35 : bool read() override; 36 : void handle_external(const AP_ExternalAHRS::gps_data_message_t &pkt) override; 37 : 38 183 : const char *name() const override { return "ExternalAHRS"; } 39 : 40 : bool get_lag(float &lag_sec) const override; 41 : 42 : private: 43 : bool new_data; 44 : }; 45 : 46 : #endif // AP_EXTERNAL_AHRS_ENABLED 47 :