ardupilot/libraries/SITL/SIM_RF_Wasp.h
Peter Barker df0233a7d1 SITL: add support for simulated serial rangefinders
SITL: add base class for serial rangefinder simulators

SITL: add Benewake rangefinder simulator

SITL: add support for simulated LightWareSerial rangefinder

SITL: add support for simulated Lanbao rangefinder

SITL: add support for simulated BLping rangefinder

SITL: add support for simulated LeddarOne rangefinder

SITL: add support for simulated uLanding rangefinders

SITL: add support for simulated MaxsonarSerialLV rangefinders

SITL: add support for simulated Wasp rangefinders

SITL: add support for simulated NMEA rangefinders
2019-11-08 20:12:28 +11:00

81 lines
1.9 KiB
C++

/*
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
Simulator for the Wasp serial rangefinder
./Tools/autotest/sim_vehicle.py --gdb --debug -v ArduCopter -A --uartF=sim:wasp --speedup=1
param set SERIAL5_PROTOCOL 9
param set RNGFND1_TYPE 18
reboot
*/
#pragma once
#include "SIM_SerialRangeFinder.h"
namespace SITL {
class RF_Wasp : public SerialRangeFinder {
public:
void update(float range) override;
uint32_t packet_for_alt(uint16_t alt_cm, uint8_t *buffer, uint8_t buflen) override;
private:
void check_configuration();
struct {
bool go;
char format[16]; // e.g. ASCII
char baud[5]; // low or high
char lbe[7]; // big or little
int frq;
int aut;
int mavg;
int medf;
int avg;
int auv;
} config;
const struct {
const char *name;
char *value;
} string_configs[3] {
{ "FMT", config.format },
{ "BAUD", config.baud },
{ "LBE", config.lbe },
};
const struct {
const char *name;
int *value;
} integer_configs[6] {
{ "FRQ", &config.frq },
{ "AUT", &config.aut },
{ "MAVG", &config.mavg },
{ "MEDF", &config.medf },
{ "AVG", &config.avg },
{ "AUV", &config.auv },
};
char _buffer[256]; // from-autopilot
uint8_t _buflen;
};
}