API Documentation

Rxn Rover Documentation

1. Project description

Rxn Rover (pronounced Reaction Rover) is an open-source, general reaction automation software. Similarly, Rxn Rover connects an optimization algorithm - machine learning or non-machine learning - with a reactor and analysis instrumentation to create a self-optimizing system. This system allows the optimizer to control and change the reaction parameters, perform the reaction, analyze the desired results, and choose the next search step with or without human intervention. Designed knowing that each research laboratory and experiment presents different challenges, Rxn Rover supports various optimization algorithms, an array of analysis tools, and a customizable, modular reactor setup to allow for arbitrary reactor designs using provided or user-created plugins. Rxn Rover and its plugins are designed to be easy to use, understand, and modify with little to no programming experience, but complex enough to support intricate, multi-step reactions.

2. Libraries

This section describes the libraries contained in the project.

2.1. build_actions.lvlib

Responsibility: No description found (add content in lvlib description)

Version: 1.0.0.0

2.1.1. Functions

This library has no functions set to non private scope.

2.1.2. Library Constant VIs

Note

No Constant VIs Found

2.2. RxnRover.lvlib

Responsibility: No description found (add content in lvlib description)

Version: 1.0.0.0

Table 1. Nested libraries
Name Type

Controller Array.lvclass

LVClass

Generic Optimizer.lvclass

LVClass

Generic Plugin.lvclass

LVClass

LC Parser.lvclass

LVClass

Parameter to Hardware Map.lvclass

LVClass

Passive Hardware.lvclass

LVClass

Pump Controller.lvclass

LVClass

Syringe Pump.lvclass

LVClass

Temperature Controller.lvclass

LVClass

User Preferences File.lvclass

LVClass

Experiment File.lvlib

Library

Experiment Manager.lvlib

Library

User Event - Stop.lvlib

Library

File IO.lvlib

Library

JSON Utilities.lvlib

Library

LocalAppData Utilities.lvlib

Library

Project Locations.lvlib

Library

Plugin Manager.lvlib

Library

test Message Queue.lvlib

Library

2.2.1. Functions

Table 2. Functions (non private scope only)
Name Connector pane Description S. R. I.

Hardware Subpanels

RxnRover.lvlib:Hardware Subpanels.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Ready Status

RxnRover.lvlib:Ready Status.vi

Sets the status indicator to display a "Ready" status.

empty.png

empty.png

empty.png

Remove Control Panel

RxnRover.lvlib:Remove Control Panel.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Remove Entry

RxnRover.lvlib:Remove Entry.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Set Unsaved Changes in Title

RxnRover.lvlib:Set Unsaved Changes in Title.vi

Update the Reaction Rover window title to have an asterisk (*) after the project file location, indicating that there are unsaved changes to the project.

empty.png

empty.png

empty.png

Update Status Event

RxnRover.lvlib:Update Status Event.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Update Status

RxnRover.lvlib:Update Status.vi

Updates the status indicator with new text.

empty.png

empty.png

empty.png

Update VI List

RxnRover.lvlib:Update VI List.vi

Fires the Update VI List Event with the provided Controller Array.

empty.png

empty.png

empty.png

Update Window Title

RxnRover.lvlib:Update Window Title.vi

Updates the window title with the correct experiment name and path.

empty.png

empty.png

empty.png

Generate New Log Path Event

RxnRover.lvlib:Generate New Log Path Event.vi

Update the directory logs will be written to.

empty.png

empty.png

empty.png

Hardware List Updated

RxnRover.lvlib:Hardware List Updated.vi

Fires the Update VI List Event with the provided Controller Array.

empty.png

empty.png

empty.png

Hardware Updated Event

RxnRover.lvlib:Hardware Updated Event.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Message Received Event

RxnRover.lvlib:Message Received Event.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

New Hardware Selected Event

RxnRover.lvlib:New Hardware Selected Event.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

New Hardware Selected

RxnRover.lvlib:New Hardware Selected.vi

Fires the Update VI List Event with the provided Controller Array.

empty.png

empty.png

empty.png

New Log Path Event

RxnRover.lvlib:New Log Path Event.vi

Event containing a new location to output log files.

empty.png

empty.png

empty.png

New Parameters Event

RxnRover.lvlib:New Parameters Event.vi

This event is fired when a new set of parameters is received from a reactor control plugin.

empty.png

empty.png

empty.png

New Yield Event

RxnRover.lvlib:New Yield Event.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Process Stopped Event

RxnRover.lvlib:Process Stopped Event.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Stop Event

RxnRover.lvlib:Stop Event.vi

Effectively provides a singleton "Stop" event instance. The event instance is created on the first call and returned on all subsequent calls.

empty.png

empty.png

empty.png

Submit Goal Event

RxnRover.lvlib:Submit Goal Event.vi

Event containing the new result value.

empty.png

empty.png

empty.png

VI List Event

RxnRover.lvlib:VI List Event.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Initialize Analyzer from Experiment Cluster

RxnRover.lvlib:Initialize Analyzer from Experiment Cluster.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Initialize Hardware from Experiment Cluster

RxnRover.lvlib:Initialize Hardware from Experiment Cluster.vi

Initialize reactor component plugins from the experiment file plugin list.

empty.png

empty.png

empty.png

Initialize Optimizer from Experiment Cluster

RxnRover.lvlib:Initialize Optimizer from Experiment Cluster.vi

Attempt to load optimizer plugins from the given experiment file.

empty.png

empty.png

empty.png

Initialize Parameter to Hardware Map from Experiment Cluster

RxnRover.lvlib:Initialize Parameter to Hardware Map from Experiment Cluster.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Load Details and Filter Plugins

RxnRover.lvlib:Load Details and Filter Plugins.vi

Convenience function to check all plugin directories for plugin definitions, load in the details for each plugin, and filter the plugin details by supported plugin types.

This function also creates the plugin directories if they do not already exist, in which case no plugins will be loaded since the directories could not have been populated yet.

empty.png

empty.png

empty.png

Add Analyzer

RxnRover.lvlib:Add Analyzer.vi

Adds a new analyzer plugin to the process cache.

empty.png

empty.png

empty.png

Add Hardware

RxnRover.lvlib:Add Hardware.vi

Adds the reactor component plugin to the plugin list.

empty.png

empty.png

empty.png

Add Optimizer

RxnRover.lvlib:Add Optimizer.vi

Adds a new optimizer plugin to the process cache.

empty.png

empty.png

empty.png

Assign Parameters to Hardware Dialog

RxnRover.lvlib:Assign Parameters to Hardware Dialog.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Initialize Plugin

RxnRover.lvlib:Initialize Plugin.vi

Initialize a plugin instance based on the information given.

empty.png

empty.png

empty.png

Load Plugin Dialog

RxnRover.lvlib:Load Plugin Dialog.vi

Dialog allowing the user to select a plugin by name. Returns the selected plugin details.

empty.png

empty.png

empty.png

Stop Analyzer VI

RxnRover.lvlib:Stop Analyzer VI.vi

Stops the named process, shutting down the subpanel indicator and control panel, removing the entry from the message history cache, and deleting it form the object array. This VI triggers status update events.

empty.png

empty.png

empty.png

Stop Optimizer VI

RxnRover.lvlib:Stop Optimizer VI.vi

Stops the named process, shutting down the subpanel indicator and control panel, removing the entry from the message history cache, and deleting it form the object array. This VI triggers status update events.

empty.png

empty.png

empty.png

Stop Process VI

RxnRover.lvlib:Stop Process VI.vi

Stops the named process, shutting down the subpanel indicator and control panel, removing the entry from the message history cache, and deleting it form the object array. This VI triggers status update events.

empty.png

empty.png

empty.png

Add Process Queue Reference

RxnRover.lvlib:Add Process Queue Reference.vi

Appends queue to an array of process queues.

empty.png

empty.png

empty.png

Add VI to Tab Control

RxnRover.lvlib:Add VI to Tab Control.vi

Adds the VI to the first visible page of the tab control given, assuming the first control on the page is a subpanel.

empty.png

empty.png

empty.png

Cache Message

RxnRover.lvlib:Cache Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Check Loop Error

RxnRover.lvlib:Check Loop Error.vi

Check the 'error to process' to see if its code value matches any of the values in the 'Ignore Errors' array. If so, do nothing. If not, send an "Error" message containing the error data to the Message Handling Loop for further processing. If the "Exit on Error?" input is TRUE, send an "Exit" message to the Message Handling Loop instead.

empty.png

reentrancy-preallocated.png

empty.png

Choose Idle or Error State

RxnRover.lvlib:Choose Idle or Error State.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Error Handler - Main VI State Machine

RxnRover.lvlib:Error Handler - Main VI State Machine.vi

Process an error that occurred in the Message Handling Loop, either by ignoring it, or generating an "Exit" message.

empty.png

empty.png

empty.png

Find Available Queue

RxnRover.lvlib:Find Available Queue.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Find Subpanel on Page

RxnRover.lvlib:Find Subpanel on Page.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Load Plugin Front Panel

RxnRover.lvlib:Load Plugin Front Panel.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Queue Message

RxnRover.lvlib:Queue Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Save Reaction Rover Data to Experiment File

RxnRover.lvlib:Save Reaction Rover Data to Experiment File.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Split Name and Message

RxnRover.lvlib:Split Name and Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Variant to Data String

RxnRover.lvlib:Variant to Data String.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Is Variant Supported Type

RxnRover.lvlib:Is Variant Supported Type.vi

Checks if the variant is any of the supported types for parameter values.

empty.png

empty.png

empty.png

Is Variant Type Boolean

RxnRover.lvlib:Is Variant Type Boolean.vi

Check if the variant contents are a boolean.

empty.png

empty.png

empty.png

Is Variant Type Numeric

RxnRover.lvlib:Is Variant Type Numeric.vi

Check if the variant contents are a numeric type.

empty.png

empty.png

empty.png

Is Variant Type Path

RxnRover.lvlib:Is Variant Type Path.vi

Check if the variant contents are a path.

empty.png

empty.png

empty.png

Is Variant Type String

RxnRover.lvlib:Is Variant Type String.vi

Check if the variant contents are a string.

empty.png

empty.png

empty.png

Unsupported Type Error

RxnRover.lvlib:Unsupported Type Error.vi

Provides an error cluster for an unsupported type. This will get the type of the variant and add that to the error message.

empty.png

empty.png

empty.png

Main

RxnRover.lvlib:Main.vi

Use this template to build a simple state machine design pattern. Each state executes code and determines which state to transition to.

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

2.2.2. Library Constant VIs

Note

No Constant VIs Found

2.3. Experiment File.lvlib

Responsibility: No description found (add content in lvlib description)

Version: 1.0.0.0

2.3.1. Functions

Table 3. Functions (non private scope only)
Name Connector pane Description S. R. I.

Initialize Experiment File

RxnRover.lvlib:Experiment File.lvlib:Initialize Experiment File.vi

Creates a new default experiment file at the given Experiment Directory using the Experiment Name as the file name, based on the Experiment File.ctl cluster. If the file already exists, it will ask the user if they want to overwrite it or not, where cancelled becomes True if the user declines to overwrite the file or False if they chose to overwrite it.

empty.png

empty.png

empty.png

Load Experiment File

RxnRover.lvlib:Experiment File.lvlib:Load Experiment File.vi

Load the given project file or open a file dialog if no path is given. To aid in backwards compatability as new features are added, if a setting is not found in the file, the error is ignored and the undiscovered setting is set to a default value.

empty.png

empty.png

empty.png

Save Experiment File

RxnRover.lvlib:Experiment File.lvlib:Save Experiment File.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

2.3.2. Library Constant VIs

Note

No Constant VIs Found

2.4. Experiment Manager.lvlib

Responsibility: No description found (add content in lvlib description)

Version: 1.0.0.0

Table 4. Nested libraries
Name Type

User Event - Stop.lvlib

Library

2.4.1. Functions

Table 5. Functions (non private scope only)
Name Connector pane Description S. R. I.

Create or Load Experiment Dialog

RxnRover.lvlib:Experiment Manager.lvlib:Create or Load Experiment Dialog.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Error Handler - Event Handling Loop

RxnRover.lvlib:Experiment Manager.lvlib:Error Handler - Event Handling Loop.vi

Process an error that occurred in the Event Handling Loop, either by ignoring it, or generating an "Error" message.

empty.png

empty.png

empty.png

Error Handler - Message Handling Loop

RxnRover.lvlib:Experiment Manager.lvlib:Error Handler - Message Handling Loop.vi

Process an error that occurred in the Message Handling Loop, either by ignoring it, or generating an "Exit" message.

empty.png

empty.png

empty.png

New Experiment Dialog

RxnRover.lvlib:Experiment Manager.lvlib:New Experiment Dialog.vi

Opens a dialog window to specify the name and folder location of a new experiment. Project Name and Project Location will be blank if values are not provided, and any values provided will be validated and the dialog updated accordingly.

empty.png

empty.png

empty.png

New Experiment

RxnRover.lvlib:Experiment Manager.lvlib:New Experiment.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Validate Experiment Location

RxnRover.lvlib:Experiment Manager.lvlib:Validate Experiment Location.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Validate Experiment Name

RxnRover.lvlib:Experiment Manager.lvlib:Validate Experiment Name.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

2.4.2. Library Constant VIs

Note

No Constant VIs Found

2.5. User Event - Stop.lvlib

Responsibility: No description found (add content in lvlib description)

Version: 1.0.0.0

2.5.1. Functions

Table 6. Functions (non private scope only)
Name Connector pane Description S. R. I.

Create User Event - Stop

RxnRover.lvlib:Experiment Manager.lvlib:User Event - Stop.lvlib:Create User Event - Stop.vi

Create a boolean user event that will be used to stop the event loop from the message handling loop.

empty.png

reentrancy-shared.png

empty.png

Fire User Event - Stop

RxnRover.lvlib:Experiment Manager.lvlib:User Event - Stop.lvlib:Fire User Event - Stop.vi

Send the Stop event to stop the Event Handling Loop.

empty.png

reentrancy-shared.png

empty.png

Destroy User Event - Stop

RxnRover.lvlib:Experiment Manager.lvlib:User Event - Stop.lvlib:Destroy User Event - Stop.vi

Destroy the user event, even if there is an incoming error.

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

2.5.2. Library Constant VIs

Note

No Constant VIs Found

2.6. File IO.lvlib

Responsibility: No description found (add content in lvlib description)

Version: 1.0.0.0

Table 7. Nested libraries
Name Type

JSON Utilities.lvlib

Library

LocalAppData Utilities.lvlib

Library

Project Locations.lvlib

Library

2.6.1. Functions

Table 8. Functions (non private scope only)
Name Connector pane Description S. R. I.

Convert Absolute Path to Relative Path from Application

RxnRover.lvlib:File IO.lvlib:Convert Absolute Path to Relative Path from Application.vi

Converts a given absolute path to a relative path from the calling application.

empty.png

empty.png

empty.png

Convert Absolute to Relative Path if Executable

RxnRover.lvlib:File IO.lvlib:Convert Absolute to Relative Path if Executable.vi

Converts an absolute path to a relative path if the application is being executed as an executable. The absolute path is retained if a development environment is being used.

empty.png

empty.png

empty.png

Open File Explorer

RxnRover.lvlib:File IO.lvlib:Open File Explorer.vi

Opens up the file explorer to a location given in a file path (absolute) Does this by sending a command into the command terminal, supports Windows, Mac OS, and Linux

Created 5/30/2025 RxnRover

empty.png

empty.png

empty.png

Relative Path to Absolute Path

RxnRover.lvlib:File IO.lvlib:Relative Path to Absolute Path.vi

Converts a relative path to an absolute path from the application directory.

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

2.6.2. Library Constant VIs

Note

No Constant VIs Found

2.7. JSON Utilities.lvlib

Responsibility: No description found (add content in lvlib description)

Version: 1.0.0.0

2.7.1. Functions

Table 9. Functions (non private scope only)
Name Connector pane Description S. R. I.

JSON Add Indent

RxnRover.lvlib:File IO.lvlib:JSON Utilities.lvlib:JSON Add Indent.vi

Adds indentation to the JSON string provided. The string must already have newlines added for indentation to be useful.

empty.png

empty.png

empty.png

JSON Add White Space

RxnRover.lvlib:File IO.lvlib:JSON Utilities.lvlib:JSON Add White Space.vi

Adds white space to a string generated by the Flatten to JSON String VI.

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

2.7.2. Library Constant VIs

Note

No Constant VIs Found

2.8. LocalAppData Utilities.lvlib

Responsibility: This library provides a set of VI’s designed to work within the user’s Local AppData drectory. Including functions to construct appication-specific paths, retrive base paths, create necessary directories, and manage file creation or replacement within the AppData context.

Version: 1.0.0.0

2.8.1. Functions

Table 10. Functions (non private scope only)
Name Connector pane Description S. R. I.

LocalAppData Build Path

RxnRover.lvlib:File IO.lvlib:LocalAppData Utilities.lvlib:LocalAppData Build Path.vi

Builds a file path with relative path and Local App Data Base Path An Operating system must be specified Supports: Windows 2000 - Windows 11, Linux, Mac OS

Created 5/20/2025 - Labview 2020 RxnRover

empty.png

empty.png

empty.png

LocalAppData Create Or Replace File

RxnRover.lvlib:File IO.lvlib:LocalAppData Utilities.lvlib:LocalAppData Create Or Replace File.vi

Creates a file of specified name at type at a relative location appended with the aboslute Local App State Data Path

Created 5/20/2025 - Labview 2020 RxnRover

empty.png

empty.png

empty.png

LocalAppData Get Base Path

RxnRover.lvlib:File IO.lvlib:LocalAppData Utilities.lvlib:LocalAppData Get Base Path.vi

Uses command prompt based off of the current operating system to retrive the LocalAppData base path Supports: Windows 2000 - Windows 11, Linux, Mac OS

Created 5/20/2025 - Labview 2020 RxnRover

empty.png

empty.png

empty.png

LocalAppData Get or Create App Directory

RxnRover.lvlib:File IO.lvlib:LocalAppData Utilities.lvlib:LocalAppData Get or Create App Directory.vi

Create or access a local app directory given a relative path(String) EX: appname/appdirectory

Locates the correct system-specfic base directory for state data %LOCALAPPDATA(WIndows) or $XDG_STATE_HOME(Linux) or ~/Library/Application Support(Mac OS) and appends the relative path Creates the directory if it does not exist. Compliant with XKG Base Directory Specification

Created 5/20/2025 - Labview 2020 RxnRover

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

2.8.2. Library Constant VIs

Note

No Constant VIs Found

2.9. Project Locations.lvlib

Responsibility: No description found (add content in lvlib description)

Version: 1.0.0.0

2.9.1. Functions

Table 11. Functions (non private scope only)
Name Connector pane Description S. R. I.

File Defaults Location

RxnRover.lvlib:File IO.lvlib:Project Locations.lvlib:File Defaults Location.vi

Returns the location of default files for the application, independent of whether it is run with the LabVIEW runtime, as a standalone EXE, using an installer, or during development in LabVIEW.

empty.png

empty.png

empty.png

Icons Location

RxnRover.lvlib:File IO.lvlib:Project Locations.lvlib:Icons Location.vi

Returns the location of default files for the application, independent of whether it is run with the LabVIEW runtime, as a standalone EXE, using an installer, or during development in LabVIEW.

empty.png

empty.png

empty.png

Resource Location

RxnRover.lvlib:File IO.lvlib:Project Locations.lvlib:Resource Location.vi

Returns the resource location for the application, independent of whether it is run with the LabVIEW runtime, as a standalone EXE, using an installer, or during development in LabVIEW.

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

2.9.2. Library Constant VIs

Note

No Constant VIs Found

2.10. Plugin Manager.lvlib

Responsibility: No description found (add content in lvlib description)

Version: 1.0.0.0

2.10.1. Functions

Table 12. Functions (non private scope only)
Name Connector pane Description S. R. I.

Create Plugin Directories

RxnRover.lvlib:Plugin Manager.lvlib:Create Plugin Directories.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Filter Invalid Plugins

RxnRover.lvlib:Plugin Manager.lvlib:Filter Invalid Plugins.vi

Filter for valid plugins and sort them into two different plugin.ctl arrays, Valid Plugins which should continute to be loaded and fitlered, and invalid plugins which will be logged and notified to the user.

Created 5/15/2025 - Labview 2020 RxnRover

empty.png

empty.png

empty.png

Filter Plugins

RxnRover.lvlib:Plugin Manager.lvlib:Filter Plugins.vi

Filters the list of plugins for only those of the given plugin type.

empty.png

empty.png

empty.png

Generate Plugin Error String Array

RxnRover.lvlib:Plugin Manager.lvlib:Generate Plugin Error String Array.vi

Helper VI which formats plugin error clusters and ouputs an array of formatted strings (This subVI does not write to a log file) With the format; [Time RTC 3339] [Plugin Name] Error: Message [Time RTC 3339] [Plugin Name] Error: Message [Time RTC 3339] [Plugin Name] Error: Message . . .

Created 5/20/2025 - Labview 2020 RxnRover

empty.png

empty.png

empty.png

Get Default Plugin Directories

RxnRover.lvlib:Plugin Manager.lvlib:Get Default Plugin Directories.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Get Plugin Directorys

RxnRover.lvlib:Plugin Manager.lvlib:Get Plugin Directorys.vi

Returns an array of plugin directories, creating each plugin directory that does not already exist. The plugin directories are determined by the Get Default Plugin Directories VI. An array of booleans parallel to the plugin directories array is also returned, indicating whether each directory was successfully created or already exists (True) or failed to be created (False).

empty.png

empty.png

empty.png

Handle Plugin Errors

RxnRover.lvlib:Plugin Manager.lvlib:Handle Plugin Errors.vi

Handles RxnRover plugin errors by displayig a dialog message including list of the invalid plugin names in the RxnRover menu and logs the details of any errors in a .txt file (pluginerrors.txt)

Created: RxnRover May 26, 2025

empty.png

empty.png

empty.png

Load Plugins

RxnRover.lvlib:Plugin Manager.lvlib:Load Plugins.vi

The core loader for plugins which initializes a Plugin Array, reads their configuration files and outputs a completed Plugin Array. This VI is currently called by Load Details and Filter Plugins. This VI calls several helper VIs starting with Read Plugins INI.

empty.png

empty.png

empty.png

Log Plugin Errors

RxnRover.lvlib:Plugin Manager.lvlib:Log Plugin Errors.vi

This VI logs errors within invalid RxnRover plugins in a .txt file located at : with the format; [Time RTC 3339] [Plugin name] Error : (error message) [Time RTC 3339] [Plugin name] Error : (error message) [Time RTC 3339] [Plugin name] Error : (error message) . . .

If there are no errors present, or invalid plugins, a .txt log file will not be created. log file is overwritten at the standard path each time Load Plugins.vi is called (It does not create an additional log file) Errors are generated within the Read Configuration File .vi and sorted as invalid plugins within the Filter Invalid Plugins.vi

Created 5/20/2025 - Labview 2020 RxnRover

empty.png

empty.png

empty.png

Read Plugin Configuration

RxnRover.lvlib:Plugin Manager.lvlib:Read Plugin Configuration.vi

Reads .conf (configuration file) included for each plugin while also checking if the .conf file is valid, then fills that information into an array of plugin details. If there are any invalid entries within the .conf file an error message with the specifc cause and a debug message is added to the Config Error cluster within plugin details. Logging is dealt with later in other VI’s (Filter Invalid Plugins.vi , Log Plugin Errors.vi etc.)

empty.png

empty.png

empty.png

Read Plugin INI

RxnRover.lvlib:Plugin Manager.lvlib:Read Plugin INI.vi

Reads an INI file defining a plugin to be loaded.

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

2.10.2. Library Constant VIs

Note

No Constant VIs Found

2.11. test Message Queue.lvlib

Responsibility: No description found (add content in lvlib description)

Version: 1.0.0.0

2.11.1. Functions

Table 13. Functions (non private scope only)
Name Connector pane Description S. R. I.

Enqueue Message (Array)

RxnRover.lvlib:test Message Queue.lvlib:Enqueue Message (Array).vi

For a regular message, enqueue the message. For a priority message, enqueue it at the front of the queue.

empty.png

empty.png

empty.png

Enqueue Message (Single)

RxnRover.lvlib:test Message Queue.lvlib:Enqueue Message (Single).vi

For a regular message, enqueue the message. For a priority message, enqueue it at the front of the queue.

empty.png

empty.png

empty.png

Create All Message Queues

RxnRover.lvlib:test Message Queue.lvlib:Create All Message Queues.vi

This VI creates and initializes all the message queues for your application. If your application requires more than one message queue, right-click the "Message Queues" constant above and select Open Type Def. Add the new Message Queue(s) to the type definition, then initialize them in this VI.

empty.png

empty.png

empty.png

Obtain Message Queue

RxnRover.lvlib:test Message Queue.lvlib:Obtain Message Queue.vi

Create a queue with the Message Cluster data type.

empty.png

empty.png

empty.png

Dequeue Message

RxnRover.lvlib:test Message Queue.lvlib:Dequeue Message.vi

This VI pulls messages off the Message Queue.

empty.png

reentrancy-preallocated.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

2.11.2. Library Constant VIs

Note

No Constant VIs Found

3. Classes

This section describes the classes contained in the project.

3.1. Classes overview

This project contains 10 classes and 0 interface.

Table 14. Classes list
Classes Interfaces

Controller Array.lvclass

Generic Optimizer.lvclass

Generic Plugin.lvclass

LC Parser.lvclass

Parameter to Hardware Map.lvclass

Passive Hardware.lvclass

Pump Controller.lvclass

Syringe Pump.lvclass

Temperature Controller.lvclass

User Preferences File.lvclass

@startuml
set namespaceSeparator :
skinparam ClassBackgroundColor #FFFFFF
skinparam ClassBorderColor #555555
skinparam ClassFontColor #000000
skinparam ClassHeaderBackgroundColor #808080

skinparam top to bottom direction
class "RxnRover.lvlib:Controller Array" {
{field} +Array : Array of LV Class
{static} {method} +Array Size()
{static} {method} +As Minimal Cluster Array()
{static} {method} +Delete From Array()
{static} {method} +Index Array()
{static} {method} +Insert Into Array()
{static} {method} +Register Controller()
{static} {method} +Replace Subset Array()
{static} {method} +Replace Subset Element()
{static} {method} -Search Array by Controller Type()
{static} {method} -Search Array by Name()
{static} {method} +Search Array()

}

"RxnRover.lvlib:Controller Array" o-- "RxnRover.lvlib:Generic Plugin"

class "RxnRover.lvlib:Generic Optimizer" {
{static} {method} +Variant to Optimizer State()
{method} +Control Panel Initialization Message()
{method} +New Parameter Message()
{method} +Start Message()
{method} +Stop Message()
{method} +Valid Resource Message()
{method} +Submit Goal()
{method} +Listening Server Cases()
{method} +Resource from String()
{method} +Resource to String()
{method} +Subpanel UI()
{method} +Check Valid Message()

}
"RxnRover.lvlib:Generic Plugin" <|-- "RxnRover.lvlib:Generic Optimizer"


class "RxnRover.lvlib:Generic Plugin" {
{field} +Name : String
{field} +Controller Type : Enum U16
{field} -Control Panel : Cluster
{field} -Subpanel : Cluster
{static} {method} +Send Listening Queue()
{static} {method} +Send Log Delimiter Message()
{static} {method} +Send Log Directory Message()
{static} {method} +Send Log on Run Message()
{static} {method} +Send Log Prefix Message()
{static} {method} +Send New Parameter()
{static} {method} +Send Start Message()
{static} {method} +Send Stop Message()
{static} {method} +Wait for Control Panel Exit()
{static} {method} +Wait for Control Panel Start()
{static} {method} +Wait for Message (blocking)()
{static} {method} +Wait for Process Running Event()
{static} {method} +Wait for Valid Resource()
{static} {method} +Panel Running Event()
{static} {method} +Abort Control Panel()
{static} {method} +Control Panel - Close()
{static} {method} +Control Panel - Initialize()
{static} {method} +Internal Message Queue - Close()
{static} {method} +Internal Message Queue - Initialize()
{static} {method} +Listening Server - Initialize()
{static} {method} +Listening Server()
{static} {method} +Stop Control Panel()
{static} {method} +From Minimal Cluster()
{static} {method} +Load Controller Type from Enum()
{static} {method} +Load Controller Type from Path()
{static} {method} #Close Subpanel UI Reference()
{static} {method} +Initialize Subpanel UI()
{static} {method} +Insert Subpanel UI()
{static} {method} #Open Subpanel UI Reference()
{static} {method} +Report to Subpanel()
{static} {method} +Stop Subpanel UI()
{static} {method} +Close VI Reference()
{static} {method} +Close()
{static} {method} +Compare Controller Type()
{static} {method} +Continue Waiting or Abort Dialog()
{static} {method} +Initialize()
{static} {method} +Open Reentrant Class Method VI()
{static} {method} +String to Controller Type()
{method} +Control Panel Initialization Message()
{method} +Log Directory Message()
{method} +Log File Delimiter Message()
{method} +Log on Run Message()
{method} +Log Prefix Message()
{method} +New Parameter Message()
{method} +Start Message()
{method} +Stop Message()
{method} +Valid Resource Message()
{method} +Listening Server - Close()
{method} +Listening Server Cases()
{method} +Open Listening Server Reference()
{method} +Resource from String()
{method} +As Minimal Cluster()
{method} +Subpanel UI()
{method} +Check Valid Message()
{method} +Resource to String()

}


class "RxnRover.lvlib:LC Parser" {
{static} {method} +Variant to Analyzer State()
{method} +Check Valid Message()
{method} +Control Panel Initialization Message()
{method} +Listening Server Cases()
{method} +New Parameter Message()
{method} +Resource from String()
{method} +Resource to String()
{method} +Start Message()
{method} +Stop Message()
{method} +Subpanel UI()
{method} +Valid Resource Message()

}
"RxnRover.lvlib:Generic Plugin" <|-- "RxnRover.lvlib:LC Parser"


class "RxnRover.lvlib:Parameter to Hardware Map" {
{field} #unordered_map : Array of Cluster
{static} {method} +As Minimal Cluster()
{static} {method} +Clear()
{static} {method} +Empty()
{static} {method} +Equals()
{static} {method} +Erase (array)()
{static} {method} #Erase (index)()
{static} {method} +Erase (single)()
{static} {method} +Find (array)()
{static} {method} +Find (single)()
{static} {method} #Find Index (single)()
{static} {method} +Insert (array)()
{static} {method} +Insert (element)()
{static} {method} +Insert (key-value)()
{static} {method} #Repeat Key()
{static} {method} +Size()
{static} {method} +Swap()

}


class "RxnRover.lvlib:Passive Hardware" {
{field} +Valid Messages : Array of String
{static} {method} +Update Data Plot()
{static} {method} +Variant to Instrument State()
{method} +Check Valid Message()
{method} +Control Panel Initialization Message()
{method} +New Parameter Message()
{method} +Start Message()
{method} +Stop Message()
{method} +Subpanel UI()

}
"RxnRover.lvlib:Generic Plugin" <|-- "RxnRover.lvlib:Passive Hardware"


class "RxnRover.lvlib:Pump Controller" {
{field} +Valid Messages : Array of String
{static} {method} +Update Data Plot()
{static} {method} +Variant to Instrument State Cluster()
{method} +Check Valid Message()
{method} +Control Panel Initialization Message()
{method} +New Parameter Message()
{method} +Start Message()
{method} +Stop Message()
{method} +Subpanel UI()

}
"RxnRover.lvlib:Generic Plugin" <|-- "RxnRover.lvlib:Pump Controller"


class "RxnRover.lvlib:Syringe Pump" {
{field} -Valid Messages : Array of String
{static} {method} +Variant to Instrument State Cluster TMP()
{method} +New Parameter Message()
{method} +Subpanel UI()

}
"RxnRover.lvlib:Pump Controller" <|-- "RxnRover.lvlib:Syringe Pump"


class "RxnRover.lvlib:Temperature Controller" {
{field} +Valid Messages : Array of String
{static} {method} +Update Data Plot()
{static} {method} +Variant to Instrument State()
{method} +Check Valid Message()
{method} +Control Panel Initialization Message()
{method} +New Parameter Message()
{method} +Start Message()
{method} +Stop Message()
{method} +Subpanel UI()

}
"RxnRover.lvlib:Generic Plugin" <|-- "RxnRover.lvlib:Temperature Controller"


class "RxnRover.lvlib:User Preferences File" {
{field} +File Name : String
{field} +File Location : Path
{field} +User Preferences : Cluster
{static} {method} +Add Recent Project()
{static} {method} +Clear Recent Experiments()
{static} {method} +Convert Home Directory Tokens()
{static} {method} +Create If File Does Not Exist()
{static} {method} +Default File Name()
{static} {method} +Default File Path()
{static} {method} +DefaultUserSettings Full Path()
{static} {method} +Init()
{static} {method} +Load()
{static} {method} +Save()

}



@enduml

3.2. Controller Array.lvclass

Responsibility: No description found (add content in lvclass description)

Version: 1.0.0.1

3.2.1. Diagram

@startuml
set namespaceSeparator :
skinparam ClassBackgroundColor #FFFFFF
skinparam ClassBorderColor #555555
skinparam ClassFontColor #000000
skinparam ClassHeaderBackgroundColor #808080

skinparam top to bottom direction
class "RxnRover.lvlib:Controller Array" {
{field} +Array : Array of LV Class
{static} {method} +Array Size()
{static} {method} +As Minimal Cluster Array()
{static} {method} +Delete From Array()
{static} {method} +Index Array()
{static} {method} +Insert Into Array()
{static} {method} +Register Controller()
{static} {method} +Replace Subset Array()
{static} {method} +Replace Subset Element()
{static} {method} -Search Array by Controller Type()
{static} {method} -Search Array by Name()
{static} {method} +Search Array()

}

"RxnRover.lvlib:Controller Array" o-- "RxnRover.lvlib:Generic Plugin"


@enduml

3.2.2. Methods

Table 15. Functions (non private scope only)
Name Connector pane Description S. R. I.

Array Size

RxnRover.lvlib:Controller Array.lvclass:Array Size.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

As Minimal Cluster Array

RxnRover.lvlib:Controller Array.lvclass:As Minimal Cluster Array.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Delete From Array

RxnRover.lvlib:Controller Array.lvclass:Delete From Array.vi

Deletes a controller entry from the array, returning the deleted item.

empty.png

empty.png

empty.png

Index Array

RxnRover.lvlib:Controller Array.lvclass:Index Array.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Insert Into Array

RxnRover.lvlib:Controller Array.lvclass:Insert Into Array.vi

Insert an element into the array at the specified index.

empty.png

empty.png

empty.png

Read Array

RxnRover.lvlib:Controller Array.lvclass:Read Array.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Register Controller

RxnRover.lvlib:Controller Array.lvclass:Register Controller.vi

Given a control type and name, load a controller of that name and add it to the end of the controller array.

empty.png

empty.png

empty.png

Replace Subset Array

RxnRover.lvlib:Controller Array.lvclass:Replace Subset Array.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Replace Subset Element

RxnRover.lvlib:Controller Array.lvclass:Replace Subset Element.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Search Array

RxnRover.lvlib:Controller Array.lvclass:Search Array.vi

Search the array of controllers for the specified Searchable Property, using the Search Value by casting it to the type of the Searchable Property. This VI will only return the first occurance. If no element was found, it returns an index of -1 and a generic controller object.

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

3.2.3. Class Constant VIs

Note

No Constant VIs Found

3.3. Generic Optimizer.lvclass

Responsibility: No description found (add content in lvclass description)

Version: 1.0.0.1

3.3.1. Diagram

@startuml
set namespaceSeparator :
skinparam ClassBackgroundColor #FFFFFF
skinparam ClassBorderColor #555555
skinparam ClassFontColor #000000
skinparam ClassHeaderBackgroundColor #808080

skinparam top to bottom direction
class "RxnRover.lvlib:Generic Optimizer" {
{static} {method} +Variant to Optimizer State()
{method} +Control Panel Initialization Message()
{method} +New Parameter Message()
{method} +Start Message()
{method} +Stop Message()
{method} +Valid Resource Message()
{method} +Submit Goal()
{method} +Listening Server Cases()
{method} +Resource from String()
{method} +Resource to String()
{method} +Subpanel UI()
{method} +Check Valid Message()

}
"RxnRover.lvlib:Generic Plugin" <|-- "RxnRover.lvlib:Generic Optimizer"



@enduml

3.3.2. Methods

Table 16. Functions (non private scope only)
Name Connector pane Description S. R. I.

Control Panel Initialization Message

RxnRover.lvlib:Generic Optimizer.lvclass:Control Panel Initialization Message.vi

Method to generate the initial message to send to a Controller’s Control Panel.

empty.png

reentrancy-shared.png

empty.png

New Parameter Message

RxnRover.lvlib:Generic Optimizer.lvclass:New Parameter Message.vi

Dynamic dispatch for each child controller type to provide it’s proper message for setting a new parameter value (setpoint).

empty.png

empty.png

empty.png

Start Message

RxnRover.lvlib:Generic Optimizer.lvclass:Start Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Stop Message

RxnRover.lvlib:Generic Optimizer.lvclass:Stop Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Valid Resource Message

RxnRover.lvlib:Generic Optimizer.lvclass:Valid Resource Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Submit Goal

RxnRover.lvlib:Generic Optimizer.lvclass:Submit Goal.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Listening Server Cases

RxnRover.lvlib:Generic Optimizer.lvclass:Listening Server Cases.vi

Case structure with messages to listen for from the control panel. If more than the basic messages need to be handled, this should be overwritten by the child class.

empty.png

reentrancy-shared.png

empty.png

Resource from String

RxnRover.lvlib:Generic Optimizer.lvclass:Resource from String.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Resource to String

RxnRover.lvlib:Generic Optimizer.lvclass:Resource to String.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Read Valid Messages

RxnRover.lvlib:Generic Optimizer.lvclass:Read Valid Messages.vi

No description found (add content in vi description)

empty.png

reentrancy-shared.png

empty.png

Subpanel UI

RxnRover.lvlib:Generic Optimizer.lvclass:Subpanel UI.vi

Dynamic dispatch VI that must be overridden by all inheriting classes. It is the UI that will be inserted into subpanels so data can be displayed to the user. The class will use an internally managed message queue to communicate to it. The user should only communicate to this UI through class methods.

empty.png

reentrancy-shared.png

empty.png

Check Valid Message

RxnRover.lvlib:Generic Optimizer.lvclass:Check Valid Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Variant to Optimizer State

RxnRover.lvlib:Generic Optimizer.lvclass:Variant to Optimizer State.vi

Converts a variant with attributes into a named cluster representing the optimizer state. If a corresponding variant attribute does not exist, the default value for the named element according to the typedef is used.

empty.png

reentrancy-shared.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

3.3.3. Class Constant VIs

Note

No Constant VIs Found

3.4. Generic Plugin.lvclass

Responsibility: No description found (add content in lvclass description)

Version: 1.0.0.2

3.4.1. Diagram

@startuml
set namespaceSeparator :
skinparam ClassBackgroundColor #FFFFFF
skinparam ClassBorderColor #555555
skinparam ClassFontColor #000000
skinparam ClassHeaderBackgroundColor #808080

skinparam top to bottom direction
class "RxnRover.lvlib:Generic Plugin" {
{field} +Name : String
{field} +Controller Type : Enum U16
{field} -Control Panel : Cluster
{field} -Subpanel : Cluster
{static} {method} +Send Listening Queue()
{static} {method} +Send Log Delimiter Message()
{static} {method} +Send Log Directory Message()
{static} {method} +Send Log on Run Message()
{static} {method} +Send Log Prefix Message()
{static} {method} +Send New Parameter()
{static} {method} +Send Start Message()
{static} {method} +Send Stop Message()
{static} {method} +Wait for Control Panel Exit()
{static} {method} +Wait for Control Panel Start()
{static} {method} +Wait for Message (blocking)()
{static} {method} +Wait for Process Running Event()
{static} {method} +Wait for Valid Resource()
{static} {method} +Panel Running Event()
{static} {method} +Abort Control Panel()
{static} {method} +Control Panel - Close()
{static} {method} +Control Panel - Initialize()
{static} {method} +Internal Message Queue - Close()
{static} {method} +Internal Message Queue - Initialize()
{static} {method} +Listening Server - Initialize()
{static} {method} +Listening Server()
{static} {method} +Stop Control Panel()
{static} {method} +From Minimal Cluster()
{static} {method} +Load Controller Type from Enum()
{static} {method} +Load Controller Type from Path()
{static} {method} #Close Subpanel UI Reference()
{static} {method} +Initialize Subpanel UI()
{static} {method} +Insert Subpanel UI()
{static} {method} #Open Subpanel UI Reference()
{static} {method} +Report to Subpanel()
{static} {method} +Stop Subpanel UI()
{static} {method} +Close VI Reference()
{static} {method} +Close()
{static} {method} +Compare Controller Type()
{static} {method} +Continue Waiting or Abort Dialog()
{static} {method} +Initialize()
{static} {method} +Open Reentrant Class Method VI()
{static} {method} +String to Controller Type()
{method} +Control Panel Initialization Message()
{method} +Log Directory Message()
{method} +Log File Delimiter Message()
{method} +Log on Run Message()
{method} +Log Prefix Message()
{method} +New Parameter Message()
{method} +Start Message()
{method} +Stop Message()
{method} +Valid Resource Message()
{method} +Listening Server - Close()
{method} +Listening Server Cases()
{method} +Open Listening Server Reference()
{method} +Resource from String()
{method} +As Minimal Cluster()
{method} +Subpanel UI()
{method} +Check Valid Message()
{method} +Resource to String()

}



@enduml

3.4.2. Methods

Table 17. Functions (non private scope only)
Name Connector pane Description S. R. I.

Control Panel Initialization Message

RxnRover.lvlib:Generic Plugin.lvclass:Control Panel Initialization Message.vi

Method to generate the initial message to send to a Controller’s Control Panel.

empty.png

reentrancy-shared.png

empty.png

Log Directory Message

RxnRover.lvlib:Generic Plugin.lvclass:Log Directory Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Log File Delimiter Message

RxnRover.lvlib:Generic Plugin.lvclass:Log File Delimiter Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Log on Run Message

RxnRover.lvlib:Generic Plugin.lvclass:Log on Run Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Log Prefix Message

RxnRover.lvlib:Generic Plugin.lvclass:Log Prefix Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

New Parameter Message

RxnRover.lvlib:Generic Plugin.lvclass:New Parameter Message.vi

Dynamic dispatch for each child controller type to provide it’s proper message for setting a new parameter value (setpoint).

empty.png

empty.png

empty.png

Start Message

RxnRover.lvlib:Generic Plugin.lvclass:Start Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Stop Message

RxnRover.lvlib:Generic Plugin.lvclass:Stop Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Valid Resource Message

RxnRover.lvlib:Generic Plugin.lvclass:Valid Resource Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Send Listening Queue

RxnRover.lvlib:Generic Plugin.lvclass:Send Listening Queue.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Send Log Delimiter Message

RxnRover.lvlib:Generic Plugin.lvclass:Send Log Delimiter Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Send Log Directory Message

RxnRover.lvlib:Generic Plugin.lvclass:Send Log Directory Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Send Log on Run Message

RxnRover.lvlib:Generic Plugin.lvclass:Send Log on Run Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Send Log Prefix Message

RxnRover.lvlib:Generic Plugin.lvclass:Send Log Prefix Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Send New Parameter

RxnRover.lvlib:Generic Plugin.lvclass:Send New Parameter.vi

Sends the new set of parameters to the associated plugin.

empty.png

empty.png

empty.png

Send Start Message

RxnRover.lvlib:Generic Plugin.lvclass:Send Start Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Send Stop Message

RxnRover.lvlib:Generic Plugin.lvclass:Send Stop Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Wait for Control Panel Exit

RxnRover.lvlib:Generic Plugin.lvclass:Wait for Control Panel Exit.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Wait for Control Panel Start

RxnRover.lvlib:Generic Plugin.lvclass:Wait for Control Panel Start.vi

Wait for a message indicating that the control panel has started, or timeout if a value is given for the wait time.

empty.png

empty.png

empty.png

Wait for Message (blocking)

RxnRover.lvlib:Generic Plugin.lvclass:Wait for Message (blocking).vi

Waits for a message with the specified command, ignoring all other messages. This is a blocking VI. This VI can be given a timeout value (-1 for no timeout) so it only blocks for a set amount of time. If no message is received, the message "Timeout" with no data will be returned.

empty.png

empty.png

empty.png

Wait for Process Running Event

RxnRover.lvlib:Generic Plugin.lvclass:Wait for Process Running Event.vi

Waits for a message with the specified command, ignoring all other messages. This is a blocking VI.

empty.png

empty.png

empty.png

Wait for Valid Resource

RxnRover.lvlib:Generic Plugin.lvclass:Wait for Valid Resource.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Read Control Panel Message Queue

RxnRover.lvlib:Generic Plugin.lvclass:Read Control Panel Message Queue.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Read Control Panel Path

RxnRover.lvlib:Generic Plugin.lvclass:Read Control Panel Path.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Read Control Panel Reference

RxnRover.lvlib:Generic Plugin.lvclass:Read Control Panel Reference.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Read Internal Message Queue

RxnRover.lvlib:Generic Plugin.lvclass:Read Internal Message Queue.vi

No description found (add content in vi description)

scope-protected.png

reentrancy-preallocated.png

inlined.png

Read Listening Queue

RxnRover.lvlib:Generic Plugin.lvclass:Read Listening Queue.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Read Resource

RxnRover.lvlib:Generic Plugin.lvclass:Read Resource.vi

No description found (add content in vi description)

empty.png

reentrancy-shared.png

empty.png

Write Control Panel Message Queue

RxnRover.lvlib:Generic Plugin.lvclass:Write Control Panel Message Queue.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Write Control Panel Path

RxnRover.lvlib:Generic Plugin.lvclass:Write Control Panel Path.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Write Control Panel Reference

RxnRover.lvlib:Generic Plugin.lvclass:Write Control Panel Reference.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Write Internal Message Queue

RxnRover.lvlib:Generic Plugin.lvclass:Write Internal Message Queue.vi

Assigns a message queue as the new Internal Message Queue used for internal communications in the Controller object.

scope-protected.png

reentrancy-preallocated.png

inlined.png

Write Listening Queue

RxnRover.lvlib:Generic Plugin.lvclass:Write Listening Queue.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Write Resource

RxnRover.lvlib:Generic Plugin.lvclass:Write Resource.vi

No description found (add content in vi description)

empty.png

reentrancy-shared.png

empty.png

Panel Running Event

RxnRover.lvlib:Generic Plugin.lvclass:Panel Running Event.vi

Event raised when a control panel starts (value = True) or stops (value = False).

empty.png

empty.png

empty.png

Abort Control Panel

RxnRover.lvlib:Generic Plugin.lvclass:Abort Control Panel.vi

Aborts the control panel immediately. This may leave any hardware or software the plugin was controlling in an unexpected state!

empty.png

empty.png

empty.png

Control Panel - Close

RxnRover.lvlib:Generic Plugin.lvclass:Control Panel - Close.vi

Initialize the Control Panel at the provided controller path. Forwards a stop message to the control panel process to signal that it should end.

empty.png

empty.png

empty.png

Control Panel - Initialize

RxnRover.lvlib:Generic Plugin.lvclass:Control Panel - Initialize.vi

Initialize the Control Panel at the provided controller path. Waits for the initial "Process Start" message, where the controller type the control panel reports must match that of the instantiated controller object, or an error is thrown.

empty.png

empty.png

empty.png

Internal Message Queue - Close

RxnRover.lvlib:Generic Plugin.lvclass:Internal Message Queue - Close.vi

Close the internal message queue of the plugin server.

empty.png

empty.png

empty.png

Internal Message Queue - Initialize

RxnRover.lvlib:Generic Plugin.lvclass:Internal Message Queue - Initialize.vi

Initializes the internal message queue.

empty.png

empty.png

empty.png

Listening Server - Close

RxnRover.lvlib:Generic Plugin.lvclass:Listening Server - Close.vi

Closes the listening server VI reference and clears the corresponding class attribute.

empty.png

empty.png

empty.png

Listening Server - Initialize

RxnRover.lvlib:Generic Plugin.lvclass:Listening Server - Initialize.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Listening Server Cases

RxnRover.lvlib:Generic Plugin.lvclass:Listening Server Cases.vi

Case structure with messages to listen for from the control panel. If more than the basic messages need to be handled, this should be overwritten by the child class.

empty.png

reentrancy-shared.png

empty.png

Listening Server

RxnRover.lvlib:Generic Plugin.lvclass:Listening Server.vi

Listening server VI that will listen to the assigned Receiving Queue of the object, which is receiving messages from a plugin. The Listening Server Cases VI should be overridden and updated to properly respond to messages from a plugin.

empty.png

reentrancy-shared.png

empty.png

Open Listening Server Reference

RxnRover.lvlib:Generic Plugin.lvclass:Open Listening Server Reference.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Resource from String

RxnRover.lvlib:Generic Plugin.lvclass:Resource from String.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Stop Control Panel

RxnRover.lvlib:Generic Plugin.lvclass:Stop Control Panel.vi

Sends the "Exit" command to the associated control panel. By default, this VI blocks until the "Process Exit" command is received from the control panel.

empty.png

empty.png

empty.png

Read Controller Type

RxnRover.lvlib:Generic Plugin.lvclass:Read Controller Type.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Read Name

RxnRover.lvlib:Generic Plugin.lvclass:Read Name.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Read Sending Queue

RxnRover.lvlib:Generic Plugin.lvclass:Read Sending Queue.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Read Subpanel Listening Queue

RxnRover.lvlib:Generic Plugin.lvclass:Read Subpanel Listening Queue.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Read Valid Messages

RxnRover.lvlib:Generic Plugin.lvclass:Read Valid Messages.vi

No description found (add content in vi description)

empty.png

reentrancy-shared.png

empty.png

Write Controller Type

RxnRover.lvlib:Generic Plugin.lvclass:Write Controller Type.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Write Name

RxnRover.lvlib:Generic Plugin.lvclass:Write Name.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Write Sending Queue

RxnRover.lvlib:Generic Plugin.lvclass:Write Sending Queue.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

As Minimal Cluster

RxnRover.lvlib:Generic Plugin.lvclass:As Minimal Cluster.vi

Get a minimal cluster representation of the plugin.

empty.png

empty.png

empty.png

From Minimal Cluster

RxnRover.lvlib:Generic Plugin.lvclass:From Minimal Cluster.vi

Creates a new plugin server instance from the details in a minimal cluster.

empty.png

empty.png

empty.png

Load Controller Type from Enum

RxnRover.lvlib:Generic Plugin.lvclass:Load Controller Type from Enum.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Load Controller Type from Path

RxnRover.lvlib:Generic Plugin.lvclass:Load Controller Type from Path.vi

Loads the plugin server class from the provided path. This should be an absolute path in the development environment and a relative path for standalone applications.

empty.png

empty.png

empty.png

Read Subpanel Message Queue

RxnRover.lvlib:Generic Plugin.lvclass:Read Subpanel Message Queue.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Read Subpanel UI Reference

RxnRover.lvlib:Generic Plugin.lvclass:Read Subpanel UI Reference.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Write Subpanel Message Queue

RxnRover.lvlib:Generic Plugin.lvclass:Write Subpanel Message Queue.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Write Subpanel Name

RxnRover.lvlib:Generic Plugin.lvclass:Write Subpanel Name.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Close Subpanel UI Reference

RxnRover.lvlib:Generic Plugin.lvclass:Close Subpanel UI Reference.vi

Closes the subpanel UI VI reference and clears the corresponding class attribute.

scope-protected.png

empty.png

empty.png

Initialize Subpanel UI

RxnRover.lvlib:Generic Plugin.lvclass:Initialize Subpanel UI.vi

Initialize the subpanel UI VI reference and message queue inside the class, also giving the subpanel UI the correct message queue for further communication.

empty.png

empty.png

empty.png

Insert Subpanel UI

RxnRover.lvlib:Generic Plugin.lvclass:Insert Subpanel UI.vi

Insert the Subpanel UI of the controller into the provided subpanel. The subpanel MUST have been initialized before calling this!

empty.png

empty.png

empty.png

Open Subpanel UI Reference

RxnRover.lvlib:Generic Plugin.lvclass:Open Subpanel UI Reference.vi

Get a reference for the Subpanel UI.vi of the controller.

scope-protected.png

empty.png

empty.png

Report to Subpanel

RxnRover.lvlib:Generic Plugin.lvclass:Report to Subpanel.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Stop Subpanel UI

RxnRover.lvlib:Generic Plugin.lvclass:Stop Subpanel UI.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Subpanel UI

RxnRover.lvlib:Generic Plugin.lvclass:Subpanel UI.vi

Dynamic dispatch VI that must be overridden by all inheriting classes. It is the UI that will be inserted into subpanels so data can be displayed to the user. The class will use an internally managed message queue to communicate to it. The user should only communicate to this UI through class methods.

empty.png

reentrancy-shared.png

empty.png

Check Valid Message

RxnRover.lvlib:Generic Plugin.lvclass:Check Valid Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Close VI Reference

RxnRover.lvlib:Generic Plugin.lvclass:Close VI Reference.vi

Closes a VI reference. This VI is intented to work both in the development environment and in stand-alone programs.

empty.png

empty.png

empty.png

Close

RxnRover.lvlib:Generic Plugin.lvclass:Close.vi

Shuts down the plugin server, destroying references and queues it generated. This will not destroy externally set references and queues.

empty.png

empty.png

empty.png

Compare Controller Type

RxnRover.lvlib:Generic Plugin.lvclass:Compare Controller Type.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Continue Waiting or Abort Dialog

RxnRover.lvlib:Generic Plugin.lvclass:Continue Waiting or Abort Dialog.vi

Open a dialog asking whether to continue waiting or abort the plugin.

empty.png

empty.png

empty.png

Initialize

RxnRover.lvlib:Generic Plugin.lvclass:Initialize.vi

Initializes the internals of the plugin server.

empty.png

empty.png

empty.png

Open Reentrant Class Method VI

RxnRover.lvlib:Generic Plugin.lvclass:Open Reentrant Class Method VI.vi

Opens a class method VI reference for reentrant execution. This VI is intented to work both in the development environment and in stand-alone programs.

empty.png

empty.png

empty.png

Resource to String

RxnRover.lvlib:Generic Plugin.lvclass:Resource to String.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

String to Controller Type

RxnRover.lvlib:Generic Plugin.lvclass:String to Controller Type.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

3.4.3. Class Constant VIs

Note

No Constant VIs Found

3.5. LC Parser.lvclass

Responsibility: No description found (add content in lvclass description)

Version: 1.0.0.0

3.5.1. Diagram

@startuml
set namespaceSeparator :
skinparam ClassBackgroundColor #FFFFFF
skinparam ClassBorderColor #555555
skinparam ClassFontColor #000000
skinparam ClassHeaderBackgroundColor #808080

skinparam top to bottom direction
class "RxnRover.lvlib:LC Parser" {
{static} {method} +Variant to Analyzer State()
{method} +Check Valid Message()
{method} +Control Panel Initialization Message()
{method} +Listening Server Cases()
{method} +New Parameter Message()
{method} +Resource from String()
{method} +Resource to String()
{method} +Start Message()
{method} +Stop Message()
{method} +Subpanel UI()
{method} +Valid Resource Message()

}
"RxnRover.lvlib:Generic Plugin" <|-- "RxnRover.lvlib:LC Parser"



@enduml

3.5.2. Methods

Table 18. Functions (non private scope only)
Name Connector pane Description S. R. I.

Check Valid Message

RxnRover.lvlib:LC Parser.lvclass:Check Valid Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Control Panel Initialization Message

RxnRover.lvlib:LC Parser.lvclass:Control Panel Initialization Message.vi

Method to generate the initial message to send to a Controller’s Control Panel.

empty.png

reentrancy-shared.png

empty.png

Listening Server Cases

RxnRover.lvlib:LC Parser.lvclass:Listening Server Cases.vi

Case structure with messages to listen for from the control panel. If more than the basic messages need to be handled, this should be overwritten by the child class.

empty.png

reentrancy-shared.png

empty.png

New Parameter Message

RxnRover.lvlib:LC Parser.lvclass:New Parameter Message.vi

Dynamic dispatch for each child controller type to provide it’s proper message for setting a new parameter value (setpoint).

empty.png

empty.png

empty.png

Read Valid Messages

RxnRover.lvlib:LC Parser.lvclass:Read Valid Messages.vi

No description found (add content in vi description)

empty.png

reentrancy-shared.png

empty.png

Resource from String

RxnRover.lvlib:LC Parser.lvclass:Resource from String.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Resource to String

RxnRover.lvlib:LC Parser.lvclass:Resource to String.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Start Message

RxnRover.lvlib:LC Parser.lvclass:Start Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Stop Message

RxnRover.lvlib:LC Parser.lvclass:Stop Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Subpanel UI

RxnRover.lvlib:LC Parser.lvclass:Subpanel UI.vi

Dynamic dispatch VI that must be overridden by all inheriting classes. It is the UI that will be inserted into subpanels so data can be displayed to the user. The class will use an internally managed message queue to communicate to it. The user should only communicate to this UI through class methods.

empty.png

reentrancy-shared.png

empty.png

Valid Resource Message

RxnRover.lvlib:LC Parser.lvclass:Valid Resource Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Variant to Analyzer State

RxnRover.lvlib:LC Parser.lvclass:Variant to Analyzer State.vi

Converts a variant with attributes into a named cluster representing the analyzer state. If a corresponding variant attribute does not exist, the default value for the named element according to the typedef is used.

empty.png

reentrancy-shared.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

3.5.3. Class Constant VIs

Note

No Constant VIs Found

3.6. Parameter to Hardware Map.lvclass

Responsibility: Unordered map structure containing a list of key-value pairs associating a unique parameter name (key) with a hardware object (value).

Version: 1.0.0.0

3.6.1. Diagram

@startuml
set namespaceSeparator :
skinparam ClassBackgroundColor #FFFFFF
skinparam ClassBorderColor #555555
skinparam ClassFontColor #000000
skinparam ClassHeaderBackgroundColor #808080

skinparam top to bottom direction
class "RxnRover.lvlib:Parameter to Hardware Map" {
{field} #unordered_map : Array of Cluster
{static} {method} +As Minimal Cluster()
{static} {method} +Clear()
{static} {method} +Empty()
{static} {method} +Equals()
{static} {method} +Erase (array)()
{static} {method} #Erase (index)()
{static} {method} +Erase (single)()
{static} {method} +Find (array)()
{static} {method} +Find (single)()
{static} {method} #Find Index (single)()
{static} {method} +Insert (array)()
{static} {method} +Insert (element)()
{static} {method} +Insert (key-value)()
{static} {method} #Repeat Key()
{static} {method} +Size()
{static} {method} +Swap()

}



@enduml

3.6.2. Methods

Table 19. Functions (non private scope only)
Name Connector pane Description S. R. I.

As Minimal Cluster

RxnRover.lvlib:Parameter to Hardware Map.lvclass:As Minimal Cluster.vi

Returns a minimal representation of the entire map using only serializable data types (mostly strings, arrays, and clusters)

empty.png

empty.png

empty.png

Clear

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Clear.vi

Remove all elements from the map, resulting in a size of 0.

empty.png

empty.png

empty.png

Empty

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Empty.vi

Test if the container is empty.

empty.png

empty.png

empty.png

Equals

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Equals.vi

Test if two maps are equal. Item order is not considered. Maps are considered equal if all elements of map_1 are included in map_2 and all elements of map_2 are included in map_1.

empty.png

empty.png

empty.png

Erase (array)

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Erase (array).vi

Removes all elements from the map specified in the array of keys.

empty.png

empty.png

empty.png

Erase (index)

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Erase (index).vi

Removes the element from the map specified by the given index.

scope-protected.png

empty.png

empty.png

Erase (single)

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Erase (single).vi

Removes the element from the map specified by the given key.

empty.png

empty.png

empty.png

Find (array)

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Find (array).vi

Find the elements from the map matching the given keys. A parallel boolean array is provided, where each entry indicates whether the key-value pair in the corresponding Key-Value Pairs output array position was found.s

empty.png

empty.png

empty.png

Find (single)

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Find (single).vi

Find the element from the map matching the given key.

empty.png

empty.png

empty.png

Find Index (single)

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Find Index (single).vi

Return the index from the map specified by the given key.

scope-protected.png

empty.png

empty.png

Insert (array)

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Insert (array).vi

Insert the given key-value pairs into the map.

empty.png

empty.png

empty.png

Insert (element)

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Insert (element).vi

Insert the given key-value pair into the map.

empty.png

empty.png

empty.png

Insert (key-value)

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Insert (key-value).vi

Create and insert a key-value pair into the map using the given key and value.

empty.png

empty.png

empty.png

Read keys

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Read keys.vi

Returns the underlying unordered_map array.

empty.png

reentrancy-preallocated.png

empty.png

Read unordered_map

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Read unordered_map.vi

Returns the underlying unordered_map array.

scope-protected.png

reentrancy-preallocated.png

inlined.png

Repeat Key

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Repeat Key.vi

Checks if the given key is a repeat of one in the map

scope-protected.png

empty.png

empty.png

Size

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Size.vi

Return the size of the map.

empty.png

empty.png

empty.png

Swap

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Swap.vi

Swaps the elements of one Parameter to Hardware Map with another.

empty.png

empty.png

empty.png

Write unordered_map

RxnRover.lvlib:Parameter to Hardware Map.lvclass:Write unordered_map.vi

Overwrites the underlying unordered_map array.

scope-protected.png

reentrancy-preallocated.png

inlined.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

3.6.3. Class Constant VIs

Note

No Constant VIs Found

3.7. Passive Hardware.lvclass

Responsibility: Passive Hardware class which is a Controller Type within RxnRover, and is used to support passive instrument integration. Passive Hardware typically operates in a read-only or passive capacity and requires minimal interaction with RxnRover itself. An example of a passive-hardware device in the context of RxnRover is a pH probe, or other sensors.

Version: 1.0.0.1

3.7.1. Diagram

@startuml
set namespaceSeparator :
skinparam ClassBackgroundColor #FFFFFF
skinparam ClassBorderColor #555555
skinparam ClassFontColor #000000
skinparam ClassHeaderBackgroundColor #808080

skinparam top to bottom direction
class "RxnRover.lvlib:Passive Hardware" {
{field} +Valid Messages : Array of String
{static} {method} +Update Data Plot()
{static} {method} +Variant to Instrument State()
{method} +Check Valid Message()
{method} +Control Panel Initialization Message()
{method} +New Parameter Message()
{method} +Start Message()
{method} +Stop Message()
{method} +Subpanel UI()

}
"RxnRover.lvlib:Generic Plugin" <|-- "RxnRover.lvlib:Passive Hardware"



@enduml

3.7.2. Methods

Table 20. Functions (non private scope only)
Name Connector pane Description S. R. I.

Check Valid Message

RxnRover.lvlib:Passive Hardware.lvclass:Check Valid Message.vi

Checks if a message recieved from a Passive-Hardware instrument is valid by comparing it to a list of valid messages.

empty.png

empty.png

empty.png

Control Panel Initialization Message

RxnRover.lvlib:Passive Hardware.lvclass:Control Panel Initialization Message.vi

Method to generate the initial message to send to a Controller’s Control Panel.

empty.png

reentrancy-shared.png

empty.png

New Parameter Message

RxnRover.lvlib:Passive Hardware.lvclass:New Parameter Message.vi

Dynamic dispatch for each child controller type to provide it’s proper message for setting a new parameter value (setpoint).

empty.png

empty.png

empty.png

Read Valid Messages

RxnRover.lvlib:Passive Hardware.lvclass:Read Valid Messages.vi

Reads the list of valid messages

empty.png

reentrancy-shared.png

empty.png

Start Message

RxnRover.lvlib:Passive Hardware.lvclass:Start Message.vi

Returns the message which will notify RxnRover to start collecting data from a Passive-Instrument. Message is not sent in this VI just created.

empty.png

empty.png

empty.png

Stop Message

RxnRover.lvlib:Passive Hardware.lvclass:Stop Message.vi

Returns the stop message to tell RxnRover to stop collecting data from a Passive-Hardware instrument. Does not send the message just creates it to be sent later.

empty.png

empty.png

empty.png

Subpanel UI

RxnRover.lvlib:Passive Hardware.lvclass:Subpanel UI.vi

Dynamic dispatch VI that must be overridden by all inheriting classes. It is the UI that will be inserted into subpanels so data can be displayed to the user. The class will use an internally managed message queue to communicate to it. The user should only communicate to this UI through class methods.

empty.png

reentrancy-shared.png

empty.png

Update Data Plot

RxnRover.lvlib:Passive Hardware.lvclass:Update Data Plot.vi

Updates the data plot from data collected from a Passive-Hardware instrument in given time intervals.

empty.png

empty.png

empty.png

Variant to Instrument State

RxnRover.lvlib:Passive Hardware.lvclass:Variant to Instrument State.vi

Converts the instrument state messages sent from the plugin to the internal state managed by RxnRover’s plugin server.

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

3.7.3. Class Constant VIs

Note

No Constant VIs Found

3.8. Pump Controller.lvclass

Responsibility: No description found (add content in lvclass description)

Version: 1.0.0.0

3.8.1. Diagram

@startuml
set namespaceSeparator :
skinparam ClassBackgroundColor #FFFFFF
skinparam ClassBorderColor #555555
skinparam ClassFontColor #000000
skinparam ClassHeaderBackgroundColor #808080

skinparam top to bottom direction
class "RxnRover.lvlib:Pump Controller" {
{field} +Valid Messages : Array of String
{static} {method} +Update Data Plot()
{static} {method} +Variant to Instrument State Cluster()
{method} +Check Valid Message()
{method} +Control Panel Initialization Message()
{method} +New Parameter Message()
{method} +Start Message()
{method} +Stop Message()
{method} +Subpanel UI()

}
"RxnRover.lvlib:Generic Plugin" <|-- "RxnRover.lvlib:Pump Controller"



@enduml

3.8.2. Methods

Table 21. Functions (non private scope only)
Name Connector pane Description S. R. I.

Check Valid Message

RxnRover.lvlib:Pump Controller.lvclass:Check Valid Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Control Panel Initialization Message

RxnRover.lvlib:Pump Controller.lvclass:Control Panel Initialization Message.vi

Generate the initial message to send to the Pump Controller Control Panel.

empty.png

reentrancy-shared.png

empty.png

New Parameter Message

RxnRover.lvlib:Pump Controller.lvclass:New Parameter Message.vi

Dynamic dispatch for each child controller type to provide it’s proper message for setting a new parameter value (setpoint).

empty.png

empty.png

empty.png

Read Valid Messages

RxnRover.lvlib:Pump Controller.lvclass:Read Valid Messages.vi

No description found (add content in vi description)

empty.png

reentrancy-shared.png

empty.png

Start Message

RxnRover.lvlib:Pump Controller.lvclass:Start Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Stop Message

RxnRover.lvlib:Pump Controller.lvclass:Stop Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Subpanel UI

RxnRover.lvlib:Pump Controller.lvclass:Subpanel UI.vi

The UI that will be inserted into subpanels so data can be displayed to the user. The class will use an internally managed message queue to communicate to it. The user should only communicate to this UI through class methods.

empty.png

reentrancy-shared.png

empty.png

Update Data Plot

RxnRover.lvlib:Pump Controller.lvclass:Update Data Plot.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Variant to Instrument State Cluster

RxnRover.lvlib:Pump Controller.lvclass:Variant to Instrument State Cluster.vi

Converts a variant with attributes into a named cluster representing the instrument state. If a corresponding variant attribute does not exist, the default value for the named element according to the typedef is used.

empty.png

reentrancy-shared.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

3.8.3. Class Constant VIs

Note

No Constant VIs Found

3.9. Syringe Pump.lvclass

Responsibility: No description found (add content in lvclass description)

Version: 1.0.0.1

3.9.1. Diagram

@startuml
set namespaceSeparator :
skinparam ClassBackgroundColor #FFFFFF
skinparam ClassBorderColor #555555
skinparam ClassFontColor #000000
skinparam ClassHeaderBackgroundColor #808080

skinparam top to bottom direction
class "RxnRover.lvlib:Syringe Pump" {
{field} -Valid Messages : Array of String
{static} {method} +Variant to Instrument State Cluster TMP()
{method} +New Parameter Message()
{method} +Subpanel UI()

}
"RxnRover.lvlib:Pump Controller" <|-- "RxnRover.lvlib:Syringe Pump"



@enduml

3.9.2. Methods

Table 22. Functions (non private scope only)
Name Connector pane Description S. R. I.

New Parameter Message

RxnRover.lvlib:Syringe Pump.lvclass:New Parameter Message.vi

Dynamic dispatch for each child controller type to provide it’s proper message for setting a new parameter value (setpoint).

empty.png

empty.png

empty.png

Subpanel UI

RxnRover.lvlib:Syringe Pump.lvclass:Subpanel UI.vi

The UI that will be inserted into subpanels so data can be displayed to the user. The class will use an internally managed message queue to communicate to it. The user should only communicate to this UI through class methods.

empty.png

reentrancy-shared.png

empty.png

Variant to Instrument State Cluster TMP

RxnRover.lvlib:Syringe Pump.lvclass:Variant to Instrument State Cluster TMP.vi

Converts a variant with attributes into a named cluster representing the instrument state. If a corresponding variant attribute does not exist, the default value for the named element according to the typedef is used.

empty.png

reentrancy-shared.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

3.9.3. Class Constant VIs

Note

No Constant VIs Found

3.10. Temperature Controller.lvclass

Responsibility: No description found (add content in lvclass description)

Version: 1.0.0.0

3.10.1. Diagram

@startuml
set namespaceSeparator :
skinparam ClassBackgroundColor #FFFFFF
skinparam ClassBorderColor #555555
skinparam ClassFontColor #000000
skinparam ClassHeaderBackgroundColor #808080

skinparam top to bottom direction
class "RxnRover.lvlib:Temperature Controller" {
{field} +Valid Messages : Array of String
{static} {method} +Update Data Plot()
{static} {method} +Variant to Instrument State()
{method} +Check Valid Message()
{method} +Control Panel Initialization Message()
{method} +New Parameter Message()
{method} +Start Message()
{method} +Stop Message()
{method} +Subpanel UI()

}
"RxnRover.lvlib:Generic Plugin" <|-- "RxnRover.lvlib:Temperature Controller"



@enduml

3.10.2. Methods

Table 23. Functions (non private scope only)
Name Connector pane Description S. R. I.

Check Valid Message

RxnRover.lvlib:Temperature Controller.lvclass:Check Valid Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Control Panel Initialization Message

RxnRover.lvlib:Temperature Controller.lvclass:Control Panel Initialization Message.vi

Generate the initial message to send to the Temperature Controller Control Panel.

empty.png

reentrancy-shared.png

empty.png

New Parameter Message

RxnRover.lvlib:Temperature Controller.lvclass:New Parameter Message.vi

Dynamic dispatch for each child controller type to provide it’s proper message for setting a new parameter value (setpoint).

empty.png

empty.png

empty.png

Read Valid Messages

RxnRover.lvlib:Temperature Controller.lvclass:Read Valid Messages.vi

No description found (add content in vi description)

empty.png

reentrancy-shared.png

empty.png

Start Message

RxnRover.lvlib:Temperature Controller.lvclass:Start Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Stop Message

RxnRover.lvlib:Temperature Controller.lvclass:Stop Message.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Subpanel UI

RxnRover.lvlib:Temperature Controller.lvclass:Subpanel UI.vi

Data display subpanel associated with the Temperature Controller class.

empty.png

reentrancy-shared.png

empty.png

Update Data Plot

RxnRover.lvlib:Temperature Controller.lvclass:Update Data Plot.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Variant to Instrument State

RxnRover.lvlib:Temperature Controller.lvclass:Variant to Instrument State.vi

Converts a variant with attributes into a named cluster representing the instrument state. If a corresponding variant attribute does not exist, the default value for the named element according to the typedef is used.

empty.png

reentrancy-shared.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

3.10.3. Class Constant VIs

Note

No Constant VIs Found

3.11. User Preferences File.lvclass

Responsibility: No description found (add content in lvclass description)

Version: 1.0.0.0

3.11.1. Diagram

@startuml
set namespaceSeparator :
skinparam ClassBackgroundColor #FFFFFF
skinparam ClassBorderColor #555555
skinparam ClassFontColor #000000
skinparam ClassHeaderBackgroundColor #808080

skinparam top to bottom direction
class "RxnRover.lvlib:User Preferences File" {
{field} +File Name : String
{field} +File Location : Path
{field} +User Preferences : Cluster
{static} {method} +Add Recent Project()
{static} {method} +Clear Recent Experiments()
{static} {method} +Convert Home Directory Tokens()
{static} {method} +Create If File Does Not Exist()
{static} {method} +Default File Name()
{static} {method} +Default File Path()
{static} {method} +DefaultUserSettings Full Path()
{static} {method} +Init()
{static} {method} +Load()
{static} {method} +Save()

}



@enduml

3.11.2. Methods

Table 24. Functions (non private scope only)
Name Connector pane Description S. R. I.

Add Recent Project

RxnRover.lvlib:User Preferences File.lvclass:Add Recent Project.vi

Adds a new path to the Recent Experiments list. This Recent Experiment list is kept in chronological order, so the newly added Recent Experiment will always be at the top. If the new experiment already exists, the old entry is removed and the new entry is placed at the top of the Recent Experiments list.

empty.png

empty.png

empty.png

Clear Recent Experiments

RxnRover.lvlib:User Preferences File.lvclass:Clear Recent Experiments.vi

Clears all entries in the Recent Experiments list.

empty.png

empty.png

empty.png

Convert Home Directory Tokens

RxnRover.lvlib:User Preferences File.lvclass:Convert Home Directory Tokens.vi

Checks if a recognized home directory token was given and provides the home directory path using the built-in Get System Directory VI for the User Home directory. This VI will not create the directory if it does not exist and will not modify the given input token path if a valid token is not found.

empty.png

empty.png

empty.png

Create If File Does Not Exist

RxnRover.lvlib:User Preferences File.lvclass:Create If File Does Not Exist.vi

Creates the user preferences file with default values if it does not exist. The Init VI or custom values for file name and location must be set before running this VI.

empty.png

empty.png

empty.png

Default File Name

RxnRover.lvlib:User Preferences File.lvclass:Default File Name.vi

Gets the default Rxn Rover user preferences file name based on the current operating system. The operating system name is read from OS.Name on a Application property node.

empty.png

empty.png

empty.png

Default File Path

RxnRover.lvlib:User Preferences File.lvclass:Default File Path.vi

Gets the default directory to store the user preferences file based on the current operating system. The operating system name is read from OS.Name on a Application property node.

empty.png

empty.png

empty.png

DefaultUserSettings Full Path

RxnRover.lvlib:User Preferences File.lvclass:DefaultUserSettings Full Path.vi

Location of the DefaultUserSettings.ini configuration file.

empty.png

empty.png

empty.png

Init

RxnRover.lvlib:User Preferences File.lvclass:Init.vi

Initialize the file manager with default file names and locations for the given operating system. This VI does not create the file or load it.

empty.png

empty.png

empty.png

Load

RxnRover.lvlib:User Preferences File.lvclass:Load.vi

Load the preferences file from disk into memory. The loaded file can be accessed through the appropriate accessor members. The initialization member VI should be executed before this VI is run.

empty.png

empty.png

empty.png

Read File Location

RxnRover.lvlib:User Preferences File.lvclass:Read File Location.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Read File Name

RxnRover.lvlib:User Preferences File.lvclass:Read File Name.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Read User Preferences

RxnRover.lvlib:User Preferences File.lvclass:Read User Preferences.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Save

RxnRover.lvlib:User Preferences File.lvclass:Save.vi

Format the User Preferences file as a readable JSON file and write it to disk.

empty.png

empty.png

empty.png

Write File Location

RxnRover.lvlib:User Preferences File.lvclass:Write File Location.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Write File Name

RxnRover.lvlib:User Preferences File.lvclass:Write File Name.vi

No description found (add content in vi description)

empty.png

reentrancy-preallocated.png

inlined.png

Write User Preferences

RxnRover.lvlib:User Preferences File.lvclass:Write User Preferences.vi

No description found (add content in vi description)

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

3.11.3. Class Constant VIs

Note

No Constant VIs Found

4.1. Document creation

This document has been generated using the following tools.

4.1.1. Antidoc

Project website: Antidoc

Maintainer website: Wovalab

BSD 3-Clause License

Copyright © 2019-2025, Wovalab, All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

4.1.2. Asciidoc for LabVIEW™

Project website: Asciidoc toolkit

Maintainer website: Wovalab

BSD 3-Clause License

Copyright © 2019-2025, Wovalab, All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

4.1.3. classy Diagram Viewer

Project website: classy Diagram Viewer

BSD 3-Clause License

Copyright © 2021, Tatiana Boyé All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

4.2. Product used in the project

Antidoc hasn’t been able to detect third party products in the project. This is the author’s responsibility to list any of the missing product used.