1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
|
$Id$
Documentation for the Simulator/DOVE demo
Purpose: To show how the event service can be used to as a media to
transport monitoring events including data.
Application: The events contain C++ structs with avionics information.
They are supllied by sensors of an avionic and are
consumed by an JAVA applet running on a different machine and/or
location. The collected metrics are displayed in
JAVA Beans. A object called DOVE Management Information
Base keeps track of all sent events.
Implementation: A C++ Supplier pushes events containing a
navigation or weapons struct to the Event Service.
The Event Service dispatches the events to any number of
Consumers which are implemented in JAVA. The JAVA
consumer extracts the data of the structs and dispatches
it to various Visualization Components.
For more informations refer to:
$TAO_ROOT/docs/releasenotes/index.html
Requirements:
* C++ compiler
* Java JDK 1,1,x
* ACE/TAO environment,
* Visibroker 3.2 for Java
!!RELEASE CHANGES:
- A first version of the DOVE MIB is now available.
- the DOVEBrowser accepts now the ORBnameserviceior parameter
Parts of the Demo:
* DOVE Browser (implemented in Java using Visibroker 3.2 for Java)
* Event Supplier, can be seen as a monitored object, called
DOVE Application (implemented in C++ using TAO)
* DOVE MIB, storing event data on persistent storage and keeping
track of statistical data (implemented in C++ using TAO)
Files:
Common:
ss - restart Naming Service, connect the Event Service and
Scheduling service with this Naming Service
NavWeap.idl - IDL definition of the Weapons and Navigation struct
README - this readme file
Event Supplier: (in directory $TAO_ROOT/orbsvcs/tests/Simulator/Event_Supplier/)
Event_Sup.cpp - Event Supplier
Event_Sup.h - Event Supplier class definition
Makefile - Event Supplier Makefile
(Event_Con.cpp, Event_Con.h - Event Consumer for testing)
svc.conf - helper file
DOVEBrowswer: (in directory $TAO_ROOT/orbsvcs/tests/Simulator/DOVEBrowser/)
AnswerEvent.java - Having my own Events
AnswerListener.java - Listener for these Events
DataHandler.java - Base class for all Data Handlers
DemoCore.java - Core of the Demo to connect Observables with Observers
DemoObservable.java - Base class for Observables
DoubleVisComp.java - Visualization Component (will be a JavaBean) for Doubles
DOVEBrowser.java - Wrapper around DemoCore
NS_Resolve.java - Resolving the inital reference to the Naming Service
NavWeapDataHandler.java - Specialized Data Handler for Navigation and Weapon data
NavigationVisComp.java - Visualization Component (... JavaBean) for Navigation data
ObservablesDialog.java - Dialog window for connecting Observables with OBservers
Properties.java - constant definitons
PushConsumer.java - Event Service Push Consumer
PushConsumerFactory.java - Factory for the Consumer
Queue.java - Queue for the DoubleVisComp
VisComp.java - Base class for the Visualization Components
WeaponsVisComp.java - Visualization Component for Weapons
DOVE MIB: (in directory $TAO_ROOT/orbsvcs/tests/Simulator/DOVEMIB/)
DOVEMIB.[cpp,h] - Core routines, connection to the Event Channel
Node.[cpp,h] - Nodes used by the AnyAnalyser
AnyAnalyser.[cpp,h] - Anaylser for CORBA anys, storing the contained types on
persistent storage
NodeVisitor.h - base class definition of a Visitor
PrintVisistor.[cpp,h] - Able to print a given tree of type nodes, which is
generated by the Anyanalyser
Compiling:
Common:
"make sure that the following definition is in the
$TAO_ROOT/orbsvcs/orbsvcs/RtecEventComm.idl"
struct EventData {
long x;
long y;
any any_value;
};
"compile $TAO_ROOT/orbsvcs/orbsvcs"
"compile $TAO_ROOT/orbsvcs/Event_Service"
"compile $TAO_ROOT/orbsvcs/Naming_Service"
"compile $TAO_ROOT/orbsvcs/Scheduling_Service"
Supplier:
cp ../NavWeap.idl .
make
DOVE Browser:
cp ../NavWeap.idl .
cp $TAO_ROOT/orbsvcs/orbsvcs/CosNaming.idl .
cp $TAO_ROOT/orbsvcs/orbsvcs/CosTimeBase.idl .
cp $TAO_ROOT/orbsvcs/orbsvcs/RtecEventChannelAdmin.idl .
cp $TAO_ROOT/orbsvcs/orbsvcs/RtecEventComm.idl .
cp $TAO_ROOT/orbsvcs/orbsvcs/RtecScheduler.idl .
idl2java *.idl
vbjc *.java
DOVE MIB:
cp ../NavWeap.idl .
make
Starting:
Start in the following order on different ORB ports:
* Naming Service
* Scheduling Service
* Event Service
Supplier:
Event_Sup -ORBport 10040 -f MLF.dat -m 1000
// -m 1000 for 1000 events sent by the supplier
// -f MLF.dat to read scheduling data from this file as input
DOVE Browser:
vbj DOVEBrowser
(also supported: vbj DOVEBrowser -ORBnameserviceior <IOR> )
or
gatekeeper
cd /visigenic/vbroker/lib
jar xf vbjorb.jar
jar xf vbjtools.jar
"setting the Naming Service IOR in the DOVEBrowser.html file"
appletviewer DOVEBrowser.html
DOVE MIB:
DOVEMIB -ORBport 10041 -f myfile -m 100
// -m 100 for storing the next 100 events
// -f myfile for the name of the file in which it will be stored
|