From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Actor Framework Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

How to build a PPL including Actor classes, messages and AF Debug

Solved!
Go to solution

Hello together

 

I can't see the forest for the trees... im trying to build a ppl for my Actor project. I can build the ActorFramework.vilibp from the library in the vi.lib. But then, the messages (e.g. the Delayed message) are not part of the packagee (like described here ). So i tried to create a new library including the messages and all the stuff from AF Debug. But i was not successfull. I don't get it how to organise all the files to create a new library, without touching the original classes and vi's in vi.lib and resource. Shall i copy all these files to a folder and create a new library from there, where all the files are in the same library with the actor base classes or do i have to build the ActorFramework.lvlibp and then use this library to build new packed libs for messages and AF Debug?

 

Can anyone guide me?

Thanks Matthias

_______________
Automate LabVIEW builds easy with Jenkins Plugin www.kubes.ch/Jenkins
0 Kudos
Message 1 of 25
(9,718 Views)

There is a sample project in LabVIEW that has a known good build specification:

 

LabVIEW 2018\examples\Application Control\Actor Framework As PPL

 

I'd start from there.

0 Kudos
Message 2 of 25
(9,716 Views)

I created some examples on how to go from basic to PPL plugins with the Actor Framework.

You can find them here.

 

Hope this helps. If you have any other questions just let me know.

 

Best Regards,

Stefan Lemmens

Intersoft Electronics

0 Kudos
Message 3 of 25
(9,706 Views)

Hi

thanks for your fast replies.

StefanLemmens, i found your work before, this is a very good explanation on how to build a plugin structure. But my point is, how i have to organise my buildspecification and the projectfile to build afterwards a ActorFramework.lvlibp like you did it in example #5. The delivered example in the example folder of LV2018 builds only the main part of the Actor Framwork in a ppl but not the messages Reply Msg, Batch Msg, Report Error Msg and Self-Addressed Msg.

Can you explain me in more detail how you did this for your example?

Best Regards
Matthias

_______________
Automate LabVIEW builds easy with Jenkins Plugin www.kubes.ch/Jenkins
0 Kudos
Message 4 of 25
(9,674 Views)
Solution
Accepted by topic author kubes_ch

Hi Matthias,

 

If you want to use the "Actor Framework.lvlibp" in LabVIEW 2016 you can use the one from my example. Just copy it to your project or user.lib.

If you want to (re-)create your own, you can follow the steps described in the attached file. This is how I did it, you can probably do it slightly different as well. I included the AF Debug class and some other message types (Time-delayed, batch, reply and self-addressed) into my "Actor Framework.lvlibp.

 

Make sure to take a backup of your native Actor Framework before you do this!!!!

This has to be done by modifying the native Actor Framework in the vi.lib.

 

Some remarks :

  • I noticed that the hierarchy in the lvlibp is imported otherwise the Actor Framework Project Provider (message maker) won't work. So make sure that your actor and message classes are at the correct level in the hierarchy.
  • I can use this from my user.lib\...\Actor Framework PPL\Actor Framework.lvlibp by just adding this library to the project and the message maker will then use this actor framework (only works from LV2016 an above). But if I create plugins from a project template that uses this one they get mislinked. I still don't know what's the best way to do this, so if anybody has some more info on using project templates with actor framework.lvlibp let me know.

I hope this helps you.

 

Best Regards,

Stefan Lemmens

Intersoft Electronics

Message 5 of 25
(9,667 Views)

Hi Stefan

 

thanks for this step-by-step manual. I tried it in a similiar way before but was unsuccessfull... I'll give it try with your manual later on. I'll let you know about the result

 

Best Regards

Matthias

_______________
Automate LabVIEW builds easy with Jenkins Plugin www.kubes.ch/Jenkins
0 Kudos
Message 6 of 25
(9,648 Views)

Hi Stefan

this solution works for me!

 

Thanks

Matthias

 

_______________
Automate LabVIEW builds easy with Jenkins Plugin www.kubes.ch/Jenkins
0 Kudos
Message 7 of 25
(9,584 Views)

Hello Stefan,

 

Thank you very much for your detailed steps. I want to underline one of your sentences that did not make it into the pdf:

This has to be done by modifying the native Actor Framework in the vi.lib.

This was crucial in my case (LabVIEW 2016f5). Doing the changes directly in the AF PPL project I was not able to compile afterwards due to VIs that loaded broken. I neeed to implement the changes directly into vi.lib\Actor Framework\Actor Framework.lvlib. Afterwards, I created a project, added this lvlib, created a build specification, and this one worked.


Ingo – LabVIEW 2013, 2014, 2015, 2016, 2017, 2018, NXG 2.0, 2.1, 3.0
CLADMSD
0 Kudos
Message 8 of 25
(9,294 Views)

Hi Ingo,

 

it is indeed crucial to change the vi.lib\Actor Framework\Actor Framework.lvlib and build that one into a packed library. That's why step 2 says you have to take a backup of the actor framework and the last step says to restore this backup. Also step 6 says to add "vi.lib\Actor Framework\Actor Framework.lvlib" to your project (not the copy but the original one) because that's the one you will be modifying during the next steps. Sorry if this wasn't clear enough.

 

Best Regards,

Stefan Lemmens

Intersoft Electronics

Message 9 of 25
(9,264 Views)

Hello Stefan,

Thank you for your reply!

I am not sure if we are talking about the same thing. I believe I followed your steps exactly (on a freshly installed LabVIEW 2016 f5).

  • In short, I created a new project, added original AF from vi.lib into it, then drag&dropped AF Debug into AF in that project. After the other steps as described: Save, compile. This resulted in an AF PPL that did not work as expected.
  • To make it work, I had to do two steps: 1) Open AF directly in vi.lib, drag&drop AF Debug into it here. Follow your other steps. Close it. 2) Then create a project, add the already changed AF to it, save, compile, PPL works.
  • To my understanding, both versions should be exactly the same. It should not make a difference if I change AF.lvlib directly, or from a project where it is loaded into. But somehow there was a difference, at least on my end.
  • I highlighted "on my end", because we got mixed results yesterday. When doing your steps on a colleague's computer, it worked exactly as they are described, performing the changes in the project.
  • I assumed that LabVIEW could not update some dependencies correctly in my case, but I could not find a difference.

 

Anyways, I am happy as I have a working AF PPL. I just wanted to post my findings because someone else might have the same problem.


Ingo – LabVIEW 2013, 2014, 2015, 2016, 2017, 2018, NXG 2.0, 2.1, 3.0
CLADMSD
0 Kudos
Message 10 of 25
(9,260 Views)