Syntalos
Syntalos
Namespaces
| Name |
|---|
| Syntalos::datactl |
| Syntalos::edl |
| Syntalos::ipc |
Classes
| Name | |
|---|---|
| class | Syntalos::AbstractModule Abstract base class for all modules. |
| class | Syntalos::AbstractStreamPort |
| struct | Syntalos::ApiVersionRequest |
| struct | Syntalos::ApiVersionResponse |
| struct | Syntalos::BaseDataType Base interface for all data types. |
| class | Syntalos::BinaryStreamReader Reader for Syntalos data entity deserialization. |
| class | Syntalos::BinaryStreamWriter Writer for Syntalos data entity serialization. |
| struct | Syntalos::ConnectInputRequest |
| struct | Syntalos::ControlCommand A control command to a module. |
| struct | Syntalos::DeletePortRequest |
| struct | Syntalos::DoneResponse |
| class | Syntalos::EDLAuthor |
| class | Syntalos::EDLCollection A collection of groups and datasets. |
| class | Syntalos::EDLDataFile |
| class | Syntalos::EDLDataPart |
| class | Syntalos::EDLDataset An EDL dataset. |
| class | Syntalos::EDLGroup A grouping of groups or datasets. |
| class | Syntalos::EDLUnit Base class for all EDL entities. |
| struct | Syntalos::ErrorEvent |
| struct | Syntalos::ExportedStreamInfo |
| struct | Syntalos::FirmataControl Control command for a Firmata device. |
| struct | Syntalos::FirmataData Data received from a Firmata device. |
| struct | Syntalos::FloatSignalBlock A block of floating-point signal data from an analog data source. |
| struct | Syntalos::Frame A single frame of a video stream. |
| class | Syntalos::GlobalConfig |
| struct | Syntalos::InputPortChangeRequest Information about an input port change. |
| class | Syntalos::InputPortInfo Reference for an input port. |
| struct | Syntalos::IntSignalBlock A block of integer signal data from a data source. |
| struct | Syntalos::IpcServiceTopology IPC service topology limits. |
| struct | Syntalos::LoadScriptRequest |
| struct | Syntalos::LoadSettingsRequest |
| struct | Syntalos::MetaArray Array of values used for stream metadata. |
| struct | Syntalos::MetaSize Represents the dimensions of a two-dimensional object with width and height. |
| struct | Syntalos::MetaStringMap Mapping of values used for stream metadata. |
| struct | Syntalos::MetaValue Data type that can be used as stream metadata. |
| class | Syntalos::MLinkModule Master link for out-of-process modules. |
| class | Syntalos::ModuleInfo Static information about a module. |
| struct | Syntalos::ModuleInitOptions |
| class | Syntalos::OptionalWaitCondition The OptionalWaitCondition class. |
| struct | Syntalos::OutputPortChangeRequest Information about an output port change. |
| class | Syntalos::OutputPortInfo Reference for an output port. |
| class | Syntalos::OutputPortLink Reference for an output port to emit new data. |
| struct | Syntalos::PrepareRunRequest |
| struct | Syntalos::SaveSettingsRequest |
| struct | Syntalos::SaveSettingsResponse |
| struct | Syntalos::SetCPUAffinityRequest |
| struct | Syntalos::SetMaxRealtimePriority |
| struct | Syntalos::SetNicenessRequest |
| struct | Syntalos::SetPortsPresetRequest |
| struct | Syntalos::ShowDisplayRequest |
| struct | Syntalos::ShowSettingsRequest |
| struct | Syntalos::ShutdownRequest |
| class | Syntalos::SimpleTerminal A simple integrated terminal emulator. |
| struct | Syntalos::StartRequest |
| struct | Syntalos::StateChangeEvent |
| struct | Syntalos::StatusMessageEvent |
| struct | Syntalos::StopRequest |
| class | Syntalos::StreamExporter Exporter for streaming data from modules. |
| class | Syntalos::StreamInputPort |
| class | Syntalos::StreamOutputPort |
| class | Syntalos::SubscriptionNotifier Notifies about new data on a stream subscription in a Qt event loop. |
| struct | Syntalos::supports_buffer_reuse |
| struct | Syntalos::supports_buffer_reuse< Frame > |
| struct | Syntalos::symaster_clock Syntalos Master Clock. |
| class | Syntalos::SyncTimer |
| class | Syntalos::SyntalosLink Connection to a Syntalos instance. |
| class | Syntalos::SyntalosLinkModule Convenience interface to write an OOP Syntalos module. |
| class | Syntalos::SysInfo |
| struct | Syntalos::TableRow A new row for a table. |
| struct | Syntalos::TestSubject The TestSubject struct Data about a test subject. |
| struct | Syntalos::TestSubjectInfo Information about the current test subject. |
| class | Syntalos::TimeSyncFileReader Read a time-sync (.tsync) file. |
| class | Syntalos::TimeSyncFileWriter Write a timestamp synchronization file. |
| class | Syntalos::TimeSyncStrategies |
| struct | Syntalos::UpdateInputPortMetadataRequest request to update the metadata of an input port |
| struct | Syntalos::Uuid A 16-byte UUID (Universally Unique Identifier). |
| class | Syntalos::VarStreamInputPort |
Types
| Name | |
|---|---|
| enum class uint8_t | ModuleState { UNKNOWN, INITIALIZING, IDLE, PREPARING, DORMANT, READY, RUNNING, ERROR} The ModuleState enum. |
| enum class | ControlCommandKind { UNKNOWN, START, PAUSE, STOP, STEP, CUSTOM} The ControlCommandKind enum. |
| enum class | FirmataCommandKind { UNKNOWN, NEW_DIG_PIN, NEW_ANA_PIN, IO_MODE, WRITE_ANALOG, WRITE_DIGITAL, WRITE_DIGITAL_PULSE, SYSEX} The FirmataCommandKind enum. |
| enum class | SignalDataType { Amplifier, AuxInput, SupplyVoltage, BoardAdc, BoardDigIn, BoardDigOut} Type of a signal from a signal source. |
| enum class | EDLUnitKind { UNKNOWN, COLLECTION, GROUP, DATASET} |
| enum class | EDLCreateFlag { OPEN_ONLY, CREATE_OR_OPEN, MUST_CREATE} |
| enum class | TimeSyncStrategy { NONE = 0, SHIFT_TIMESTAMPS_FWD = 1 « 0, SHIFT_TIMESTAMPS_BWD = 1 « 1, ADJUST_CLOCK = 1 « 2, WRITE_TSYNCFILE = |
| 1 « 3} The time synchronization strategy. | |
| enum class | TSyncFileMode { CONTINUOUS = 0, SYNCPOINTS = 1} Timepoint storage of a TSync file. |
| enum class | TSyncFileTimeUnit { INDEX = 0, NANOSECONDS = 1, MICROSECONDS = 2, MILLISECONDS = 3, SECONDS = 4} Unit types for time representation in a TSync file. |
| enum class | TSyncFileDataType { INVALID = 0, INT16 = 2, INT32 = 3, INT64 = 4, UINT16 = 6, UINT32 = 7, UINT64 = 8} Data types use for storing time values in the data file. |
| enum class | SysInfoCheckResult { UNKNOWN, OK, SUSPICIOUS, ISSUE} |
| enum class | ColorMode { SYSTEM, BRIGHT, DARK} |
| enum class | ModuleWorkerMode { PERSISTENT, TRANSIENT} Worker mode for out-of-process modules. |
| enum class uint8_t | PortAction { UNKNOWN, ADD, REMOVE, CHANGE} Action performed to modify a module port. |
| enum class | ConnectionHeatLevel { NONE, LOW, MEDIUM, HIGH} Connection heat level. |
| enum class | ModuleFeature { NONE = 0, SHOW_SETTINGS = 1 « 0, SHOW_DISPLAY = 1 « 1, REALTIME = 1 « 2, CALL_UI_EVENTS = 1 « 3, REQUEST_CPU_AFFINITY = |
| 1 « 4, PROHIBIT_CPU_AFFINITY = 1 | |
| « 5} The ModuleFeature flags List of basic features this module may or may not support, or may request from the engine to be available. | |
| enum class | ModuleDriverKind { NONE, THREAD_DEDICATED, EVENTS_DEDICATED, EVENTS_SHARED} The ModuleDriverKind enum. |
| enum class | UsbHotplugEventKind { NONE, DEVICE_ARRIVED, DEVICE_LEFT, DEVICES_CHANGE} The UsbHotplugEventKind enum. |
| enum class uint32_t | ModuleCategory { NONE = 0, SYNTALOS_DEV = 1 « 0, EXAMPLES = 1 « 1, DEVICES = 1 « 2, GENERATORS = 1 « 3, SCRIPTING = 1 « 4, DISPLAY = 1 « 5, WRITERS = 1 « 6, PROCESSING = 1 « 7} Categorization for modules. |
| enum class | ModuleModifier { NONE = 0, ENABLED = 1 « 0, STOP_ON_FAILURE = 1 « 1} The ModuleModifier flags Flags set by Syntalos or the user to modify the behavior of the module in the wider context of the running experiment. |
| enum class | PortDirection { NONE, INPUT, OUTPUT} Enum specifying directionality of a port (in or out) |
| enum class uint8_t | MetaTypeTag { Null = 0, BoolFalse = 1, BoolTrue = 2, Int64 = 3, Double = 4, String = 5, Size = 6, Array = 7, Object = 8} Type tag used in MetaValue binary serialization. |
| enum class | PyVirtualEnvStatus { VALID, MISSING, REQUIREMENTS_CHANGED, INTERPRETER_MISSING} |
| typedef std::chrono::zoned_time< std::chrono::system_clock::duration > | EdlDateTime |
| using std::chrono::time_point< symaster_clock > | symaster_timepoint A timepoint on the master clock. |
| using std::chrono::seconds | seconds_t Shorthand for seconds. |
| using std::chrono::milliseconds | milliseconds_t Shorthand for milliseconds. |
| using std::chrono::duration< int64_t, std::micro > | microseconds_t Shorthand for microseconds. |
| using std::chrono::duration< int64_t, std::nano > | nanoseconds_t Shorthand for nanoseconds. |
| typedef Eigen::Matrix< int32_t, Eigen::Dynamic, 1 > | VectorXsi |
| typedef Eigen::Matrix< uint64_t, Eigen::Dynamic, 1 > | VectorXul |
| typedef Eigen::Matrix< int64_t, Eigen::Dynamic, 1 > | VectorXsl |
| typedef Eigen::Matrix< double, Eigen::Dynamic, 1 > | VectorXd |
| typedef Eigen::Matrix< int32_t, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > | MatrixXsi |
| typedef Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > | MatrixXd |
| using quill::Logger | QuillLogger |
| using void(AbstractModule::*)(int &) | intervalEventFunc_t Event function type for timed callbacks. |
| using std::function< void()> | recvDataEventFunc_t Callable type used for subscription new-data callbacks. |
| using std::pmr::vector< std::byte > | ByteVector ByteVector is a vector of bytes using the polymorphic allocator. |
| using std::function< void(const std::string &script, const fs::path &wdir)> | LoadScriptFn |
| using std::function< bool(ByteVector &settings, const fs::path &baseDir)> | SaveSettingsFn |
| using std::function< bool(const ByteVector &settings, const fs::path &baseDir)> | LoadSettingsFn |
| using std::function< bool()> | PrepareRunFn |
| using std::function< void()> | StartFn |
| using std::function< void()> | StopFn |
| using std::function< void()> | ShutdownFn |
| using std::function< void(const void *data, size_t size)> | NewDataRawFn |
| using std::function< void(void)> | ShowSettingsFn |
| using std::function< void(void)> | ShowDisplayFn |
Functions
| Name | |
|---|---|
| template <typename T > constexpr int | syDataTypeId() Helper function to get the type ID of a data type. |
| template <typename T > T | deserializeFromMemory(const void * memory, size_t size) Convenience function to deserialize a data type from memory. |
| void | registerStreamMetaTypes() Helper function to register all meta types for stream data. |
| std::vector< std::pair< std::string, int > > | streamTypeIdIndex() Get a mapping of type names to their IDs. |
| template <typename T > std::string | numToString(T x) Convert a numeric value to a string using Syntalos’ default notation. |
| EdlDateTime | edlCurrentDateTime() |
| std::ostream & | operator«(std::ostream & os, const MetaSize & sz) |
| std::ostream & | operator«(std::ostream & os, const MetaArray & arr) |
| std::ostream & | operator«(std::ostream & os, const MetaValue & v) |
| std::ostream & | operator«(std::ostream & os, const MetaStringMap & map) |
| void | writeJson(std::ostream & os, const MetaValue & val) Write a MetaValue as JSON to the given stream (RFC-8259, compact). |
| void | writeJsonObject(std::ostream & os, const std::map< std::string, MetaValue > & obj) Write a MetaValue map as a JSON object to the given stream. |
| std::string | toJsonString(const MetaValue & v) |
| std::string | toJsonObjectString(const MetaStringMap & m) |
| std::expected< MetaStringMap, std::string > | stringMapFromJson(const std::string & json) |
| void | writeJsonString(std::ostream & os, const std::string & s) |
| auto | usecToMsec(const microseconds_t & usec) Convert microseconds to milliseconds. |
| auto | msecToUsec(const milliseconds_t & msec) Convert milliseconds microseconds. |
| auto | nsecToUsec(const nanoseconds_t & msec) Convert nanoseconds microseconds. |
| auto | timeDiffSec(const symaster_timepoint & timePoint1, const symaster_timepoint & timePoint2) |
| auto | timeDiffMsec(const symaster_timepoint & timePoint1, const symaster_timepoint & timePoint2) |
| auto | timeDiffUsec(const symaster_timepoint & timePoint1, const symaster_timepoint & timePoint2) |
| auto | timeDiffToNowMsec(const std::chrono::time_point< symaster_clock > & timePoint) |
| auto | timeDiffToNowUsec(const std::chrono::time_point< symaster_clock > & timePoint) |
| symaster_timepoint | currentTimePoint() |
| template <typename T > double | vectorMedian(const Eigen::Matrix< T, Eigen::Dynamic, 1 > & vec) |
| template <typename T > double | vectorMedianInplace(Eigen::Matrix< T, Eigen::Dynamic, 1 > & vec) |
| template <typename T > double | vectorVariance(const Eigen::Matrix< T, Eigen::Dynamic, 1 > & vec, const double & mean, bool unbiased =true) |
| template <typename T > double | vectorVariance(const Eigen::Matrix< T, Eigen::Dynamic, 1 > & vec, bool unbiased =true) |
| template <typename EigenType > void | serializeEigen(BinaryStreamWriter & stream, const EigenType & matrix) |
| template <typename EigenType > EigenType | deserializeEigen(BinaryStreamReader & stream) |
| constexpr TimeSyncStrategies | **[operator |
| const std::string | timeSyncStrategyToHString(const TimeSyncStrategy & strategy) |
| const std::string | timeSyncStrategiesToHString(const TimeSyncStrategies & strategies) |
| std::string | tsyncFileTimeUnitToString(const TSyncFileTimeUnit & tsftunit) |
| std::string | tsyncFileDataTypeToString(const TSyncFileDataType & dtype) |
| std::string | tsyncFileModeToString(const TSyncFileMode & mode) |
| Uuid | newUuid7() Generate a Version 7 UUID (UUIDv7) based on a timestamp and random data. |
| std::optional< QImage > | cvMatToQImage(const cv::Mat & mat) Converts an OpenCV Mat to a QImage. |
| std::optional< QPixmap > | cvMatToQPixmap(const cv::Mat & mat) |
| cv::Rect | qRectToCvRect(const QRect & r) |
| QString | shellQuote(const QString & str) Shell-escape a string. |
| QString | findHostExecutable(const QString & exe) Find executable on the host system (if running in a sandbox) |
| int | runHostExecutable(const QString & exe, const QStringList & args, bool waitForFinished) Run command on the host. |
| int | runInTerminal(const QString & cmd, const QStringList & args, const QString & wdir, const QString & title) |
| bool | launchProgramNC3Fallback(const QString & exePath, int * pidfd_out) |
| bool | launchProgramPidFd(const QString & exePath, int * pidfd_out) Launch a program in a new process, and return the PID of the new process as pidfd. |
| bool | isProcessRunning(int pidfd) Check if a process is still running using a pidfd. |
| quill::Logger * | getLogger(const std::string & name) |
| quill::Logger * | getLogger(const QString & name) |
| quill::Logger * | getLogger(const char * name) |
| quill::Logger * | logModTmp(const char * name) |
| quill::Logger * | getDefaultLogger() |
| void | removeLogger(quill::Logger * logger) |
| void | initializeSyLogSystem(quill::LogLevel consoleLogLevel =quill::LogLevel::Info) |
| void | shutdownSyLogSystem() |
| const QString & | qstr(const QString & s) |
| QString | qstr(QStringView s) |
| QString | qstr(const char * s) |
| QString | qstr(std::string_view s) |
| QString | qstr(const std::string & s) |
| QString | colorModeToString(ColorMode mode) |
| ColorMode | colorModeFromString(const QString & str) |
| void | findSyntalosLibraryPaths(QString & pkgConfigPath, QString & ldLibraryPath, QString & includePath) |
| QStringList | findSyntalosMlinkPyModulePaths() |
| void | datactlLogHandler(const datactl::LogMessage & m) |
| constexpr IpcServiceTopology | makeIpcServiceTopology(uint senderCount, uint receiverCount) |
| QString | connectionHeatToHumanString(ConnectionHeatLevel heat) |
| QString | toString(ModuleCategory category) |
| ModuleCategory | moduleCategoryFromString(const QString & categoryStr) |
| ModuleCategories | moduleCategoriesFromVariant(const QVariant & value) |
| uint | qHash(ModuleModifier key, uint seed) |
| VariantDataStream * | newStreamForType(int typeId) Create a new DataStream for the type identified by the given ID. |
| VarStreamInputPort * | newInputPortForType(int typeId, AbstractModule * mod, const QString & id, const QString & title) Create a new Input Port for the type identified by the given ID. |
| QString | pythonVEnvDirForName(const QString & venvName) |
| bool | pythonVirtualEnvExists(const QString & venvName) |
| QString | requirementsHashMetadataPath(const QString & venvDir) |
| bool | writeRequirementsHashMetadata(const QString & venvDir, const QByteArray & requirementsHash) |
| bool | readRequirementsHashMetadata(const QString & venvDir, QString & requirementsHashOut) |
| QString | interpreterPathFromCfg(const QString & venvDir) |
| PyVirtualEnvStatus | pythonVirtualEnvStatus(const QString & venvName, const QString & requirementsFile) |
| void | injectSyntalosMlinkIntoVenv(const QString & venvDir) |
| auto | createPythonVirtualEnv(const QString & venvName, const QString & requirementsFile, bool recreate) |
| template <typename T > T | streamDataFromRawMemory(const void * data, size_t size) Convert raw received bytes into their data type. |
| std::unique_ptr< SyntalosLink > | initSyntalosModuleLink(const ModuleInitOptions & optn ={}) |
| template <typename Sub > auto | safeReceive(Sub & sub) |
| std::string | getenvSafe(const char * name) |
| SY_DEFINE_LOG_CATEGORY(logIpc , “ipc” ) | |
| void | ipcLogMessageDispatch(datactl::LogSeverity severity, const std::string & msg) |
Attributes
| Name | |
|---|---|
| constexpr int64_t | US_PER_MS |
| constexpr int64_t | US_PER_S |
| constexpr int64_t | US_PER_MIN |
| constexpr int64_t | US_PER_H |
| constexpr int64_t | NS_PER_US |
| constexpr int64_t | MS_PER_S |
| constexpr int64_t | MS_PER_MIN |
| constexpr auto | SECONDARY_CLOCK_TOLERANCE The amount of time a secondary clock is allowed to deviate from the master. |
| constexpr auto | DEFAULT_CLOCKSYNC_CHECK_INTERVAL Interval at which we check for external clock synchronization. |
| std::shared_ptr< quill::Sink > | g_consoleSink |
| quill::LogLevel | g_defaultLogLevel |
| constexpr uint64_t | SY_IOX_QUEUE_CAPACITY |
| constexpr uint64_t | SY_IOX_HISTORY_SIZE |
| constexpr uint64_t | SY_IOX_INITIAL_SLICE_LEN |
| constexpr size_t | SY_IOX_ID_MAX_LEN |
| constexpr uint64_t | SY_IOX_MAX_RESPONSE_BUF_SIZE |
| const std::string | IN_PORT_CHANGE_CHANNEL_ID |
| const std::string | OUT_PORT_CHANGE_CHANNEL_ID |
| const std::string | IN_PORT_UPDATE_METADATA_ID |
| const std::string | WORKER_CTL_EVENT_ID |
| const std::string | MASTER_CTL_EVENT_ID |
| const std::string | ERROR_CHANNEL_ID |
| const std::string | STATE_CHANNEL_ID |
| const std::string | STATUS_MESSAGE_CHANNEL_ID |
| const std::string | API_VERSION_CALL_ID |
| const std::string | SET_NICENESS_CALL_ID |
| const std::string | SET_MAX_RT_PRIORITY_CALL_ID |
| const std::string | SET_CPU_AFFINITY_CALL_ID |
| const std::string | DELETE_PORT_CALL_ID |
| const std::string | CONNECT_INPUT_CALL_ID |
| const std::string | LOAD_SCRIPT_CALL_ID |
| const std::string | SET_PORTS_PRESET_CALL_ID |
| const std::string | SAVE_SETTINGS_CALL_ID |
| const std::string | LOAD_SETTINGS_CALL_ID |
| const std::string | PREPARE_RUN_CALL_ID |
| const std::string | START_CALL_ID |
| const std::string | STOP_CALL_ID |
| const std::string | SHUTDOWN_CALL_ID |
| const std::string | SHOW_SETTINGS_CALL_ID |
| const std::string | SHOW_DISPLAY_CALL_ID |
Types Documentation
enum ModuleState
| Enumerator | Value | Description |
|---|---|---|
| UNKNOWN | ||
| INITIALIZING | Module is in an unknown state. | |
| IDLE | Module is initializing after being added. | |
| PREPARING | Module is inactive and not started. | |
| DORMANT | Module is preparing a run. | |
| READY | The module is inactive for this run, as it has no work to do. | |
| RUNNING | Everything is prepared, we are ready to start. | |
| ERROR | Module is running. Module failed to run / is in an error state |
The ModuleState enum.
Describes the state a module can be in. The state is usually displayed to the user via a module indicator widget.
enum ControlCommandKind
| Enumerator | Value | Description |
|---|---|---|
| UNKNOWN | ||
| START | ||
| PAUSE | Start an operation. | |
| STOP | Pause an operation, can be resumed with START. | |
| STEP | Stop an operation. | |
| CUSTOM | Advance operation by one step. |
The ControlCommandKind enum.
Basic operations to control a module from another module.
enum FirmataCommandKind
| Enumerator | Value | Description |
|---|---|---|
| UNKNOWN | ||
| NEW_DIG_PIN | ||
| NEW_ANA_PIN | ||
| IO_MODE | ||
| WRITE_ANALOG | ||
| WRITE_DIGITAL | ||
| WRITE_DIGITAL_PULSE | ||
| SYSEX | not implemented |
The FirmataCommandKind enum.
Type of change to be be made on a Firmata interface.
enum SignalDataType
| Enumerator | Value | Description |
|---|---|---|
| Amplifier | ||
| AuxInput | ||
| SupplyVoltage | ||
| BoardAdc | ||
| BoardDigIn | ||
| BoardDigOut |
Type of a signal from a signal source.
This is usually set in the metadata of a data stream.
enum EDLUnitKind
| Enumerator | Value | Description |
|---|---|---|
| UNKNOWN | ||
| COLLECTION | ||
| GROUP | ||
| DATASET |
Type of an EDL unit.
enum EDLCreateFlag
| Enumerator | Value | Description |
|---|---|---|
| OPEN_ONLY | ||
| CREATE_OR_OPEN | Unit will only be opened, never created. | |
| MUST_CREATE | Unit will be opened if it exists, and created otherwise. Unit must be created, it is an error if it already exists |
Flag to influence how EDL units are loaded.
enum TimeSyncStrategy
| Enumerator | Value | Description |
|---|---|---|
| NONE | 0 | |
| SHIFT_TIMESTAMPS_FWD | 1 « 0 | |
| SHIFT_TIMESTAMPS_BWD | 1 « 1 | Move timestamps forward to match the master clock. |
| ADJUST_CLOCK | 1 « 2 | Move timestamps backward to match the master clock. |
| WRITE_TSYNCFILE | = | |
| 1 « 3 | Do not change timestamps by adjust the secondary clocks to match the master clock. |
The time synchronization strategy.
enum TSyncFileMode
| Enumerator | Value | Description |
|---|---|---|
| CONTINUOUS | 0 | |
| SYNCPOINTS | 1 | Continuous time-point mapping with no gaps. |
Timepoint storage of a TSync file.
enum TSyncFileTimeUnit
| Enumerator | Value | Description |
|---|---|---|
| INDEX | 0 | |
| NANOSECONDS | 1 | monotonically increasing counter without dimension |
| MICROSECONDS | 2 | |
| MILLISECONDS | 3 | |
| SECONDS | 4 |
Unit types for time representation in a TSync file.
enum TSyncFileDataType
| Enumerator | Value | Description |
|---|---|---|
| INVALID | 0 | |
| INT16 | 2 | |
| INT32 | 3 | |
| INT64 | 4 | |
| UINT16 | 6 | |
| UINT32 | 7 | |
| UINT64 | 8 |
Data types use for storing time values in the data file.
enum SysInfoCheckResult
| Enumerator | Value | Description |
|---|---|---|
| UNKNOWN | ||
| OK | ||
| SUSPICIOUS | ||
| ISSUE |
enum ColorMode
| Enumerator | Value | Description |
|---|---|---|
| SYSTEM | ||
| BRIGHT | ||
| DARK |
enum ModuleWorkerMode
| Enumerator | Value | Description |
|---|---|---|
| PERSISTENT | ||
| TRANSIENT | Worker is started once, and runs while the module is present on the board. Worker run only for the duration of the experiment, and terminated afterwards |
Worker mode for out-of-process modules.
enum PortAction
| Enumerator | Value | Description |
|---|---|---|
| UNKNOWN | ||
| ADD | Undefined action. | |
| REMOVE | Add a new port. | |
| CHANGE | Remove an existing port. Change an existing port |
Action performed to modify a module port.
enum ConnectionHeatLevel
| Enumerator | Value | Description |
|---|---|---|
| NONE | ||
| LOW | ||
| MEDIUM | ||
| HIGH |
Connection heat level.
Warning level dependent on how full the buffer that is represented by a connection is. A high heat means lots of pending stuff and potentially a slow receiving module or not enough system resources. This state is managed internally by Syntalos.
enum ModuleFeature
| Enumerator | Value | Description |
|---|---|---|
| NONE | 0 | |
| SHOW_SETTINGS | 1 « 0 | |
| SHOW_DISPLAY | 1 « 1 | Module can display a settings window. |
| REALTIME | 1 « 2 | Module has one or more display window(s) to show. |
| CALL_UI_EVENTS | 1 « 3 | Enable realtime scheduling for the module’s thread. |
| REQUEST_CPU_AFFINITY | = | |
| 1 « 4 | Call direct UI events processing method. | |
| PROHIBIT_CPU_AFFINITY | 1 | |
| « 5 | Pin the module’s thread to a separate CPU core, if possible (even if the user disabled this) |
The ModuleFeature flags List of basic features this module may or may not support, or may request from the engine to be available.
enum ModuleDriverKind
| Enumerator | Value | Description |
|---|---|---|
| NONE | ||
| THREAD_DEDICATED | Module will be run in the main (GUI) thread. | |
| EVENTS_DEDICATED | Module wants to run in a dedicated thread. | |
| EVENTS_SHARED | Module shares a thread(pool) with other modules of its kind, via an event loop. Module shares a thread(pool) with arbitrary other modules, actions are triggered by events |
The ModuleDriverKind enum.
enum UsbHotplugEventKind
| Enumerator | Value | Description |
|---|---|---|
| NONE | ||
| DEVICE_ARRIVED | No USB hotplug event. | |
| DEVICE_LEFT | A new device appeared. | |
| DEVICES_CHANGE | A device has left. Devices have appeared and left |
The UsbHotplugEventKind enum.
enum ModuleCategory
| Enumerator | Value | Description |
|---|---|---|
| NONE | 0 | |
| SYNTALOS_DEV | 1 « 0 | Not categorized. |
| EXAMPLES | 1 « 1 | A development/test tool for Syntalos itself. |
| DEVICES | 1 « 2 | An example / template module. |
| GENERATORS | 1 « 3 | Modules which communicate with hardware devices. |
| SCRIPTING | 1 « 4 | (Test)data generators |
| DISPLAY | 1 « 5 | Scripting & customization. |
| WRITERS | 1 « 6 | Display modules. |
| PROCESSING | 1 « 7 | Modules which write data to disk. |
Categorization for modules.
enum ModuleModifier
| Enumerator | Value | Description |
|---|---|---|
| NONE | 0 | |
| ENABLED | 1 « 0 | |
| STOP_ON_FAILURE | 1 « 1 | The module is enabled. |
The ModuleModifier flags Flags set by Syntalos or the user to modify the behavior of the module in the wider context of the running experiment.
enum PortDirection
| Enumerator | Value | Description |
|---|---|---|
| NONE | ||
| INPUT | ||
| OUTPUT |
Enum specifying directionality of a port (in or out)
enum MetaTypeTag
| Enumerator | Value | Description |
|---|---|---|
| Null | 0 | |
| BoolFalse | 1 | |
| BoolTrue | 2 | |
| Int64 | 3 | |
| Double | 4 | |
| String | 5 | |
| Size | 6 | |
| Array | 7 | |
| Object | 8 |
Type tag used in MetaValue binary serialization.
enum PyVirtualEnvStatus
| Enumerator | Value | Description |
|---|---|---|
| VALID | ||
| MISSING | ||
| REQUIREMENTS_CHANGED | ||
| INTERPRETER_MISSING |
typedef EdlDateTime
typedef std::chrono::zoned_time< std::chrono::system_clock::duration > Syntalos::EdlDateTime;using symaster_timepoint
using Syntalos::symaster_timepoint = typedef std::chrono::time_point<symaster_clock>;A timepoint on the master clock.
using seconds_t
using Syntalos::seconds_t = typedef std::chrono::seconds;Shorthand for seconds.
using milliseconds_t
using Syntalos::milliseconds_t = typedef std::chrono::milliseconds;Shorthand for milliseconds.
using microseconds_t
using Syntalos::microseconds_t = typedef std::chrono::duration<int64_t, std::micro>;Shorthand for microseconds.
using nanoseconds_t
using Syntalos::nanoseconds_t = typedef std::chrono::duration<int64_t, std::nano>;Shorthand for nanoseconds.
typedef VectorXsi
typedef Eigen::Matrix<int32_t, Eigen::Dynamic, 1> Syntalos::VectorXsi;typedef VectorXul
typedef Eigen::Matrix<uint64_t, Eigen::Dynamic, 1> Syntalos::VectorXul;typedef VectorXsl
typedef Eigen::Matrix<int64_t, Eigen::Dynamic, 1> Syntalos::VectorXsl;typedef VectorXd
typedef Eigen::Matrix<double, Eigen::Dynamic, 1> Syntalos::VectorXd;typedef MatrixXsi
typedef Eigen::Matrix<int32_t, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> Syntalos::MatrixXsi;typedef MatrixXd
typedef Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> Syntalos::MatrixXd;using QuillLogger
using Syntalos::QuillLogger = typedef quill::Logger;using intervalEventFunc_t
using Syntalos::intervalEventFunc_t = typedef void (AbstractModule::*)(int &);Event function type for timed callbacks.
using recvDataEventFunc_t
using Syntalos::recvDataEventFunc_t = typedef std::function<void()>;Callable type used for subscription new-data callbacks.
using ByteVector
using Syntalos::ByteVector = typedef std::pmr::vector<std::byte>;ByteVector is a vector of bytes using the polymorphic allocator.
In Syntalos’ heavily threaded environment, where in the worst case a ton of these vectors may be created and destroyed in quick succession, the default glibc allocator is less than optimal. Mimalloc has shown to perform a lot better for this burst-like, threaded activity, therefore we prefer it. Please try to reuse buffers whenever possible though - while mimalloc is a significant improvement, reusing memory segments is even better.
We do use the C++ polymorphic allocator since datactl is used in places where swapping the allocator is undesirable, e.g. in mlink that may be linked into non-Syntalos processes. These processes may use the default allocator instead of Syntalos’ mimalloc-based one.
using LoadScriptFn
using Syntalos::LoadScriptFn = typedef std::function<void(const std::string &script, const fs::path &wdir)>;using SaveSettingsFn
using Syntalos::SaveSettingsFn = typedef std::function<bool(ByteVector &settings, const fs::path &baseDir)>;using LoadSettingsFn
using Syntalos::LoadSettingsFn = typedef std::function<bool(const ByteVector &settings, const fs::path &baseDir)>;using PrepareRunFn
using Syntalos::PrepareRunFn = typedef std::function<bool()>;using StartFn
using Syntalos::StartFn = typedef std::function<void()>;using StopFn
using Syntalos::StopFn = typedef std::function<void()>;using ShutdownFn
using Syntalos::ShutdownFn = typedef std::function<void()>;using NewDataRawFn
using Syntalos::NewDataRawFn = typedef std::function<void(const void *data, size_t size)>;using ShowSettingsFn
using Syntalos::ShowSettingsFn = typedef std::function<void(void)>;using ShowDisplayFn
using Syntalos::ShowDisplayFn = typedef std::function<void(void)>;Functions Documentation
function syDataTypeId
template <typename T >
constexpr int syDataTypeId()Helper function to get the type ID of a data type.
function deserializeFromMemory
template <typename T >
T deserializeFromMemory(
const void * memory,
size_t size
)Convenience function to deserialize a data type from memory.
function registerStreamMetaTypes
void registerStreamMetaTypes()Helper function to register all meta types for stream data.
This function registers all types with the meta object system and also creates a global map of all available stream types.
function streamTypeIdIndex
std::vector< std::pair< std::string, int > > streamTypeIdIndex()Get a mapping of type names to their IDs.
function numToString
template <typename T >
inline std::string numToString(
T x
)Convert a numeric value to a string using Syntalos’ default notation.
This function converts arithmetic types to strings in a locale-independent way. For floating-point types, it uses the “general” format (shortest representation). Special values (NaN, infinity) are handled consistently across all types.
function edlCurrentDateTime
EdlDateTime edlCurrentDateTime()function operator«
inline std::ostream & operator<<(
std::ostream & os,
const MetaSize & sz
)function operator«
inline std::ostream & operator<<(
std::ostream & os,
const MetaArray & arr
)function operator«
inline std::ostream & operator<<(
std::ostream & os,
const MetaValue & v
)function operator«
inline std::ostream & operator<<(
std::ostream & os,
const MetaStringMap & map
)function writeJson
void writeJson(
std::ostream & os,
const MetaValue & val
)Write a MetaValue as JSON to the given stream (RFC-8259, compact).
function writeJsonObject
void writeJsonObject(
std::ostream & os,
const std::map< std::string, MetaValue > & obj
)Write a MetaValue map as a JSON object to the given stream.
function toJsonString
std::string toJsonString(
const MetaValue & v
)function toJsonObjectString
std::string toJsonObjectString(
const MetaStringMap & m
)function stringMapFromJson
std::expected< MetaStringMap, std::string > stringMapFromJson(
const std::string & json
)Rudimentary JSON object parser: handles {“key”: “str”} and {“key”: 123}
function writeJsonString
static void writeJsonString(
std::ostream & os,
const std::string & s
)function usecToMsec
inline auto usecToMsec(
const microseconds_t & usec
)Convert microseconds to milliseconds.
Shorthand for duration-case to increase code readability.
function msecToUsec
inline auto msecToUsec(
const milliseconds_t & msec
)Convert milliseconds microseconds.
Shorthand for duration-case to increase code readability.
function nsecToUsec
inline auto nsecToUsec(
const nanoseconds_t & msec
)Convert nanoseconds microseconds.
Shorthand for duration-case to increase code readability.
function timeDiffSec
inline auto timeDiffSec(
const symaster_timepoint & timePoint1,
const symaster_timepoint & timePoint2
)function timeDiffMsec
inline auto timeDiffMsec(
const symaster_timepoint & timePoint1,
const symaster_timepoint & timePoint2
)function timeDiffUsec
inline auto timeDiffUsec(
const symaster_timepoint & timePoint1,
const symaster_timepoint & timePoint2
)function timeDiffToNowMsec
inline auto timeDiffToNowMsec(
const std::chrono::time_point< symaster_clock > & timePoint
)function timeDiffToNowUsec
inline auto timeDiffToNowUsec(
const std::chrono::time_point< symaster_clock > & timePoint
)function currentTimePoint
inline symaster_timepoint currentTimePoint()function vectorMedian
template <typename T >
double vectorMedian(
const Eigen::Matrix< T, Eigen::Dynamic, 1 > & vec
)function vectorMedianInplace
template <typename T >
double vectorMedianInplace(
Eigen::Matrix< T, Eigen::Dynamic, 1 > & vec
)function vectorVariance
template <typename T >
double vectorVariance(
const Eigen::Matrix< T, Eigen::Dynamic, 1 > & vec,
const double & mean,
bool unbiased =true
)function vectorVariance
template <typename T >
double vectorVariance(
const Eigen::Matrix< T, Eigen::Dynamic, 1 > & vec,
bool unbiased =true
)function serializeEigen
template <typename EigenType >
void serializeEigen(
BinaryStreamWriter & stream,
const EigenType & matrix
)function deserializeEigen
template <typename EigenType >
EigenType deserializeEigen(
BinaryStreamReader & stream
)function operator|
constexpr TimeSyncStrategies operator|(
TimeSyncStrategy lhs,
TimeSyncStrategy rhs
)function timeSyncStrategyToHString
const std::string timeSyncStrategyToHString(
const TimeSyncStrategy & strategy
)function timeSyncStrategiesToHString
const std::string timeSyncStrategiesToHString(
const TimeSyncStrategies & strategies
)function tsyncFileTimeUnitToString
std::string tsyncFileTimeUnitToString(
const TSyncFileTimeUnit & tsftunit
)function tsyncFileDataTypeToString
std::string tsyncFileDataTypeToString(
const TSyncFileDataType & dtype
)function tsyncFileModeToString
std::string tsyncFileModeToString(
const TSyncFileMode & mode
)function newUuid7
Uuid newUuid7()Generate a Version 7 UUID (UUIDv7) based on a timestamp and random data.
Return: A new UUIDv7.
The function generates a UUID conforming to Version 7 of the UUID format.
function cvMatToQImage
std::optional< QImage > cvMatToQImage(
const cv::Mat & mat
)Converts an OpenCV Mat to a QImage.
Parameters:
- mat The OpenCV Mat to convert.
Return: An optional containing the converted QImage, or std::nullopt if conversion fails.
This function attempts to convert the given OpenCV Mat to a QImage. It supports grayscale (1 channel), RGB (3 channels), and RGBA (4 channels) images. If the conversion is successful, it returns a QImage wrapped in std::optional. If the conversion fails (e.g., unsupported number of channels), it returns std::nullopt.
function cvMatToQPixmap
std::optional< QPixmap > cvMatToQPixmap(
const cv::Mat & mat
)function qRectToCvRect
inline cv::Rect qRectToCvRect(
const QRect & r
)Helper to convert a QRect into a cv::Rect
For a cv::Rect, right and bottom edges are exclusive, while they are inclusive for a QRect. This helper just ensures we don’t accidentally make any conversion mistakes.
function shellQuote
QString shellQuote(
const QString & str
)Shell-escape a string.
function findHostExecutable
QString findHostExecutable(
const QString & exe
)Find executable on the host system (if running in a sandbox)
Parameters:
- exe Name of the executable to look for
Return: Executable name, or empty string if not found
function runHostExecutable
int runHostExecutable(
const QString & exe,
const QStringList & args,
bool waitForFinished
)Run command on the host.
Parameters:
- exe The program to run
- args Program arguments
- waitForFinished Wait for the command to finish
Return: Exit status of the program (if waiting for finished)
function runInTerminal
int runInTerminal(
const QString & cmd,
const QStringList & args,
const QString & wdir,
const QString & title
)function launchProgramNC3Fallback
static bool launchProgramNC3Fallback(
const QString & exePath,
int * pidfd_out
)Fallback for launchProgram() if the clone3() syscall was not available or is blocked by seccomp filters.
function launchProgramPidFd
bool launchProgramPidFd(
const QString & exePath,
int * pidfd_out
)Launch a program in a new process, and return the PID of the new process as pidfd.
Parameters:
- exePath The path to the executable to launch.
- pidfd_out A pointer to an integer, which will be set to the PID of the new process.
Return: true if the program was successfully launched, false otherwise.
This function is used to launch a new program in a new process, and return the PID as pidfd.
function isProcessRunning
bool isProcessRunning(
int pidfd
)Check if a process is still running using a pidfd.
Parameters:
- pidfd The PIDFD of the process to check.
Return: true if the process is still running, false otherwise.
This function checks if a process is still running, by checking if the process has exited or not.
function getLogger
quill::Logger * getLogger(
const std::string & name
)function getLogger
quill::Logger * getLogger(
const QString & name
)function getLogger
quill::Logger * getLogger(
const char * name
)function logModTmp
quill::Logger * logModTmp(
const char * name
)Parameters:
- name A custom-defined module name.
Return: A logger for the module ID.
Get a temporary logger for an arbitrary module name. This is not for high-volume logging and mostly for compatibility with older code, think twice before using it in any new code.
Usually there is a better solution.
function getDefaultLogger
inline quill::Logger * getDefaultLogger()function removeLogger
void removeLogger(
quill::Logger * logger
)Remove a logger explicitly. Should usually not be needed.
function initializeSyLogSystem
void initializeSyLogSystem(
quill::LogLevel consoleLogLevel =quill::LogLevel::Info
)Initialize Syntalos logging. Must only ever be called once, at program startup. Purely internal API.
function shutdownSyLogSystem
void shutdownSyLogSystem()function qstr
inline const QString & qstr(
const QString & s
)function qstr
inline QString qstr(
QStringView s
)function qstr
inline QString qstr(
const char * s
)function qstr
inline QString qstr(
std::string_view s
)function qstr
inline QString qstr(
const std::string & s
)function colorModeToString
QString colorModeToString(
ColorMode mode
)function colorModeFromString
ColorMode colorModeFromString(
const QString & str
)function findSyntalosLibraryPaths
void findSyntalosLibraryPaths(
QString & pkgConfigPath,
QString & ldLibraryPath,
QString & includePath
)function findSyntalosMlinkPyModulePaths
QStringList findSyntalosMlinkPyModulePaths()Build an ordered list of directories that can contain syntalos_mlink. Dev/build paths are preferred over installed paths.
function datactlLogHandler
static void datactlLogHandler(
const datactl::LogMessage & m
)function makeIpcServiceTopology
inline constexpr IpcServiceTopology makeIpcServiceTopology(
uint senderCount,
uint receiverCount
)Helper to create a Syntalos IPC service topology, for setting limits on IOX connections.
function connectionHeatToHumanString
QString connectionHeatToHumanString(
ConnectionHeatLevel heat
)function toString
QString toString(
ModuleCategory category
)function moduleCategoryFromString
ModuleCategory moduleCategoryFromString(
const QString & categoryStr
)function moduleCategoriesFromVariant
ModuleCategories moduleCategoriesFromVariant(
const QVariant & value
)function qHash
inline uint qHash(
ModuleModifier key,
uint seed
)function newStreamForType
VariantDataStream * newStreamForType(
int typeId
)Create a new DataStream for the type identified by the given ID.
function newInputPortForType
VarStreamInputPort * newInputPortForType(
int typeId,
AbstractModule * mod,
const QString & id,
const QString & title
)Create a new Input Port for the type identified by the given ID.
function pythonVEnvDirForName
QString pythonVEnvDirForName(
const QString & venvName
)Get the absolute directory path of a virtual environment with the given name.
function pythonVirtualEnvExists
static bool pythonVirtualEnvExists(
const QString & venvName
)function requirementsHashMetadataPath
static QString requirementsHashMetadataPath(
const QString & venvDir
)function writeRequirementsHashMetadata
static bool writeRequirementsHashMetadata(
const QString & venvDir,
const QByteArray & requirementsHash
)function readRequirementsHashMetadata
static bool readRequirementsHashMetadata(
const QString & venvDir,
QString & requirementsHashOut
)function interpreterPathFromCfg
static QString interpreterPathFromCfg(
const QString & venvDir
)function pythonVirtualEnvStatus
PyVirtualEnvStatus pythonVirtualEnvStatus(
const QString & venvName,
const QString & requirementsFile
)function injectSyntalosMlinkIntoVenv
static void injectSyntalosMlinkIntoVenv(
const QString & venvDir
)function createPythonVirtualEnv
auto createPythonVirtualEnv(
const QString & venvName,
const QString & requirementsFile,
bool recreate
)function streamDataFromRawMemory
template <typename T >
T streamDataFromRawMemory(
const void * data,
size_t size
)Convert raw received bytes into their data type.
function initSyntalosModuleLink
std::unique_ptr< SyntalosLink > initSyntalosModuleLink(
const ModuleInitOptions & optn ={}
)function safeReceive
template <typename Sub >
static auto safeReceive(
Sub & sub
)Safely receive from a subscriber on the client. Returns the inner optional (empty = no data available) and logs a warning instead of crashing when the receive itself fails.
function getenvSafe
static std::string getenvSafe(
const char * name
)function SY_DEFINE_LOG_CATEGORY
SY_DEFINE_LOG_CATEGORY(
logIpc ,
"ipc"
)function ipcLogMessageDispatch
static void ipcLogMessageDispatch(
datactl::LogSeverity severity,
const std::string & msg
)Attributes Documentation
variable US_PER_MS
constexpr int64_t US_PER_MS = 1'000;variable US_PER_S
constexpr int64_t US_PER_S = 1'000 * US_PER_MS;variable US_PER_MIN
constexpr int64_t US_PER_MIN = 60 * US_PER_S;variable US_PER_H
constexpr int64_t US_PER_H = 60 * US_PER_MIN;variable NS_PER_US
constexpr int64_t NS_PER_US = 1'000;variable MS_PER_S
constexpr int64_t MS_PER_S = 1'000;variable MS_PER_MIN
constexpr int64_t MS_PER_MIN = 60 * MS_PER_S;variable SECONDARY_CLOCK_TOLERANCE
static constexpr auto SECONDARY_CLOCK_TOLERANCE = microseconds_t(1000);The amount of time a secondary clock is allowed to deviate from the master.
Since Syntalos uses millisecond time resolution, permitting (slightly more than) half a millisecond deviation for secondary clocks from the master clock is sensible.
IMPORTANT: Modules may override this value for their synchronizers to one that fits their device better. This is just a default for modules which do not change the default setting.
variable DEFAULT_CLOCKSYNC_CHECK_INTERVAL
static constexpr auto DEFAULT_CLOCKSYNC_CHECK_INTERVAL = milliseconds_t(4000);Interval at which we check for external clock synchronization.
IMPORTANT: This is just a default value for modules which do not explicitly define a check interval. Individual modules may choose a different value that fits the device they are communicating with best.
variable g_consoleSink
static std::shared_ptr< quill::Sink > g_consoleSink = nullptr;variable g_defaultLogLevel
static quill::LogLevel g_defaultLogLevel = quill::LogLevel::Info;variable SY_IOX_QUEUE_CAPACITY
static constexpr uint64_t SY_IOX_QUEUE_CAPACITY = 12U;variable SY_IOX_HISTORY_SIZE
static constexpr uint64_t SY_IOX_HISTORY_SIZE = 2U;variable SY_IOX_INITIAL_SLICE_LEN
static constexpr uint64_t SY_IOX_INITIAL_SLICE_LEN = 4096;variable SY_IOX_ID_MAX_LEN
static constexpr size_t SY_IOX_ID_MAX_LEN = IOX2_SERVICE_NAME_LENGTH;variable SY_IOX_MAX_RESPONSE_BUF_SIZE
static constexpr uint64_t SY_IOX_MAX_RESPONSE_BUF_SIZE = 2U;variable IN_PORT_CHANGE_CHANNEL_ID
static const std::string IN_PORT_CHANGE_CHANNEL_ID = "InPortChange";variable OUT_PORT_CHANGE_CHANNEL_ID
static const std::string OUT_PORT_CHANGE_CHANNEL_ID = "OutPortChange";variable IN_PORT_UPDATE_METADATA_ID
static const std::string IN_PORT_UPDATE_METADATA_ID = "UpdateInputPortMetadata";variable WORKER_CTL_EVENT_ID
static const std::string WORKER_CTL_EVENT_ID = "worker-event";Shared wakeup event service names for the control channel.
WORKER_CTL_EVENT_ID - the worker notifies the master whenever it publishes on a control channel (error, state, port-changes …). The master attaches one listener for this to its WaitSet.
MASTER_CTL_EVENT_ID - the master notifies the worker whenever it sends a request (request-response commands).
variable MASTER_CTL_EVENT_ID
static const std::string MASTER_CTL_EVENT_ID = "master-event";variable ERROR_CHANNEL_ID
static const std::string ERROR_CHANNEL_ID = "Error";variable STATE_CHANNEL_ID
static const std::string STATE_CHANNEL_ID = "State";variable STATUS_MESSAGE_CHANNEL_ID
static const std::string STATUS_MESSAGE_CHANNEL_ID = "StatusMessage";variable API_VERSION_CALL_ID
static const std::string API_VERSION_CALL_ID = "ApiVersion";variable SET_NICENESS_CALL_ID
static const std::string SET_NICENESS_CALL_ID = "SetNiceness";variable SET_MAX_RT_PRIORITY_CALL_ID
static const std::string SET_MAX_RT_PRIORITY_CALL_ID = "SetMaxRealtimePriority";variable SET_CPU_AFFINITY_CALL_ID
static const std::string SET_CPU_AFFINITY_CALL_ID = "SetCPUAffinity";variable DELETE_PORT_CALL_ID
static const std::string DELETE_PORT_CALL_ID = "DeletePort";variable CONNECT_INPUT_CALL_ID
static const std::string CONNECT_INPUT_CALL_ID = "ConnectInputPort";variable LOAD_SCRIPT_CALL_ID
static const std::string LOAD_SCRIPT_CALL_ID = "LoadScript";variable SET_PORTS_PRESET_CALL_ID
static const std::string SET_PORTS_PRESET_CALL_ID = "SetPortsPresetRequest";variable SAVE_SETTINGS_CALL_ID
static const std::string SAVE_SETTINGS_CALL_ID = "SaveSettings";variable LOAD_SETTINGS_CALL_ID
static const std::string LOAD_SETTINGS_CALL_ID = "LoadSettings";variable PREPARE_RUN_CALL_ID
static const std::string PREPARE_RUN_CALL_ID = "PrepareRun";variable START_CALL_ID
static const std::string START_CALL_ID = "Start";variable STOP_CALL_ID
static const std::string STOP_CALL_ID = "Stop";variable SHUTDOWN_CALL_ID
static const std::string SHUTDOWN_CALL_ID = "Shutdown";variable SHOW_SETTINGS_CALL_ID
static const std::string SHOW_SETTINGS_CALL_ID = "ShowSettings";variable SHOW_DISPLAY_CALL_ID
static const std::string SHOW_DISPLAY_CALL_ID = "ShowDisplay";Updated on 2026-04-24 at 23:36:58 +0000