还是一堆bug的状态
This commit is contained in:
@@ -10,8 +10,7 @@
|
||||
#include <memory_resource>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
#include "../../../third_party/Renderive/Widget/base/Generate_Mock_Data.h"
|
||||
#include "../../../third_party/Renderive/Renderive/base/Memory.h"
|
||||
#include "Renderive/export.h"
|
||||
namespace {
|
||||
struct Mock_Config {
|
||||
bool performance{};
|
||||
@@ -43,6 +42,10 @@ double make_random_value(renderive::Range range) {
|
||||
std::swap(range.origin, range.target);
|
||||
return renderive::get_data(range);
|
||||
}
|
||||
renderive::Time_Of_Day current_render_time() {
|
||||
const QTime now = QTime::currentTime();
|
||||
return {now.isValid() ? now.msecsSinceStartOfDay() : -1};
|
||||
}
|
||||
void push_radio_data(Radio_Widget* rw) {
|
||||
if (!rw || !rw->spectrogram_line || !rw->water_fall || !rw->time_power || !rw->audio_spectrogram_plot || !rw->progress_bar1 || !rw->progress_bar2)
|
||||
return;
|
||||
@@ -55,12 +58,12 @@ void push_radio_data(Radio_Widget* rw) {
|
||||
rw->progress_bar1->setValue(middle_power);
|
||||
}
|
||||
{
|
||||
rw->water_fall->give_data(QTime::currentTime(), make_random_data(rw->water_fall->power_range(), rw->water_fall->frequency_point_size(), renderive::Memory_Domain::Waterfall));
|
||||
rw->water_fall->give_data(current_render_time(), make_random_data(rw->water_fall->power_range(), rw->water_fall->frequency_point_size(), renderive::Memory_Domain::Waterfall));
|
||||
}
|
||||
{
|
||||
renderive::Range r = rw->time_power->value_axis()->coord_range();
|
||||
renderive::Range nr = {r.middle() - r.length() / 4, r.middle() + r.length() / 4};
|
||||
rw->time_power->give_data(QTime::currentTime(), make_random_value(nr));
|
||||
rw->time_power->give_data(current_render_time(), make_random_value(nr));
|
||||
}
|
||||
{
|
||||
auto r = rw->audio_spectrogram_plot->power_axis()->coord_range();
|
||||
@@ -80,10 +83,10 @@ void push_radio_data_perf(Radio_Widget* rw) {
|
||||
rw->progress_bar1->setValue(middle_power);
|
||||
}
|
||||
{
|
||||
rw->water_fall->give_data(QTime::currentTime(), make_random_data({0, 160}, 1024, renderive::Memory_Domain::Waterfall));
|
||||
rw->water_fall->give_data(current_render_time(), make_random_data({0, 160}, 1024, renderive::Memory_Domain::Waterfall));
|
||||
}
|
||||
{
|
||||
rw->time_power->give_data(QTime::currentTime(), make_random_value({-6000, 6000}));
|
||||
rw->time_power->give_data(current_render_time(), make_random_value({-6000, 6000}));
|
||||
}
|
||||
{
|
||||
rw->audio_spectrogram_plot->give_data(make_random_data({-6000, 6000}, 512, renderive::Memory_Domain::Spectrum));
|
||||
@@ -156,20 +159,13 @@ Back_End::Back_End() {
|
||||
QTimer::singleShot(0, this, [this, config]() {
|
||||
Radio_Widget* rw = Main_Widget::instance()->radio_widget;
|
||||
if (config.performance) {
|
||||
mock_thread = new QThread(this);
|
||||
auto worker = new QObject;
|
||||
worker->moveToThread(mock_thread);
|
||||
QObject::connect(mock_thread, &QThread::finished, worker, &QObject::deleteLater);
|
||||
QObject::connect(mock_thread, &QThread::started, worker, [worker, config, rw]() {
|
||||
auto timer = new QTimer(worker);
|
||||
timer->setTimerType(Qt::PreciseTimer);
|
||||
QObject::connect(timer, &QTimer::timeout, worker, [config, rw]() {
|
||||
for (int i = 0; i < config.batch_count; ++i)
|
||||
push_radio_data_perf(rw);
|
||||
});
|
||||
timer->start(config.interval_ms);
|
||||
auto timer = new QTimer(this);
|
||||
timer->setTimerType(Qt::PreciseTimer);
|
||||
QObject::connect(timer, &QTimer::timeout, this, [config, rw]() {
|
||||
for (int i = 0; i < config.batch_count; ++i)
|
||||
push_radio_data_perf(rw);
|
||||
});
|
||||
mock_thread->start();
|
||||
timer->start(config.interval_ms);
|
||||
return;
|
||||
}
|
||||
auto timer = new QTimer(this);
|
||||
|
||||
Reference in New Issue
Block a user