LSLApiConfig class
LSL API Configuration class for Dart FFI wrapper of liblsl Represents the configuration options available in liblsl's configuration file. For more details, refer to the official LSL documentation: https://labstreaminglayer.readthedocs.io/info/lslapicfg.html Specifically, if you would like to use LSL over wireless networks, the documentation recommends using the following configuration: https://labstreaminglayer.readthedocs.io/info/lslapicfg.html#tuning timeProbeMaxRTT = 0.100 timeProbeInterval = 0.010 timeProbeCount = 10 timeUpdateInterval = 0.25 multicastMinRTT = 0.100 multicastMaxRTT = 30
Constructors
-
LSLApiConfig({int multicastPort = 16571, int basePort = 16572, int portRange = 32, IPv6Mode ipv6 = IPv6Mode.allow, ResolveScope resolveScope = ResolveScope.site, String? listenAddress, String? ipv6MulticastGroup, List<
String> machineAddresses = const ['FF31:113D:6FDD:2C17:A643:FFE2:1BD1:3CD2'], List<String> linkAddresses = const ['255.255.255.255', '224.0.0.183', 'FF02:113D:6FDD:2C17:A643:FFE2:1BD1:3CD2'], List<String> siteAddresses = const ['239.255.172.215', 'FF05:113D:6FDD:2C17:A643:FFE2:1BD1:3CD2'], List<String> organizationAddresses = const [], List<String> globalAddresses = const [], List<String> addressesOverride = const [], int ttlOverride = -1, List<String> knownPeers = const [], String sessionId = 'default', double watchdogCheckInterval = 15.0, double watchdogTimeThreshold = 15.0, double multicastMinRTT = 0.5, double multicastMaxRTT = 3.0, double unicastMinRTT = 0.75, double unicastMaxRTT = 5.0, double continuousResolveInterval = 0.5, double timerResolution = 1.0, int maxCachedQueries = 100, double timeUpdateInterval = 2.0, int timeUpdateMinProbes = 6, int timeProbeCount = 8, double timeProbeInterval = 0.064, double timeProbeMaxRTT = 0.128, int outletBufferReserveMs = 5000, int outletBufferReserveSamples = 128, int sendSocketBufferSize = 0, int inletBufferReserveMs = 5000, int inletBufferReserveSamples = 128, int receiveSocketBufferSize = 0, double smoothingHalftime = 90.0, bool forceDefaultTimestamps = false, int logLevel = -2, String? logFile}) - Constructor with default values matching the default LSL configuration
- LSLApiConfig.fromString(String iniContent)
-
Parse a configuration string in INI format
factory
Properties
-
addressesOverride
↔ List<
String> -
The list of multicast addresses to use for discovery (override).
getter/setter pair
- basePort ↔ int
-
The starting port for the range of ports used for outlets.
The ports used are basePort to basePort + portRange - 1, where
TCP and UDP ports alternate (e.g. if starting port is even, all TCP ports
are even and all UDP ports are odd, and vice versa).
The default value is 16572.
getter/setter pair
- continuousResolveInterval ↔ double
-
The interval in seconds to resolve multicast addresses.
getter/setter pair
- forceDefaultTimestamps ↔ bool
-
Whether to force the use of default timestamps for all streams.
getter/setter pair
-
globalAddresses
↔ List<
String> -
The list of multicast addresses to use for discovery (global level).
getter/setter pair
- hashCode → int
-
The hash code for this object.
no setterinherited
- inletBufferReserveMs ↔ int
-
The amount of time in milliseconds to reserve for the inlet buffer.
getter/setter pair
- inletBufferReserveSamples ↔ int
-
The number of samples to reserve for the inlet buffer.
getter/setter pair
- ipv6 ↔ IPv6Mode
-
The IPv6 mode to use. Possible values are:
getter/setter pair
- ipv6MulticastGroup ↔ String?
-
The IPv6 multicast group to use for discovery.
getter/setter pair
-
knownPeers
↔ List<
String> -
The list of known peers for the lab. This is a fallback in case the
multicast discovery fails.
This is a list of IP addresses or hostnames.
getter/setter pair
-
linkAddresses
↔ List<
String> -
The list of multicast addresses to use for discovery (link level).
getter/setter pair
- listenAddress ↔ String?
-
The address to listen on for incoming multicast packets.
getter/setter pair
- logFile ↔ String?
-
The file to use for logging. If null, file logging is disabled.
getter/setter pair
- logLevel ↔ int
-
The log level to use. Possible values are:
getter/setter pair
-
machineAddresses
↔ List<
String> -
The list MAC addresses to use for discovery.
getter/setter pair
- maxCachedQueries ↔ int
-
maximum time to wait for a response from a peer.
getter/setter pair
- multicastMaxRTT ↔ double
-
The maximum round-trip time (RTT) in seconds for multicast packets.
getter/setter pair
- multicastMinRTT ↔ double
-
The minimum round-trip time (RTT) in seconds for multicast packets.
getter/setter pair
- multicastPort ↔ int
-
The multicast port used for discovery and data streaming
Default: 16571
getter/setter pair
-
organizationAddresses
↔ List<
String> -
The list of multicast addresses to use for discovery (organization level).
getter/setter pair
- outletBufferReserveMs ↔ int
-
The amount of time in milliseconds to reserve for the outlet buffer.
getter/setter pair
- outletBufferReserveSamples ↔ int
-
The number of samples to reserve for the outlet buffer.
getter/setter pair
- portRange ↔ int
-
The number of ports to use for outlets, the effective number of outlets
is portRange / 2.
The default value is 32.
While it may be necessary to create a large range, this can potentially
slow down the discovery process, due to each port having to be scanned.
getter/setter pair
- receiveSocketBufferSize ↔ int
-
The size of the socket buffer to use for receiving data.
getter/setter pair
- resolveScope ↔ ResolveScope
-
The scope of multicast addresses to use for discovery.
Possible values are:
getter/setter pair
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- sendSocketBufferSize ↔ int
-
The size of the socket buffer to use for sending data.
getter/setter pair
- sessionId ↔ String
-
The session ID for the lab. This is used to identify the lab in the
multicast discovery process.
getter/setter pair
-
siteAddresses
↔ List<
String> -
The list of multicast addresses to use for discovery (site level).
getter/setter pair
- smoothingHalftime ↔ double
-
The smoothing half-time in seconds for the time post-processor.
getter/setter pair
- timeProbeCount ↔ int
-
The number of probes to use for time updates.
getter/setter pair
- timeProbeInterval ↔ double
-
The interval in seconds to wait between probes.
getter/setter pair
- timeProbeMaxRTT ↔ double
-
The maximum round-trip time (RTT) in seconds for time probes.
getter/setter pair
- timerResolution ↔ double
-
The timer resolution in seconds. This is used to determine the
getter/setter pair
- timeUpdateInterval ↔ double
-
The interval in seconds to update the time.
getter/setter pair
- timeUpdateMinProbes ↔ int
-
The minimum number of probes to use for time updates.
getter/setter pair
- ttlOverride ↔ int
-
The TTL (Time to Live) value for multicast packets.
The default value is -1, which should be used, unless you have e.g. inter-
site multicast routing enabled.
getter/setter pair
- unicastMaxRTT ↔ double
-
The maximum round-trip time (RTT) in seconds for unicast packets.
getter/setter pair
- unicastMinRTT ↔ double
-
The minimum round-trip time (RTT) in seconds for unicast packets.
getter/setter pair
- watchdogCheckInterval ↔ double
-
The interval in seconds to check for dead peers.
getter/setter pair
- watchdogTimeThreshold ↔ double
-
The time threshold in seconds to consider a peer dead.
getter/setter pair
Methods
-
copyWith(
{int? multicastPort, int? basePort, int? portRange, IPv6Mode? ipv6, ResolveScope? resolveScope, String? listenAddress, String? ipv6MulticastGroup, List< String> ? machineAddresses, List<String> ? linkAddresses, List<String> ? siteAddresses, List<String> ? organizationAddresses, List<String> ? globalAddresses, List<String> ? addressesOverride, int? ttlOverride, List<String> ? knownPeers, String? sessionId, double? watchdogCheckInterval, double? watchdogTimeThreshold, double? multicastMinRTT, double? multicastMaxRTT, double? unicastMinRTT, double? unicastMaxRTT, double? continuousResolveInterval, double? timerResolution, int? maxCachedQueries, double? timeUpdateInterval, int? timeUpdateMinProbes, int? timeProbeCount, double? timeProbeInterval, double? timeProbeMaxRTT, int? outletBufferReserveMs, int? outletBufferReserveSamples, int? sendSocketBufferSize, int? inletBufferReserveMs, int? inletBufferReserveSamples, int? receiveSocketBufferSize, double? smoothingHalftime, bool? forceDefaultTimestamps, int? logLevel, String? logFile}) → LSLApiConfig - Creates a copy of this configuration with the given changes
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toIniString(
) → String - Convert the configuration to an INI format string
-
toString(
) → String -
A string representation of this object.
inherited
-
writeToFile(
String filePath) → Future< void> - Write the configuration to a file
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
fromFile(
String filePath) → Future< LSLApiConfig> - Create a configuration from a file