Bsongis/rssi from 2 different modules (#6711)

RSSI from 2 different modules
This commit is contained in:
Bertrand Songis
2019-09-05 17:24:48 +02:00
committed by GitHub
parent a2e71d43c0
commit 13dee00eed
28 changed files with 190 additions and 120 deletions
+17 -17
View File
@@ -120,7 +120,7 @@ void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t val, uint32
}
}
else if (unit == UNIT_DATETIME) {
uint32_t data = uint32_t(newVal);
auto data = uint32_t(newVal);
if (data & 0x000000ff) {
datetime.year = (uint16_t) ((data & 0xff000000) >> 24) + 2000; // SPORT GPS year is only two digits
datetime.month = (uint8_t) ((data & 0x00ff0000) >> 16);
@@ -150,7 +150,7 @@ void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t val, uint32
distFromEarthAxis = getDistFromEarthAxis(newVal);
}
gps.latitude = newVal;
lastReceived = now();
setFresh();
return;
}
else if (unit == UNIT_GPS_LONGITUDE) {
@@ -163,7 +163,7 @@ void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t val, uint32
pilotLongitude = newVal;
}
gps.longitude = newVal;
lastReceived = now();
setFresh();
return;
}
else if (unit == UNIT_DATETIME_YEAR) {
@@ -171,13 +171,13 @@ void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t val, uint32
return;
}
else if (unit == UNIT_DATETIME_DAY_MONTH) {
uint32_t data = uint32_t(newVal);
auto data = uint32_t(newVal);
datetime.month = data >> 8;
datetime.day = data & 0xFF;
return;
}
else if (unit == UNIT_DATETIME_HOUR_MIN) {
uint32_t data = uint32_t(newVal);
auto data = uint32_t(newVal);
datetime.hour = (data & 0xFF);
datetime.min = data >> 8;
return;
@@ -193,7 +193,7 @@ void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t val, uint32
}
else if (unit == UNIT_TEXT) {
*((uint32_t*)&text[prec]) = newVal;
lastReceived = now();
setFresh();
return;
}
else {
@@ -252,7 +252,7 @@ void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t val, uint32
}
value = newVal;
lastReceived = now();
setFresh();
}
void TelemetryItem::per10ms(const TelemetrySensor & sensor)
@@ -266,7 +266,7 @@ void TelemetryItem::per10ms(const TelemetrySensor & sensor)
return;
}
else if (currentItem.isOld()) {
lastReceived = TELEMETRY_VALUE_OLD;
setOld();
return;
}
int32_t current = convertTelemetryValue(currentItem.value, currentSensor.unit, currentSensor.prec, UNIT_AMPS, 1);
@@ -275,7 +275,7 @@ void TelemetryItem::per10ms(const TelemetrySensor & sensor)
currentItem.consumption.prescale -= 3600;
setValue(sensor, value+1, sensor.unit, sensor.prec);
}
lastReceived = now();
setFresh();
}
break;
@@ -291,7 +291,7 @@ void TelemetryItem::eval(const TelemetrySensor & sensor)
if (sensor.cell.source) {
TelemetryItem & cellsItem = telemetryItems[sensor.cell.source-1];
if (cellsItem.isOld()) {
lastReceived = TELEMETRY_VALUE_OLD;
setOld();
}
else {
unsigned int index = sensor.cell.index;
@@ -340,7 +340,7 @@ void TelemetryItem::eval(const TelemetrySensor & sensor)
return;
}
else if (gpsItem.isOld()) {
lastReceived = TELEMETRY_VALUE_OLD;
setOld();
return;
}
if (sensor.dist.alt) {
@@ -349,7 +349,7 @@ void TelemetryItem::eval(const TelemetrySensor & sensor)
return;
}
else if (altItem->isOld()) {
lastReceived = TELEMETRY_VALUE_OLD;
setOld();
return;
}
}
@@ -413,7 +413,7 @@ void TelemetryItem::eval(const TelemetrySensor & sensor)
return;
}
else if (telemetryItem.isOld()) {
lastReceived = TELEMETRY_VALUE_OLD;
setOld();
return;
}
}
@@ -439,7 +439,7 @@ void TelemetryItem::eval(const TelemetrySensor & sensor)
if (sensor.formula == TELEM_FORMULA_AVERAGE) {
if (count == 0) {
if (available)
lastReceived = TELEMETRY_VALUE_OLD;
setOld();
return;
}
else {
@@ -491,18 +491,18 @@ int lastUsedTelemetryIndex()
int setTelemetryValue(TelemetryProtocol protocol, uint16_t id, uint8_t subId, uint8_t instance, int32_t value, uint32_t unit, uint32_t prec)
{
bool available = false;
bool sensorFound = false;
for (int index=0; index<MAX_TELEMETRY_SENSORS; index++) {
TelemetrySensor & telemetrySensor = g_model.telemetrySensors[index];
if (telemetrySensor.type == TELEM_TYPE_CUSTOM && telemetrySensor.id == id && telemetrySensor.subId == subId && (telemetrySensor.isSameInstance(protocol, instance) || g_model.ignoreSensorIds)) {
telemetryItems[index].setValue(telemetrySensor, value, unit, prec);
available = true;
sensorFound = true;
// we continue search here, because sensors can share the same id and instance
}
}
if (available || !allowNewSensors) {
if (sensorFound || !allowNewSensors) {
return -1;
}