1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-16 21:05:35 +03:00

Re-organize files by topic

Keil project not updated, I have no way to verify it.

Note, mw.c, drv_pwm.c and drv_system.c contain code for too many topics.
Later commits will relocate the code as appropriate.

Not even looked at utils yet.  'Utils' is a bad naming practice and is a
synonym for 'too lazy to find the right file/name'.
This commit is contained in:
Dominic Clifton 2014-04-08 16:11:17 +01:00
parent a8f383077c
commit 9fa99cf9f5
61 changed files with 76 additions and 6363 deletions

View file

@ -1,136 +0,0 @@
#include "board.h"
#include "mw.h"
#include "telemetry_frsky.h"
#include "telemetry_hott.h"
static bool isTelemetryConfigurationValid = false; // flag used to avoid repeated configuration checks
bool isTelemetryProviderFrSky(void)
{
return mcfg.telemetry_provider == TELEMETRY_PROVIDER_FRSKY;
}
bool isTelemetryProviderHoTT(void)
{
return mcfg.telemetry_provider == TELEMETRY_PROVIDER_HOTT;
}
bool canUseTelemetryWithCurrentConfiguration(void)
{
if (!feature(FEATURE_TELEMETRY)) {
return false;
}
if (!feature(FEATURE_SOFTSERIAL)) {
if (mcfg.telemetry_port == TELEMETRY_PORT_SOFTSERIAL_1 || mcfg.telemetry_port == TELEMETRY_PORT_SOFTSERIAL_2) {
// softserial feature must be enabled to use telemetry on softserial ports
return false;
}
}
if (isTelemetryProviderHoTT()) {
if (mcfg.telemetry_port == TELEMETRY_PORT_UART) {
// HoTT requires a serial port that supports RX/TX mode swapping
return false;
}
}
return true;
}
void initTelemetry(void)
{
// Force telemetry to uart when softserial disabled
if (!feature(FEATURE_SOFTSERIAL))
mcfg.telemetry_port = TELEMETRY_PORT_UART;
isTelemetryConfigurationValid = canUseTelemetryWithCurrentConfiguration();
if (mcfg.telemetry_port == TELEMETRY_PORT_SOFTSERIAL_1)
core.telemport = &(softSerialPorts[0].port);
else if (mcfg.telemetry_port == TELEMETRY_PORT_SOFTSERIAL_2)
core.telemport = &(softSerialPorts[1].port);
else
core.telemport = core.mainport;
checkTelemetryState();
}
static bool telemetryEnabled = false;
bool determineNewTelemetryEnabledState(void)
{
bool enabled = true;
if (mcfg.telemetry_port == TELEMETRY_PORT_UART) {
if (!mcfg.telemetry_switch)
enabled = f.ARMED;
else
enabled = rcOptions[BOXTELEMETRY];
}
return enabled;
}
bool shouldChangeTelemetryStateNow(bool newState)
{
return newState != telemetryEnabled;
}
static void configureTelemetryPort(void)
{
if (isTelemetryProviderFrSky()) {
configureFrSkyTelemetryPort();
}
if (isTelemetryProviderHoTT()) {
configureHoTTTelemetryPort();
}
}
void freeTelemetryPort(void)
{
if (isTelemetryProviderFrSky()) {
freeFrSkyTelemetryPort();
}
if (isTelemetryProviderHoTT()) {
freeHoTTTelemetryPort();
}
}
void checkTelemetryState(void)
{
if (!isTelemetryConfigurationValid) {
return;
}
bool newEnabledState = determineNewTelemetryEnabledState();
if (!shouldChangeTelemetryStateNow(newEnabledState)) {
return;
}
if (newEnabledState)
configureTelemetryPort();
else
freeTelemetryPort();
telemetryEnabled = newEnabledState;
}
void handleTelemetry(void)
{
if (!isTelemetryConfigurationValid || !determineNewTelemetryEnabledState())
return;
if (isTelemetryProviderFrSky()) {
handleFrSkyTelemetry();
}
if (isTelemetryProviderHoTT()) {
handleHoTTTelemetry();
}
}