Skip to content

Commit

Permalink
test changing sound volume
Browse files Browse the repository at this point in the history
  • Loading branch information
incognitojam committed Nov 30, 2022
1 parent dbe512d commit 4bbd870
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 0 deletions.
1 change: 1 addition & 0 deletions selfdrive/ui/SConscript
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ qt_env.Program("soundd/_soundd", ["soundd/main.cc", "soundd/sound.cc"], LIBS=qt_
if GetOption('test'):
qt_env.Program("tests/playsound", "tests/playsound.cc", LIBS=base_libs)
qt_env.Program('tests/test_sound', ['tests/test_runner.cc', 'soundd/sound.cc', 'tests/test_sound.cc'], LIBS=qt_libs)
qt_env.Program('tests/test_sound_volume', ['tests/test_runner.cc', 'soundd/sound.cc', 'tests/test_sound_volume.cc'], LIBS=qt_libs)

qt_env.SharedLibrary("qt/python_helpers", ["qt/qt_window.cc"], LIBS=qt_libs)

Expand Down
1 change: 1 addition & 0 deletions selfdrive/ui/tests/.gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
test
playsound
test_sound
test_sound_volume
test_translations
63 changes: 63 additions & 0 deletions selfdrive/ui/tests/test_sound_volume.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#include <QEventLoop>
#include <QMap>
#include <QThread>

#include "catch2/catch.hpp"
#include "selfdrive/ui/soundd/sound.h"

void controls_thread(int loop_count) {
PubMaster pm({"carState", "controlsState", "deviceState"});
MessageBuilder deviceStateMsg;
auto deviceState = deviceStateMsg.initEvent().initDeviceState();
deviceState.setStarted(true);

const int DT_CTRL = 10; // ms

// speeds (volume levels)
const std::vector<float> vEgos = {0, 20, 0, 20,};

for (float vEgo : vEgos) {
printf("\n## changing volume to %.1f\n\n", vEgo);
MessageBuilder carStateMsg;
auto carState = carStateMsg.initEvent().initCarState();
carState.setVEgo(vEgo);
pm.send("carState", carStateMsg);

for (int i = 0; i < loop_count; ++i) {
// send no alert sound
for (int j = 0; j < 1000 / DT_CTRL; ++j) {
MessageBuilder msg;
msg.initEvent().initControlsState();
pm.send("carState", carStateMsg);
pm.send("controlsState", msg);
pm.send("deviceState", deviceStateMsg);
QThread::msleep(DT_CTRL);
}

printf("playing engage.wav\n");
for (int j = 0; j < 1000 / DT_CTRL; ++j) {
MessageBuilder msg;
auto cs = msg.initEvent().initControlsState();
cs.setAlertSound(AudibleAlert::ENGAGE);
cs.setAlertType("engage.wav");
pm.send("controlsState", msg);
pm.send("deviceState", deviceStateMsg);
QThread::msleep(DT_CTRL);
}
}
}

QThread::currentThread()->quit();
}

TEST_CASE("test soundd changing volume") {
QEventLoop loop;
Sound sound;
const int test_loop_cnt = 2;

QThread t;
QObject::connect(&t, &QThread::started, [=]() { controls_thread(test_loop_cnt); });
QObject::connect(&t, &QThread::finished, [&]() { loop.quit(); });
t.start();
loop.exec();
}

0 comments on commit 4bbd870

Please sign in to comment.