Qirx - DAB SDR-Software für Windows mit TII Auswertung

Alles zum Thema DAB(+) Digitalradio.
Dana Diezemann
Beiträge: 594
Registriert: So 10. Feb 2019, 20:15
Wohnort: Abstatt (HN)
Kontaktdaten:

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Dana Diezemann »

Drehrumbum hat geschrieben: Mo 17. Mai 2021, 00:57 Dass der Balken den Fortgang des Ladens eines Bildes anzeigt, bezweifelt niemand. Es passiert am Ende aber nix. Ich täusche mich selten. Möchtest Du ein Erklär-Video von meinem Desktop oder ein Stück IQ-File zum selbst ausprobieren? Ich tippe auf IQ-File. ;)
Es kann sein, wenn auch nur ein Paket beim Bildladen verloren geht, das dann das Bild einfach nicht gültig ist und dann auch nicht angezeigt wird. Wenn das kurz vor dem Ende des grünen Balken passiert wird das nicht bemerkt. Ist mir hier auch schon passiert.
Zuletzt geändert von Dana Diezemann am Mo 17. Mai 2021, 13:00, insgesamt 1-mal geändert.
Clem01
Beiträge: 282
Registriert: Fr 31. Aug 2018, 17:24

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Clem01 »

Drehrumbum hat geschrieben: Mo 17. Mai 2021, 00:57 Dass der Balken den Fortgang des Ladens eines Bildes anzeigt, bezweifelt niemand. Es passiert am Ende aber nix. Ich täusche mich selten. Möchtest Du ein Erklär-Video von meinem Desktop oder ein Stück IQ-File zum selbst ausprobieren? Ich tippe auf IQ-File. ;)
Wir sind uns einig. Dass die - fehlerhafte - Situation entstehen kann, habe ich doch bestätigt. Natürlich wird das in der nächsten Version bereinigt. Ist keine große Sache.
Drehrumbum
Beiträge: 575
Registriert: Mo 1. Jun 2020, 02:28

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Drehrumbum »

Ich habe nun etwas mit den Prioritäten gespielt. Das funktioniert auf den ersten Blick wirklich. So konnte ich problemlos ein IQ-File aufnehmen (Laufwerk C:) und gleichzeitig über zwei angeschlossene Festplatten etliche Gigabyte hin und her schubbsen. Schön! Freudig erregt, melde ich die HDDs wieder ab, und lasse QIRX in Ruhe weiterlaufen. Tja, nach einer Stunde war es dann soweit - Aussetzer. Dann nach weiteren 10 Minuten kam der Nächste. Mit Realtime-Prio wurde es auch nicht besser. So wird das also nix.

Nächster Ansatz: System checken, nach neuen Treibern für Chipsatz etc. suchen. Windows meinte: "Ich finde nix. Alles okay."


Was nun?

Etwas hacken, natürlich. Nein, nicht Bytes poken - macht viel zu viel Arbeit. Es geht in diesem Fall auch einfacher...

Im Moment spiele ich mit "rtl_tcp.exe" und den Parametern für die Puffer rum. Um zwischen QIRX und rtl_tcp zukommen, habe mir ein kleines Progi geschrieben, welches die originale "rtc_tcp.exe" mit anderen Parametern aufruft. Vorher muss man natürlich rtl_tcp.exe im Qirx-Programmverzeichnis umbenennen und die gefakte "rtl_tcp.exe" reinkopieren.

Mittlerweile läuft QIRX mit den zusätzlichen Settings "-b 30 -l 128" (also vierfache Menge Pufferspeicher, siehe unten) für rtl_tcp seit über eine Stunde ohne Aussetzer. Ich bin wirklich sehr zufrieden! ;) Wenn man nun noch die Priorität für beide Programme etwas anhebt, sollte es dann wirklich immer funktionieren. Ich meine, wer mit zeitkritischen Programmen arbeitet, muss auch kleine Opfer bringen. Erst wenn sich die Maus kaum noch bewegen lässt, wird es kritisch... :D :D :D


Wer will, kann ja seinen C-Compiler mal anwerfen. Quick & Dirty programming for Fans & Ventile! (Ein Binary will ich jetzt nicht hochladen, da das alles nur ein Test ist. Wenn Clem sowieso ein Update bringt, kann er die Kommandozeile auch mit ändern.)

Code: Alles auswählen

#include <windows.h>
int main()
{
	/* Just for looking inside the original CommandLine from QIRX. No real surprises here.
	LPCTSTR pszCmdLine = GetCommandLine();
	MessageBox(0, pszCmdLine, L"Commandline", MB_OK);
	*/
	
	/***************************************************************************
	
		Some switches for playing around with rtl_tcp.exe. I'll hope they work:

		-b	number of buffers (default: 15, set by library)
		-l	length of single buffer in units of 512 samples (default: 64)
		-n	max number of linked list buffers to keep (default:500)
	
	****************************************************************************/
    TCHAR szMyCommandLine[] = L"rtl_tcp_o.exe -d 0 -a 127.0.0.1 -p 1234 -b 30 -l 128";

	STARTUPINFO si;
	PROCESS_INFORMATION pi;

	ZeroMemory(&pi, sizeof(pi));
	ZeroMemory(&si, sizeof(si));

	si.cb = sizeof(si);
	si.wShowWindow = SW_SHOWMINNOACTIVE; // minimized & no focus
	si.dwFlags = STARTF_USESHOWWINDOW;

	CreateProcess(
		NULL,
		szMyCommandLine,  // Command line
		NULL,           // Process handle not inheritable
		NULL,           // Thread handle not inheritable
		FALSE,          // Set handle inheritance to FALSE
		HIGH_PRIORITY_CLASS,              // Kick it up a little bit
		NULL,           // Use parent's environment block
		NULL,           // Use parent's starting directory 
		&si,            // Pointer to STARTUPINFO structure
		&pi);           // Pointer to PROCESS_INFORMATION structure, 

	// Wait until child process exits
	// WaitForSingleObject(pi.hProcess, INFINITE);

	// Close process and thread handles
	CloseHandle(pi.hProcess);
	CloseHandle(pi.hThread);

	return (INT_PTR)TRUE;
}


EDIT: Kleine Änderung. Wenn wir schon den Prozess starten, können wir auch gleich die Priorität mitgeben. "HIGH_PRIORITY_CLASS" sollte völlig ausreichen. Und auf das Ende von rtl_tcp.exe müssen wir auch nicht warten.
Zuletzt geändert von Drehrumbum am Mi 19. Mai 2021, 09:46, insgesamt 3-mal geändert.
viterbi.dll replacement for QIRX-SDR (all versions): https://github.com/Drehrumbum/viterbi.dll#viterbidll
Dana Diezemann
Beiträge: 594
Registriert: So 10. Feb 2019, 20:15
Wohnort: Abstatt (HN)
Kontaktdaten:

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Dana Diezemann »

Kleiner Fortschritt, große Wirkung. Danke das du es ausprobiert hast. Warten wir mal, was Clem draus macht...
Drehrumbum
Beiträge: 575
Registriert: Mo 1. Jun 2020, 02:28

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Drehrumbum »

Ich "qirxe" ja nun auch schon eine Weile und kenne meinen Rechner. Darum sag ich jetzt einfach mal:

"Das war's!"

Die Puffereinstellungen haben es gebracht! Mittlerweile läuft der ganze Spass seit zweieinhalb Stunden ohne einen Aussetzer mit Normal-Prio. Das gab es noch nie zuvor!

Auch die sporadischen Schwankungen der SNR sind jetzt verschwunden. Mitunter fiel die SNR von meinetwegen 30dB schnell runter bis alles schon gelb wird - also knapp vor dem Aussetzen.

Heute ist ein guter Tag! :cheers: :rp:




EDIT: Der Level über 2:30h. Alles gut bis jetzt. ;)
Dateianhänge
level.jpg
viterbi.dll replacement for QIRX-SDR (all versions): https://github.com/Drehrumbum/viterbi.dll#viterbidll
oldenburger
Beiträge: 120
Registriert: So 30. Sep 2018, 10:58

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von oldenburger »

Zu den Aussetzern:
Damit experimentiere ich auch schon ewig herum. Irgendwann habe ich das gefunden: https://github.com/libusb/libusb/issues/490
"mcuee" hat diesen Vorschlag von "bsccara" aber abgelehnt, weil er den ohnehin schon komplexen Code der libusb noch komplexer machen würde. Ich habe es einfach mal ausprobiert und habe damit eine erhebliche Verbesserung erreicht: Mit rtl_tcp und Andis DAB-Player habe ich seitdem gar keine Aussetzer mehr. Mit Qirx V3 sind die Aussetzer auch verschwunden. Mit Qirx V2 gibt es immer noch Aussetzer, es sind aber weniger geworden.
Die veränderte libusb ist in in der aktuellen Version von Qirx 3.1.2 Beta schon enthalten.

Bei mir ist die optimale Pufferlänge von rtl_tcp "-l 64". Mehr Puffer bringen bei mir nichts. Das ist aber wahrscheinlich vom verwendeten PC abhängig.

Ein extra Programm muss man nicht unbedingt schreiben, wenn man mit den Parametern von rtl_tcp spielen will. Man kann in Qirx einfach den Haken bei "Autostart" und "Autostop" heraus nehmen. Dann kann man rtl_tcp mit beliebigen Parametern vorher selbst starten.
HF-Hase
Beiträge: 467
Registriert: Fr 31. Aug 2018, 20:16
Wohnort: Windeck / RheinSieg

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von HF-Hase »

Drehrumbum hat geschrieben: Mi 19. Mai 2021, 00:25 Die Puffereinstellungen haben es gebracht! Mittlerweile läuft der ganze Spass seit zweieinhalb Stunden ohne einen Aussetzer mit Normal-Prio. Das gab es noch nie zuvor!
Nur mal interessehalber:
Welche Version der libusb-1.0.dll verwendest du - die vom 22.8.2020?
Von Oldenburger gibt es eine mit Datum 26.3.2021, die den USB-Übertragungsmodus ändert. Mit der treten bei mir keinerlei Ausetzer mehr auf.

Nachrag: da war Oldenburger 8 Minuten schneller!
Drehrumbum
Beiträge: 575
Registriert: Mo 1. Jun 2020, 02:28

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Drehrumbum »

Moin, moin!

Ja, ich benutze die aktuelle Version, die mit QIRX 3 auf dem Rechner landet.

Ich hab ja gestern auch etwas gegoogelt und bin dabei besonders über den Parameter -n "max number of linked list buffers to keep (default:500)" gestolpert. Falls das keine "Karteileiche" in den Parametern für die aktuelle rtl_tcp.exe ist, gibt es für diese "inked lists" auch einen Vorschlag, der es bis jetzt (?) wohl auch nicht in den offiziellen Code geschafft hat. Ist das so, @oldenburger? Ich hab keine Ahnung, aber was für einen Raspi gut ist...

https://www.rtl-sdr.com/significantly-i ... g-buffers/

Was ist nun eigentlich besser? Viele Puffer mit weniger Size oder weniger Puffer mit mehr Size? Ich tippe auf letzterers.

PS: rtl_tcp händisch starten geht natürlich auch, ist aber zu einfach. ;)
viterbi.dll replacement for QIRX-SDR (all versions): https://github.com/Drehrumbum/viterbi.dll#viterbidll
oldenburger
Beiträge: 120
Registriert: So 30. Sep 2018, 10:58

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von oldenburger »

Der Parameter "-n" ist keine Karteileiche. rtl_tcp reserviert da tatsächlich die gewünschte Anzahl. Das sind Puffer für die TCP/IP-Verbindung, falls es da einen Stau geben sollte. Mit den USB-Puffern hat das nichts zu tun. Ein Ringpuffer würde Rechenzeit einsparen, was für den Raspi sinnvoll ist. Auf dem PC würde das nichts bringen. Die USB-Blöcke sind ja schon vorher verloren gegangen.
Drehrumbum
Beiträge: 575
Registriert: Mo 1. Jun 2020, 02:28

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Drehrumbum »

Hallo Clem & Friends!

Ich bin bei der Wiedergabe von IQ-Dateien mit QIRX-3 auf einen Bug gestossen. In der alten 2er Version ist der Fehler nicht drin - dort funktioniert alles wie es soll.

Drückt man auf "Pause", wird die Wiedergabe unterbrochen. Drückt man auf "Play", wird die Wiedergabe fortgesetzt.

Problem dabei: Die Dauer der Pause darf nicht länger als 5 Sekunden sein. Diese Zeit hat sich durch einige Versuche ergeben. War die Pause länger, läuft zwar die Zeitanzeige links oben wieder weiter, ansonsten passiert aber rein gar nichts mehr. Erst ein Neuladen der IQ-Datei behebt den Fehler.


Wunschzettel:
Beim Export einer Wave-Datei aus einer aufgezeichneten IQ-Datei wäre es cool, wenn das originale Aufnahmedatum/Zeit (aus dem DAB-Timestamp) als Dateiname genommen wird, nicht die aktuelle Systemzeit.

Wunschzettel, gaaaanz weit unten:
Zentrierung der eigenen Position (grüner Punkt) in der Map. Grüne Punkte in grüner Landschaft sieht man schlecht. ;)
viterbi.dll replacement for QIRX-SDR (all versions): https://github.com/Drehrumbum/viterbi.dll#viterbidll
Dana Diezemann
Beiträge: 594
Registriert: So 10. Feb 2019, 20:15
Wohnort: Abstatt (HN)
Kontaktdaten:

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Dana Diezemann »

Zentrierung der Map (als Haken Option) um den eigenen Standort wäre echt klasse für Messfahrten. Wenn dann noch ne Track aufgezwichnet und als Oberlay drüber liegt, dessen Farbe der Signalstärke entspricht, bin ich glücklich. Denn im Record der GPS Daten ist kein Empfangspegel drin.
Clem01
Beiträge: 282
Registriert: Fr 31. Aug 2018, 17:24

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Clem01 »

Hallo Dana, Drehrumbum,

Erstmal danke für eure Hinweise und Vorschläge. Alles sinnvoll, klar, aber der Tag hat deutlich zu wenig Stunden. Vielleicht bleibt ja das Wetter schlecht...

Das mit der Aufnahemzeit sollte fast trivial sein. Es wird dann allerdings - wie auf der GUI - UTC und nicht Lokalzeit sein.

Die Zentrierung der eigenen Position sollte kein so grosses Ding sein (wenns nicht dauernd sein soll, d.h. keine "Moving Map"), aber die farbigen Trails sind ein hoher Aufwand. Allerdings habe ich genau sowas schon im ADS-B Dekoder drin (dort Farbkodierung =Höhe). Ich werde mal schauen, ob ich das direkt übernehmen kann. Bei ADS-B ist das allerdings ein "must" auf der Karte, bei DAB eher ein "Special Feature".

Zum berichteten Fehler: Auch dieser ist bestätigt (wer macht auch länger als 5s Pause!!), und auch schon identifiziert.
Dana Diezemann
Beiträge: 594
Registriert: So 10. Feb 2019, 20:15
Wohnort: Abstatt (HN)
Kontaktdaten:

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Dana Diezemann »

@Clem01, einfach nur Danke für deine großartige Arbeit. Und keinen Stress bei der Abarbeitung der offenen Punkte.
Drehrumbum
Beiträge: 575
Registriert: Mo 1. Jun 2020, 02:28

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Drehrumbum »

Da kann ich mich Dana nur anschliessen: Absolut goile Software, Clem! Und natürlich toller Support! Ich finde es, rein technisch gesehen, sowieso fantastisch, was mit SDR so alles geht. Aber ich komme ins Schwärmen...


Zu oben:

UTC als Wave-Filename ist völlig okay. Wichtig ist ja nur, dass die momentan aktuelle DAB-Zeit aus dem wiedergegebenen IQ-File genommen wird, wenn man die "Audio-Aufnahme" startet.

Weil ihr gerade bei der Flughöhe und GPS wart. Wunschzettel ganz weit unten:
Je nach GPS-Maus fehlt eventuell die sogenannte Geoidseperation in den NMEA-Datensätzen (GGA-Zeile). In Deutschland sind das rund 48m Differenz zu Normalnull. Bei Clem @home - siehe Qirx-Homepage unter "GNSS Dialog" - steht "47.5M" dort und die Höhe "112.4M" ist MSL (Normalnull) - alles richtig. Ist dieses Feld in der GGA-Zeile aber leer (wie bei mir übers Handy), landet die falsche Höhe im GPS-Log. Wenn man das nicht weiss und nimmt diese Höhen dann für Berechnungen mit Radiomobile etc, hat damit gleich mal einen virtuellen Antennenmast mit 48m Höhe "gebastelt"... Die Höhe kann man einfach korrigieren. Einfach mal nach "geoid.c" googeln. Das hat aber echt keine Eile.


Der Begriff "Moving Map" ist mir bei meinem Posting oben nicht eingefallen. Aber eigentlich meinte ich dieses Feature. Im Auto, mit dem Lappi auf dem Beifahrersitz, sieht man nämlich oft "nüscht". Da muss noch nicht einmal die Sonne volle Pulle scheinen.
viterbi.dll replacement for QIRX-SDR (all versions): https://github.com/Drehrumbum/viterbi.dll#viterbidll
Dana Diezemann
Beiträge: 594
Registriert: So 10. Feb 2019, 20:15
Wohnort: Abstatt (HN)
Kontaktdaten:

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Dana Diezemann »

Thema Bias-T / 5 Volt auf der Antennenleitung

Ich habe nun eine aktive Antenne, die eine Fernspeisung von 5 Volt braucht. Wäre ja schön, der Stick gibt seine 5 Volt vom USB weiter. Spart mir ein Zwischennetzteil. So, das geht mit dem Bias-T Feature. QIRX unterstützt das auch (Welle.io und QT-DAB nicht) und der Treiber (RTL_SDR.exe) bekommt auch brav "set bias tee 1". Es passiert aber nichts, elektrisch gesehen. 3 komplett unterschiedliche Sticks und immer 0,05 Volt. Egal, was ich mache. Verstärker geht natürlich nicht.
Frage: Hat das wer am laufen? Oder muss ich hier mal ein Bit zu Fuß setzen? Ein Stick hat extra draufgedruckt "BIAS". Was läuft falsch?
Antworten