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

Improved consistency of update fn naming. GPS update tidy.

This commit is contained in:
Martin Budden 2016-10-16 08:06:31 +01:00
parent 1d6240c9d5
commit c0d87ca657
12 changed files with 34 additions and 37 deletions

View file

@ -163,14 +163,10 @@ static void taskUpdateRxMain(uint32_t currentTime)
static void taskProcessGPS(uint32_t currentTime) static void taskProcessGPS(uint32_t currentTime)
{ {
// if GPS feature is enabled, gpsThread() will be called at some intervals to check for stuck // if GPS feature is enabled, gpsThread() will be called at some intervals to check for stuck
// hardware, wrong baud rates, init GPS if needed, etc. Don't use SENSOR_GPS here as gpsThread() can and will // hardware, wrong baud rates, init GPS if needed, etc. Don't use SENSOR_GPS here as gpsUdate() can and will
// change this based on available hardware // change this based on available hardware
if (feature(FEATURE_GPS)) { if (feature(FEATURE_GPS)) {
gpsThread(); gpsUpdate(currentTime);
}
if (sensors(SENSOR_GPS)) {
updateGpsIndicator(currentTime);
} }
} }
#endif #endif
@ -179,7 +175,7 @@ static void taskProcessGPS(uint32_t currentTime)
static void taskUpdateCompass(uint32_t currentTime) static void taskUpdateCompass(uint32_t currentTime)
{ {
if (sensors(SENSOR_MAG)) { if (sensors(SENSOR_MAG)) {
updateCompass(currentTime, &masterConfig.magZero); compassUpdate(currentTime, &masterConfig.magZero);
} }
} }
#endif #endif
@ -228,7 +224,7 @@ static void taskCalculateAltitude(uint32_t currentTime)
static void taskUpdateDisplay(uint32_t currentTime) static void taskUpdateDisplay(uint32_t currentTime)
{ {
if (feature(FEATURE_DISPLAY)) { if (feature(FEATURE_DISPLAY)) {
updateDisplay(currentTime); displayUpdate(currentTime);
} }
} }
#endif #endif
@ -248,7 +244,7 @@ static void taskTelemetry(uint32_t currentTime)
static void taskLedStrip(uint32_t currentTime) static void taskLedStrip(uint32_t currentTime)
{ {
if (feature(FEATURE_LED_STRIP)) { if (feature(FEATURE_LED_STRIP)) {
updateLedStrip(currentTime); ledStripUpdate(currentTime);
} }
} }
#endif #endif
@ -257,7 +253,7 @@ static void taskLedStrip(uint32_t currentTime)
static void taskTransponder(uint32_t currentTime) static void taskTransponder(uint32_t currentTime)
{ {
if (feature(FEATURE_TRANSPONDER)) { if (feature(FEATURE_TRANSPONDER)) {
updateTransponder(currentTime); transponderUpdate(currentTime);
} }
} }
#endif #endif

View file

@ -779,7 +779,7 @@ void subTaskMainSubprocesses(void)
#endif #endif
#ifdef TRANSPONDER #ifdef TRANSPONDER
updateTransponder(startTime); transponderUpdate(startTime);
#endif #endif
if (debugMode == DEBUG_PIDLOOP) {debug[1] = micros() - startTime;} if (debugMode == DEBUG_PIDLOOP) {debug[1] = micros() - startTime;}
} }

View file

@ -582,7 +582,7 @@ void showDebugPage(void)
} }
#endif #endif
void updateDisplay(uint32_t currentTime) void displayUpdate(uint32_t currentTime)
{ {
static uint8_t previousArmedState = 0; static uint8_t previousArmedState = 0;
@ -702,7 +702,7 @@ void displayInit(rxConfig_t *rxConfigToUse)
memset(&pageState, 0, sizeof(pageState)); memset(&pageState, 0, sizeof(pageState));
displaySetPage(PAGE_WELCOME); displaySetPage(PAGE_WELCOME);
updateDisplay(micros()); displayUpdate(micros());
displaySetNextPageChangeAt(micros() + (1000 * 1000 * 5)); displaySetNextPageChangeAt(micros() + (1000 * 1000 * 5));
} }

View file

@ -37,7 +37,7 @@ typedef enum {
struct rxConfig_s; struct rxConfig_s;
void displayInit(struct rxConfig_s *intialRxConfig); void displayInit(struct rxConfig_s *intialRxConfig);
void updateDisplay(uint32_t currentTime); void displayUpdate(uint32_t currentTime);
void displayShowFixedPage(pageId_e pageId); void displayShowFixedPage(pageId_e pageId);

View file

@ -244,7 +244,7 @@ void gpsInit(serialConfig_t *initialSerialConfig, gpsConfig_t *initialGpsConfig)
mode &= ~MODE_TX; mode &= ~MODE_TX;
#endif #endif
// no callback - buffer will be consumed in gpsThread() // no callback - buffer will be consumed in gpsUpdate()
gpsPort = openSerialPort(gpsPortConfig->identifier, FUNCTION_GPS, NULL, gpsInitData[gpsData.baudrateIndex].baudrateIndex, mode, SERIAL_NOT_INVERTED); gpsPort = openSerialPort(gpsPortConfig->identifier, FUNCTION_GPS, NULL, gpsInitData[gpsData.baudrateIndex].baudrateIndex, mode, SERIAL_NOT_INVERTED);
if (!gpsPort) { if (!gpsPort) {
featureClear(FEATURE_GPS); featureClear(FEATURE_GPS);
@ -398,7 +398,16 @@ void gpsInitHardware(void)
} }
} }
void gpsThread(void) static void updateGpsIndicator(uint32_t currentTime)
{
static uint32_t GPSLEDTime;
if ((int32_t)(currentTime - GPSLEDTime) >= 0 && (GPS_numSat >= 5)) {
GPSLEDTime = currentTime + 150000;
LED1_TOGGLE;
}
}
void gpsUpdate(uint32_t currentTime)
{ {
// read out available GPS bytes // read out available GPS bytes
if (gpsPort) { if (gpsPort) {
@ -423,7 +432,7 @@ void gpsThread(void)
gpsData.baudrateIndex++; gpsData.baudrateIndex++;
gpsData.baudrateIndex %= GPS_INIT_ENTRIES; gpsData.baudrateIndex %= GPS_INIT_ENTRIES;
} }
gpsData.lastMessage = millis(); gpsData.lastMessage = currentTime / 1000;
// TODO - move some / all of these into gpsData // TODO - move some / all of these into gpsData
GPS_numSat = 0; GPS_numSat = 0;
DISABLE_STATE(GPS_FIX); DISABLE_STATE(GPS_FIX);
@ -432,13 +441,16 @@ void gpsThread(void)
case GPS_RECEIVING_DATA: case GPS_RECEIVING_DATA:
// check for no data/gps timeout/cable disconnection etc // check for no data/gps timeout/cable disconnection etc
if (millis() - gpsData.lastMessage > GPS_TIMEOUT) { if (currentTime / 1000 - gpsData.lastMessage > GPS_TIMEOUT) {
// remove GPS from capability // remove GPS from capability
sensorsClear(SENSOR_GPS); sensorsClear(SENSOR_GPS);
gpsSetState(GPS_LOST_COMMUNICATION); gpsSetState(GPS_LOST_COMMUNICATION);
} }
break; break;
} }
if (sensors(SENSOR_GPS)) {
updateGpsIndicator(currentTime);
}
} }
static void gpsNewData(uint16_t c) static void gpsNewData(uint16_t c)
@ -1065,13 +1077,12 @@ static void gpsHandlePassthrough(uint8_t data)
gpsNewData(data); gpsNewData(data);
#ifdef DISPLAY #ifdef DISPLAY
if (feature(FEATURE_DISPLAY)) { if (feature(FEATURE_DISPLAY)) {
updateDisplay(micros()); displayUpdate(micros());
} }
#endif #endif
} }
void gpsEnablePassthrough(serialPort_t *gpsPassthroughPort) void gpsEnablePassthrough(serialPort_t *gpsPassthroughPort)
{ {
waitForSerialPortToFinishTransmitting(gpsPort); waitForSerialPortToFinishTransmitting(gpsPort);
@ -1088,13 +1099,4 @@ void gpsEnablePassthrough(serialPort_t *gpsPassthroughPort)
serialPassthrough(gpsPort, gpsPassthroughPort, &gpsHandlePassthrough, NULL); serialPassthrough(gpsPort, gpsPassthroughPort, &gpsHandlePassthrough, NULL);
} }
void updateGpsIndicator(uint32_t currentTime)
{
static uint32_t GPSLEDTime;
if ((int32_t)(currentTime - GPSLEDTime) >= 0 && (GPS_numSat >= 5)) {
GPSLEDTime = currentTime + 150000;
LED1_TOGGLE;
}
}
#endif #endif

View file

@ -119,6 +119,5 @@ extern uint8_t GPS_svinfo_cno[16]; // Carrier to Noise Ratio (Signal Str
struct serialConfig_s; struct serialConfig_s;
void gpsInit(struct serialConfig_s *serialConfig, gpsConfig_t *initialGpsConfig); void gpsInit(struct serialConfig_s *serialConfig, gpsConfig_t *initialGpsConfig);
void gpsThread(void); void gpsUpdate(uint32_t currentTime);
bool gpsNewFrame(uint8_t c); bool gpsNewFrame(uint8_t c);
void updateGpsIndicator(uint32_t currentTime);

View file

@ -926,7 +926,7 @@ static applyLayerFn_timed* layerTable[] = {
[timRing] = &applyLedThrustRingLayer [timRing] = &applyLedThrustRingLayer
}; };
void updateLedStrip(uint32_t currentTime) void ledStripUpdate(uint32_t currentTime)
{ {
if (!(ledStripInitialised && isWS2811LedStripReady())) { if (!(ledStripInitialised && isWS2811LedStripReady())) {
return; return;

View file

@ -167,7 +167,7 @@ void reevaluateLedConfig(void);
void ledStripInit(ledConfig_t *ledConfigsToUse, hsvColor_t *colorsToUse, modeColorIndexes_t *modeColorsToUse, specialColorIndexes_t *specialColorsToUse); void ledStripInit(ledConfig_t *ledConfigsToUse, hsvColor_t *colorsToUse, modeColorIndexes_t *modeColorsToUse, specialColorIndexes_t *specialColorsToUse);
void ledStripEnable(void); void ledStripEnable(void);
void updateLedStrip(uint32_t currentTime); void ledStripUpdate(uint32_t currentTime);
bool setModeColor(ledModeIndex_e modeIndex, int modeColorIndex, int colorIndex); bool setModeColor(ledModeIndex_e modeIndex, int modeColorIndex, int colorIndex);

View file

@ -42,7 +42,7 @@ static uint32_t nextUpdateAt = 0;
#define JITTER_DURATION_COUNT (sizeof(jitterDurations) / sizeof(uint8_t)) #define JITTER_DURATION_COUNT (sizeof(jitterDurations) / sizeof(uint8_t))
static uint8_t jitterDurations[] = {0,9,4,8,3,9,6,7,1,6,9,7,8,2,6}; static uint8_t jitterDurations[] = {0,9,4,8,3,9,6,7,1,6,9,7,8,2,6};
void updateTransponder(uint32_t currentTime) void transponderUpdate(uint32_t currentTime)
{ {
static uint32_t jitterIndex = 0; static uint32_t jitterIndex = 0;

View file

@ -21,7 +21,7 @@ void transponderInit(uint8_t* transponderCode);
void transponderEnable(void); void transponderEnable(void);
void transponderDisable(void); void transponderDisable(void);
void updateTransponder(uint32_t currentTime); void transponderUpdate(uint32_t currentTime);
void transponderUpdateData(uint8_t* transponderData); void transponderUpdateData(uint8_t* transponderData);
void transponderTransmitOnce(void); void transponderTransmitOnce(void);
void transponderStartRepeating(void); void transponderStartRepeating(void);

View file

@ -57,7 +57,7 @@ void compassInit(void)
magInit = 1; magInit = 1;
} }
void updateCompass(uint32_t currentTime, flightDynamicsTrims_t *magZero) void compassUpdate(uint32_t currentTime, flightDynamicsTrims_t *magZero)
{ {
static uint32_t tCal = 0; static uint32_t tCal = 0;
static flightDynamicsTrims_t magZeroTempMin; static flightDynamicsTrims_t magZeroTempMin;

View file

@ -29,7 +29,7 @@ typedef enum {
void compassInit(void); void compassInit(void);
union flightDynamicsTrims_u; union flightDynamicsTrims_u;
void updateCompass(uint32_t currentTime, union flightDynamicsTrims_u *magZero); void compassUpdate(uint32_t currentTime, union flightDynamicsTrims_u *magZero);
extern int32_t magADC[XYZ_AXIS_COUNT]; extern int32_t magADC[XYZ_AXIS_COUNT];