Fix telemetry sensor module/rx source data being lost in some cases (#6792)
This commit is contained in:
committed by
Bertrand Songis
parent
6a10e762dd
commit
059ceee7e3
@@ -1914,8 +1914,7 @@ class SensorField: public TransformedField {
|
||||
if (sensor.type == SensorData::TELEM_TYPE_CUSTOM) {
|
||||
_id = sensor.id;
|
||||
_subid = sensor.subid;
|
||||
// keep highest 3 bits from instance (rxIdx & moduleIdx are read-only)
|
||||
_instance = (sensor.instance & 0x1F) | (_instance & 0xE0);
|
||||
_instance = (sensor.instance & 0x1F) | (sensor.rxIdx << 5) | (sensor.moduleIdx << 7);
|
||||
_ratio = sensor.ratio;
|
||||
_offset = sensor.offset;
|
||||
}
|
||||
@@ -1941,7 +1940,7 @@ class SensorField: public TransformedField {
|
||||
if (model.moduleData[0].isPxx1Module() || model.moduleData[1].isPxx1Module())
|
||||
sensor.instance = (_instance & 0x1F) + (version <= 218 ? -1 : 0); // 5 bits instance
|
||||
else
|
||||
sensor.instance = _instance;
|
||||
sensor.instance = _instance & 0x1F;
|
||||
sensor.rxIdx = (_instance >> 5) & 0x03; // 2 bits Rx idx
|
||||
sensor.moduleIdx = (_instance >> 7) & 0x1; // 1 bit module idx
|
||||
sensor.ratio = _ratio;
|
||||
|
||||
Reference in New Issue
Block a user