ni / niveristand-communications-bus-template

Template custom device for using communications buses in VeriStand
http://www.ni.com
MIT License
0 stars 3 forks source link

Move protocol-related System Explorer code to a PPL #17

Closed rtzoeller closed 4 years ago

rtzoeller commented 4 years ago

What does this Pull Request accomplish?

Moves the communication bus specific System Explorer code to a PPL.

Add support for Linux x64 (not built via build.toml at the moment).

VeriStand can only call VIs in LLBs, so we need to do some clever forwarding. Pages can be wrapped in sub-panels, and we do our own dispatching based on GUIDs to find the correct pages and RTMs.

Diffing this change works best with the --find-renames=10% option provided by git; moving and resaving the VIs as part of new libraries changed the binary files enough that git doesn't natively detect them as renames.

Why should this Pull Request be merged?

The execution units are built as a PPL, since they rely heavily on interfaces and classes. Since the custom device LLBs depend on these PPLs, the System Explorer code is necessarily in a separate project. This makes it difficult to work on the custom device, since changes often need to be reflected in both components.

By moving the core system explorer logic to a PPL, the user can work primarily in a single project, as well as use LabVIEW classes and not worry about file naming conflicts.

What testing has been done?

Hand testing of the custom device; any behavior change introduced by this PR should be considered a bug.

Open work

Open questions

And likely more.

niveristand-diff-bot commented 4 years ago

Bleep bloop!

LabVIEW Diff Robot here with some diffs served up hot for your pull request.

Notice something funny? Help fix me on my GitHub repo.

Communication Bus Template Engine.lvlib--Communication Bus Template.Async.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Communication%20Bus%20Template.Async.vi.png)
Communication Bus Template Engine.lvlib--Finalize Inline Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Finalize%20Inline%20Execution%20Units.vi.png)
Communication Bus Template Engine.lvlib--Implementation.lvlib--Execution Unit Factory Implementation.lvclass--Create Execution Unit.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Implementation.lvlib--Execution%20Unit%20Factory%20Implementation.lvclass--Create%20Execution%20Unit.vi.png)
Communication Bus Template Engine.lvlib--Implementation.lvlib--Execution Unit Implementation.lvclass--Construct.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Implementation.lvlib--Execution%20Unit%20Implementation.lvclass--Construct.vi.png)
Communication Bus Template Engine.lvlib--Implementation.lvlib--Execution Unit Implementation.lvclass--Finalize.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Implementation.lvlib--Execution%20Unit%20Implementation.lvclass--Finalize.vi.png)
Communication Bus Template Engine.lvlib--Implementation.lvlib--Execution Unit Implementation.lvclass--Get Identifier.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Implementation.lvlib--Execution%20Unit%20Implementation.lvclass--Get%20Identifier.vi.png)
Communication Bus Template Engine.lvlib--Implementation.lvlib--Execution Unit Implementation.lvclass--Initialize.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Implementation.lvlib--Execution%20Unit%20Implementation.lvclass--Initialize.vi.png)
Communication Bus Template Engine.lvlib--Implementation.lvlib--Execution Unit Implementation.lvclass--Read from Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Implementation.lvlib--Execution%20Unit%20Implementation.lvclass--Read%20from%20Hardware.vi.png)
Communication Bus Template Engine.lvlib--Implementation.lvlib--Execution Unit Implementation.lvclass--Start.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Implementation.lvlib--Execution%20Unit%20Implementation.lvclass--Start.vi.png)
Communication Bus Template Engine.lvlib--Implementation.lvlib--Execution Unit Implementation.lvclass--Trace.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Implementation.lvlib--Execution%20Unit%20Implementation.lvclass--Trace.vi.png)
Communication Bus Template Engine.lvlib--Implementation.lvlib--Execution Unit Implementation.lvclass--Write to Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Implementation.lvlib--Execution%20Unit%20Implementation.lvclass--Write%20to%20Hardware.vi.png)
Communication Bus Template Engine.lvlib--Initialize Inline Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Initialize%20Inline%20Execution%20Units.vi.png)
Communication Bus Template Engine.lvlib--Interface.lvlib--Execution Unit Factory.lvclass--Create Execution Unit.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Interface.lvlib--Execution%20Unit%20Factory.lvclass--Create%20Execution%20Unit.vi.png)
Communication Bus Template Engine.lvlib--Interface.lvlib--Execution Unit.lvclass--Finalize.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Interface.lvlib--Execution%20Unit.lvclass--Finalize.vi.png)
Communication Bus Template Engine.lvlib--Interface.lvlib--Execution Unit.lvclass--Get Identifier.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Interface.lvlib--Execution%20Unit.lvclass--Get%20Identifier.vi.png)
Communication Bus Template Engine.lvlib--Interface.lvlib--Execution Unit.lvclass--Initialize.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Interface.lvlib--Execution%20Unit.lvclass--Initialize.vi.png)
Communication Bus Template Engine.lvlib--Interface.lvlib--Execution Unit.lvclass--Read from Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Interface.lvlib--Execution%20Unit.lvclass--Read%20from%20Hardware.vi.png)
Communication Bus Template Engine.lvlib--Interface.lvlib--Execution Unit.lvclass--Start.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Interface.lvlib--Execution%20Unit.lvclass--Start.vi.png)
Communication Bus Template Engine.lvlib--Interface.lvlib--Execution Unit.lvclass--Write to Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Interface.lvlib--Execution%20Unit.lvclass--Write%20to%20Hardware.vi.png)
Communication Bus Template Engine.lvlib--Interface.lvlib--Set Channels.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Interface.lvlib--Set%20Channels.vi.png)
Communication Bus Template Engine.lvlib--Read from Inline Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Read%20from%20Inline%20Execution%20Units.vi.png)
Communication Bus Template Engine.lvlib--RT Driver VI.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--RT%20Driver%20VI.vi.png)
Communication Bus Template Engine.lvlib--Start Inline Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Start%20Inline%20Execution%20Units.vi.png)
Communication Bus Template Engine.lvlib--Unflatten Asynchronous Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Unflatten%20Asynchronous%20Execution%20Units.vi.png)
Communication Bus Template Engine.lvlib--Unflatten Inline Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Unflatten%20Inline%20Execution%20Units.vi.png)
Communication Bus Template Engine.lvlib--Write to Inline Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Engine.lvlib--Write%20to%20Inline%20Execution%20Units.vi.png)
Communication Bus Template Scripting.lvlib--Add Databases Section.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Scripting.lvlib--Add%20Databases%20Section.vi.png)
Communication Bus Template Scripting.lvlib--Add Ports Section.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Scripting.lvlib--Add%20Ports%20Section.vi.png)
Communication Bus Template Scripting.lvlib--Constants.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Scripting.lvlib--Constants.vi.png)
Communication Bus Template Scripting.lvlib--Get Database List of Names and Paths.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Scripting.lvlib--Get%20Database%20List%20of%20Names%20and%20Paths.vi.png)
Communication Bus Template Scripting.lvlib--Set Frame Id.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Scripting.lvlib--Set%20Frame%20Id.vi.png)
Communication Bus Template Shared.lvlib--Constants.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20Shared.lvlib--Constants.vi.png)
Communication Bus Template System Explorer.lvlib--ActionVIOnCompile.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--ActionVIOnCompile.vi.png)
Communication Bus Template System Explorer.lvlib--Compile Asynchronous Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Compile%20Asynchronous%20Execution%20Units.vi.png)
Communication Bus Template System Explorer.lvlib--Compile Inline Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Compile%20Inline%20Execution%20Units.vi.png)
Communication Bus Template System Explorer.lvlib--Export Configuration RTM Wrapper.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Export%20Configuration%20RTM%20Wrapper.vi.png)
Communication Bus Template System Explorer.lvlib--Get Item GUID.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Get%20Item%20GUID.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Add Database RTM.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Add%20Database%20RTM.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Add Port RTM.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Add%20Port%20RTM.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Channel.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Channel.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Database.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Database.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Databases.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Databases.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Frame.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Frame.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Import Frames RTM.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Import%20Frames%20RTM.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Incoming.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Incoming.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Initialize.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Initialize.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Load Help File.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Load%20Help%20File.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Main Page.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Main%20Page.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Outgoing.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Outgoing.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Port.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Port.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Ports.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Ports.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Protocol.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Protocol.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--System Explorer Dispatcher Implementation.lvclass--Get Menu Item VI.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--System%20Explorer%20Dispatcher%20Implementation.lvclass--Get%20Menu%20Item%20VI.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--System Explorer Dispatcher Implementation.lvclass--Get Menu Items.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--System%20Explorer%20Dispatcher%20Implementation.lvclass--Get%20Menu%20Items.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--System Explorer Dispatcher Implementation.lvclass--Get Page VI.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--System%20Explorer%20Dispatcher%20Implementation.lvclass--Get%20Page%20VI.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Vendor.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Vendor.vi.png)
Communication Bus Template System Explorer.lvlib--Initialization VI.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Initialization%20VI.vi.png)
Communication Bus Template System Explorer.lvlib--Interface.lvlib--System Explorer Dispatcher.lvclass--Get Menu Item VI.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Interface.lvlib--System%20Explorer%20Dispatcher.lvclass--Get%20Menu%20Item%20VI.vi.png)
Communication Bus Template System Explorer.lvlib--Interface.lvlib--System Explorer Dispatcher.lvclass--Get Menu Items.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Interface.lvlib--System%20Explorer%20Dispatcher.lvclass--Get%20Menu%20Items.vi.png)
Communication Bus Template System Explorer.lvlib--Interface.lvlib--System Explorer Dispatcher.lvclass--Get Page VI.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Interface.lvlib--System%20Explorer%20Dispatcher.lvclass--Get%20Page%20VI.vi.png)
Communication Bus Template System Explorer.lvlib--Page Wrapper.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--Page%20Wrapper.vi.png)
Communication Bus Template System Explorer.lvlib--RunTimeMenu Custom Population.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--RunTimeMenu%20Custom%20Population.vi.png)
Communication Bus Template System Explorer.lvlib--RunTimeMenu Wrapper.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-23/14%3A00%3A07/Communication%20Bus%20Template%20System%20Explorer.lvlib--RunTimeMenu%20Wrapper.vi.png)
niphilj commented 4 years ago

Do we need a shared library? Or can the System Explorer PPL just pull in some of the Engine PPL?

Are you describing having the System Explorer PPL depend on the Engine PPL, or depending on the original source VIs found in the Engine lib and pulling its own copies into the System Explorer PPL?

buckd commented 4 years ago

Are you describing having the System Explorer PPL depend on the Engine PPL, or depending on the original source VIs found in the Engine lib and pulling its own copies into the System Explorer PPL?

I think he's referring to the latter, where source would live in the engine lvlib, but some VIs would get pulled into the System Explorer PPL. The alternative is to create another library with the shared items and have both PPLs pull that in.

niphilj commented 4 years ago

I think he's referring to the latter, where source would live in the engine lvlib, but some VIs would get pulled into the System Explorer PPL. The alternative is to create another library with the shared items and have both PPLs pull that in.

I think that's the way to go. I don't see the need for a new shared lib at the moment.

rtzoeller commented 4 years ago

Minor: Rather than a 4-iteration ForLoop, I'd prefer a string concat of "........\" prepended to the CHM file name before being passed to the build path.

@niphilj how do you feel about dynamically finding the .lvlibp extension or searching for the first folder on disk from the path and truncating there? Hard-coding a specific number feels like a hack; the code needs to know how it's built and it shouldn't need to.

niphilj commented 4 years ago

@niphilj how do you feel about dynamically finding the .lvlibp extension or searching for the first folder on disk from the path and truncating there? Hard-coding a specific number feels like a hack; the code needs to know how it's built and it shouldn't need to.

Searching a known path is actually my preference. Please do that instead.

rtzoeller commented 4 years ago

@buckd it's not clear to me if we even need the GUIDs in the custom device. Is there a place you can think of us needing them, or can we limit them to the PPLs only?

Since they're defined the scripting API, it's hard to share them with the custom device (since that isn't top-level in a PPL).

buckd commented 4 years ago

Is there a place you can think of us needing them, or can we limit them to the PPLs only?

I can't think of anywhere we would need them in the custom device. Since we can get them from the item ref in OnCompile, we wouldn't need them there and any tree navigation would happen from the pages, which already have everything they need in the PPL.

niphilj commented 4 years ago

Can we handle System Explorer buttons in a better way then forcing the developer to wrap VIs individually (like we did for RTMs)?

Because you're dealing with a Node Ptr and not a class directly, it looks like you don't have a choice but to have a wrapper, otherwise you'd be able to dynamic dispatch off the interface class directly. That's my thought.

niveristand-diff-bot commented 4 years ago

Bleep bloop!

LabVIEW Diff Robot here with some diffs served up hot for your pull request.

Notice something funny? Help fix me on my GitHub repo.

Communication Bus Template Engine.lvlib--Communication Bus Template.Async.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Engine.lvlib--Communication%20Bus%20Template.Async.vi.png)
Communication Bus Template Engine.lvlib--Finalize Inline Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Engine.lvlib--Finalize%20Inline%20Execution%20Units.vi.png)
Communication Bus Template Engine.lvlib--Implementation.lvlib--Execution Unit Factory.lvclass--Create Execution Unit.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Engine.lvlib--Implementation.lvlib--Execution%20Unit%20Factory.lvclass--Create%20Execution%20Unit.vi.png)
Communication Bus Template Engine.lvlib--Initialize Inline Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Engine.lvlib--Initialize%20Inline%20Execution%20Units.vi.png)
Communication Bus Template Engine.lvlib--Interfaces.lvlib--Execution Unit Factory.lvclass--Create Execution Unit.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Engine.lvlib--Interfaces.lvlib--Execution%20Unit%20Factory.lvclass--Create%20Execution%20Unit.vi.png)
Communication Bus Template Engine.lvlib--Read from Inline Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Engine.lvlib--Read%20from%20Inline%20Execution%20Units.vi.png)
Communication Bus Template Engine.lvlib--RT Driver VI.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Engine.lvlib--RT%20Driver%20VI.vi.png)
Communication Bus Template Engine.lvlib--Start Inline Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Engine.lvlib--Start%20Inline%20Execution%20Units.vi.png)
Communication Bus Template Engine.lvlib--Unflatten Asynchronous Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Engine.lvlib--Unflatten%20Asynchronous%20Execution%20Units.vi.png)
Communication Bus Template Engine.lvlib--Unflatten Inline Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Engine.lvlib--Unflatten%20Inline%20Execution%20Units.vi.png)
Communication Bus Template Engine.lvlib--Write to Inline Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Engine.lvlib--Write%20to%20Inline%20Execution%20Units.vi.png)
Communication Bus Template Scripting.lvlib--Add Databases Section.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Scripting.lvlib--Add%20Databases%20Section.vi.png)
Communication Bus Template Scripting.lvlib--Add Ports Section.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Scripting.lvlib--Add%20Ports%20Section.vi.png)
Communication Bus Template Scripting.lvlib--Constants.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Scripting.lvlib--Constants.vi.png)
Communication Bus Template Scripting.lvlib--Get Database List of Names and Paths.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Scripting.lvlib--Get%20Database%20List%20of%20Names%20and%20Paths.vi.png)
Communication Bus Template Scripting.lvlib--Set Frame Id.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Scripting.lvlib--Set%20Frame%20Id.vi.png)
Communication Bus Template Shared.lvlib--Constants.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20Shared.lvlib--Constants.vi.png)
Communication Bus Template System Explorer.lvlib--ActionVIOnCompile.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--ActionVIOnCompile.vi.png)
Communication Bus Template System Explorer.lvlib--Compile Asynchronous Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Compile%20Asynchronous%20Execution%20Units.vi.png)
Communication Bus Template System Explorer.lvlib--Compile Inline Execution Units.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Compile%20Inline%20Execution%20Units.vi.png)
Communication Bus Template System Explorer.lvlib--Export Configuration RTM.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Export%20Configuration%20RTM.vi.png)
Communication Bus Template System Explorer.lvlib--Get Item GUID.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Get%20Item%20GUID.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Add Database RTM.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Add%20Database%20RTM.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Add Port RTM.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Add%20Port%20RTM.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Channel.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Channel.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Database.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Database.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Databases.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Databases.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Export Configuration RTM.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Export%20Configuration%20RTM.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Frame.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Frame.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Import Frames RTM.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Import%20Frames%20RTM.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Incoming.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Incoming.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Initialize.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Initialize.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Load Help File.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Load%20Help%20File.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Outgoing.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Outgoing.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Port.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Port.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Ports.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Ports.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Protocol.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Protocol.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--System Explorer Dispatcher.lvclass--Get Menu Item VI.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--System%20Explorer%20Dispatcher.lvclass--Get%20Menu%20Item%20VI.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--System Explorer Dispatcher.lvclass--Get Menu Items.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--System%20Explorer%20Dispatcher.lvclass--Get%20Menu%20Items.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--System Explorer Dispatcher.lvclass--Get Page VI.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--System%20Explorer%20Dispatcher.lvclass--Get%20Page%20VI.vi.png)
Communication Bus Template System Explorer.lvlib--Implementation.lvlib--Vendor.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Implementation.lvlib--Vendor.vi.png)
Communication Bus Template System Explorer.lvlib--Initialization VI.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Initialization%20VI.vi.png)
Communication Bus Template System Explorer.lvlib--Interfaces.lvlib--System Explorer Dispatcher.lvclass--Get Menu Item VI.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Interfaces.lvlib--System%20Explorer%20Dispatcher.lvclass--Get%20Menu%20Item%20VI.vi.png)
Communication Bus Template System Explorer.lvlib--Interfaces.lvlib--System Explorer Dispatcher.lvclass--Get Menu Items.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Interfaces.lvlib--System%20Explorer%20Dispatcher.lvclass--Get%20Menu%20Items.vi.png)
Communication Bus Template System Explorer.lvlib--Interfaces.lvlib--System Explorer Dispatcher.lvclass--Get Page VI.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Interfaces.lvlib--System%20Explorer%20Dispatcher.lvclass--Get%20Page%20VI.vi.png)
Communication Bus Template System Explorer.lvlib--Page Wrapper.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--Page%20Wrapper.vi.png)
Communication Bus Template System Explorer.lvlib--RunTimeMenu Custom Population.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--RunTimeMenu%20Custom%20Population.vi.png)
Communication Bus Template System Explorer.lvlib--RunTimeMenu Wrapper.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-17/2020-09-25/15%3A49%3A22/Communication%20Bus%20Template%20System%20Explorer.lvlib--RunTimeMenu%20Wrapper.vi.png)