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:
parent
fb72fa7d03
commit
b38ae4148e
1 changed files with 40 additions and 14 deletions
|
@ -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]);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue