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.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

LV 2020 Interface Bug or Operator Error

Hi, I just upgraded to LV2020, I'm using the Actor Framework, and I noticed the preferred method for message abstraction is using an interface. So, being proactive I switched my abstract messages out for an interface. All was well for awhile, but now I've notice an issue. I'm not sure if this is a bug or I'm not using it correctly. I have a a fairly basic interface "STEMSG". I've defined some abstract methods in the interface and created messages from them. STE inherits from it so when I call a message from the interface it invokes the derived STE class method. This worked fine until one of those methods returned an error. I lose the STE type in the "Casting Utility For Actors.vim" within the Do.vi, it returns the base Actor type, which then runs the error handler, since I lost the derived type, it doesn't run my overridden error handler, and since the base error handler just shuts down the actor, my applications stops leaving other actors running and I have to track each one down to kill it. I've since created what I think is a band-aid to this. If the method inside the Do.vi within the  interface MSG throws an error, I send a message to the STE actor with the error, created from a method within the STE class, and then clear the error so my actor doesn't just stop. Then the STE actor picks it back up again and handles it. Seems like something needs to happen similar to the use of two To More Specific nodes to preserve the original actor object. IDK, I know interfaces are new, has anyone come across something like this?

 

Thanks & Regards,

 

Matt
CLA

Demo.pngInterface HierarchyInterface Hierarchy

0 Kudos
Message 1 of 2
(1,949 Views)

The root behavior is caused by a bug in Cast Utility for Actors.vim.  The solution is to upgrade to SP1.  If that is not an option for you, modify Cast Utility for Actors.vim as shown:

 

 

Cast Utility for Actors.png

0 Kudos
Message 2 of 2
(1,436 Views)