#include #include /** * Example program that demonstrates how to resolve a specific stream on the lab network and how to connect to it in order to receive data. */ int main(int argc, char* argv[]) { unsigned k,t; /* channel index */ lsl_streaminfo info; /* the streaminfo returned by the resolve call */ lsl_inlet inlet; /* a stream inlet to get samples from */ int errcode; /* error code (lsl_lost_error or timeouts) */ float cursample[8]; /* array to hold our current sample */ double timestamp; /* time stamp of the current sample (in sender time) */ /* resolve the stream of interest (result array: info, array capacity: 1 element, type shall be EEG, resolve at least 1 stream, wait forever if necessary) */ printf("Now waiting for an EEG stream...\n"); lsl_resolve_byprop(&info,1, "type","EEG", 1, LSL_FOREVER); /* make an inlet to read data from the stream (buffer max. 300 seconds of data, no preference regarding chunking, automatic recovery enabled) */ inlet = lsl_create_inlet(info, 300, LSL_NO_PREFERENCE, 1); /* subscribe to the stream (automatically done by push, but a nice way of checking early on that we can connect successfully) */ lsl_open_stream(inlet,LSL_FOREVER,&errcode); if (errcode != 0) return errcode; printf("Displaying data...\n"); for(t=0;t<100000000;t++) { /* get the next sample form the inlet (read into cursample, 8 values, wait forever if necessary) and return the timestamp if we got something */ timestamp = lsl_pull_sample_f(inlet,cursample,8,LSL_FOREVER,&errcode); /* print the data */ for (k=0; k<8; ++k) printf("\t%.2f", cursample[k]); printf("\n"); } /* we never get here, but anyway */ lsl_destroy_inlet(inlet); return 0; }