Framework developed by the LevyLab research group at the University of Pittsburgh.
An Instrument developed using this framework will have access to the following capabilities:
- Configuration
- Read and Write configuration files.
- Hardware Abstraction
- Interface with hardware in a dedicated process
- Virtual Instrument layer (In Development)
- Data Logging
- Log to a postgreSQL database
- Remote API allowing external programs to control compiled instances of the application and remotely across a network
- Default: ZeroMQ and JSON-RPC 2.0 allow for cross-platform messaging (e.g. Python <--> LabVIEW).
- Option National Instruments' Simple Messaging Library (STM) is an optional protocal
- User Interface
- Default: Inherit from SMO UI.lvclass
- Option: Embedded Subpanel UI framework (MAUI) (In Development)
Instrument Framework makes extensive use of JKI State Machines and JKI State Machine Objects.
- LabVIEW 2019 (32 bit)
- Install the Instrument Framework package using VI Package Manager
- Navigate to Instrument-Framework-Template and click Use this template.
- Select the account you want to own the repository using the Owner drop-down menu.
- Name your repository
- Add an (optional) description.
- Choose a repository visibility
- Selecting Include all branches will configure Git-flow by default.
- Click Create repository from template
- double click "RunMe.vi"
- a script will execute to rename the framework-template project
The following files and folders are created from the Instrument Framework Template:
Instrument X\ :: Project Root
Instrument X\build support\ :: Files used to build VIP and EXE
Instrument X\lvsrc\ :: Instrument X.lvproj and all other LabVIEW code goes here
Instrument X\.gitattributes :: Tell git to treat certain text files as if they are binary
Instrument X\.gitignore :: Tell git which files and folders to ignore
Instrument X\LICENSE :: LICENSE file. Default is BSD-3 Clause
Instrument X\README.md :: Your project README
- Help can be found in the Documentation.vi included with the Framework-Template
- Start with the overrides provided in the template SMOs.
- Add code to interface with your hardware.
- Define your relevant methods (set inheritance to existing Instrument types).
- Create a dope UI.
- Have Fun!
When you are ready to build your project into a VI package, EXE application, or a self-extracting installer, there are a few things to keep in mind.
The following folders are not created by the Template (because they are initially empty folders), but they are important for building to run smoothly.
Instrument X\builds :: builds root
Instrument X\builds\7z Install
Instrument X\builds\Application :: Application (exe) Destination Directory
Instrument X\builds\Installer :: Installer Destination Directory
Instrument X\builds\Latest
Instrument X\builds\Package :: VIPB Build Output Directory
It is important to define and use canonical name for your project right away. In this tutorial I am calling it Instrument X. This is important when setting up your build spec files:
- VIPB file
- Used for building VIP Package for API and code reuse in LabVIEW
"Product Name" = "Instrument X"
"Build Output" = "Instrument X\builds\Package"
- Application (exe) build spec
"Build specification name" = "Instrument X Application"
"Application (exe) Destination" = "Instrument X\builds\Application"
- Installer build spec
"Build specification name" = "Instrument X Installer"
"Installer Destination" = "Instrument X\builds\Installer"
Please read the documentation.
Please contact Patrick Irvin