Check out our General Code Repository Files. Also, before posting here, check to see if your post doesn't fit into another subforum by category.
Tags |
(This content has not been tagged yet)
|
![]() |
Dec 7 2007, 05:28 AM
Post
#1
|
|||
![]() Extremely Active Member Posts: 373 Joined: 6-February 07 From: Homburg/Germany Member No.: 7689 Using LabVIEW Since:2004 LV:8.6 ,. ,.
My Gallery
|
File Submitter: Eugen Graf File Submitted: 8 Nov 2007 File Category: General This is my realisation of topic based Publish/Subscribe Software Design Pattern. http://en.wikipedia.org/wiki/Publish/subscribe http://en.wikipedia.org/wiki/Observer_pattern The dispatcher is the main task of this pattern, which administrates a topic table. If any (Queue- Notifier- User Event- and TCP/IP based) client starts, it should register himself by the dispatcher, so the dispatcher adds them into the topic table. The next step the client should do - is to subscribe to topics. If the dispatcher receives a message from any client, it looks which clients want to receive this message and send it only to this clients. So you can rediuce some data traffic in your programm. If a client is no more interested in a topic, it can unsubscribe from this topic. If a client want to be removed from the table, it should unregister. So you can dynamically start/stop clients and realize a software, which is plugin able. Supporting TCP/IP protocoll gives you a chance to communicate between programm modules, different applications, and different computers over network. Therefore you can connect two or more dispatchers and select topics, which you want to send or receive. This feature gives you a big advantage - remote debugging. Click here to DOWNLOAD this file --------------------
|
||
|
|
|||
| Ad |
Dec 7 2007, 05:28 AM
Post
#
|
||
|
|
|
||
|
|
|||
Jun 6 2008, 10:56 PM
Post
#2
|
|||
![]() Extremely Active Member Posts: 373 Joined: 6-February 07 From: Homburg/Germany Member No.: 7689 Using LabVIEW Since:2004 LV:8.6 ,. ,.
My Gallery
|
I see it`s not interesting for you. Can I remove it from CR?
Thanks --------------------
|
||
|
|
|||
Jun 6 2008, 11:25 PM
Post
#3
|
|||
|
Extremely Active Premium Member ![]() Posts: 430 Joined: 2-February 05 From: Southern California Member No.: 1519 Using LabVIEW Since:2004 LV:8.20 ,7.1.1 ,8.0.1
|
I see it`s not interesting for you. Can I remove it from CR? Thanks You've had 177 downloads. And the two people who rated it gave it five stars. Is there something I'm missing?
|
||
|
|
|||
Jun 7 2008, 09:19 AM
Post
#4
|
|||
![]() Confucius say: Crowded elevator always smell different to midget Admin ![]() Posts: 2402 Joined: 13-October 02 From: Planet Earth Member No.: 2 Using LabVIEW Since:1994 LV:8.5 ,8.2.1 ,7.1.1
My Blog
My Gallery
|
I see it`s not interesting for you. Can I remove it from CR? Thanks Eugen if there are any CR issues you want to discuss we can chat via PM. -------------------- Thank You
Michael Aivaliotis - Follow me on Twitter - My Personal Blog Search the LabVIEW Web - Build the LabVIEW Web - Got VIPM? ![]()
|
||
|
|
|||
Jun 10 2008, 08:59 AM
Post
#5
|
|||
![]() Extremely Active Member Posts: 373 Joined: 6-February 07 From: Homburg/Germany Member No.: 7689 Using LabVIEW Since:2004 LV:8.6 ,. ,.
My Gallery
|
Some more informations:
It's not to complex. If you have paralell loops in your programm, they should communicate. For communication you can select following: local variableglobal variablenotifierqueueuser eventtcp/ip... I implemented in this pattern 4 last communication types, because I don't like any variables. So the dispatcher have the task to dispatch incomming (over one dispatcher queue) messages to loops interested in. So the dispatcher is the main VI and should be started as first. In the dispatcher you will find a table. Row headers are loop names, column headers are message names and in the table you will see the communication type (one of 4 implemented) of the loop. If if the dispatcher is started, you can begin to start your tasks (parallel loops). At the start of one task, this task have to say to the dispatcher it's name, it's reference, it's type of communication and which messages it want do receive from the dispatcher. The dispatcher will add this informations into the table. So if any task will send a message to the dispatcher, it look in the table which tasks are interested in this message and will send the message to the interested tasks. All the communication should go over the dispatcher, so it's much easier to debug your programm, because you have all informations about all tasks in your programm on one place. And not only, all messages go over the dispatcher, so you can spy every message from every task, and YOU CAN DO IT REMOTELY from an other PC, because TCP/IP is implemented too. I need some feedback, so feel you free to post it. You will find more informations here: http://forums.lavag.org/publish-subscriber...93.html Regards, Eugen --------------------
|
||
|
|
|||
Jun 10 2008, 10:15 AM
Post
#6
|
|||
|
Very Active Member Posts: 191 Joined: 26-September 05 From: Zurich Member No.: 3076 Using LabVIEW Since:2006 LV:8.2.1 ,8.20 ,6.1
|
Eugen if there are any CR issues you want to discuss we can chat via PM. One CR Issue I have is that each time, I have to spend about 10-20 seconds looking for the "Download" button. On Firefox (I don't know how it looks in IE, Safari, Opera or others) it's almost part of the footer banner. Why not have a download link in the table listing information on the files..... Shane.
|
||
|
|
|||
Jun 14 2008, 05:36 PM
Post
#7
|
|||
![]() Extremely Active Member Posts: 373 Joined: 6-February 07 From: Homburg/Germany Member No.: 7689 Using LabVIEW Since:2004 LV:8.6 ,. ,.
My Gallery
|
Hello!
I started now to implement this pattern using LVOOP and need some help from LVOOP-experts. Actually I imlemented 4 classes: Core (dispatcher) Client (ancestor class for all clients) Q_Client (inherits from Client calss) Topic (not really implemented now) I have problems understanding Override VIs. I implemented a Client Send.vi in class Client. This vi will be overridden from Client Send.vis of each child class. Please look on my imlementation and say me if I right understand it and implemented good/bad. Thank you, Eugen P.S. please look at first on Core Start.vi This post has been edited by Eugen Graf: Jun 14 2008, 05:47 PM
Attached File(s)
--------------------
|
||
|
|
|||
Jun 15 2008, 10:41 AM
Post
#8
|
|||
![]() Extremely Active Member Posts: 373 Joined: 6-February 07 From: Homburg/Germany Member No.: 7689 Using LabVIEW Since:2004 LV:8.6 ,. ,.
My Gallery
|
Nobody can help or at least say anything?
--------------------
|
||
|
|
|||
![]() ![]() |
| Time is now: 7th January 2009 - 11:28 PM |