1
0
Fork 0
mirror of https://github.com/iNavFlight/inav.git synced 2025-07-25 17:25:18 +03:00

enhanced battery emulation

This commit is contained in:
Roman Lut 2022-07-30 22:48:59 +03:00
parent ec4c2b69d3
commit bb64e5c0b9
3 changed files with 18 additions and 7 deletions

View file

@ -3402,6 +3402,7 @@ bool mspFCProcessInOutCommand(uint16_t cmdMSP, sbuf_t *dst, sbuf_t *src, mspResu
if (tmp_u8 != 2) break;
simulatorData.flags = sbufReadU8(src);
if ((simulatorData.flags & SIMU_ENABLE) == 0) {
if (ARMING_FLAG(SIMULATOR_MODE)) { // just once
@ -3518,6 +3519,13 @@ bool mspFCProcessInOutCommand(uint16_t cmdMSP, sbuf_t *dst, sbuf_t *src, mspResu
else {
sbufAdvance(src, 2*3);
}
if (simulatorData.flags & SIMU_EXT_BATTERY_VOLTAGE) {
simulatorData.vbat = sbufReadU8(src);
}
else {
simulatorData.vbat = 126;
}
}
else {
DISABLE_STATE(GPS_FIX);

View file

@ -171,12 +171,15 @@ typedef enum {
SIMU_SIMULATE_BATTERY = (1 << 1),
SIMU_MUTE_BEEPER = (1 << 2),
SIMU_USE_SENSORS = (1 << 3),
SIMU_HAS_NEW_GPS_DATA = (1 << 4)
SIMU_HAS_NEW_GPS_DATA = (1 << 4),
SIMU_EXT_BATTERY_VOLTAGE = (1 << 5) //extend MSP_SIMULATOR format 2
} simulatorFlags_t;
typedef struct {
simulatorFlags_t flags;
uint8_t debugIndex;
uint8_t vbat; //126 ->12.6V
int16_t INPUT_STABILIZED_ROLL;
int16_t INPUT_STABILIZED_PITCH;
int16_t INPUT_STABILIZED_YAW;

View file

@ -293,8 +293,8 @@ static void updateBatteryVoltage(timeUs_t timeDelta, bool justConnected)
#ifdef USE_SIMULATOR
if (ARMING_FLAG(SIMULATOR_MODE)) {
if (simulatorData.flags & SIMU_SIMULATE_BATTERY) {
vbat = 1260;
batteryFullVoltage = 1210;
vbat = ((uint16_t)simulatorData.vbat)*10;
batteryFullVoltage = 1260;
batteryWarningVoltage = 1020;
batteryCriticalVoltage = 960;
}