diff --git a/radio/src/gui/480x272/model_telemetry_sensor.cpp b/radio/src/gui/480x272/model_telemetry_sensor.cpp index 3c23b96af..08fbda83b 100644 --- a/radio/src/gui/480x272/model_telemetry_sensor.cpp +++ b/radio/src/gui/480x272/model_telemetry_sensor.cpp @@ -155,8 +155,7 @@ bool menuModelSensor(event_t event) drawReceiverName(SENSOR_2ND_COLUMN, y, sensor->frskyInstance.rxIndex >> 2, sensor->frskyInstance.rxIndex & 0x03, 0); } #if defined(HARDWARE_INTERNAL_MODULE) - else if (isModuleUsingSport(INTERNAL_MODULE, g_model.moduleData[INTERNAL_MODULE].type)) { - // far from perfect + else if ((sensor->frskyInstance.rxIndex >> 2) == INTERNAL_MODULE) { lcdDrawText(SENSOR_2ND_COLUMN, y, STR_INTERNAL_MODULE); } #endif diff --git a/radio/src/telemetry/m-link.cpp b/radio/src/telemetry/m-link.cpp index a7cdccb92..4474eda51 100644 --- a/radio/src/telemetry/m-link.cpp +++ b/radio/src/telemetry/m-link.cpp @@ -52,7 +52,7 @@ const MLinkSensor * getMLinkSensor(uint16_t id) return nullptr; } -void processMLinkPacket(const uint8_t * packet) +void processMLinkPacket(const uint8_t * packet, uint8_t module) { const uint8_t * data = packet + 2; @@ -65,7 +65,7 @@ void processMLinkPacket(const uint8_t * packet) for (uint8_t i = 1; i < 5; i += 3) { //2 sensors per packet int32_t val = (int16_t )(data[i + 2] << 8 | data[i + 1]); val = val >> 1; // remove alarm flag - uint8_t adress = (data[i] & 0xF0) >> 4; + uint8_t adress = ((data[i] & 0xF0) >> 4) + (module << 7); switch (data[i] & 0x0F) { case MLINK_VOLTAGE: if ((data[i] & 0xF0) == 0x00){ @@ -116,7 +116,7 @@ void processMLinkPacket(const uint8_t * packet) break; case MLINK_LQI: uint8_t mlinkRssi = data[i + 1] >> 1; - setTelemetryValue(PROTOCOL_TELEMETRY_MLINK, MLINK_LQI, 0, 0, mlinkRssi, UNIT_RAW, 0); + setTelemetryValue(PROTOCOL_TELEMETRY_MLINK, MLINK_LQI , 0, module << 7, mlinkRssi, UNIT_RAW, 0); telemetryData.rssi.set(mlinkRssi); if (mlinkRssi > 0) { telemetryStreaming = TELEMETRY_TIMEOUT10ms; diff --git a/radio/src/telemetry/m-link.h b/radio/src/telemetry/m-link.h index eb5da955e..5630169b1 100644 --- a/radio/src/telemetry/m-link.h +++ b/radio/src/telemetry/m-link.h @@ -44,4 +44,4 @@ void processMLinkTelemetryData(uint8_t data, uint8_t* rxBuffer, uint8_t& rxBuffe void mlinkSetDefault(int index, uint16_t id, uint8_t subId, uint8_t instance); // Used by multi protocol -void processMLinkPacket(const uint8_t *packet); +void processMLinkPacket(const uint8_t *packet, uint8_t module); diff --git a/radio/src/telemetry/multi.cpp b/radio/src/telemetry/multi.cpp index 49a5b0d58..68df6fa87 100644 --- a/radio/src/telemetry/multi.cpp +++ b/radio/src/telemetry/multi.cpp @@ -382,7 +382,7 @@ static void processMultiTelemetryPaket(const uint8_t * packet, uint8_t module) case MLinkTelemetry: if (len > 6) - processMLinkPacket(data); + processMLinkPacket(data, module); else TRACE("[MP] Received M-Link telemetry len %d < 6", len); break;