| Line 27: |
Line 27: |
| | | downloads = | | | downloads = |
| | | manuals = {{bulleted list | | | manuals = {{bulleted list |
| − | | [https://docs.unity3d.com/Manual/index.html Official Documentation] | + | | [https://docs.openbci.com/ Documentation] |
| | + | | [https://sccn.ucsd.edu/~mgrivich/LSL_Validation.html LSL Validation] |
| | + | | [https://labstreaminglayer.readthedocs.io/info/supported_devices.html Supported Devices and Tools] |
| | + | }} |
| | + | | header2 = Templates |
| | + | | data2 = {{bulleted list |
| | + | | [https://surfdrive.surf.nl/files/index.php/s/qggfMMKsnUIDO0k example scripts (zip)] |
| | }} | | }} |
| | }} | | }} |
| Line 39: |
Line 45: |
| | Our support for LSL is mainly done in python. Download python here: [https://www.python.org/downloads/release/python-376/ Please choose a 64 bit version.]. Run the installer and make sure to add Python to the file path (it's an option in the installer). | | Our support for LSL is mainly done in python. Download python here: [https://www.python.org/downloads/release/python-376/ Please choose a 64 bit version.]. Run the installer and make sure to add Python to the file path (it's an option in the installer). |
| | Open a command prompt, start with upgrading the pip installer by typing:<br/> | | Open a command prompt, start with upgrading the pip installer by typing:<br/> |
| − | <code style="background-color:#000; color:#fff; padding:1px 3px;">python -m pip install --upgrade pip</code><br/> | + | <code style="background-color:#000; color:#fff; padding:1px 3px;">c:>python -m pip install --upgrade pip</code><br/> |
| | Then:<br/> | | Then:<br/> |
| − | <code style="background-color:#000; color:#fff; padding:1px 3px;">pip install pylsl</code> | + | <code style="background-color:#000; color:#fff; padding:1px 3px;">c:>pip install pylsl</code> |
| | | | |
| | more info: [https://github.com/labstreaminglayer/liblsl-Python cross platform pylsl] | | more info: [https://github.com/labstreaminglayer/liblsl-Python cross platform pylsl] |
| | | | |
| | ===Versions=== | | ===Versions=== |
| − | Version 1.15.0 is the last used version. Open a command to find your version used:
| + | The TSG uses the version 1.15.0. Open a command and type the following to find the version used: |
| − | <code style="background-color:#000; color:#fff; padding:1px 3px;">python</code><br/> | + | |
| − | <code style="background-color:#000; color:#fff; padding:1px 3px;">import pylsl</code><br/> | + | <code style="background-color:#000; color:#fff; padding:1px 3px;">c:>python</code><br/> |
| − | <code style="background-color:#000; color:#fff; padding:1px 3px;">print(pylsl.__version__)</code><br/> | + | <code style="background-color:#000; color:#fff; padding:1px 3px;">>>> import pylsl</code><br/> |
| | + | <code style="background-color:#000; color:#fff; padding:1px 3px;">>>> print(pylsl.__version__)</code><br/> |
| | | | |
| | ==Usage== | | ==Usage== |
| − | ''(Under Construction)''<br/> | + | === Python === |
| − | We are working on templates and tips. Stay tuned!
| + | A short example for sending lsl streaming data: |
| − | *[[Unity/Timing]]
| + | <syntaxhighlight lang="python" line> |
| | + | #!/usr/bin/env python |
| | + | |
| | + | import threading |
| | + | from pylsl import StreamInfo, StreamOutlet |
| | + | |
| | + | def getData(): |
| | + | while running: |
| | + | buffer_in = getSensorData() |
| | + | send_data = True |
| | + | time.sleep(0.001) |
| | + | |
| | + | info = StreamInfo( |
| | + | name='MyStream', |
| | + | type='COP', |
| | + | channel_count=4, |
| | + | nominal_srate = 200, |
| | + | source_id='BalanceBoard_stream' |
| | + | ) |
| | + | outlet = StreamOutlet(info) |
| | + | |
| | + | threading.Thread(target=getData).start() |
| | + | while running == True: |
| | + | if send_data: |
| | + | outlet.push_chunk(buffer_in) |
| | + | send_data = False |
| | + | </syntaxhighlight> |
| | + | |
| | + | A short example for receiving lsl data: |
| | + | <syntaxhighlight lang="python" line> |
| | + | #!/usr/bin/env python |
| | | | |
| − | ===Builds===
| + | from pylsl import StreamInlet, resolve_stream |
| − | We advise not to run your experiment from the Unity Editor, this will cause unwanted overhead that harms the performance. You can create a PC Standalone build to run it on our [[Computers | lab computers]].
| |
| | | | |
| − | ==References== | + | streams = resolve_stream('name', 'MyStream') |
| − | <references />
| + | #streams = resolve_streams() |
| | | | |
| − | ==External Links== <!-- Optional --> | + | inlet = StreamInlet(streams[0]) |
| − | *{{Official website|https://unity3d.com}}
| + | while True: |
| − | *[https://docs.unity3d.com/Manual/index.html Official Documentation]
| + | sample, timestamp = inlet.pull_sample() |
| | + | print(timestamp, sample) |
| | + | </syntaxhighlight> |