Difference between revisions of "DataHub"
Wiki-admin (talk | contribs) (→Python) |
Wiki-admin (talk | contribs) |
||
(16 intermediate revisions by the same user not shown) | |||
Line 27: | Line 27: | ||
| downloads = | | downloads = | ||
| manuals = {{bulleted list | | manuals = {{bulleted list | ||
− | | [https://docs. | + | | [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 54: | Line 60: | ||
==Usage== | ==Usage== | ||
=== Python === | === Python === | ||
+ | A short example for sending lsl streaming data: | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
#!/usr/bin/env python | #!/usr/bin/env python | ||
Line 80: | Line 87: | ||
outlet.push_chunk(buffer_in) | outlet.push_chunk(buffer_in) | ||
send_data = False | send_data = False | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | A short example for receiving lsl data: | ||
+ | <syntaxhighlight lang="python" line> | ||
+ | #!/usr/bin/env python | ||
+ | |||
+ | from pylsl import StreamInlet, resolve_stream | ||
− | == | + | streams = resolve_stream('name', 'MyStream') |
− | + | #streams = resolve_streams() | |
− | = | + | inlet = StreamInlet(streams[0]) |
− | + | while True: | |
− | + | sample, timestamp = inlet.pull_sample() | |
+ | print(timestamp, sample) | ||
+ | </syntaxhighlight> |
Revision as of 15:12, 1 February 2022
Developer(s) | Christian Kothe; Chadwick Boulay. | ||||
---|---|---|---|---|---|
Development status | -in development- | ||||
Written in | C, C++, Python, Java, C#, MATLAB | ||||
Operating system | Windows, Linux, MacOS, Android, iOS | ||||
Type | Data collection | ||||
License | Open source | ||||
Website | LSL webpage | ||||
|
The DataHub Makes use of the lab streaming layer. The lab streaming layer (LSL) is a system for the unified collection of measurement time series in research experiments that handles both the networking, time-synchronization, (near-) real-time access as well as optionally the centralized collection, viewing and disk recording of the data.
Installation
Our support for LSL is mainly done in python. Download python here: 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:
c:>python -m pip install --upgrade pip
Then:
c:>pip install pylsl
more info: cross platform pylsl
Versions
The TSG uses the version 1.15.0. Open a command and type the following to find the version used:
c:>python
>>> import pylsl
>>> print(pylsl.__version__)
Usage
Python
A short example for sending lsl streaming data:
1#!/usr/bin/env python
2
3import threading
4from pylsl import StreamInfo, StreamOutlet
5
6def getData():
7 while running:
8 buffer_in = getSensorData()
9 send_data = True
10 time.sleep(0.001)
11
12info = StreamInfo(
13 name='MyStream',
14 type='COP',
15 channel_count=4,
16 nominal_srate = 200,
17 source_id='BalanceBoard_stream'
18 )
19outlet = StreamOutlet(info)
20
21threading.Thread(target=getData).start()
22while running == True:
23 if send_data:
24 outlet.push_chunk(buffer_in)
25 send_data = False
A short example for receiving lsl data:
1#!/usr/bin/env python
2
3from pylsl import StreamInlet, resolve_stream
4
5streams = resolve_stream('name', 'MyStream')
6#streams = resolve_streams()
7
8inlet = StreamInlet(streams[0])
9while True:
10 sample, timestamp = inlet.pull_sample()
11 print(timestamp, sample)