labstreaminglayer/liblsl-Matlab

Matlab inplementation does not resolve more than one Stream

maltesen opened this issue · 0 comments

Hello.

Ive created ~10 outlets, each in its own thread in some application. Using Lab Recorder i can see all those individual streams as well as record them.

Using the Matlab implementation i can only "see" a single stream (i guess the one that started first, or last, or similar). I tried.:

lib = lsl_loadlib();

result = lsl_resolve_all(lib); length (result)
% ans = 1

% i tried the subfunction which only returns a single pointer instead of an array of 9.:
tmpresults = lsl_resolve_all_(lib,1)
%tmpresults =
%  uint64
%   4514133824

% triing to resolve them by name only one of them is found.:
result = lsl_resolve_byprop(lib,'name','MY_NAME_1');
result = lsl_resolve_byprop(lib,'name','MY_NAME_2');
result = lsl_resolve_byprop(lib,'name','MY_NAME_3');
% ... for MY_NAME 1 to 9
% the one that is found and that i can connect and stream from has the following result:
% result =
% 1×1 cell array
% {1×1 lsl_streaminfo}
% all other streams which are not found by name return.:
% result =
% 1×0 empty cell array

% tried with the same "type" for all my outlets (type = PXI) 
result = lsl_resolve_byprop(lib,'type','PXI')
%result =
%  1×1 cell array
%    {1×1 lsl_streaminfo}

% also tried to give each outlet a different type - same result as above

Here is the head of the XDF File generated by lab recorder. Each has its own uid and port and also the other values seem fine for me. The IP is probably empty because its localhost.:

XDF:�:� <?xml version="1.0"?><info><version>1.0</version></info>�u�  � �   <?xml version="1.0"?>
<info>
	<name>MY_NAME_1</name>
	<type>PXI</type>
	<channel_count>128</channel_count>
	<nominal_srate>1</nominal_srate>
	<channel_format>double64</channel_format>
	<source_id>MY_ID_1</source_id>
	<version>1.1000000000000001</version>
	<created_at>489143.96238964901</created_at>
	<uid>1189c640-e744-4ac9-bd2a-84a7f66e02fa</uid>
	<session_id>default</session_id>
	<hostname>MYPCNAME</hostname>
	<v4address />
	<v4data_port>16575</v4data_port>
	<v4service_port>16575</v4service_port>
	<v6address />
	<v6data_port>16575</v6data_port>
	<v6service_port>16575</v6service_port>
	<desc />
</info>
�r�  � �   <?xml version="1.0"?>
<info>
	<name>MY_NAME_2</name>
	<type>PXI</type>
	<channel_count>8</channel_count>
	<nominal_srate>4400</nominal_srate>
	<channel_format>double64</channel_format>
	<source_id>MY_ID_2</source_id>
	<version>1.1000000000000001</version>
	<created_at>489143.82351545698</created_at>
	<uid>39d636a6-605f-4491-bb8a-ec9fd0ab1587</uid>
	<session_id>default</session_id>
	<hostname>MYPCNAME</hostname>
	<v4address />
	<v4data_port>16572</v4data_port>
	<v4service_port>16572</v4service_port>
	<v6address />
	<v6data_port>16572</v6data_port>
	<v6service_port>16572</v6service_port>
	<desc />
</info>
���  � �   <?xml version="1.0"?>
<info>
	<name>MY_NAME_3</name>
	<type>PXI</type>
	<channel_count>16</channel_count>
	<nominal_srate>4400</nominal_srate>
	<channel_format>double64</channel_format>
	<source_id>MY_ID_3</source_id>
	<version>1.1000000000000001</version>
	<created_at>489145.15449359198</created_at>
	<uid>1403562c-2835-43ff-98d4-1e5afe5d0e66</uid>
	<session_id>default</session_id>
	<hostname>MYPCNAME</hostname>
	<v4address />
	<v4data_port>16578</v4data_port>
	<v4service_port>16578</v4service_port>
	<v6address />
	<v6data_port>16578</v6data_port>
	<v6service_port>16578</v6service_port>
	<desc />
</info>
�p�  � �   <?xml version="1.0"?>
<info>
	<name>MY_NAME_4</name>
	<type>PXI</type>
	<channel_count>8</channel_count>
	<nominal_srate>4400</nominal_srate>
	<channel_format>double64</channel_format>
	<source_id>MY_ID_4</source_id>
	<version>1.1000000000000001</version>
	<created_at>489144.95936401602</created_at>
	<uid>5a79161b-7a22-4f16-b1a8-d609b390490d</uid>
	<session_id>default</session_id>
	<hostname>MYPCNAME</hostname>
	<v4address />
	<v4data_port>16577</v4data_port>
	<v4service_port>16577</v4service_port>
	<v6address />
	<v6data_port>16577</v6data_port>
	<v6service_port>16577</v6service_port>
	<desc />
</info>
�r�  � �   <?xml version="1.0"?>
<info>
	<name>MY_NAME_5</name>
	<type>PXI</type>
	<channel_count>8</channel_count>
	<nominal_srate>4400</nominal_srate>
	<channel_format>double64</channel_format>
	<source_id>MY_ID_5</source_id>
	<version>1.1000000000000001</version>
	<created_at>489143.87394997402</created_at>
	<uid>3c029954-a5e5-4613-8dec-32c82f69dfd7</uid>
	<session_id>default</session_id>
	<hostname>MYPCNAME</hostname>
	<v4address />
	<v4data_port>16574</v4data_port>
	<v4service_port>16574</v4service_port>
	<v6address />
	<v6data_port>16574</v6data_port>
	<v6service_port>16574</v6service_port>
	<desc />
</info>
�r�  � �   <?xml version="1.0"?>
<info>
	<name>MY_NAME_6</name>
	<type>PXI</type>
	<channel_count>8</channel_count>
	<nominal_srate>4400</nominal_srate>
	<channel_format>double64</channel_format>
	<source_id>MY_ID_6</source_id>
	<version>1.1000000000000001</version>
	<created_at>489144.75996009802</created_at>
	<uid>7efd4284-c910-4ccf-8ab3-08a6d911a316</uid>
	<session_id>default</session_id>
	<hostname>MYPCNAME</hostname>
	<v4address />
	<v4data_port>16576</v4data_port>
	<v4service_port>16576</v4service_port>
	<v6address />
	<v6data_port>16576</v6data_port>
	<v6service_port>16576</v6service_port>
	<desc />
</info>
�r�  � 	   <?xml version="1.0"?>
<info>
	<name>MY_NAME_7</name>
	<type>PXI</type>
	<channel_count>8</channel_count>
	<nominal_srate>4400</nominal_srate>
	<channel_format>double64</channel_format>
	<source_id>MY_ID_7</source_id>
	<version>1.1000000000000001</version>
	<created_at>489145.66944426397</created_at>
	<uid>c8fed5cd-fdee-4a17-846e-c308fc6a70ca</uid>
	<session_id>default</session_id>
	<hostname>MYPCNAME</hostname>
	<v4address />
	<v4data_port>16579</v4data_port>
	<v4service_port>16579</v4service_port>
	<v6address />
	<v6data_port>16579</v6data_port>
	<v6service_port>16579</v6service_port>
	<desc />
</info>
�m�  � �   <?xml version="1.0"?>
<info>
	<name>MY_NAME_8</name>
	<type>PXI</type>
	<channel_count>4</channel_count>
	<nominal_srate>11000</nominal_srate>
	<channel_format>double64</channel_format>
	<source_id>MY_ID_8</source_id>
	<version>1.1000000000000001</version>
	<created_at>489145.92766697699</created_at>
	<uid>4d10c865-2da4-4141-ade4-6b911690271c</uid>
	<session_id>default</session_id>
	<hostname>MYPCNAME</hostname>
	<v4address />
	<v4data_port>16580</v4data_port>
	<v4service_port>16580</v4service_port>
	<v6address />
	<v6data_port>16580</v6data_port>
	<v6service_port>16580</v6service_port>
	<desc />
</info>
�p�  � �   <?xml version="1.0"?>
<info>
	<name>MY_NAME_9</name>
	<type>PXI</type>
	<channel_count>8</channel_count>
	<nominal_srate>4400</nominal_srate>
	<channel_format>double64</channel_format>
	<source_id>MY_ID_9</source_id>
	<version>1.1000000000000001</version>
	<created_at>489143.84459248802</created_at>
	<uid>7a7549af-de9a-4ca4-8840-10e44404c865</uid>
	<session_id>default</session_id>
	<hostname>MYPCNAME</hostname>
	<v4address />
	<v4data_port>16573</v4data_port>
	<v4service_port>16573</v4service_port>
	<v6address />
	<v6data_port>16573</v6data_port>
	<v6service_port>16573</v6service_port>
	<desc />
</info>

Is it a bug in the Matlab implementation? Have you every tried to receive more than one stream simultaneously while you wrote this?