How to Inherit from an Actor That Is Inside a Packed Project Library?

Updated Apr 17, 2019

Reported In

Software

  • LabVIEW

Other

  • Actor Framework

Issue Details

I created an Actor in LabVIEW and packed it into a Packed Project Library (PPL). If I create a new Actor via My Computer -> New -> Actor, the Actor from the PPL does not show up as "inherit from".
How can I inherit from an Actor that is inside a PPL?

Solution

To inherit from Actors inside a PPL a special workflow is needed which can be split into 4 basic steps:

Backup these two directories:
  • <LabVIEW>\vi.lib\ActorFramework
  • <LabVIEW>\resource\AFDebug
Create a PPL from the Actor Framework
For more information see the Solution of this Forum Post .
  1. Create an empty project and add the Actor Framework.lvlib (<LabVIEW>\vi.lib\ActorFramework)
  2. (Optional) Add other parts of the Actor Framework to the Actor Framework.lvlib if needed
    • <LabVIEW>\resource\AFDebug\AF Debug.lvlib
    • <LabVIEW>\vi.lib\Actor Framework\Time-Delayed Send Message\
      • Time-Delayed Send Message.vi
      • Time-Delayed Send Message Core.vi
      • Time-Delay Override Options.ctl
    • <LabVIEW>\vi.lib\ActorFramework\Batch Msg\Batch Msg.lvclass
      • <LabVIEW>\vi.lib\ActorFramework\Reply Msg\Reply Msg.lvclass
        • <LabVIEW>\vi.lib\ActorFramework\Report Error Msg\Report Error Msg.lvclass
          • <LabVIEW>\vi.lib\ActorFramework\Self-Addressed Msg\Self-Addressed Msg.lvclass
        • Create a build specification for a Packed Library and set Actor Framework.lvlib as Top-Level Library
        • Build the PPL Actor Framework.lvlibp
        • After completing the build, make sure to copy your backups back to the LabVIEW directory
        Create a new (Base-)Actor that inherits from the Actor Framework PPL and build this one to a PPL
        1. Create a new empty Project for your Base Actor and add the previously created Actor Framework.lvlibp
        2. Select My Computer -> New -> Actor
        3. In the Dialog, choose Actor Framework.lvlibp:Actor.lvclass as Actor to inherit from
        4. Create a new Build Specification for a PPL, and set the new Base Actor.lvlib as Top-Level Library
        5. Build the PPL Base Actor.lvlibp
        Create a new (Child-)Actor that inherits from the Base Actor PPL
        1. Create a new empty Project for your Child Actor
        2. Add the previously built Base Actor.lvlibp
        3. Select My Computer -> New -> Actor
        4. In the Dialog, select to inherit from Actor Framework.lvlibp:Base Actor.lvlib
        5. In the Properties of Child Actor.lvclass select Inheritance -> Change Inheritance
        6. In the inheritance tree set inheritance to Base Actor.lvlibp:Base Actor.lvclass
         

          Additional Information

          Be aware that packing the whole Actor Framework into a PPL requires you to only use this PPL for all related projects in the future. If you start mixing Actors that inherit from the PPL and Actors that inherit from the original Actor Framework in the vi.lib, you may get big dependency problems. Make sure all Actors that are used will inherit from the Actor Framework.lvlibp:Actor.lvclass.