Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cli_wrapper streams selected multiple times error [via email] #15

Open
agricolab opened this issue Sep 25, 2022 · 1 comment
Open

cli_wrapper streams selected multiple times error [via email] #15

agricolab opened this issue Sep 25, 2022 · 1 comment

Comments

@agricolab
Copy link
Member

Wir nutzen den cli_wrapper schon seit einiger Zeit sehr erfolgreich in diversen Studien. Dabei nutzen wir einen raspberry pi zum aufzeichnen unterschiedlicher LSL-Streams (meist ein Marker, ein Audio und ein EEG stream parallel) unter Linux. [...] Heute wollte ich einen Marker-, und zwei EEG-LSL-Streams gleichzeitig aufzeichnen um einen Verstärkervergleich durchzuführen. Obwohl die EEG-Streams unterschiedliche Namen besitzen erhalte ich folgende Fehlermeldung: "Some streams were selected multible times". Ist dies ein Bug? Wenn ich die Streams manuell initialisiere und dabei den Typ der Streams in EEG1 und EEG2 ändere erscheint dieser Fehler nicht. Wir würden dennoch gern die Möglichkeit besitzen, mit unserer Aufnahme-Box auch auch EEG-LSL-Streams aufnehme zu können, die mit der Smarting-Streemer-Software erstellt wurden. Diese ermöglicht es leider nur die Namen der Streams zu definieren. Der Typ ist dann immer "EEG".

@agricolab
Copy link
Member Author

agricolab commented Sep 25, 2022

Am besten teilst du mal den Code, mit dem du pyliesl.LabRecorderCLI aufrufst, dann kann ich besser helfen.

Vermutlich ist es kein Bug, zumindest nicht in pyliesl.

Der Wrapper prüft, bevor er die Argumente akzeptiert, ob diese die Streams im Netzwerk eindeutig identifizieren: Dazu nimmt er für jeden Stream die source id, die laut LSL-Protokoll eindeutig (unique) für jeden stream sein soll, Es kann ja sein, dass es zwei Streams mit identischer Konfiguration aller Parameter wie Name, Typ, etc, gibt. Geht das Set von source_ids nicht mit der Anzahl an erwarten Streams auf, wirft er den Fehler:
https://github.com/pyreiz/pyliesl/blob/develop/liesl/files/labrecorder/manager.py#L14-L50

Dieses Set von source_ids nimmt er dann, um die Streams korrekt zu identifizeren wenn er mit dem Aufnehmen beginnt.

Sehr wahrscheinlich maskiert ein Outlet im Netzwerk ein anderes, dadurch werden nicht alle strreams identiziert.

Ich vermute, dass eure Outlets und der Smarting Streamer nicht-eindeutige source-ids verwenden. Eventuell bindet eure Outlets den Typnamen ein - änderst du diesen, werden die source-ids dann eindeutig.

Eventuell kann es helfen, mehr Parameter in streamargs zu definieren. Mit liesl list kannst du dir im Terminal alle aktuell verfügbaren Outlets und deren Parameter zeigen lassen.

Notfalls kann ich den Wrapper umschreiben, so dass man das validieren optional weglassen kann, oder du überschreibst das Feld streamargs manuell - aber meine Prognose ist, dass dann ein Stream mehrfach von LabRecorder aufgezeichnet wird, eben weil er diese nicht eindeutig idenfizieren kann.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant