MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / configureMultiLineSeries

Method configureMultiLineSeries

app/src/UI/Dashboard.cpp:2733–2773  ·  view source on GitHub ↗

* @brief Configures the multi-line series data structure for the dashboard. */

Source from the content-addressed store, hash-verified

2731 * @brief Configures the multi-line series data structure for the dashboard.
2732 */
2733void UI::Dashboard::configureMultiLineSeries()
2734{
2735 Q_ASSERT(m_points > 0);
2736
2737 m_multipltValues.clear();
2738 m_multipltValues.squeeze();
2739 m_activeMultiplots.clear();
2740 m_multiplotTimeRings.clear();
2741 m_multiplotSweep.clear();
2742
2743 m_multipltXAxis = DSP::AxisData(points() + 1);
2744 m_multipltXAxis.fillRange(0, 1);
2745
2746 for (int i = 0; i < widgetCount(SerialStudio::DashboardMultiPlot); ++i) {
2747 const auto& group = getGroupWidget(SerialStudio::DashboardMultiPlot, i);
2748
2749 DSP::MultiLineSeries series;
2750 series.x = &m_multipltXAxis;
2751 for (size_t j = 0; j < group.datasets.size(); ++j)
2752 series.y.push_back(DSP::AxisData(points() + 1));
2753
2754 m_multipltValues.append(series);
2755 m_activeMultiplots.insert(i, true);
2756
2757 if (useTimeXAxisGroup(group)) {
2758 const int cap = timeRingCapacity(m_plotTimeRange);
2759 std::vector<DSP::TimeRing> rings;
2760 rings.reserve(group.datasets.size());
2761 for (size_t j = 0; j < group.datasets.size(); ++j)
2762 rings.push_back(makeHistoryRing(m_plotTimeRange));
2763
2764 m_multiplotTimeRings.insert(i, std::move(rings));
2765
2766 DSP::SweepEngine sweep;
2767 sweep.configure(static_cast<int>(group.datasets.size()), cap, m_plotTimeRange);
2768 m_multiplotSweep.insert(i, std::move(sweep));
2769 }
2770 }
2771
2772 buildMultiplotPushes();
2773}
2774
2775/**
2776 * @brief Resolves the per-tick multiplot push table from the configured buffers.

Callers

nothing calls this directly

Calls 7

timeRingCapacityFunction · 0.85
makeHistoryRingFunction · 0.85
fillRangeMethod · 0.80
clearMethod · 0.45
sizeMethod · 0.45
appendMethod · 0.45
configureMethod · 0.45

Tested by

no test coverage detected