1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-12 19:10:19 +03:00

POC for discussion

This commit is contained in:
3djc 2021-02-25 16:13:24 +01:00
parent ed8773b7fd
commit 02b7191881
4 changed files with 6 additions and 7 deletions

View file

@ -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

View file

@ -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;

View file

@ -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);

View file

@ -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;