Releases: levylabpitt/Instrument-Framework
Instrument Framework v1.14
[1.14.1] Release Notes
Major Changes:
- #96: Malleable VIs Remote Control.vim, Set Config.vim, Get All.vim, and getAll.vim are removed from the package
Other Issues:
- #128: define Help objects in Instrument.Strain
- #129: Instrument.Strain commands moved to private scope
- #130: Instrument method enums moved to private scope. Call protected methods setConfiguration.vi, etc, instead
- #131: "* (This Level).vi" and related calls have been removed. Return your own public API list inside a non-dynamic dispatch VI, if you wish
- #133: Enum to String.vi more robust when supplied command as a variant
- #134: Change Help design pattern following #131 changes
[1.14.0] Release Notes
This is a major release that introduces breaking changes to existing code. These updates aim to enhance uniformity, performance, and usability.
Highlights
-
Subsystem Packaging:
Core subsystems of the Instrument Framework (e.g., Configuration, RemoteControl, Logger) are now distributed as separate packages. -
Improved API Uniformity (Issue #91):
- Enhance external language compatibility (e.g., Python) via unified method names.
- Instrument interfaces classes introduce uniform "abstract" or "interface" methods (e.g.,
Instrument.Cryostat.lvclass
) to enforce standardized command formats and parameter data types for child overrides. These are not enforceable by LabVIEW but hopefully utilizing them will be easier than before. Instrument.LockinAPI.lvclass
is now a fully supported interface class. (#100)Instrument.Amplifier.lvclass
is a new interface class (#116).Instrument.SCPI
provides a standardized mechanism for sending and receiving SCPI commands.- New methods supported by base instrument:
IDN
;GET
andSET
methods supported via override (Issue #110). - Improved documentation and
HELP
functionality (Issue #105).
Other Additions and Improvements
-
New Features:
Instrument.lvlib
introduced for malleable VI organizationHAL.lvclass
added as an experimental hardware abstraction layer (Issue #114).API.lvclass
added as an experimental API abstraction layer
-
Usability Enhancements:
Changes are discussed in further detail in Issue #94
Full Changelog: v1.13.0.10...v1.14.0
Instrument Framework v1.13
Installation
- Install via LevyLab GitHub Repository
v1.13 Release Notes
v1.13.0.10 This is final 1.13.0 release
- update Handle Missing Sections per Issue #32
- fix pgsql process to allow lv-data library to handle connection saving and loading connection strings
v1.13.0.9
- Issue #89
v1.13.0.8
-
- RC/STM/ZMQ:Close Connections.vi merges errors instead of clearing
v1.13.0.7
- hotfix issue with Variant to LV Data
v1.13.0.6
- Issue #88: fix Variant to LV Data.vim so that it does not trap incoming errors
v1.13.0.5
- minor refactoring...looking for references to lp-client.vi example
v1.13.0
- Issue #82: Change "Create Server SMO.vi" to make easier to call in non-Instrument Framework projects
- Issue #84, #26:
- Communication with instrument hardware should happen in the child process.vi. Handle Command can parse and discriminate commands, but it should forward messagses using Instrument:MessageToProcess.vi. The child will respond with child:MessageToProcess.
- Issue #86:
- Wait for Magnet Setpoint.vi will stop on Finished? == True from Get Magnet.vi. It is the responsibility of the overriding instrument to control Finished?
- Wait for Temperature Setpoint.vi has a new control, tolerance. The overriding instrument API will need to be updated
- Open and Close are disabled in the instrument:process.vi. If you need this methods please implement them in the child's process.vi
Instrument Framework v1.12
Installation
- Install via LevyLab GitHub Repository
v1.12 Release Notes
v1.12.5
- Add Set Heater abstract method (Issue #81)
- Message to Process: revert Data control to text.
- Local Client.vim: Handles serialization: everything gets converted to JSON (because that is what happens inside Remote Client --> RC Send (Handle Command does not want to care where the message came from, and it should decode them all the same way))
- Add unit test for testing behavior of ZMQ primitives.
- Updated ZMQ.Error Handling to handle invalid references (1554: invalid context or socket). Tries to reconnect
- Error handling is added to Read and Write Message after Read/Write sub routine. See behavior above
v1.12.4
- malleable API method to communicate with instrument process with same controls as Remote Control.vim (namely, enum command and variant data type...used by children of Instrument)
- Remote Client.vim can be configured to call "Local Client" via "Client Type" flag in Instrument's private data. Default Client Type == Remote. I envision the use case to be that only a UI process will set Client Type == Local
- Local Client locally registers and listens for return events. Rudimentary discrimination control is provided by the message ID. After no event or timeout expiring the Local Client method will return with empty data
v1.12.3
- Update State History to include longer (default = 100) history; developer can override
- minor subsystem UI updates
v1.12.2
- Issue #78: Change magnet set point tolerance to 0.01 T
- Issue #79: Change temperature set point tolerance to 0.01 K and add control for comparison mode (in range, less than, greater than)
v1.12.1
- Issue #77: fix issue preventing communication across the network
v1.12.0
This release has major changes in the way configuration is handled. You should make the following changes to your code when updating to this release:
- "Read Configuration File" and "Write Configuration File" should be configured to call parent method
- "Get SMO PGSQL Log Paths" will need two front panel controls to match the parent method
- Instrument.Template.lvclass:Instrument.Template.AppLauncher has improvements to allow the user easier access to configuration
- Front panel controls
- examine configuration.ini state (and macro)
- refinements to SMO start and stop macros
- Data: Wait state
- If you use Configuration.lvclass directly (likely in UI process), should can use "Write Section" to control the ini header
Instrument Framework v1.11
v1.11 Release Notes
v1.11.3
- Fix issue #76: PGSQL logger should not read variable when writing variable
- Change the check for whether or not data should be written to the database
- Cosmetic changes to most of the core SMO process windows to make debugging and watching SMO status in debug mode simpler
v1.11.2
- Change framework install location (Issue #73)
- Change template install location (Issues #70, #71, and #72)
- Update Framework icon (Issue#69)
- Updated all class documentation descriptions
- Update SCPI library
v1.11.1
- Updated to latest SMO (v1.4.0.69)
- Logger behavior changed (do not run process.vi unnecessarily)
- Logger.Error implements its own logging (remove MGI and hopefully zombie processes)
- Updated unit tests and misc. refactoring
- Reduce size of RPC and ZMQ methods and VIMs
- VIMs are now preallocated clones instead of shared clones
v1.11.0
-Updated behavior of Open and Close:
- Open (Close).vi is an abstract method that must be overriden by the child class for there to be any functionality. Call "Open (Close) SMO.vi" if connecting to an SMO; Call "Open (Close) Hardware.vi" if communicating directly with hardware.
- "Open (Close) Instrument.vi" is depricated
- The PGSQL logger has a deadband and only logs 1/hour if all of the data has not changed
- Updated Icons and Documentation.vi provided in the Instrument.Template.lvclass
Instrument Framework v1.5.10+
Installation
- Install via LevyLab GitHub Repository
v1.5.10+ Release Notes
1.5.18
- change Open.vi behavior
###1.5.17
- Build for 2016
1.5.16.82
- Issue #22: Convert data to variant before flatten to string & unflatten string to variant before convert to data
1.5.15.80
- Build with LV2019
1.5.15.77
- Change reentrant execution of Remote Client.vi (Issue #21)
- Open.vi and Close.vi now Open and Close the TCP connection
1.5.13.75
- Remote Control (STM) now supports multiple open connections
1.5.12.74
- Bug fix in Remote Control Exit (#17)
- Enhanced debug mode
- Other bug fixes
1.5.11.73
- fix issue with getAll command not being sent properly
- add enum to string conversion, allowing all commands to be stored in typedef enum
- fix issue with remote control receive message loop not terminating on error
- update Templates to match
- misc. organizing of files including moving on disk and renaming
- rename GET_ALL --> GET ALL and Create SMO --> Create Instrument SMO
1.5.10.72
- fix issue with getAll command not being sent properly
- add enum to string conversion, allowing all commands to be stored in typedef enum
- fix issue with remote control receive message loop not terminating on error
- update Templates to match
- misc. organizing of files including moving on disk and renaming
Instrument Framework v1.5.9.71
- Update Open.vi now writes to Hardware.Address and SMO.Address
- Simplify Configuration VIs (make overridable methods, delete unnecessary accessors)
- Update Error Handling protocal in Instrument and RemoteControl processes