feat(color): show ambient light sensor on analog debug pages (#7030)

This commit is contained in:
philmoz
2026-01-26 18:16:13 +10:00
committed by GitHub
parent 0ee753dea5
commit ae4d747cb6
+41 -33
View File
@@ -26,9 +26,9 @@
#include "hal/adc_driver.h"
#include "static.h"
// #if defined(IMU_LSM6DS33)
// #include "imu_lsm6ds33.h"
// #endif
#if defined(LUMINOSITY_SENSOR)
#include "luminosity_sensor.h"
#endif
#define STATSDEPTH 8 // ideally a value of power of 2
@@ -62,8 +62,6 @@ class AnaViewWindow : public Window
padLeft(PAD_SMALL);
padRight(PAD_SMALL);
setFlexLayout();
line = newLine(grid);
}
virtual void build()
@@ -79,12 +77,15 @@ class AnaViewWindow : public Window
continue;
#if LANDSCAPE
if ((i & 1) == 0) line = newLine(grid);
if ((i & 1) == 0) {
line = newLine(grid);
lv_obj_set_style_pad_column(line->getLvObj(), PAD_SMALL, LV_PART_MAIN);
}
#else
line = newLine(grid);
lv_obj_set_style_pad_column(line->getLvObj(), PAD_SMALL, LV_PART_MAIN);
#endif
lv_obj_set_style_pad_column(line->getLvObj(), PAD_SMALL, LV_PART_MAIN);
if (((adcGetInputMask() & (1 << i)) != 0) && i < adcGetMaxInputs(ADC_INPUT_MAIN))
sprintf(s, "D%d :", i + 1);
else
@@ -92,23 +93,18 @@ class AnaViewWindow : public Window
new StaticText(line, rect_t{}, s);
auto lbl = new DynamicText(line, rect_t{},
[=]() {
return std::to_string((int16_t)calibratedAnalogs[i] * 25 / 256);
}, COLOR_THEME_PRIMARY1_INDEX, RIGHT);
auto lbl = new DynamicNumber<int16_t>(line, rect_t{},
[=]() { return calibratedAnalogs[i] * 25 / 256; },
COLOR_THEME_PRIMARY1_INDEX, RIGHT);
lbl = new DynamicText(line, rect_t{},
[=]() {
return std::to_string((int16_t)column3(i));
}, COLOR_THEME_PRIMARY1_INDEX, RIGHT);
lbl = new DynamicNumber<int16_t>(line, rect_t{},
[=]() { return column3(i); }, COLOR_THEME_PRIMARY1_INDEX, RIGHT);
if (column4size() > 0) {
lbl = new DynamicText(
line, rect_t{},
[=]() {
return std::string(column4prefix()) +
std::to_string((int16_t)column4(i));
}, COLOR_THEME_PRIMARY1_INDEX, (column4size() == 2) ? 0 : RIGHT);
lbl = new DynamicNumber<int16_t>(line, rect_t{},
[=]() { return column4(i); },
COLOR_THEME_PRIMARY1_INDEX, (column4size() == 2) ? 0 : RIGHT,
column4prefix());
#if LANDSCAPE
lv_obj_set_grid_cell(lbl->getLvObj(), LV_GRID_ALIGN_STRETCH,
3 + (i & 1) * 5, column4size(),
@@ -122,9 +118,7 @@ class AnaViewWindow : public Window
}
if (column5size() > 0) {
lbl = new DynamicText(
line, rect_t{},
[=]() { return std::to_string((int16_t)column5(i)); });
lbl = new DynamicNumber<int16_t>(line, rect_t{}, [=]() { return column5(i); });
} else {
grid.nextCell();
}
@@ -134,21 +128,34 @@ class AnaViewWindow : public Window
line = newLine(grid);
lv_obj_set_style_pad_column(line->getLvObj(), PAD_SMALL, LV_PART_MAIN);
grid.setColSpan(2);
new StaticText(line, rect_t{}, "Tilt X");
new DynamicText(
line, rect_t{},
[=]() {
return std::to_string((int16_t) gyro.scaledX());
}, COLOR_THEME_PRIMARY1_INDEX, RIGHT);
grid.setColSpan(1);
new DynamicNumber<int16_t>(line, rect_t{},
[=]() { return gyro.scaledX(); }, COLOR_THEME_PRIMARY1_INDEX, RIGHT);
for (int i = 0; i < 3; i++) {grid.nextCell();}
line = newLine(grid);
lv_obj_set_style_pad_column(line->getLvObj(), PAD_SMALL, LV_PART_MAIN);
grid.setColSpan(2);
new StaticText(line, rect_t{}, "Tilt Y");
new DynamicText(
grid.setColSpan(1);
new DynamicNumber<int16_t>(line, rect_t{},
[=]() { return gyro.scaledY(); }, COLOR_THEME_PRIMARY1_INDEX, RIGHT);
#endif
#if defined(LUMINOSITY_SENSOR)
line = newLine(grid);
lv_obj_set_style_pad_column(line->getLvObj(), PAD_SMALL, LV_PART_MAIN);
grid.setColSpan(2);
new StaticText(line, rect_t{}, STR_SRC_LIGHT);
grid.setColSpan(1);
new DynamicNumber<uint16_t>(
line, rect_t{},
[=]() {
return std::to_string((int16_t) gyro.scaledY());
}, COLOR_THEME_PRIMARY1_INDEX, RIGHT);
[=]() { return getLuxSensorValue(); }, COLOR_THEME_PRIMARY1_INDEX, RIGHT);
#endif
}
@@ -441,6 +448,7 @@ class AnaMinMaxViewWindow : public AnaViewWindow
adcGetMaxInputs(ADC_INPUT_MAIN) + adcGetMaxInputs(ADC_INPUT_FLEX);
for (uint8_t i = 0; i < max_inputs; i++) minmax[i].clear();
checkEvents();
}
void build() override