Menu

Home

NBS

Building

This project requires the Presentation SDK, Boost 1.51, and the Lab Streaming Layer source code.

The project files should be placed in a folder structure as follows:
[basedir]/lslpresentation - this repository
[basedir]/external/boost/boost_1_51_0/ - boost files
[basedir]/external/lsl - the LSL source repository
[basedir]/PresentationSDK - the Presentation SDK files

The extension DLL depends on the LSL dll (liblsl32.dll), which should be placed in the same folder as the extension. It may be necessary to rebuild that DLL from source rather than using the one distributed in the bin directory of the LSL repository. The extension may be stored in any convenient location, though it may not be moved after registration with Presentation.

Usage

Once the extension is registered with the Presentation extension manager, it can be selected as a data port in Presentation's port settings. Information about the stream outlet name, ID, and connection status can be found in the data port properties window reachable through the "Properties" button that appears when the data port is selected within Presentation's port settings. The Connection Settings property allows users to choose whether the LSL stream outlet should be automatically opened whenever when Presentation starts, or whether it must be manually opened after Presentation is launched.

All events that are logged in the Presentation logfile will also be sent out as LSL string markers. The LSL local clock time for the marker event is the Presentation time for the event. The extension has 3 modes that determine the content of this string.

1) All event information (XML format)

Each event string contains a section of XML (not a complete document) with the following format:
<pevent><etype>[Event Type]</etype><ecode>[Event Code]</ecode><unc>[Uncertainty]</unc>[Other]</pevent>

  • etype - The Presentation event type description
  • ecode - The Presentation "event code" for the event. Special XML characters in the event code will be escaped
  • unc - The Presentation uncertainty for the event in microseconds

2) Event codes only

Each event string will be the Presentation "event code" for the event.

3) Event codes only (Only allow non-negative integer output)

If the Presentaton "event code" for the event is the string representation of a non-negative integer, that string is sent. If it is not, a default string (which must be a non-negative integer) specified in the data port settings is sent instead. Thus, this mode guarantees that all markers are string representations of non-negative integers.

The PCL data_port_ext::process_message method can be used to send an arbitrary string to LSL. However, the data_port_ext::process_message method argument must begin with the substring "send:". The string content after the initial "send:" will be send to LSL. However, if the "integer only" mode of the extension is being used, that restriction is applied. The LSL event time will be the time of the call.

The wiki uses Markdown syntax.

Project Members:


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.