DQMH Consortium Toolkits Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

(my) DQMH PPL and VILIB PPL best practices

Debugging: (depending on what you want to do)

Fridu_11-1623165545582.png

 

Exclude dependent packed libraries: (Always enabled!)

Exclude dependent shared libraries: (Always disabled!)

Fridu_12-1623165593210.png

 

 

Use Pre-/Post Build Actions to optimize your build

  • Remove all Breakpoints before you build
  • Check for misssing Items.
  • set conditional disabled symbols

Fridu_13-1623165643896.png

 

DQMH Module's (generic):

- Move Tester inside of the Library

- Set main.vi public (easier to debug)

Fridu_5-1623161555282.png

 

Call (non PPL) DQMH from PPL DQMH modules

  • The GUI is available as source code and will be compiled later as EXE
  • The GUI DQMH modules are not used as a PPL
  • The Module1 uses requests from the GUI / delivers data with broadcasts

 

Fridu_0-1623226836209.png

Obtain Request Events.vi

For all GUI-DQMH modules "Obtain Broadcast Events.vi and Obtain Request Events.vi) must be extended. The VI searches via "VI server" the instance with the valid UserEvent registrations).

Fridu_1-1623227225398.png

 

TestStand error / stop module integration:

- generate an additional vi to receive the desired events under TestStand (running in a TS-thread)

Fridu_8-1623162046762.png

 

Add LVLIBP-search path to your Application.ini file (TestStand and normal applications)

  • viSearchPath="C:\xxx\Components\Libraries\*"
  • ShowLoadProgressDialog=False

 

Lessons learned:

  • Circular dependencies
    It's not possible to build PPL with circular dependency
  • Namespace
    Attention the namespace of a VI or control and typedef changes Typedef controls. The type definition inside and outside the Packed Library is not compatible.
    It can cause problems with queues and type casting for example!
  • Semaphores
    If Semaphores are used over the PPL border, an separate LabVIEW Semaphores PPL (wrapper) must be created. The problem lies again in the fact that a Semaphore is in the background a "Typedef Queue" which gets a new Type in the new Namespace of the PPL.
  • TestStand
    If PPL cannot be opened with the TestStand "Runtime Engine", it may be because the controls on the front panel are not Pubilc.
    (For libs and for DQMH modules).
  • Missing Items in Projects / lvlib
    Missing items result in partially not executable PPL (even text files and images)
  • After renaming the project, the PPL build specification must be recreated


In case of strange crashes, recompile the PPL with the MGI Solution Explorer!

  • Consider build order!
  • opposite direction of the hierarchy

 

=> Still under construction... please wait for updates! 😉

 

Have FUN with PPL! 

Claude

 

CLA / CTD
Message 1 of 3
(222 Views)

Updated and extended...

CLA / CTD
0 Kudos
Message 2 of 3
(162 Views)

Updated (Pre-Postbuild / Application settings)

CLA / CTD
0 Kudos
Message 3 of 3
(119 Views)