LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Tushar's Event Architecture

Look at the attached Demo application. Please do let me know your comments on this architecture.

Introduction

There are many architectures called Event, Message handler, state machine, queued state machine etc. and I don’t know what should I call this new architecture I have developed, so I will simply call it Tushar’s event architecture

Most of the architectures proposed by NI and other forums provide excellent data and flow management between single VI. But in real world big applications that is seldom the case; especially if your application utilizes layered design.

Proposed architecture is suitable where a layer of an application needs to execute a process as per other layer's request (Along with sync issues).

Architecture Details

Core of this architecture is Event Client object. One can create N number of instances of this object in an application. Only constrain is each instant should have a distinct name.

Every instance of Event Client can subscribe his own choice of events. Subscribed events can be added or removed in run time.

As soon as the subscribed event is raised, it is made available to appropriate instance of event client instance.

(Note: One event can be subscribed by more than one instance of event client.  When such event is raised it will be made available to all the instances who have subscribed it)

To get the actual event EventClient_GetEvent.vi should be used. This vi is very much similar to Dequeue element vi. Using this VI it is possible to wait for any subscribed event for specified timeout.

Template

The template provided is a variant of Queued message handler. In the state machine user can handle the events generated by event structure, Event client as well as he can insert his own states as per requirements.

 

 

If you need Event Client Toolkit with you own logo for Server Startup, Please mail the request along with your logo to t_jambhekar@rediffmail.com. Toolkit will be mailed to you free of cost.

Please mention form where you came to know about this toolkit

 

Tushar Jambhekar
tushar@jambhekar.com

Jambhekar Automation Solutions
LabVIEW Consultancy, LabVIEW Training
Rent a LabVIEW Developer, My Blog

Message 1 of 11
(6,241 Views)

Hi Tushar,

The entire coding looks very clean n neat. Smiley Happy

But when I run the Main VI, I get the attached error message. Smiley Sad

I ran in LV 8.5 Eval.

- Partha ( CLD until Oct 2027 🙂 )
0 Kudos
Message 2 of 11
(6,232 Views)
Hi Tushar,

The file attached is compatible with LV8.2. I am using LV8.0. Please attach the file compatible with LV8.0
0 Kudos
Message 3 of 11
(6,215 Views)
Tushar's Toolkit in LV 8.0.
- Partha ( CLD until Oct 2027 🙂 )
Message 4 of 11
(6,203 Views)
Your "demo" vi crashed LabVIEW and I had to "end task" and restart it. Your architecture is too complicated, and some suvi's are password protected so we can't even learn how you do what you are attempting to do.
PaulG.
Retired
Message 5 of 11
(6,178 Views)
I encounters the same error and needed to End Task


Van L
NI Applications Engineer
0 Kudos
Message 6 of 11
(6,145 Views)
Sorry,

the code needed a mass compile as the toolkits relative position is changed from my default directory. please find a mass compiled code here

Tushar Jambhekar
tushar@jambhekar.com

Jambhekar Automation Solutions
LabVIEW Consultancy, LabVIEW Training
Rent a LabVIEW Developer, My Blog

Message 7 of 11
(6,120 Views)

Sharing is good. Thanks for that, although as Paul said, password protecting the lower level hurts your cause somewhat.

I would have to agree that the architecture is a bit too complicated to understand easily. Most toolkits which provide complex functionality (e.g. dqGOOP, which you used) provide a wizard for doing part of the work. Since you didn't publish this as a toolkit, however, you're not obligated to do that.

Another important point is that there are other alternatives, and some of them communicate across application instances, so you can even use them from other computers. A couple of examples include the Active VI toolkit and LVx.


___________________
Try to take over the world!
Message 8 of 11
(6,063 Views)
Upon deeper digging into this code it looks like it's based on Endevo-style GOOP, (it could actually be Endevo's GOOP) and all of their lower-level vi's are password protected. I'm working on another project where Endevo GOOP is used everywhere and the low-level VI's are pasword-protected. I won't find fault with that.
 
I might have been too critical Tashar, and for that I apologize. And thanks for sharing. Smiley Happy
PaulG.
Retired
Message 9 of 11
(6,014 Views)
"Sharing is good. Thanks for that, although as Paul said, password protecting the lower level hurts your cause somewhat."
 
Hiding Code was not  the main intention behind password protection. It was just because it is bit more complex, please find attached code with password remove.
 
" would have to agree that the architecture is a bit too complicated to understand easily"
The basic idea is simple. you can create a Event Clients where ever you wish. Event client can be configured to capture certain events. and whenever such event occurs client informs you irrespective where perticular event occured. one can attach event specific data to event itself.
 

Tushar Jambhekar
tushar@jambhekar.com

Jambhekar Automation Solutions
LabVIEW Consultancy, LabVIEW Training
Rent a LabVIEW Developer, My Blog

Message 10 of 11
(5,981 Views)