I am evaluating BLT and using it for the first time. My application consists of a bunch of DQMH modules called by top level vi which is also a DQMH module.
I was working through the BLT documentation (which is excellent), and reached upto where BLT builds its top level VI. However the build through the BLT environment failed. Opening the STARTUP_VI reveals that its broken because its not part of the top-level application's lvlib.
What is the workaround? Should I manually place the BLT _STARTUP_VI into my application's lvlib?
Solved! Go to Solution.
If I understand correctly, you have a DQMH Module which calls several other DQMH Modules.
So if we forget about BLT, the main VI for your application would be the Main.vi of your parent DQMH Module. By default, the Main.vi of a DQMH Module is private (it cannot be accessed outside of the DQMH Module library) in order to for you to use the public methods available (Start and Stop Module).
There are several ways you can solve your issue:
1. The best approach is to create a Launcher VI outside of your parent DQMH Module. This launcher VI will simply start your parent DQMH Module using the public method Start Module. I suggest you look at the DQMH CML sample project (https://delacor.com/documentation/dqmh-html/DQMHCMLSampleProject.html) to see how the launcher is implemented in "CML Main.vi". Then, make sure to modify the _STARTUP_VI to call this new launcher VI instead of the private Main.vi of your DQMH Module
2. You could make the Main.vi of your parent DQMH module to be Public instead or Private, but I don't recommend this approach since it breaks the DQMH guidelines and best practises
3. You could make the BLT STARTUP_VI part of your parent DQMH Module Library but I don't recommend this approach either since it could create issues with future releases of BLT.
So definitely, go with #1 even if this is a little bit more work.
Hope this helps.
Matthias Baudot | Software Architect | Founder at STUDIO BODs
Makes sense. I will create a Launcher.vi that starts my application and make that the top-level vi called through BLT.