API Documentation
Rxn Rover Documentation
- 1. Project description
- 2. Libraries
- 3. Classes
- 3.1. Classes overview
- 3.2. Controller Array.lvclass
- 3.3. Generic Optimizer.lvclass
- 3.4. Generic Plugin.lvclass
- 3.5. LC Parser.lvclass
- 3.6. Parameter to Hardware Map.lvclass
- 3.7. Passive Hardware.lvclass
- 3.8. Pump Controller.lvclass
- 3.9. Syringe Pump.lvclass
- 3.10. Temperature Controller.lvclass
- 3.11. User Preferences File.lvclass
- 4. Legal Information
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
Name | Type |
---|---|
LVClass |
|
LVClass |
|
LVClass |
|
LVClass |
|
LVClass |
|
LVClass |
|
LVClass |
|
LVClass |
|
LVClass |
|
LVClass |
|
Library |
|
Library |
|
Library |
|
Library |
|
Library |
|
Library |
|
Library |
|
Library |
|
Library |
2.2.1. Functions
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
Hardware Subpanels |
No description found (add content in vi description) |
||||
Ready Status |
Sets the status indicator to display a "Ready" status. |
||||
Remove Control Panel |
No description found (add content in vi description) |
||||
Remove Entry |
No description found (add content in vi description) |
||||
Set Unsaved Changes in Title |
Update the Reaction Rover window title to have an asterisk (*) after the project file location, indicating that there are unsaved changes to the project. |
||||
Update Status Event |
No description found (add content in vi description) |
||||
Update Status |
Updates the status indicator with new text. |
||||
Update VI List |
Fires the Update VI List Event with the provided Controller Array. |
||||
Update Window Title |
Updates the window title with the correct experiment name and path. |
||||
Generate New Log Path Event |
Update the directory logs will be written to. |
||||
Hardware List Updated |
Fires the Update VI List Event with the provided Controller Array. |
||||
Hardware Updated Event |
No description found (add content in vi description) |
||||
Message Received Event |
No description found (add content in vi description) |
||||
New Hardware Selected Event |
No description found (add content in vi description) |
||||
New Hardware Selected |
Fires the Update VI List Event with the provided Controller Array. |
||||
New Log Path Event |
Event containing a new location to output log files. |
||||
New Parameters Event |
This event is fired when a new set of parameters is received from a reactor control plugin. |
||||
New Yield Event |
No description found (add content in vi description) |
||||
Process Stopped Event |
No description found (add content in vi description) |
||||
Stop Event |
Effectively provides a singleton "Stop" event instance. The event instance is created on the first call and returned on all subsequent calls. |
||||
Submit Goal Event |
Event containing the new result value. |
||||
VI List Event |
No description found (add content in vi description) |
||||
Initialize Analyzer from Experiment Cluster |
No description found (add content in vi description) |
||||
Initialize Hardware from Experiment Cluster |
Initialize reactor component plugins from the experiment file plugin list. |
||||
Initialize Optimizer from Experiment Cluster |
Attempt to load optimizer plugins from the given experiment file. |
||||
Initialize Parameter to Hardware Map from Experiment Cluster |
No description found (add content in vi description) |
||||
Load Details and Filter Plugins |
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. |
||||
Add Analyzer |
Adds a new analyzer plugin to the process cache. |
||||
Add Hardware |
Adds the reactor component plugin to the plugin list. |
||||
Add Optimizer |
Adds a new optimizer plugin to the process cache. |
||||
Assign Parameters to Hardware Dialog |
No description found (add content in vi description) |
||||
Initialize Plugin |
Initialize a plugin instance based on the information given. |
||||
Load Plugin Dialog |
Dialog allowing the user to select a plugin by name. Returns the selected plugin details. |
||||
Stop Analyzer 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. |
||||
Stop Optimizer 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. |
||||
Stop Process 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. |
||||
Add Process Queue Reference |
Appends queue to an array of process queues. |
||||
Add VI to Tab Control |
Adds the VI to the first visible page of the tab control given, assuming the first control on the page is a subpanel. |
||||
Cache Message |
No description found (add content in vi description) |
||||
Check Loop Error |
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. |
||||
Choose Idle or Error State |
No description found (add content in vi description) |
||||
Error Handler - Main VI State Machine |
Process an error that occurred in the Message Handling Loop, either by ignoring it, or generating an "Exit" message. |
||||
Find Available Queue |
No description found (add content in vi description) |
||||
Find Subpanel on Page |
No description found (add content in vi description) |
||||
Load Plugin Front Panel |
No description found (add content in vi description) |
||||
Queue Message |
No description found (add content in vi description) |
||||
Save Reaction Rover Data to Experiment File |
No description found (add content in vi description) |
||||
Split Name and Message |
No description found (add content in vi description) |
||||
Variant to Data String |
No description found (add content in vi description) |
||||
Is Variant Supported Type |
Checks if the variant is any of the supported types for parameter values. |
||||
Is Variant Type Boolean |
Check if the variant contents are a boolean. |
||||
Is Variant Type Numeric |
Check if the variant contents are a numeric type. |
||||
Is Variant Type Path |
Check if the variant contents are a path. |
||||
Is Variant Type String |
Check if the variant contents are a string. |
||||
Unsupported Type Error |
Provides an error cluster for an unsupported type. This will get the type of the variant and add that to the error message. |
||||
Main |
Use this template to build a simple state machine design pattern. Each state executes code and determines which state to transition to. |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
Initialize Experiment File |
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. |
||||
Load Experiment File |
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. |
||||
Save Experiment File |
No description found (add content in vi description) |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Type |
---|---|
Library |
2.4.1. Functions
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
Create or Load Experiment Dialog |
No description found (add content in vi description) |
||||
Error Handler - Event Handling Loop |
Process an error that occurred in the Event Handling Loop, either by ignoring it, or generating an "Error" message. |
||||
Error Handler - Message Handling Loop |
Process an error that occurred in the Message Handling Loop, either by ignoring it, or generating an "Exit" message. |
||||
New Experiment Dialog |
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. |
||||
New Experiment |
No description found (add content in vi description) |
||||
Validate Experiment Location |
No description found (add content in vi description) |
||||
Validate Experiment Name |
No description found (add content in vi description) |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
Create User Event - Stop |
Create a boolean user event that will be used to stop the event loop from the message handling loop. |
||||
Fire User Event - Stop |
Send the Stop event to stop the Event Handling Loop. |
||||
Destroy User Event - Stop |
Destroy the user event, even if there is an incoming error. |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Type |
---|---|
Library |
|
Library |
|
Library |
2.6.1. Functions
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
Convert Absolute Path to Relative Path from Application |
Converts a given absolute path to a relative path from the calling application. |
||||
Convert Absolute to Relative Path if Executable |
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. |
||||
Open File Explorer |
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 |
||||
Relative Path to Absolute Path |
Converts a relative path to an absolute path from the application directory. |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
JSON Add Indent |
Adds indentation to the JSON string provided. The string must already have newlines added for indentation to be useful. |
||||
JSON Add White Space |
Adds white space to a string generated by the Flatten to JSON String VI. |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
LocalAppData Build Path |
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 |
||||
LocalAppData Create Or Replace File |
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 |
||||
LocalAppData Get Base Path |
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 |
||||
LocalAppData Get or Create App Directory |
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 |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
File Defaults Location |
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. |
||||
Icons Location |
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. |
||||
Resource Location |
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. |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
Create Plugin Directories |
No description found (add content in vi description) |
||||
Filter Invalid Plugins |
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 |
||||
Filter Plugins |
Filters the list of plugins for only those of the given plugin type. |
||||
Generate Plugin Error String Array |
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 |
||||
Get Default Plugin Directories |
No description found (add content in vi description) |
||||
Get Plugin Directorys |
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). |
||||
Handle Plugin Errors |
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 |
||||
Load Plugins |
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. |
||||
Log Plugin Errors |
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 |
||||
Read Plugin Configuration |
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.) |
||||
Read Plugin INI |
Reads an INI file defining a plugin to be loaded. |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
Enqueue Message (Array) |
For a regular message, enqueue the message. For a priority message, enqueue it at the front of the queue. |
||||
Enqueue Message (Single) |
For a regular message, enqueue the message. For a priority message, enqueue it at the front of the queue. |
||||
Create All Message Queues |
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. |
||||
Obtain Message Queue |
Create a queue with the Message Cluster data type. |
||||
Dequeue Message |
This VI pulls messages off the Message Queue. |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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.
Classes | Interfaces |
---|---|
@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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
Array Size |
No description found (add content in vi description) |
||||
As Minimal Cluster Array |
No description found (add content in vi description) |
||||
Delete From Array |
Deletes a controller entry from the array, returning the deleted item. |
||||
Index Array |
No description found (add content in vi description) |
||||
Insert Into Array |
Insert an element into the array at the specified index. |
||||
Read Array |
No description found (add content in vi description) |
||||
Register Controller |
Given a control type and name, load a controller of that name and add it to the end of the controller array. |
||||
Replace Subset Array |
No description found (add content in vi description) |
||||
Replace Subset Element |
No description found (add content in vi description) |
||||
Search Array |
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. |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
Control Panel Initialization Message |
Method to generate the initial message to send to a Controller’s Control Panel. |
||||
New Parameter Message |
Dynamic dispatch for each child controller type to provide it’s proper message for setting a new parameter value (setpoint). |
||||
Start Message |
No description found (add content in vi description) |
||||
Stop Message |
No description found (add content in vi description) |
||||
Valid Resource Message |
No description found (add content in vi description) |
||||
Submit Goal |
No description found (add content in vi description) |
||||
Listening Server Cases |
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. |
||||
Resource from String |
No description found (add content in vi description) |
||||
Resource to String |
No description found (add content in vi description) |
||||
Read Valid Messages |
No description found (add content in vi description) |
||||
Subpanel UI |
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. |
||||
Check Valid Message |
No description found (add content in vi description) |
||||
Variant to Optimizer State |
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. |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
Control Panel Initialization Message |
Method to generate the initial message to send to a Controller’s Control Panel. |
||||
Log Directory Message |
No description found (add content in vi description) |
||||
Log File Delimiter Message |
No description found (add content in vi description) |
||||
Log on Run Message |
No description found (add content in vi description) |
||||
Log Prefix Message |
No description found (add content in vi description) |
||||
New Parameter Message |
Dynamic dispatch for each child controller type to provide it’s proper message for setting a new parameter value (setpoint). |
||||
Start Message |
No description found (add content in vi description) |
||||
Stop Message |
No description found (add content in vi description) |
||||
Valid Resource Message |
No description found (add content in vi description) |
||||
Send Listening Queue |
No description found (add content in vi description) |
||||
Send Log Delimiter Message |
No description found (add content in vi description) |
||||
Send Log Directory Message |
No description found (add content in vi description) |
||||
Send Log on Run Message |
No description found (add content in vi description) |
||||
Send Log Prefix Message |
No description found (add content in vi description) |
||||
Send New Parameter |
Sends the new set of parameters to the associated plugin. |
||||
Send Start Message |
No description found (add content in vi description) |
||||
Send Stop Message |
No description found (add content in vi description) |
||||
Wait for Control Panel Exit |
No description found (add content in vi description) |
||||
Wait for Control Panel Start |
Wait for a message indicating that the control panel has started, or timeout if a value is given for the wait time. |
||||
Wait for Message (blocking) |
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. |
||||
Wait for Process Running Event |
Waits for a message with the specified command, ignoring all other messages. This is a blocking VI. |
||||
Wait for Valid Resource |
No description found (add content in vi description) |
||||
Read Control Panel Message Queue |
No description found (add content in vi description) |
||||
Read Control Panel Path |
No description found (add content in vi description) |
||||
Read Control Panel Reference |
No description found (add content in vi description) |
||||
Read Internal Message Queue |
No description found (add content in vi description) |
||||
Read Listening Queue |
No description found (add content in vi description) |
||||
Read Resource |
No description found (add content in vi description) |
||||
Write Control Panel Message Queue |
No description found (add content in vi description) |
||||
Write Control Panel Path |
No description found (add content in vi description) |
||||
Write Control Panel Reference |
No description found (add content in vi description) |
||||
Write Internal Message Queue |
Assigns a message queue as the new Internal Message Queue used for internal communications in the Controller object. |
||||
Write Listening Queue |
No description found (add content in vi description) |
||||
Write Resource |
No description found (add content in vi description) |
||||
Panel Running Event |
Event raised when a control panel starts (value = True) or stops (value = False). |
||||
Abort Control Panel |
Aborts the control panel immediately. This may leave any hardware or software the plugin was controlling in an unexpected state! |
||||
Control Panel - Close |
Initialize the Control Panel at the provided controller path. Forwards a stop message to the control panel process to signal that it should end. |
||||
Control Panel - Initialize |
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. |
||||
Internal Message Queue - Close |
Close the internal message queue of the plugin server. |
||||
Internal Message Queue - Initialize |
Initializes the internal message queue. |
||||
Listening Server - Close |
Closes the listening server VI reference and clears the corresponding class attribute. |
||||
Listening Server - Initialize |
No description found (add content in vi description) |
||||
Listening Server Cases |
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. |
||||
Listening Server |
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. |
||||
Open Listening Server Reference |
No description found (add content in vi description) |
||||
Resource from String |
No description found (add content in vi description) |
||||
Stop Control Panel |
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. |
||||
Read Controller Type |
No description found (add content in vi description) |
||||
Read Name |
No description found (add content in vi description) |
||||
Read Sending Queue |
No description found (add content in vi description) |
||||
Read Subpanel Listening Queue |
No description found (add content in vi description) |
||||
Read Valid Messages |
No description found (add content in vi description) |
||||
Write Controller Type |
No description found (add content in vi description) |
||||
Write Name |
No description found (add content in vi description) |
||||
Write Sending Queue |
No description found (add content in vi description) |
||||
As Minimal Cluster |
Get a minimal cluster representation of the plugin. |
||||
From Minimal Cluster |
Creates a new plugin server instance from the details in a minimal cluster. |
||||
Load Controller Type from Enum |
No description found (add content in vi description) |
||||
Load Controller Type from Path |
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. |
||||
Read Subpanel Message Queue |
No description found (add content in vi description) |
||||
Read Subpanel UI Reference |
No description found (add content in vi description) |
||||
Write Subpanel Message Queue |
No description found (add content in vi description) |
||||
Write Subpanel Name |
No description found (add content in vi description) |
||||
Close Subpanel UI Reference |
Closes the subpanel UI VI reference and clears the corresponding class attribute. |
||||
Initialize Subpanel UI |
Initialize the subpanel UI VI reference and message queue inside the class, also giving the subpanel UI the correct message queue for further communication. |
||||
Insert Subpanel UI |
Insert the Subpanel UI of the controller into the provided subpanel. The subpanel MUST have been initialized before calling this! |
||||
Open Subpanel UI Reference |
Get a reference for the Subpanel UI.vi of the controller. |
||||
Report to Subpanel |
No description found (add content in vi description) |
||||
Stop Subpanel UI |
No description found (add content in vi description) |
||||
Subpanel UI |
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. |
||||
Check Valid Message |
No description found (add content in vi description) |
||||
Close VI Reference |
Closes a VI reference. This VI is intented to work both in the development environment and in stand-alone programs. |
||||
Close |
Shuts down the plugin server, destroying references and queues it generated. This will not destroy externally set references and queues. |
||||
Compare Controller Type |
No description found (add content in vi description) |
||||
Continue Waiting or Abort Dialog |
Open a dialog asking whether to continue waiting or abort the plugin. |
||||
Initialize |
Initializes the internals of the plugin server. |
||||
Open Reentrant Class Method 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. |
||||
Resource to String |
No description found (add content in vi description) |
||||
String to Controller Type |
No description found (add content in vi description) |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
Check Valid Message |
No description found (add content in vi description) |
||||
Control Panel Initialization Message |
Method to generate the initial message to send to a Controller’s Control Panel. |
||||
Listening Server Cases |
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. |
||||
New Parameter Message |
Dynamic dispatch for each child controller type to provide it’s proper message for setting a new parameter value (setpoint). |
||||
Read Valid Messages |
No description found (add content in vi description) |
||||
Resource from String |
No description found (add content in vi description) |
||||
Resource to String |
No description found (add content in vi description) |
||||
Start Message |
No description found (add content in vi description) |
||||
Stop Message |
No description found (add content in vi description) |
||||
Subpanel UI |
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. |
||||
Valid Resource Message |
No description found (add content in vi description) |
||||
Variant to Analyzer State |
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. |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
As Minimal Cluster |
Returns a minimal representation of the entire map using only serializable data types (mostly strings, arrays, and clusters) |
||||
Clear |
Remove all elements from the map, resulting in a size of 0. |
||||
Empty |
Test if the container is empty. |
||||
Equals |
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. |
||||
Erase (array) |
Removes all elements from the map specified in the array of keys. |
||||
Erase (index) |
Removes the element from the map specified by the given index. |
||||
Erase (single) |
Removes the element from the map specified by the given key. |
||||
Find (array) |
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 |
||||
Find (single) |
Find the element from the map matching the given key. |
||||
Find Index (single) |
Return the index from the map specified by the given key. |
||||
Insert (array) |
Insert the given key-value pairs into the map. |
||||
Insert (element) |
Insert the given key-value pair into the map. |
||||
Insert (key-value) |
Create and insert a key-value pair into the map using the given key and value. |
||||
Read keys |
Returns the underlying unordered_map array. |
||||
Read unordered_map |
Returns the underlying unordered_map array. |
||||
Repeat Key |
Checks if the given key is a repeat of one in the map |
||||
Size |
Return the size of the map. |
||||
Swap |
Swaps the elements of one Parameter to Hardware Map with another. |
||||
Write unordered_map |
Overwrites the underlying unordered_map array. |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
Check Valid Message |
Checks if a message recieved from a Passive-Hardware instrument is valid by comparing it to a list of valid messages. |
||||
Control Panel Initialization Message |
Method to generate the initial message to send to a Controller’s Control Panel. |
||||
New Parameter Message |
Dynamic dispatch for each child controller type to provide it’s proper message for setting a new parameter value (setpoint). |
||||
Read Valid Messages |
Reads the list of valid messages |
||||
Start Message |
Returns the message which will notify RxnRover to start collecting data from a Passive-Instrument. Message is not sent in this VI just created. |
||||
Stop Message |
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. |
||||
Subpanel UI |
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. |
||||
Update Data Plot |
Updates the data plot from data collected from a Passive-Hardware instrument in given time intervals. |
||||
Variant to Instrument State |
Converts the instrument state messages sent from the plugin to the internal state managed by RxnRover’s plugin server. |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
Check Valid Message |
No description found (add content in vi description) |
||||
Control Panel Initialization Message |
Generate the initial message to send to the Pump Controller Control Panel. |
||||
New Parameter Message |
Dynamic dispatch for each child controller type to provide it’s proper message for setting a new parameter value (setpoint). |
||||
Read Valid Messages |
No description found (add content in vi description) |
||||
Start Message |
No description found (add content in vi description) |
||||
Stop Message |
No description found (add content in vi description) |
||||
Subpanel UI |
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. |
||||
Update Data Plot |
No description found (add content in vi description) |
||||
Variant to Instrument State Cluster |
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. |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
New Parameter Message |
Dynamic dispatch for each child controller type to provide it’s proper message for setting a new parameter value (setpoint). |
||||
Subpanel UI |
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. |
||||
Variant to Instrument State Cluster TMP |
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. |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
Check Valid Message |
No description found (add content in vi description) |
||||
Control Panel Initialization Message |
Generate the initial message to send to the Temperature Controller Control Panel. |
||||
New Parameter Message |
Dynamic dispatch for each child controller type to provide it’s proper message for setting a new parameter value (setpoint). |
||||
Read Valid Messages |
No description found (add content in vi description) |
||||
Start Message |
No description found (add content in vi description) |
||||
Stop Message |
No description found (add content in vi description) |
||||
Subpanel UI |
Data display subpanel associated with the Temperature Controller class. |
||||
Update Data Plot |
No description found (add content in vi description) |
||||
Variant to Instrument State |
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. |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → 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
Name | Connector pane | Description | S. | R. | I. |
---|---|---|---|---|---|
Add Recent Project |
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. |
||||
Clear Recent Experiments |
Clears all entries in the Recent Experiments list. |
||||
Convert Home Directory Tokens |
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. |
||||
Create If File Does Not Exist |
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. |
||||
Default File Name |
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. |
||||
Default File Path |
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. |
||||
DefaultUserSettings Full Path |
Location of the DefaultUserSettings.ini configuration file. |
||||
Init |
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. |
||||
Load |
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. |
||||
Read File Location |
No description found (add content in vi description) |
||||
Read File Name |
No description found (add content in vi description) |
||||
Read User Preferences |
No description found (add content in vi description) |
||||
Save |
Format the User Preferences file as a readable JSON file and write it to disk. |
||||
Write File Location |
No description found (add content in vi description) |
||||
Write File Name |
No description found (add content in vi description) |
||||
Write User Preferences |
No description found (add content in vi description) |
Scope: → Protected |
→ Community
Reentrancy: → Preallocated reentrancy |
→ Shared reentrancy
Inlining: → Inlined
3.11.3. Class Constant VIs
Note
|
No Constant VIs Found |
4. Legal Information
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.