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

The GPS data will not be transmitted until the sensor(SENSOR_GPS) is not valid

...and corrected code formating.
This commit is contained in:
Thomas Miric 2018-09-20 19:09:55 +02:00
parent fb72fa7d03
commit b38ae4148e

View file

@ -193,6 +193,29 @@ uint8_t calcCRC8(uint8_t *pt, uint8_t msgLen)
return(crc); return(crc);
} }
void enableGpsTelemetry(bool enable)
{
if (enable) {
bitArraySet(&exSensorEnabled, EX_GPS_SATS);
bitArraySet(&exSensorEnabled, EX_GPS_LONG);
bitArraySet(&exSensorEnabled, EX_GPS_LAT);
bitArraySet(&exSensorEnabled, EX_GPS_SPEED);
bitArraySet(&exSensorEnabled, EX_GPS_DISTANCE_TO_HOME);
bitArraySet(&exSensorEnabled, EX_GPS_DIRECTION_TO_HOME);
bitArraySet(&exSensorEnabled, EX_GPS_HEADING);
bitArraySet(&exSensorEnabled, EX_GPS_ALTITUDE);
} else {
bitArrayClr(&exSensorEnabled, EX_GPS_SATS);
bitArrayClr(&exSensorEnabled, EX_GPS_LONG);
bitArrayClr(&exSensorEnabled, EX_GPS_LAT);
bitArrayClr(&exSensorEnabled, EX_GPS_SPEED);
bitArrayClr(&exSensorEnabled, EX_GPS_DISTANCE_TO_HOME);
bitArrayClr(&exSensorEnabled, EX_GPS_DIRECTION_TO_HOME);
bitArrayClr(&exSensorEnabled, EX_GPS_HEADING);
bitArrayClr(&exSensorEnabled, EX_GPS_ALTITUDE);
}
}
/* /*
* ----------------------------------------------- * -----------------------------------------------
* Jeti Ex Bus Telemetry * Jeti Ex Bus Telemetry
@ -241,16 +264,7 @@ void initJetiExBusTelemetry(void)
bitArraySet(&exSensorEnabled, EX_HEADING); bitArraySet(&exSensorEnabled, EX_HEADING);
} }
if (featureIsEnabled(FEATURE_GPS)) { enableGpsTelemetry(featureIsEnabled(FEATURE_GPS));
bitArraySet(&exSensorEnabled, EX_GPS_SATS);
bitArraySet(&exSensorEnabled, EX_GPS_LONG);
bitArraySet(&exSensorEnabled, EX_GPS_LAT);
bitArraySet(&exSensorEnabled, EX_GPS_SPEED);
bitArraySet(&exSensorEnabled, EX_GPS_DISTANCE_TO_HOME);
bitArraySet(&exSensorEnabled, EX_GPS_DIRECTION_TO_HOME);
bitArraySet(&exSensorEnabled, EX_GPS_HEADING);
bitArraySet(&exSensorEnabled, EX_GPS_ALTITUDE);
}
firstActiveSensor = getNextActiveSensor(0); // find the first active sensor firstActiveSensor = getNextActiveSensor(0); // find the first active sensor
} }
@ -495,6 +509,7 @@ uint8_t sendJetiExBusTelemetry(uint8_t packetID, uint8_t item)
{ {
static uint8_t sensorDescriptionCounter = 0xFF; static uint8_t sensorDescriptionCounter = 0xFF;
static uint8_t requestLoop = 0xFF; static uint8_t requestLoop = 0xFF;
static bool allSensorsActive = true;
uint8_t *jetiExTelemetryFrame = &jetiExBusTelemetryFrame[EXBUS_HEADER_DATA]; uint8_t *jetiExTelemetryFrame = &jetiExBusTelemetryFrame[EXBUS_HEADER_DATA];
if (requestLoop) { if (requestLoop) {
@ -512,10 +527,21 @@ uint8_t sendJetiExBusTelemetry(uint8_t packetID, uint8_t item)
requestLoop--; requestLoop--;
if (requestLoop == 0) { if (requestLoop == 0) {
item = firstActiveSensor; item = firstActiveSensor;
if (featureIsEnabled(FEATURE_GPS)) {
enableGpsTelemetry(false);
allSensorsActive = false;
}
} }
} else { } else {
item = createExTelemetryValueMessage(jetiExTelemetryFrame, item); item = createExTelemetryValueMessage(jetiExTelemetryFrame, item);
createExBusMessage(jetiExBusTelemetryFrame, jetiExTelemetryFrame, packetID); createExBusMessage(jetiExBusTelemetryFrame, jetiExTelemetryFrame, packetID);
if (!allSensorsActive) {
if (sensors(SENSOR_GPS)) {
enableGpsTelemetry(true);
allSensorsActive = true;
}
}
} }
serialWriteBuf(jetiExBusPort, jetiExBusTelemetryFrame, jetiExBusTelemetryFrame[EXBUS_HEADER_MSG_LEN]); serialWriteBuf(jetiExBusPort, jetiExBusTelemetryFrame, jetiExBusTelemetryFrame[EXBUS_HEADER_MSG_LEN]);