MCPcopy Create free account
hub / github.com/aethersdr/AetherSDR / buildNetworkTooltip

Function buildNetworkTooltip

src/gui/MainWindowHelpers.cpp:72–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

70} // namespace
71
72QString buildNetworkTooltip(const RadioModel& model)
73{
74 const PanadapterStream::CategoryStats audioStats =
75 model.categoryStats(PanadapterStream::CatAudio);
76 const PanadapterStream::CategoryStats fftStats =
77 model.categoryStats(PanadapterStream::CatFFT);
78 const PanadapterStream::CategoryStats waterfallStats =
79 model.categoryStats(PanadapterStream::CatWaterfall);
80 const PanadapterStream::CategoryStats meterStats =
81 model.categoryStats(PanadapterStream::CatMeter);
82 const PanadapterStream::CategoryStats daxStats =
83 model.categoryStats(PanadapterStream::CatDAX);
84
85 QStringList lines;
86 lines
87 << QString("Network: %1").arg(model.networkQuality())
88 << QString("Latency (RTT): %1").arg(formatNetworkMs(model.lastPingRtt()))
89 << QString("Max RTT (session): %1").arg(formatNetworkMs(model.maxPingRtt()))
90 << QString("Packet loss (%1s): %2")
91 .arg(model.packetLossWindowSeconds())
92 .arg(formatNetworkSeqErrors(model.packetLossWindowDrops(),
93 model.packetLossWindowPackets()))
94 << QString("Network jitter: %1").arg(formatNetworkMs(model.audioPacketJitterMs()))
95 << QString("Audio gap: %1 (max %2)")
96 .arg(formatNetworkMs(model.audioPacketGapMs()),
97 formatNetworkMs(model.audioPacketGapMaxMs()))
98 << QString("Total sequence gaps: %1")
99 .arg(formatNetworkSeqErrors(model.packetDropCount(), model.packetTotalCount()))
100 << QString("Audio: %1").arg(formatCategorySeqErrors(audioStats))
101 << QString("FFT: %1").arg(formatCategorySeqErrors(fftStats))
102 << QString("Waterfall: %1").arg(formatCategorySeqErrors(waterfallStats))
103 << QString("Meters: %1").arg(formatCategorySeqErrors(meterStats))
104 << QString("DAX: %1").arg(formatCategorySeqErrors(daxStats))
105 << QString("UDP RX bytes: %1").arg(QLocale().formattedDataSize(model.rxBytes()))
106 << QString("UDP TX bytes: %1").arg(QLocale().formattedDataSize(model.txBytes()))
107 << "Double-click for full diagnostics";
108 return lines.join('\n');
109}
110
111// ─── TNF tooltip ─────────────────────────────────────────────────────────────
112

Callers 3

MainWindowMethod · 0.85
buildUIMethod · 0.85
eventFilterMethod · 0.85

Calls 15

formatNetworkMsFunction · 0.85
formatNetworkSeqErrorsFunction · 0.85
formatCategorySeqErrorsFunction · 0.85
networkQualityMethod · 0.80
lastPingRttMethod · 0.80
maxPingRttMethod · 0.80
packetLossWindowDropsMethod · 0.80
packetDropCountMethod · 0.80
categoryStatsMethod · 0.45
audioPacketJitterMsMethod · 0.45

Tested by

no test coverage detected