Open ciozi137 opened 1 year ago
Instrument.lvlib
enum to string.vim
and string to enum.vim
are now members of the new library instrument.lvlib
instead of instrument.lvclass
(I ran into issues that I suspect were due to having malleable VIs as members of a class. They seem to behave better when a member of a library.
v1.14 backwards compatible? ❌ not possible: class/library membership has changed
Instrument.MessageTo(From)Process
Instrument.MessageToProcess.vi
→ Instrument.sendMessageToProcess.vi
Instrument.MessageFromProcess.vi
→ Instrument.sendMessageFromProcess.vi
v1.14 backwards compatible? ✅
Instrument.LogPGSQL.vi
Instrument.LogPGSQL.vi
→ Instrument.logToDatabase.vi
v1.14 backwards compatible? ✅
LV to LV Data.vim
LV to LV Data.vim
. Use JSON-RPC.lvlib:JSON to LVtype.lvim
insteadv1.14 backwards compatible? ❌ not possible: class/library membership change
Remote Client.vim
Remote Client.vim
➡ Client.vi
, which will call RemoteClient.vi
or LocalClient.vi
v1.14 backwards compatible? ❓ I do not know. Remote Client.vim
exists and calls Client.vi
BUT it is broken. I don't know if it will build, or what will happen when devs try to use it
Get Client Type.vi
Write Client Type.vi
New override methods (available) to support
Handle setIDN.vi
Handle GET.vi
, Handle SET.vi
Handle setAllData.vi
v1.14 compatible? ✔ should be: these are not required, but intended to make code management easier
Get SMO RC Type.vi
: returns RemoteControl class instead of Remote Control type enumGet SMO HELP.vi
: returns HELP documentation for each API command. Use Instrument.lvclass:Get SMO HELP.vi
as a guide to programming this VI. Override must call parent. Child needs to overrideGet SMO Serial Number.vi
, return your application or hardware serial number. Child should overrideGet SMO Public API (This Level).vi
, return only the new commands your application is support. Convenience, not necessary to overrideGet SMO LogTime.vi
: default logging interval (10,000 ms). Override if you want to change the default. Can also configure log interval at run time by running Instrument.updateLogTime.vi
Get SMO Vendor.vi
, manufacturer, used for IDN clusterGet SMO HAL Type.vi
: reserved for futureGet SMO API Type.vi
: reserved for futureGet SMO LogTime
Instrument.lvclass
(Called only by Instrument.lvclass:Handle Command.vi
; not overridden by child):
Handle IDN.vi
Handle HELP.vi
Handle setLogData.vi
Handle setIDN
Handle GET.vi
Handle SET.vi
Handle setConfiguration.vi
Handle getAll.vi
Handle setAllData.vi
Get SMO PGSQL Log Paths.vi
Get SMO PGSQL Log Paths.vi
➡️ Get SMO Database Paths.vi
SET CONFIG.vim
and GET ALL.vim
Get All.vim
and getAll.vim
now call GetAll.vi
and JSON to LVtype.vim
...seems to play nicer than before(?)
Set Config.vim
now calls setConfiguration.vi
Issue https://github.com/levylabpitt/Instrument-Framework/issues/113
Instrument.lvclass supports the following public methods:
the following commands are protected commands available for child class use:
Get SMO Public API.vi
(and HELP) should only return the public methods
Get SMO Public API (This Level).vi
is a new override method to assist organizing an Instrument's own public commands and its parent's public commands
Issue #114 Communication with hardware is required to be in Instrument.XX.lvclass:process.vi (Open/Close Hardware.vi will no longer be called by Instrument.lvclass:process.vi)
❗ v1.14 backwards compatible? This is a maybe. Maybe your instrument already implements hardware calls in child:process.vi. (or some other SMO, ie an actual HAL SMO), but if your hardware interface is inside Handle Command for example, you will need to fix this when updating to v1.14
This issue is meant to track changes going from v1.13 to v1.14 (and now I will start to undo some breaking changes to restore some backwards compatibility with v1.13 instruments).
Changes have been documented in commit messages, issues, and a wiki page, but these are not easy to wade through.