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;">c:>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;">>>> 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> |