Skip to content

Commit cd9813a

Browse files
authored
UI: run set_brightness in QtConcurrent (commaai#23326)
* use QFuture * update at 10 hz * don't change frequency
1 parent 9f88ba1 commit cd9813a

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

selfdrive/ui/ui.cc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
#include <cassert>
44
#include <cmath>
55

6+
#include <QtConcurrent>
7+
68
#include "common/transformations/orientation.hpp"
79
#include "selfdrive/common/params.h"
810
#include "selfdrive/common/swaglog.h"
@@ -290,9 +292,11 @@ void Device::updateBrightness(const UIState &s) {
290292
}
291293

292294
if (brightness != last_brightness) {
293-
std::thread{Hardware::set_brightness, brightness}.detach();
295+
if (!brightness_future.isRunning()) {
296+
brightness_future = QtConcurrent::run(Hardware::set_brightness, brightness);
297+
last_brightness = brightness;
298+
}
294299
}
295-
last_brightness = brightness;
296300
}
297301

298302
bool Device::motionTriggered(const UIState &s) {

selfdrive/ui/ui.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <QObject>
88
#include <QTimer>
99
#include <QColor>
10+
#include <QFuture>
1011
#include <QTransform>
1112

1213
#include "cereal/messaging/messaging.h"
@@ -162,6 +163,7 @@ class Device : public QObject {
162163
bool ignition_on = false;
163164
int last_brightness = 0;
164165
FirstOrderFilter brightness_filter;
166+
QFuture<void> brightness_future;
165167

166168
void updateBrightness(const UIState &s);
167169
void updateWakefulness(const UIState &s);

0 commit comments

Comments
 (0)