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
|
||||||
}
|
}
|
||||||
|
@ -289,7 +303,7 @@ uint32_t calcGpsDDMMmmm(int32_t value, bool isLong)
|
||||||
|
|
||||||
int32_t getSensorValue(uint8_t sensor)
|
int32_t getSensorValue(uint8_t sensor)
|
||||||
{
|
{
|
||||||
switch(sensor) {
|
switch (sensor) {
|
||||||
case EX_VOLTAGE:
|
case EX_VOLTAGE:
|
||||||
return getBatteryVoltage();
|
return getBatteryVoltage();
|
||||||
break;
|
break;
|
||||||
|
@ -410,9 +424,9 @@ uint8_t createExTelemetryValueMessage(uint8_t *exMessage, uint8_t item)
|
||||||
sensorValue = sensorValue >> 8;
|
sensorValue = sensorValue >> 8;
|
||||||
iCount--;
|
iCount--;
|
||||||
}
|
}
|
||||||
if(jetiExSensors[item].exDataType != EX_TYPE_GPS){
|
if (jetiExSensors[item].exDataType != EX_TYPE_GPS) {
|
||||||
*p++ = (sensorValue & 0x9F) | jetiExSensors[item].decimals;
|
*p++ = (sensorValue & 0x9F) | jetiExSensors[item].decimals;
|
||||||
}else{
|
} else {
|
||||||
*p++ = sensorValue;
|
*p++ = sensorValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
@ -510,12 +525,23 @@ uint8_t sendJetiExBusTelemetry(uint8_t packetID, uint8_t item)
|
||||||
createExTelemetryTextMessage(jetiExTelemetryFrame, sensorDescriptionCounter, &jetiExSensors[sensorDescriptionCounter]);
|
createExTelemetryTextMessage(jetiExTelemetryFrame, sensorDescriptionCounter, &jetiExSensors[sensorDescriptionCounter]);
|
||||||
createExBusMessage(jetiExBusTelemetryFrame, jetiExTelemetryFrame, packetID);
|
createExBusMessage(jetiExBusTelemetryFrame, jetiExTelemetryFrame, packetID);
|
||||||
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