Actor Framework Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Zero Coupled Messaging Questions

I have been through the AF course and we worked with zero coupled messages. I understand the concept from 1 direction, but what if I want to send decoupled messages back and forth from two actors? 

Example: Actor A is a UI that is an interface for the user to look at database tables. Actor B is the Database Interface Actor. 

 

I know how to create a decoupled message for A to send to B, since A launches B, but how do I go about decoupling the reply from B to A since B is not launching A?

 

This is somewhat confusing for me. 

 

Are there any examples of such? Say you have a couple reuse actors that you want to use in any project and all of the messages need to be decoupled? Can you do that? How? 

 

Thanks in advance. 

 

 

Appreciate constructive criticism, it is there to help you succeed.
0 Kudos
Message 1 of 10
(3,558 Views)

I have updated my "Actor Framework from basic to PPL plugins" examples with decoupled Reply Messages.

You can compare example 4a (asynchronous response) with 4d (reply messages).

 

http://bit.ly/lvactorbasic2ppl

 

Thanks for the question. It's a nice addition to the examples.

If you have any questions let me know.

 

Best Regards,

Stefan Lemmens

Intersoft Electronics

Message 2 of 10
(3,509 Views)

Thank you Stefan, 

 

I will take a look. I appreciate the effort to help answer my question. It has nagged at me for a while to be able to create truly decoupled actors. 

 

 

Appreciate constructive criticism, it is there to help you succeed.
0 Kudos
Message 3 of 10
(3,482 Views)

Extremely relevant to the decoupled actors conversation:

https://forums.ni.com/t5/Actor-Framework-Discussions/LabVIEW-2020-Interfaces-AF-webcast-on-Friday-Ma...

The zero-coupling solution is obsolete as of yesterday, April 28, 2020, with the release of LabVIEW 2020. Go upgrade. AF users, there is a better way.

Message 4 of 10
(3,475 Views)

@AristosQueue (NI) wrote:

Extremely relevant to the decoupled actors conversation:

https://forums.ni.com/t5/Actor-Framework-Discussions/LabVIEW-2020-Interfaces-AF-webcast-on-Friday-Ma...

The zero-coupling solution is obsolete as of yesterday, April 28, 2020, with the release of LabVIEW 2020. Go upgrade. AF users, there is a better way.


Can we use the Community Edition download with a standard product key to get regular LabVIEW? I have my work computer with me at home and I'd love to go ahead and get it updated.

0 Kudos
Message 5 of 10
(3,473 Views)

@BertMcMahan wrote:


Can we use the Community Edition download with a standard product key to get regular LabVIEW? I have my work computer with me at home and I'd love to go ahead and get it updated.


LabVIEW Community Edition works without any product key to the best of my knowledge. Click that "Go upgrade" link that I posted and click the Download button. Should work.

0 Kudos
Message 6 of 10
(3,457 Views)

Looks and sounds great, I will check out the 2020 Community Edition to see what the buzz is about.

 

On a side note, the company I work for will likely not be moving to 2020 just yet, so with that being said, are there any good practices that you can think of to allow for decoupled messaging that is bi directional.

Appreciate constructive criticism, it is there to help you succeed.
0 Kudos
Message 7 of 10
(3,430 Views)

@AristosQueue (NI)  escreveu:

Extremely relevant to the decoupled actors conversation:

https://forums.ni.com/t5/Actor-Framework-Discussions/LabVIEW-2020-Interfaces-AF-webcast-on-Friday-Ma...

The zero-coupling solution is obsolete as of yesterday, April 28, 2020, with the release of LabVIEW 2020. Go upgrade. AF users, there is a better way.


Are there already zero coupled solutions shipped in LV 2020 examples?

 

Thinking about downloading Community Edition, I was still waiting the standard version release.

 

Regards,

Felipe Pinheiro Silva


Follow my blog for LV content!

0 Kudos
Message 8 of 10
(3,304 Views)

@AristosQueue (NI)  ha scritto:

Extremely relevant to the decoupled actors conversation:

https://forums.ni.com/t5/Actor-Framework-Discussions/LabVIEW-2020-Interfaces-AF-webcast-on-Friday-Ma...

The zero-coupling solution is obsolete as of yesterday, April 28, 2020, with the release of LabVIEW 2020. Go upgrade. AF users, there is a better way.


Yes but the tooling is not there yet.

 

In the shipping example "Nested called via interface" you use the scaffolding of an actor but applied to interface.

It's very unintuitive.

It works like this:

 

  1. Create an actor (named "Abstraction" in the example, very bad name, too generic)
  2. delete the class
  3. create an interface called "Abstraction"
  4. add a method to this interface (named "Receive value" in the example)
  5. right click -> AF -> create message for actor (???? what??? LOL what??? actor what???)
  6. the scaffolding will create the VI "send <your method name>" and "do".
  7. implement the inteface on your actor classes
  8. in the actor that wants to send an "abstract message" ( == the actor that doesnt know WHO TO SEND TO, and WHAT THE RECEIVER WILL DO WITH THE REPLY's DATA) you will use the interface method

 

 

 

PS:

/personal rant

I saw your presentation on Teams. You complained that it tooks 10 years for customers to use classes. You know why? Because you are too conservative. OOP is not enforced in LV, like it is in C#, and all simple projects are not carried by interface, because KISS principle.

If even with a simple project I would have been forced to use a class instead of a cluster, you would have much more developers on the same "wavelength".

10 years to add interface since introduction of OOP in LV is way too much.

Why bother with LV if we have C# + measurement studio + cDAQ.net + VISA.net + infinite software libraries on github/nuget/3rd party?

/end rant

 

0 Kudos
Message 9 of 10
(3,178 Views)

@Konan__ wrote:

@AristosQueue (NI)  ha scritto:

Extremely relevant to the decoupled actors conversation:

https://forums.ni.com/t5/Actor-Framework-Discussions/LabVIEW-2020-Interfaces-AF-webcast-on-Friday-Ma...

The zero-coupling solution is obsolete as of yesterday, April 28, 2020, with the release of LabVIEW 2020. Go upgrade. AF users, there is a better way.


Yes but the tooling is not there yet.

 

[...]

 

PS:

/personal rant

I saw your presentation on Teams. You complained that it tooks 10 years for customers to use classes. You know why? Because you are too conservative. OOP is not enforced in LV, like it is in C#, and all simple projects are not carried by interface, because KISS principle.

If even with a simple project I would have been forced to use a class instead of a cluster, you would have much more developers on the same "wavelength".

10 years to add interface since introduction of OOP in LV is way too much.

Why bother with LV if we have C# + measurement studio + cDAQ.net + VISA.net + infinite software libraries on github/nuget/3rd party?

/end rant

 


I presume some of the wording is due to translation....

 

My two cents: applying force on someone or something does create counterforce, or at least resitance.

Nobody likes to be forced, neither are you. 

Programmers are free to choose, they can only be encouraged to comply to style guides, use frameworks, ...

or program languages.

There's a time and place for everything and there is no generic solution to all the problems one is facing. Not every problem is a nail.

 

 

Message 10 of 10
(3,167 Views)