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

Merge pull request #2849 from martinbudden/bf_fake_accgyro_locks

Added locking to fake gyro and acc
This commit is contained in:
Martin Budden 2017-04-11 19:05:00 +01:00 committed by GitHub
commit 3a672c82e8
15 changed files with 132 additions and 122 deletions

View file

@ -74,6 +74,7 @@
#include "fc/rc_controls.h"
#include "fc/runtime_config.h"
#include "flight/altitude.h"
#include "flight/imu.h"
#include "flight/altitude.h"
@ -189,14 +190,14 @@ static void osdDrawSingleElement(uint8_t item)
osdRssi = 99;
buff[0] = SYM_RSSI;
sprintf(buff + 1, "%d", osdRssi);
tfp_sprintf(buff + 1, "%d", osdRssi);
break;
}
case OSD_MAIN_BATT_VOLTAGE:
{
buff[0] = SYM_BATT_5;
sprintf(buff + 1, "%d.%1dV", getBatteryVoltage() / 10, getBatteryVoltage() % 10);
tfp_sprintf(buff + 1, "%d.%1dV", getBatteryVoltage() / 10, getBatteryVoltage() % 10);
break;
}
@ -204,14 +205,14 @@ static void osdDrawSingleElement(uint8_t item)
{
int32_t amperage = getAmperage();
buff[0] = SYM_AMP;
sprintf(buff + 1, "%d.%02d", abs(amperage) / 100, abs(amperage) % 100);
tfp_sprintf(buff + 1, "%d.%02d", abs(amperage) / 100, abs(amperage) % 100);
break;
}
case OSD_MAH_DRAWN:
{
buff[0] = SYM_MAH;
sprintf(buff + 1, "%d", getMAhDrawn());
tfp_sprintf(buff + 1, "%d", getMAhDrawn());
break;
}
@ -219,14 +220,14 @@ static void osdDrawSingleElement(uint8_t item)
case OSD_GPS_SATS:
{
buff[0] = 0x1f;
sprintf(buff + 1, "%d", GPS_numSat);
tfp_sprintf(buff + 1, "%d", GPS_numSat);
break;
}
case OSD_GPS_SPEED:
{
// FIXME ideally we want to use SYM_KMH symbol but it's not in the font any more, so we use K.
sprintf(buff, "%dK", CM_S_TO_KM_H(GPS_speed) * 10);
tfp_sprintf(buff, "%dK", CM_S_TO_KM_H(GPS_speed) * 10);
break;
}
@ -258,7 +259,7 @@ static void osdDrawSingleElement(uint8_t item)
case OSD_ALTITUDE:
{
int32_t alt = osdGetAltitude(getEstimatedAltitude());
sprintf(buff, "%c%d.%01d%c", alt < 0 ? '-' : ' ', abs(alt / 100), abs((alt % 100) / 10), osdGetAltitudeSymbol());
tfp_sprintf(buff, "%c%d.%01d%c", alt < 0 ? '-' : ' ', abs(alt / 100), abs((alt % 100) / 10), osdGetAltitudeSymbol());
break;
}
@ -266,14 +267,14 @@ static void osdDrawSingleElement(uint8_t item)
{
uint32_t seconds = micros() / 1000000;
buff[0] = SYM_ON_M;
sprintf(buff + 1, "%02d:%02d", seconds / 60, seconds % 60);
tfp_sprintf(buff + 1, "%02d:%02d", seconds / 60, seconds % 60);
break;
}
case OSD_FLYTIME:
{
buff[0] = SYM_FLY_M;
sprintf(buff + 1, "%02d:%02d", flyTime / 60, flyTime % 60);
tfp_sprintf(buff + 1, "%02d:%02d", flyTime / 60, flyTime % 60);
break;
}
@ -314,7 +315,7 @@ static void osdDrawSingleElement(uint8_t item)
{
buff[0] = SYM_THR;
buff[1] = SYM_THR1;
sprintf(buff + 2, "%d", (constrain(rcData[THROTTLE], PWM_RANGE_MIN, PWM_RANGE_MAX) - PWM_RANGE_MIN) * 100 / (PWM_RANGE_MAX - PWM_RANGE_MIN));
tfp_sprintf(buff + 2, "%d", (constrain(rcData[THROTTLE], PWM_RANGE_MIN, PWM_RANGE_MAX) - PWM_RANGE_MIN) * 100 / (PWM_RANGE_MAX - PWM_RANGE_MIN));
break;
}
@ -325,9 +326,9 @@ static void osdDrawSingleElement(uint8_t item)
#if defined(VTX)
const char vtxBandLetter = vtx58BandLetter[vtxConfig()->vtx_band + 1];
const char *vtxChannelName = vtx58ChannelNames[vtxConfig()->vtx_channel + 1];
sprintf(buff, "%c:%s", vtxBandLetter, vtxChannelName);
tfp_sprintf(buff, "%c:%s", vtxBandLetter, vtxChannelName);
#elif defined(USE_RTC6705)
sprintf(buff, "CH:%d", current_vtx_channel % CHANNELS_PER_BAND + 1);
tfp_sprintf(buff, "CH:%d", current_vtx_channel % CHANNELS_PER_BAND + 1);
#endif
break;
}
@ -410,27 +411,27 @@ static void osdDrawSingleElement(uint8_t item)
case OSD_ROLL_PIDS:
{
const pidProfile_t *pidProfile = currentPidProfile;
sprintf(buff, "ROL %3d %3d %3d", pidProfile->P8[PIDROLL], pidProfile->I8[PIDROLL], pidProfile->D8[PIDROLL]);
tfp_sprintf(buff, "ROL %3d %3d %3d", pidProfile->P8[PIDROLL], pidProfile->I8[PIDROLL], pidProfile->D8[PIDROLL]);
break;
}
case OSD_PITCH_PIDS:
{
const pidProfile_t *pidProfile = currentPidProfile;
sprintf(buff, "PIT %3d %3d %3d", pidProfile->P8[PIDPITCH], pidProfile->I8[PIDPITCH], pidProfile->D8[PIDPITCH]);
tfp_sprintf(buff, "PIT %3d %3d %3d", pidProfile->P8[PIDPITCH], pidProfile->I8[PIDPITCH], pidProfile->D8[PIDPITCH]);
break;
}
case OSD_YAW_PIDS:
{
const pidProfile_t *pidProfile = currentPidProfile;
sprintf(buff, "YAW %3d %3d %3d", pidProfile->P8[PIDYAW], pidProfile->I8[PIDYAW], pidProfile->D8[PIDYAW]);
tfp_sprintf(buff, "YAW %3d %3d %3d", pidProfile->P8[PIDYAW], pidProfile->I8[PIDYAW], pidProfile->D8[PIDYAW]);
break;
}
case OSD_POWER:
{
sprintf(buff, "%dW", getAmperage() * getBatteryVoltage() / 1000);
tfp_sprintf(buff, "%dW", getAmperage() * getBatteryVoltage() / 1000);
break;
}
@ -438,7 +439,7 @@ static void osdDrawSingleElement(uint8_t item)
{
const uint8_t pidProfileIndex = getCurrentPidProfileIndex();
const uint8_t rateProfileIndex = getCurrentControlRateProfileIndex();
sprintf(buff, "%d-%d", pidProfileIndex + 1, rateProfileIndex + 1);
tfp_sprintf(buff, "%d-%d", pidProfileIndex + 1, rateProfileIndex + 1);
break;
}
@ -446,11 +447,11 @@ static void osdDrawSingleElement(uint8_t item)
{
switch(getBatteryState()) {
case BATTERY_WARNING:
sprintf(buff, "LOW BATTERY");
tfp_sprintf(buff, "LOW BATTERY");
break;
case BATTERY_CRITICAL:
sprintf(buff, "LAND NOW");
tfp_sprintf(buff, "LAND NOW");
elemOffsetX += 1;
break;
@ -464,7 +465,7 @@ static void osdDrawSingleElement(uint8_t item)
{
uint16_t cellV = getBatteryVoltage() * 10 / getBatteryCellCount();
buff[0] = SYM_BATT_5;
sprintf(buff + 1, "%d.%dV", cellV / 100, cellV % 100);
tfp_sprintf(buff + 1, "%d.%dV", cellV / 100, cellV % 100);
break;
}
@ -603,7 +604,7 @@ void osdInit(displayPort_t *osdDisplayPortToUse)
osdDrawLogo(3, 1);
char string_buffer[30];
sprintf(string_buffer, "V%s", FC_VERSION_STRING);
tfp_sprintf(string_buffer, "V%s", FC_VERSION_STRING);
displayWrite(osdDisplayPort, 20, 6, string_buffer);
#ifdef CMS
displayWrite(osdDisplayPort, 7, 8, CMS_STARTUP_HELP_TEXT1);
@ -763,7 +764,7 @@ static void osdShowStats(void)
}
displayWrite(osdDisplayPort, 2, top, "MIN BATTERY :");
sprintf(buff, "%d.%1dV", stats.min_voltage / 10, stats.min_voltage % 10);
tfp_sprintf(buff, "%d.%1dV", stats.min_voltage / 10, stats.min_voltage % 10);
displayWrite(osdDisplayPort, 22, top++, buff);
displayWrite(osdDisplayPort, 2, top, "MIN RSSI :");
@ -785,7 +786,7 @@ static void osdShowStats(void)
displayWrite(osdDisplayPort, 2, top, "MAX ALTITUDE :");
int32_t alt = osdGetAltitude(stats.max_altitude);
sprintf(buff, "%c%d.%01d%c", alt < 0 ? '-' : ' ', abs(alt / 100), abs((alt % 100) / 10), osdGetAltitudeSymbol());
tfp_sprintf(buff, "%c%d.%01d%c", alt < 0 ? '-' : ' ', abs(alt / 100), abs((alt % 100) / 10), osdGetAltitudeSymbol());
displayWrite(osdDisplayPort, 22, top++, buff);
#ifdef BLACKBOX