mirror of
https://github.com/okalachev/flix.git
synced 2025-07-27 09:39:33 +00:00
Implement channels mapping calibration. Store mapping in parameters. Get rid of `controls` array and store control inputs in `controlRoll`, `controlPitch`, ... variables. Move `channels` variable to rc.ino, channels are not involved when controled using mavlink. 'Neutral' values are renamed to 'zero' - more precise naming. `controlsTime` is renamed to `controlTime`. Use unsigned values for channels. Make channel values in simulation more alike to real world: unsigned values in range [1000, 2000]. Send RC_CHANNELS_RAW instead of RC_CHANNELS_SCALED via mavlink Don't send channels data via mavlink if rc is not used
27 lines
684 B
C++
27 lines
684 B
C++
// Copyright (c) 2023 Oleg Kalachev <okalachev@gmail.com>
|
|
// Repository: https://github.com/okalachev/flix
|
|
|
|
// SBUS library mock to make it possible to compile simulator with rc.ino
|
|
|
|
#include "joystick.h"
|
|
|
|
struct SBUSData {
|
|
int16_t ch[16];
|
|
};
|
|
|
|
class SBUS {
|
|
public:
|
|
SBUS(HardwareSerial& bus, const bool inv = true) {};
|
|
SBUS(HardwareSerial& bus, const int8_t rxpin, const int8_t txpin, const bool inv = true) {};
|
|
void begin() {};
|
|
bool read() { return joystickInit(); };
|
|
SBUSData data() {
|
|
SBUSData data;
|
|
joystickGet(data.ch);
|
|
for (int i = 0; i < 16; i++) {
|
|
data.ch[i] = map(data.ch[i], -32768, 32767, 1000, 2000); // convert to pulse width style
|
|
}
|
|
return data;
|
|
};
|
|
};
|