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: 

Which Version of LabVIEW for Network Endpoints 4.0?

Greetings all!

 

I've been working on the 4.0 update to Network Endpoints.  The big change is removing Nested Endpoint's abstract message in favor of a message on an actor interface.  I'm also taking advantage of a small change to the AF Debug library that was made in LabVIEW 2021.  Because of that, and because AF in LabVIEW wasn't fully supported until 2020 SP1 (there was a bug in the project provider code), the new package requires 2021 or later.

 

I sent an alpha of the package to my colleagues in the AF Guild, and the first response was to ask why I hadn't set the package for LabVIEW 2020.

 

So my first question to this group is simply this:  should I back port my changes to LabVIEW 2020, and publish that package, or can I stay on 2021?

 

A back port to 2020 breaks the code because the Network Endpoint:Receive Message is statically linked to a message class in the AF Debug library which was marked as private scope until 2021. 

 

If I don't back port, fixing the break is very easy:  change the scope of the Register Actor message in AF Debug to public, just like we did for LV 2021.  I can add instructions for this change to the release notes.

 

If I back port, I'll need to deal with this, and I have two choices:

 

1)  Add a pre- or post-installation action to change the scope of the message (and bring the library up to its 2021 specification), or

2)  Work some magic with the Type Specification Structure to change the code in Receive Message based on what will compile.  (I haven't tested this, but I believe it will work.)

 

I'm not so fond of 2), because it's messier.  But it's an option.  So my second question:  if I back port, which mechanism to cope with the break should I choose?

 

What says the community?

0 Kudos
Message 1 of 4
(1,076 Views)

To put my ignorance on full display - in 5+ years of using the AF, I have never seen how AF Debug improve the project. I see where AF calls into it, and I've seen that your Network Endpoints respect its semantics. But I've always seen AF Debug as bloatware that merely makes the AF more complicated. (I'm sure someone will point out a simple right-click > Show Running Actors in response to this 😁).

 

For that reason, I'd probably recommend making the most accessible and best possible Network Endpoint library, even if it breaks AF Debug functionality.

 

Regarding versions, I use Network Endpoints for my biggest project. It's on 2020 and I'm on the fence about upgrading to 2021. I haven't seen any LabVIEW improvements since 2020 that would justify upgrading, but I've heard superstitions that cRIO deployment goes a bit smoother in 2021. I also get the impression many folks will stay on 2020 due to the perpetual/subscription licensing fiasco. So my vote is to support 2020.

Message 2 of 4
(1,055 Views)

@OneOfTheDans wrote:

To put my ignorance on full display - in 5+ years of using the AF, I have never seen how AF Debug improve the project. I see where AF calls into it, and I've seen that your Network Endpoints respect its semantics. But I've always seen AF Debug as bloatware that merely makes the AF more complicated. (I'm sure someone will point out a simple right-click > Show Running Actors in response to this 😁).

 

For that reason, I'd probably recommend making the most accessible and best possible Network Endpoint library, even if it breaks AF Debug functionality.

 

Regarding versions, I use Network Endpoints for my biggest project. It's on 2020 and I'm on the fence about upgrading to 2021. I haven't seen any LabVIEW improvements since 2020 that would justify upgrading, but I've heard superstitions that cRIO deployment goes a bit smoother in 2021. I also get the impression many folks will stay on 2020 due to the perpetual/subscription licensing fiasco. So my vote is to support 2020.


I really wish AF debug was built as an injectable interface with a default implementation provided. 

0 Kudos
Message 3 of 4
(986 Views)

LV 2020 is the first version to include interfaces as well as a Community Edition so I think it would be nice for everyone to adopted LV then to have access to this utility. That said, shackling yourself to limitations in 2020 doesn't sound fun.

 

Maybe the best course of action would be to release it in 2021 and then, if there's a strong desire from the community to have it backported to 2020, put it on the G Idea Exchange or have the AF Guild help out. i.e. Get the minimum viable product out first and then see if there's even a desire from the community for a 2020 version.

CLA CLED AF Guild
0 Kudos
Message 4 of 4
(974 Views)