Skip to Content

System Core

The System Core is the controller for the entire framework — it starts and stops individual modules, monitors their operation, and establishes the communication channels (enqueuers) that let modules talk to each other.

Root Actor

Documentation in progress — root actor explonation required.

Launching Modules

When the framework starts up, the System Core collects all modules registered in the Main VI, plus the required System modules. It stores them in separate class variables, registers them in the System Core global variable, and then launches them.

Module launch sequence

Monitoring Module Status

During operation, the System Core polls every module every 5 seconds and publishes the aggregated status of the entire framework. The possible states are:

Initializing STATE
At least one module is still in the initialization phase
Running STATE
At least one module is currently running
Stopped STATE
All modules have stopped — the framework is idle
Error STATE
At least one module has encountered an error
Unresponsive STATE
The System Core cannot reach at least one module

Inter-Module Communication

The System Core manages the enqueuers required for modules to send messages to one another. When one module needs to send a message to another, it queries the System Core for the target module’s message queue, then routes the message through that enqueuer.

This design keeps the modules loosely coupled — they only need to know each other’s names, not their internal queue references.

System Shutdown

When the program shuts down, the System Core orchestrates a graceful shutdown in two phases:

Phase 1 — Pre-Shutdown CLEANUP
System Core broadcasts Process preShutdown Msg to every module. Modules that override Process preShutdown.vi execute their module-specific cleanup — closing references, flushing buffers, releasing resources
Phase 2 — Module Termination EXIT
Once all pre-shutdown handlers complete, the individual modules are terminated and the framework exits cleanly
System shutdown sequence

Interface Messages

Documentation in progress — interface message list to be added.

Last updated on