Hallo Hermann,
ein herzliches Willkommen im Forum!
Hallo Bernhard,
Wenn ich das richtig lese, kannst Du so ein Executable für die Commandline kompilieren, ist das korrekt, oder misinterpretiere ich das ?
Das ist genau das was man mit GR machen kann! Du kannst entweder eine Konsolenversion oder eine GUI Version deiner Signalverarbeitung grafisch erstellen und bekommst je nach Einstellung im Options Block ein Python oder C/C++ Programm.
Bei Python wird nur eine .py Datei erzeugt und C/C++ ein ganzer Ordner mit c,cpp,h und Makefiles. Die Erzeugung von C/C++ Programmen ist allerdings daran gebunden, daß jeder Block in der Signalverarbeitung diese Sprache unterstützen muss, bei Python ist dies wohl immer der Fall, mir ist jedenfalls noch kein C/C++ only Block in einer Standard GR Installation begegnet.
Mit Hilfe des Parameterblocks kannst Du die Befehlszeilenparameter der Programme festlegen hinsichtlich Namen/Typs.
Damit kann man dann Daten zwischen verschiedenen Programmen oder mehreren Programmteilen von GR oder Nutzern austauschen. Das funktioniert auch unter Windows!
Man kann somit schnell einen Wrapper für sämtliche SDR-Sender bauen, für die es in GR Treibersupport oder Sinks (USRP Sink) gibt. Auch ein Resampler mit Pipes ist kein Problem, dank der Parameterbausteine frei konfigurierbar und mit den so übergebenen Werten kannst du im GR Programm natürlich auch Berechnungen anstellen.
Einen Pferdefuß im Zusammenspiel mit Fl2k hat das allerdings, flk2 und seine Programme akzeptieren nicht jede beliebige Samplerate.
Möchte man zum Beispiel eine Signalausgabe mit 5 MS/s und ruft man fl2k_tcp -s 5000000 auf, kommt als Ergebnis heraus
Requested sample rate 5000000 not possible, using 7777777.000000, error is 2777777.000000
Man muss eine Samplerate von 7.7... MS/s nutzen, 5 MS/s gehen nicht. Weitere Beispiele für Samplerates unter 10 MS/s
Requested sample rate 8000000 not possible, using 8032786.000000, error is 32786.000000
Requested sample rate 8000000 not possible, using 8032786.000000, error is 32786.000000
10; 11; 12 MS/s ... wieder okay, bei 16 MS: Requested sample rate 16000000 not possible, using 15999998.000000, error is -2.000000
Aber dann gehts hier bei mir in 1 MS bzw. ab 20 MS/s auch in 10 MS-Schritten weiter bis der USB3 Controller seine Leistungsgrenze erreicht hat oder der genutzte PC vorher die Daten nicht mehr Live streamen kann. Gepuffert wird bei der FL2k Lösung rein gar nichts, also muss der PC die Daten in Echtzeit berechnen und transferieren können.
Viele Grüße
Bernhard