levylabpitt / Instrument-Framework

An object-oriented framework for LabVIEW based on JKI SMOs.
BSD 3-Clause "New" or "Revised" License
6 stars 7 forks source link

v1.13.0 --> v1.14.0 Change Summary #94

Open ciozi137 opened 1 year ago

ciozi137 commented 1 year ago

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.

ciozi137 commented 3 months 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

ciozi137 commented 3 months ago

Instrument.MessageTo(From)Process

v1.14 backwards compatible? ✅

ciozi137 commented 3 months ago

Instrument.LogPGSQL.vi

v1.14 backwards compatible? ✅

ciozi137 commented 3 months ago

LV to LV Data.vim

v1.14 backwards compatible? ❌ not possible: class/library membership change

ciozi137 commented 3 months ago

Remote Client.vim

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

ciozi137 commented 3 months ago

Deleted: Get Client Type.vi

Image

ciozi137 commented 3 months ago

Deleted: Write Client Type.vi

Image

ciozi137 commented 3 months ago

Handle Command

New override methods (available) to support

Image

Image

Image

v1.14 compatible? ✔ should be: these are not required, but intended to make code management easier

ciozi137 commented 3 months ago

New & Changed "SMO" Methods

Where are they used?

'Get SMO Serial Number' and 'Get SMO Vendor':

image

Get SMO LogTime

image

ciozi137 commented 3 months ago

Handle Command

ciozi137 commented 3 months ago

Deprecated: Get SMO PGSQL Log Paths.vi

ciozi137 commented 3 months ago

SET CONFIG.vim and GET ALL.vim

ciozi137 commented 1 week ago

Public/Protected API Methods

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

image

ciozi137 commented 1 week ago

Hardware Abstraction

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

ciozi137 commented 3 days ago

Instrument: process.vi

Idle state

Data: Initialize

Debug

Macro: Debug

image

Data: Debug

Instrument: Handle Command

Logging