Table of Contents

44 Packed Project Libraries

General Notes


Notes for building PPLs

Don't build PPLs which depend on PPLs inside <vi.lib>. The PPL will contain a broken link to <vi.lib> which prevents the PPL from loading. We're still trying to figure out what is going on here. We already have a minimal example for further investigation.

pplandvilib.zip

  1. build both PPLs to repo\builds
  2. copy dependency.lvlibp to vi.lib\PPLandViLib
  3. open Top.lvproj which depends on vi.lib\PPLandViLib\dependency.lvlibp
  4. build top.lvlibp, so top is now linked to dependency in vi.lib
  5. open a blank project and drag in top.lvlibp from repo\builds
  6. it won’t open, because it cannot find dependency.lvlibp, which hasn’t moved since building top.lvlibp.

Notes for introducing PPLs


Dynamic VI calls

Normally you would call VIs from vi.lib statically, so that they will be pulled into the PPL. In certain scenarios it might be useful (?) to call a VI outside of the PPL, which needs to happen dynamically. This works with LV native datatypes on the connector pattern only, e.g. if you hand over a class between the PPL and the other VI it won't work out of the box. The class being pulled into the PPL will get namespaced resulting in a new class name which is not compatible with the class outside the PPL. See this thread.

This might be the cause for this error when using Call By Reference:

  Error 1031 occurred at Open VI Reference in PPL.lvlibp:Call By Reference.vi
  Possible reason(s):
  LabVIEW:  VI Reference type does not match VI connector pane.

#todo: solve with inheritance


Notes for using DQMH

to be clarified


HSE PPL flavour

The evolution of PPL usage at HSE. Each evolution needs to include the steps from previous evolutions.

Building PPLs

example: hse-licence-library

Using PPLs

example: hse-licence-editor

  artifacts:
      paths:
      - PPL/*.lvlibp

Using PPLs & release via VIP

not implemented, yet

challenges:

Problems

ideas:

Building PPLs & release via VIP

challenge: While creating the PPL the dependent PPLs need to be present. While building the VIP, only the zip files needs to be present - but also the zip files just created in this pipeline. example: hse-licence-manager