JKI State Machine Objects

cancel
Showing results for 
Search instead for 
Did you mean: 

Debugging SMOs

Hi,

I was wondering if there was a good methode to access a SMO during remote debugging of for example a sbrio? I cant really find a way to open the process.vi.

Regards

0 Kudos
Message 1 of 6
(8,840 Views)

I assume SMO "Process" VIs are shared-reentrant?   There isn't (that I know of) a way to open the FP of a shared-reentrant VI on an RT target.  In my "Messenger Library" package I work around this issue by having the ability to make my "actors" (note: NOT Actor Framework actors) non-reentrant.  I can then open Front Panels and debug them, then easily switch them to shared-reentrant when I need more than one running at a time.  JKI might be able to engineer similar non-reentrant SMOs.

Message 2 of 6
(8,588 Views)

I belive they are shared-reentrant yes, and that seems like the problem i am having. Sounds like a pritty big limitation, so a solution similar to what you are describing seems like it would be needed.

Thanks for the information.

0 Kudos
Message 3 of 6
(8,588 Views)

Yes, that would be a great feature.

The Process.vi itself cannot be made non-reentrant because it is dynamically dispatched and the base class needs to be able to run concurrently with other subsystems.

You could wrap the process loop into a non-reentrant, provided you keep the "Process: Sync" methods out of the that VI.

I'll need to change the Process: Sync calls to allow them to be inside a subVI (not at the same level as the "Call Parent Node"). This is certainly possible in the future. In the current version, if you wrap them into a subVI, they will deadlock on termination.

I've added the feature request to the GitHub repo.

https://github.com/JKISoftware/JKI-State-Machine-Objects/issues/22


GCentral ChampionCLA
0 Kudos
Message 4 of 6
(8,588 Views)

You may try this method (I'm not sure whether it will work on crithough).

When you are connected to your target open  View menu | Browse Relationships | Reentrant items. there you should find list of all reentrant clones tunning on a project's active target.

0 Kudos
Message 5 of 6
(8,588 Views)

This feature is now supported from version 1.1.9 of the SMO Base package.

I'll probably modify templates to make this easy to do in the near future.

For now, please refer yourself to the example process in the base folder under vi.lib. (SMO.Example.lvclass:Process.vi)

found in <vi.lib>\JKI\JKI SMO\JKI SMO Example.lvproj. It is configured for Pre-Allocated Clone but can be set to Non-Reentrant for debug.

****************************************

[Feature: 22] Modified the Process Sync methods to allow usign them into subVIs of the Process.vi dynamic dispatch. This allows to encapsulate a process loop into a subVI and change its reentrancy settings at will.

[Feature] SMO.Example process demonstrates how to launch JKI State Machine process VI as a standalone tester without call for parent node.

GCentral ChampionCLA
0 Kudos
Message 6 of 6
(8,588 Views)