Actor Framework Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Introducing remote launch for Actors

Brian: That should work. It certainly did when I tested it in a small toy set up that I had for a weekend. Part of why these classes aren't in the shipping LV edition of the AF is that few people have tested them enough for me to be comfortable saying "yes, this works." I think I have everything in the right place.

Message 11 of 16
(2,248 Views)

Very nice AQ! I'll test it put on my hypervisor setup and let ypu know.

Brian G. Shea
Certified LabVIEW Architect
Message 12 of 16
(2,248 Views)

Hello AQ, niACS and everyone who is interested in this nice tool! I really enjoy programming with actor framework and finally I downloaded this vipc 1.0.0.15 in my LabVIEW 2014(with the default AF version 4.1 rather than the Experiement Fork shown above).Then I have to modify the Demo App provided by you with AF 4.3 because of the changes in Launch Actor.vi in LabVIEW 2014, and I've run up with many problems.

1,First of all, I will provide you with my basic information of the OS and softerware.The OS is windows 10 pro 64-bit, the LabVIEW's version is 14.0f1-32bit, and the add-on list is in follow:

1.png

2,Now this example demo app is in my windows explorer and I need to modify some of VIs before it performs normally with AF 4.1 in LV 2014(Note that in AF 2014 the Launch Actor.vi has been replaced by 2 separate VIs, Launch Root Actor.vi and Launch Nested Actor.vi). So I modified 2 VIs, TEST Local With Proxy.vi and Caller.lvclass::Actor Core.vi in the demo app, which is something like follow. The demo app performed normally in 2 computers(while I changed some variables).

2.png

3.png

4.png

3,The problems started when I tried to cover the files in LV project. I tried my effort to find where the error is then I found it’s in Upper Proxy Actor.lvclass::Actor Core. The data flow from the app property node is not executed and there is NO value found thus making the Lower Launch VI to accept the actual parameter of port variable as 0! I have to set the port number as a constant to avoid the error out. I could not do that in my daily practices, so could anybody tell me what is going on and how to solve the problem?

5.png

4,Then I got an error after executing the Send Dialog.vi in Caller.lvclass::Actor Core.vi, the error code means an invalid app reference. It is not allowed to debug the standard AF VIs so it is hard to decide what to do next. But I believe that there must be something to do with the LV project because if I launch the TEST vi from windows explorer instead of *.lvproj, the whole app will perform normally.

6.png

5,There may also be something to do with the Lower Proxy Actor.lvclass because the Launch Lower Proxy Actor.vi is not compatible with the new version AF 2014. Please see below. But please note that, if I do not use the LV project to launch this demo app, the app will work normally without modifying this vi.

7.png

6,So the final question is, what do I need to do to use this Launch Remote Actor tool successfully in LV 2014 *.lvproj? THANKS FOR ALL YOUR HELP!

0 Kudos
Message 13 of 16
(2,248 Views)

zhensheng wrote:

Hello AQ, niACS and everyone who is interested in this nice tool! I really enjoy programming with actor framework and finally I downloaded this vipc 1.0.0.15 in my LabVIEW 2014(with the default AF version 4.1 rather than the Experiement Fork shown above).Then I have to modify the Demo App provided by you with AF 4.3 because of the changes in Launch Actor.vi in LabVIEW 2014, and I've run up with many problems.


2,Now this example demo app is in my windows explorer and I need to modify some of VIs before it performs normally with AF 4.1 in LV 2014(Note that in AF 2014 the Launch Actor.vi has been replaced by 2 separate VIs, Launch Root Actor.vi and Launch Nested Actor.vi). So I modified 2 VIs, TEST Local With Proxy.vi and Caller.lvclass::Actor Core.vi in the demo app, which is something like follow. The demo app performed normally in 2 computers(while I changed some variables).

  

3,The problems started when I tried to cover the files in LV project.

4,But I believe that there must be something to do with the LV project because if I launch the TEST vi from windows explorer instead of *.lvproj, the whole app will perform normally.

5 But please note that, if I do not use the LV project to launch this demo app, the app will work normally without modifying this vi.

6,So the final question is, what do I need to do to use this Launch Remote Actor tool successfully in LV 2014 *.lvproj? THANKS FOR ALL YOUR HELP!

So, two things:

1)  You should not have to change any code.  The package is intended to work with the version of AF that ships with LabVIEW 2014.  If the package code is broken, then you need to revert your AF to the version that ships with LabVIEW 2014.

Launch Actor.vi did get deprecated in 2014, but it is still available.  We did not change the example for this release, because Launch Actor still works.

In your own code, you can use Launch Root Actor.vi and Launch Nested Actor.vi with no difficulties.  I do see that you were able to do this with the example code.

2)  The example code does NOT work when run from a project, for reasons that are not clear to me, other than it is some kind of outside context problem (or, more likely, an inside context problem - some resource is being contested by multiple processes within a single LabVIEW instance).  I have used this package successfully in code that runs from a project, so the .lvproj file is not a barrier to actual use.  My recommendation is that you set up a virtual machine, or an actual machine, to serve as your remote while you build and test your application.

Since you know the demo works when you run it outside of a project, try building out the portion of your application that does remote management.  If you still have problems, let us know.

0 Kudos
Message 14 of 16
(2,248 Views)

Hi guys,

Thanks for another awesome tool AQ! I was really excited about using it but now I see my expectations might have been perhaps unrealistic; I was hoping to have a situation where, having application running in a RT target somewhere, to be able to launch an Actor remotely on that machine (perhaps doing some monitoring, diagnostics, etc). Of course, I this Actor would in a different "actor tree" / thread, side by side to the already running application. Effectively, we could remotely provide services "launched/deployed" from external sources.

 

However, the moment I try to open the application reference to a RT PXI I get error 1004 - VI not in memory. 

[

Error 1004 occurred at Open VI Reference in Upper Proxy Actor.lvclass:Pre Launch Init.vi:2610001->Actor Framework.lvlib:Actor.lvclass:Actor.vi:6640010->Actor Framework.lvlib:Actor.lvclass:Actor.vi.ACBRProxyCaller.2690007C

Possible reason(s):

LabVIEW: The VI is not in memory.

]

 

Now, this takes me back to the Network Endpoint Actors, where the message classes from the Host needs to be present in the Target (loading them into memory) and vice versa. I understand that there are no miracles and that is probably why in the example it says to "keep this VI open", but since I really wanted this to work as I imagined, I was wondering if Brian you found a way of running this in the RT and how?

Thanks again, hopefully that made some sense otherwise please let me know I'll try to explain myself a bit better,

Cheers!

Cris

 

 

 

0 Kudos
Message 15 of 16
(1,581 Views)

@crandiba wrote:

Hi guys,

Thanks for another awesome tool AQ! I was really excited about using it but now I see my expectations might have been perhaps unrealistic; I was hoping to have a situation where, having application running in a RT target somewhere, to be able to launch an Actor remotely on that machine (perhaps doing some monitoring, diagnostics, etc). Of course, I this Actor would in a different "actor tree" / thread, side by side to the already running application. Effectively, we could remotely provide services "launched/deployed" from external sources.

 

However, the moment I try to open the application reference to a RT PXI I get error 1004 - VI not in memory. 

[

Error 1004 occurred at Open VI Reference in Upper Proxy Actor.lvclass:Pre Launch Init.vi:2610001->Actor Framework.lvlib:Actor.lvclass:Actor.vi:6640010->Actor Framework.lvlib:Actor.lvclass:Actor.vi.ACBRProxyCaller.2690007C

Possible reason(s):

LabVIEW: The VI is not in memory.

]

 

Now, this takes me back to the Network Endpoint Actors, where the message classes from the Host needs to be present in the Target (loading them into memory) and vice versa. I understand that there are no miracles and that is probably why in the example it says to "keep this VI open", but since I really wanted this to work as I imagined, I was wondering if Brian you found a way of running this in the RT and how?

Thanks again, hopefully that made some sense otherwise please let me know I'll try to explain myself a bit better,

Cheers!

Cris

 

 

 


Did you ever find a way to resolve this error? I have attempted dropping the relevant classes and vis onto a BD and compiling into an EXE as demonstrated by Allen Smith here: https://www.youtube.com/watch?v=QvLqMhrIZB8 but it doesn't seem to work still.

0 Kudos
Message 16 of 16
(436 Views)