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 : // MSP GPS driver which accepts gps position data from an external source 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 : #if HAL_MSP_GPS_ENABLED 28 : 29 : class AP_GPS_MSP : public AP_GPS_Backend 30 : { 31 : public: 32 : 33 : using AP_GPS_Backend::AP_GPS_Backend; 34 : 35 : bool read() override; 36 : void handle_msp(const MSP::msp_gps_data_message_t &pkt) override; 37 : 38 3 : const char *name() const override { return "MSP"; } 39 : 40 : bool get_lag(float &lag_sec) const override; 41 : 42 : private: 43 : bool new_data; 44 : }; 45 : 46 : #endif // HAL_MSP_GPS_ENABLED