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 : Simulator for the NMEA serial rangefinder 17 : 18 : ./Tools/autotest/sim_vehicle.py --gdb --debug -v ArduCopter -A --serial5=sim:nmea --speedup=1 19 : 20 : param set SERIAL5_PROTOCOL 9 21 : param set SERIAL5_BAUD 9600 22 : param set RNGFND1_TYPE 17 23 : graph RANGEFINDER.distance 24 : graph GLOBAL_POSITION_INT.relative_alt/1000-RANGEFINDER.distance 25 : reboot 26 : 27 : arm throttle 28 : rc 3 1600 29 : */ 30 : 31 : #pragma once 32 : 33 : #include "SIM_SerialRangeFinder.h" 34 : 35 : namespace SITL { 36 : 37 : class RF_NMEA : public SerialRangeFinder { 38 : public: 39 : 40 3 : static SerialRangeFinder *create() { return NEW_NOTHROW RF_NMEA(); } 41 : 42 949026 : uint32_t device_baud() const override { return 9600; } 43 : 44 : uint32_t packet_for_alt(float alt_m, uint8_t *buffer, uint8_t buflen) override; 45 : 46 1583 : bool has_temperature() const override { return true; } 47 : uint32_t packet_for_temperature(float temperature, uint8_t *buffer, uint8_t buflen) override; 48 : 49 : private: 50 : 51 : }; 52 : 53 : }