fix(lua): getFieldInfo not returning sensor name if one defined (#6422)
This commit is contained in:
@@ -564,51 +564,41 @@ bool luaFindFieldById(int id, LuaField & field, unsigned int flags)
|
||||
if (_searchSingleFieldsById(id, field, flags, luaSingleFields, DIM(luaSingleFields)))
|
||||
return true;
|
||||
|
||||
// search in telemetry for configured sensor
|
||||
if (id >= MIXSRC_FIRST_TELEM && id <= MIXSRC_LAST_TELEM) {
|
||||
int i = (id - MIXSRC_FIRST_TELEM) / 3;
|
||||
if (isTelemetryFieldAvailable(i)) {
|
||||
char* s = strAppend(field.name, g_model.telemetrySensors[i].label, TELEM_LABEL_LEN);
|
||||
int index = (id - MIXSRC_FIRST_TELEM) % 3;
|
||||
if (index == 1)
|
||||
strAppend(s, "-");
|
||||
else if (index == 2)
|
||||
strAppend(s, "+");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// search in multiples
|
||||
for (unsigned int n = 0; n < DIM(luaMultipleFields); ++n) {
|
||||
int index = id - luaMultipleFields[n].id;
|
||||
if (0 <= index && index < luaMultipleFields[n].count) {
|
||||
int index2 = 0;
|
||||
if(luaMultipleFields[n].id == MIXSRC_FIRST_TELEM) {
|
||||
if (luaMultipleFields[n].id == MIXSRC_FIRST_TELEM) {
|
||||
index2 = index % 3;
|
||||
index /= 3;
|
||||
}
|
||||
switch (index2) {
|
||||
case 0:
|
||||
snprintf(field.name, sizeof(field.name), "%s%i", luaMultipleFields[n].name, index + 1);
|
||||
break;
|
||||
case 1:
|
||||
snprintf(field.name, sizeof(field.name), "%s%i-", luaMultipleFields[n].name, index + 1);
|
||||
break;
|
||||
case 2:
|
||||
snprintf(field.name, sizeof(field.name), "%s%i+", luaMultipleFields[n].name, index + 1);
|
||||
}
|
||||
char* s = strAppend(field.name, luaMultipleFields[n].name);
|
||||
s = strAppendUnsigned(s, index + 1);
|
||||
if (index2 == 1)
|
||||
strAppend(s, "-");
|
||||
else if (index2 == 2)
|
||||
strAppend(s, "+");
|
||||
if (flags & FIND_FIELD_DESC)
|
||||
snprintf(field.desc, sizeof(field.desc), luaMultipleFields[n].desc, index + 1);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// search in telemetry
|
||||
for (int i = 0; i < MAX_TELEMETRY_SENSORS; i++) {
|
||||
if (isTelemetryFieldAvailable(i)) {
|
||||
int index = id - (MIXSRC_FIRST_TELEM + 3 * i);
|
||||
if (0 <= index && index < 3) {
|
||||
const char* sensorName = g_model.telemetrySensors[i].label;
|
||||
switch (index) {
|
||||
case 0:
|
||||
snprintf(field.name, sizeof(field.name), "%s", sensorName);
|
||||
break;
|
||||
case 1:
|
||||
snprintf(field.name, sizeof(field.name), "%s-", sensorName);
|
||||
break;
|
||||
case 2:
|
||||
snprintf(field.name, sizeof(field.name), "%s+", sensorName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false; // not found
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user