11-20-2019 03:44 AM - edited 11-20-2019 11:50 AM
Class QD Plugins v1.0
Author: Piotr Kruczkowski
Compatible LabVIEW Versions: >= 2019.
Compatible OS Versions: ALL.
Description:
The standard LabVIEW plugins are great but operate based on Ctrl + Key shortcut. This means that after a while almost all of your keyboard keys can be occupied by a shortcut. This limits extensibility.
This new Class QD Plugins package enables you to create commands for a Ctrl + C shortcut. These custom commands are then parsed, searching for the object oriented plugin you wish to invoke and execute that dynamic functionality.
Project with all dependencies
Folders installed with the package
QD searching for plugins and invoking them dynamically, based on command used. The LV map is used a LUT mechanism.
Example implementation of the Dialog command
Dynamic plugin loader
Invoking the Dialog command
Result of the Dialog command
This package comes with an example Dialog QD command. To try it out simply:
1. Install the package
2. In any vi open Ctrl + Space Quick Drop dialog
3. type in the combo box "Dialog <AnyCustomText>" and press Ctrl + C to see a dialog with our custom text appear. The C stands for Command 😉
To create your own plugins:
1. Open the interface class QD Plugin.lvclass from [LabVIEW]\resource\dialog\QuickDrop\plugins\_QD Plugin Interface Class so it is loaded into memory
2. Create a new class for your plugin and specify that it inherits from QD Plugin.lvclass
3. Implement the override methods Get Command String.vi and Process.vi (you get to choose what your command text will be)
4. Save it in [LabVIEW]\resource\dialog\QuickDrop\plugins\_QD Plugin Classes
5. Restart LabVIEW
Open interface class to load it into memory
Create new class for your plugin
Inherit from the interface class
Implement overrides
Save your plugin in the right folder
After creating the new plugin you will be able to call it with Ctrl + Space -> CommandName OptionString in ComboBox -> Ctrl + C
Wrong command specified
Please try this out, create your own custom classes and let me know what you think. I am planning to release a bunch of plugins based on this interface soon.
11-20-2019 07:59 AM - edited 11-20-2019 08:13 AM
Based on this interface I am planning to implement the following commands:
NewClass - it would include the text name and the selection of data on the FP or BD which would be put in private data control
NewActor - analogous to NewClass, however would create an Actor
Inherit - would accept a qualified name of a class you want to inherit from and would change the inheritance hierarchy for selected class constant or wire
Set/Get - would create an accessor on a class wire using standard mechanism, and drop it on the wire. If accessor already existed it would not create it but simply drop it.
I would love if someone beats me to it and writes these first.