mirror of https://github.com/commaai/openpilot.git
test changing sound volume
This commit is contained in:
parent
dbe512d167
commit
4bbd870746
|
@ -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)
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
test
|
||||
playsound
|
||||
test_sound
|
||||
test_sound_volume
|
||||
test_translations
|
||||
|
|
|
@ -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();
|
||||
}
|
Loading…
Reference in New Issue