1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
|
3 | <X3D profile='Immersive' version='3.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'> |
4 | <head> |
5 | <component level='1' name='DIS'/> |
6 | <meta name='title' content='RadioCommunicationsPrototypes.x3d'/> |
7 | <meta name='creator' content='Don Brutzman and Dave Laflam'/> |
8 | <meta name='created' content='7 December 2000'/> |
9 | <meta name='modified' content='20 October 2019'/> |
10 | <meta name=' warning ' content=' under development. Need to fix url values in X3dToVrml97.xslt translation signatures, and check Savage CommunicationsAndSensors DIS examples. '/> |
11 | <meta name='description' content='Prototype definitions for ReceiverPdu SignalPdu and TransmitterPdu, all of which share share RadioCommunicationsPduScriptNode class'/> |
12 | <meta name='reference' content='http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/dis/RadioCommunicationsPrototypes.x3d'/> |
13 | <meta name='identifier' content='https://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/RadioCommunicationsPrototypes.x3d'/> |
14 | <meta name='generator' content='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/> |
15 | <meta name='license' content='../license.html'/> |
16 | </head> |
17 | <Scene> |
18 | <!-- ============================================================ --> |
19 | <WorldInfo title='RadioCommunicationsPrototypes.x3d'/> |
20 | <ProtoDeclare name='ReceiverPdu'> |
21 | <ProtoInterface> |
22 |
<field name='whichGeometry' type='SFInt32' value='0' accessType='inputOutput'
appinfo='set whichGeometry to -1 for no geometry 0 for text trace 1 for default geometry'/> |
23 |
<field name='bboxCenter' type='SFVec3f' value='0 0 0' accessType='initializeOnly'
appinfo='Bounding box center: position offset from origin of local coordinate system.'/> |
24 |
<field name='bboxSize' type='SFVec3f' value='-1 -1 -1' accessType='initializeOnly'
appinfo='Bounding box size: automatically calculated can be specified as an optimization or constraint.'/> |
25 | <!-- Initialization fields --> |
26 | <field name='readInterval' type='SFTime' value='0.1' accessType='initializeOnly'/> |
27 | <field name='writeInterval' type='SFTime' value='1.0' accessType='initializeOnly'/> |
28 | <field name='siteID' type='SFInt32' value='14' accessType='initializeOnly'/> |
29 | <field name='applicationID' type='SFInt32' value='17' accessType='initializeOnly'/> |
30 | <field name='entityID' type='SFInt32' value='9' accessType='initializeOnly'/> |
31 | <field name='address' type='SFString' value='224.2.181.145' accessType='initializeOnly'/> |
32 | <field name='port' type='SFInt32' value='62040' accessType='initializeOnly'/> |
33 | <field name='multicastRelayHost' type='SFString' value='devo.cs.nps.navy.mil' accessType='initializeOnly'/> |
34 | <field name='multicastRelayPort' type='SFInt32' value='8010' accessType='initializeOnly'/> |
35 |
<field name='networkMode' type='SFString' value='standAlone' accessType='inputOutput'
appinfo='networkMode: standAlone (ignore network but still respond to local events) networkReader (listen to network as ghost entity) networkWriter (output to network as master entity at writeInterval)'/> |
36 |
<field name='isStandAlone' type='SFBool' accessType='outputOnly'
appinfo='Whether networkMode standAlone (ignore network but still respond to local events) is true/false'/> |
37 |
<field name='isMaster' type='SFBool' accessType='outputOnly'
appinfo="Whether networkMode 'networkWriter' (output to network as master entity at writeInterval) is true/false"/> |
38 |
<field name='isRemote' type='SFBool' accessType='outputOnly'
appinfo="Whether networkMode 'networkReader' (listen to network as ghost entity) is true/false"/> |
39 | <field name='rtpHeaderExpected' type='SFBool' value='false' accessType='initializeOnly'/> |
40 |
<field name='isRtpHeaderHeard' type='SFBool' accessType='outputOnly'
appinfo='whether RTP header was found prepended to DIS packet'/> |
41 | <field name='trace' type='SFBool' value='false' accessType='initializeOnly'/> |
42 | <!-- Generic events --> |
43 | <field name='active' type='SFBool' accessType='outputOnly'/> |
44 | <field name='timestamp' type='SFTime' accessType='outputOnly'/> |
45 | <!-- RadioCommunicationsFamily events --> |
46 | <field name='radioID' type='SFInt32' accessType='outputOnly'/> |
47 | <!-- ReceiverPdu fields --> |
48 | <field name='receivedPower' type='SFFloat' accessType='outputOnly'/> |
49 | <field name='receiverState' type='SFInt32' accessType='outputOnly'/> |
50 | <field name='transmitterSiteID' type='SFInt32' accessType='outputOnly'/> |
51 | <field name='transmitterApplicationID' type='SFInt32' accessType='outputOnly'/> |
52 | <field name='transmitterEntityID' type='SFInt32' accessType='outputOnly'/> |
53 | <field name='transmitterRadioID' type='SFInt32' accessType='outputOnly'/> |
54 | </ProtoInterface> |
55 | <ProtoBody> |
56 | <!-- First node inside a PrototypeDeclaration is the node type of the ProtoInstance --> |
57 | <Switch DEF='ReceiverPduGeometrySwitch' whichChoice='-1'> |
58 | <IS> |
59 | <connect nodeField='whichChoice' protoField='whichGeometry'/> |
60 | </IS> |
61 | <!-- whichChoice -1 is no rendering, choice 0 is text trace, choice 1 is default geometry --> |
62 | <Group> |
63 | <Viewpoint description='Receiver Pdu Observer' position='0 0 15'/> |
64 | <Group> |
65 | <Transform translation='0 6 0'> |
66 | <Shape> |
67 | <Text string='"Open Java Console to see PDU trace messages" "Netscape..Communicator..Tools..Java Console"'> |
68 | |
69 | </Text> |
70 | <Appearance> |
71 | <Material diffuseColor='0 0.4 0.8'/> |
72 | </Appearance> |
73 | </Shape> |
74 | </Transform> |
75 | <Transform translation='0 4.75 0'> |
76 | <Shape> |
77 | <Text string='"Receiver PDU values"'> |
78 | <FontStyle USE='FONT1'/> |
79 | </Text> |
80 | <Appearance> |
81 | <Material diffuseColor='0 0.8 0.4'/> |
82 | </Appearance> |
83 | </Shape> |
84 | </Transform> |
85 | <Transform translation='0 4 0'> |
86 | <Shape> |
87 |
<!-- ROUTE information for ReceiverOutput1 node:
[from ReceiverOutputAssembler1.messageResult to string
]
-->
<Text DEF='ReceiverOutput1' string='"Receiver output uninitialized"'> |
88 | <FontStyle USE='FONT1'/> |
89 | </Text> |
90 | <Appearance> |
91 | <Material diffuseColor='0.8 0.8 0'/> |
92 | </Appearance> |
93 | </Shape> |
94 | </Transform> |
95 | </Group> |
96 |
<!-- ROUTE information for ReceiverOutputAssembler1 node:
[from ReceiverPduScriptNode.active to active
]
[from ReceiverPduScriptNode.timestamp to timestamp
]
[from ReceiverPduScriptNode.isRtpHeaderHeard to isRtpHeaderHeard
]
[from ReceiverPduScriptNode.radioID to radioID
]
[from ReceiverPduScriptNode.receivedPower to receivedPower
]
[from ReceiverPduScriptNode.receiverState to receiverState
]
[from ReceiverPduScriptNode.transmitterSiteID to transmitterSiteID
]
[from ReceiverPduScriptNode.transmitterApplicationID to transmitterApplicationID
]
[from ReceiverPduScriptNode.transmitterEntityID to transmitterEntityID
]
[from ReceiverPduScriptNode.transmitterRadioID to transmitterRadioID
]
[from messageResult to ReceiverOutput1.string
]
-->
<Script DEF='ReceiverOutputAssembler1'> |
97 | <!-- surprising limit on MFString: 10 strings --> |
98 | <field name='messageResult' type='MFString' accessType='outputOnly'/> |
99 | <field name='active' type='SFBool' accessType='inputOnly'/> |
100 | <field name='timestamp' type='SFTime' accessType='inputOnly'/> |
101 | <field name='isRtpHeaderHeard' type='SFBool' accessType='inputOnly'/> |
102 | <field name='radioID' type='SFInt32' accessType='inputOnly'/> |
103 | <field name='receivedPower' type='SFFloat' accessType='inputOnly'/> |
104 | <field name='receiverState' type='SFInt32' accessType='inputOnly'/> |
105 | <field name='transmitterSiteID' type='SFInt32' accessType='inputOnly'/> |
106 | <field name='transmitterApplicationID' type='SFInt32' accessType='inputOnly'/> |
107 | <field name='transmitterEntityID' type='SFInt32' accessType='inputOnly'/> |
108 | <field name='transmitterRadioID' type='SFInt32' accessType='inputOnly'/> |
<![CDATA[
ecmascript: function initialize () { value='awaiting PDU'; messageResult [0] = 'active=' + value; messageResult [1] = 'timestamp=' + value; messageResult [2] = 'isRtpHeaderHeard=' + value; messageResult [3] = 'radioID=' + value; messageResult [4] = 'receivedPower=' + value; messageResult [5] = 'receiverState=' + value; messageResult [6] = 'transmitterSiteID=' + value; messageResult [7] = 'transmitterApplicationID=' + value; messageResult [8] = 'transmitterEntityID=' + value; messageResult [9] = 'transmitterRadioID=' + value; } function active (value, ts) { messageResult [0] = 'active=' + value; } function timestamp (value, ts) { messageResult [1] = 'timestamp=' + value; } function isRtpHeaderHeard (value, ts) { messageResult [2] = 'isRtpHeaderHeard=' + value; } function radioID (value, ts) { messageResult [3] = 'radioID=' + value; } function receivedPower (value, ts) { messageResult [4] = 'receiverPower=' + value; } function receiverState (value, ts) { messageResult [5] = 'receiverState=' + value; } function transmitterSiteID (value, ts) { messageResult [6] = 'transmitterSiteID=' + value; } function transmitterApplicationID (value, ts) { messageResult [7] = 'transmitterApplicationID=' + value; } function transmitterEntityID (value, ts) { messageResult [8] = 'transmitterEntityID=' + value; } function transmitterRadioID (value, ts) { messageResult [9] = 'transmitterRadioID=' + value; }
]]>
|
|
110 | </Script> |
111 | </Group> |
112 | </Switch> |
113 | <!-- The Script follows the Switch, since the first node in the file determines the node type of this prototype --> |
114 | <!-- Fields in the Script are directly mapped to the PrototypeDeclare field-tag interfaces by using the IS construct --> |
115 | <!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) --> |
116 |
<!-- ROUTE information for ReceiverPduScriptNode node:
[from ReceiverPduReadIntervalClock.cycleTime to update
]
[from ReceiverPduWriteIntervalClock.cycleTime to update
]
[from active to ReceiverOutputAssembler1.active
]
[from timestamp to ReceiverOutputAssembler1.timestamp
]
[from isRtpHeaderHeard to ReceiverOutputAssembler1.isRtpHeaderHeard
]
[from radioID to ReceiverOutputAssembler1.radioID
]
[from receivedPower to ReceiverOutputAssembler1.receivedPower
]
[from receiverState to ReceiverOutputAssembler1.receiverState
]
[from transmitterSiteID to ReceiverOutputAssembler1.transmitterSiteID
]
[from transmitterApplicationID to ReceiverOutputAssembler1.transmitterApplicationID
]
[from transmitterEntityID to ReceiverOutputAssembler1.transmitterEntityID
]
[from transmitterRadioID to ReceiverOutputAssembler1.transmitterRadioID
]
-->
<Script DEF='ReceiverPduScriptNode' mustEvaluate='true' url=' "RadioCommunicationsPduScriptNode.class" "http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/dis/RadioCommunicationsPduScriptNode.class" '> |
117 | <!-- Valid values for radioPduType are ReceiverPdu, SignalPdu and TransmitterPdu --> |
118 | <field name='radioPduType' type='SFString' value='ReceiverPdu' accessType='initializeOnly'/> |
119 | <!-- Initialization fields --> |
120 | <field name='readInterval' type='SFTime' accessType='initializeOnly'/> |
121 | <field name='writeInterval' type='SFTime' accessType='initializeOnly'/> |
122 | <field name='siteID' type='SFInt32' accessType='initializeOnly'/> |
123 | <field name='applicationID' type='SFInt32' accessType='initializeOnly'/> |
124 | <field name='entityID' type='SFInt32' accessType='initializeOnly'/> |
125 | <field name='address' type='SFString' accessType='initializeOnly'/> |
126 | <field name='port' type='SFInt32' accessType='initializeOnly'/> |
127 | <field name='multicastRelayHost' type='SFString' accessType='initializeOnly'/> |
128 | <field name='multicastRelayPort' type='SFInt32' accessType='initializeOnly'/> |
129 | <field name='rtpHeaderExpected' type='SFBool' accessType='initializeOnly'/> |
130 | <field name='trace' type='SFBool' accessType='initializeOnly'/> |
131 | <!-- Generic events --> |
132 |
<field name='update' type='SFTime' accessType='inputOnly'
appinfo='update is triggered by local TimeSensor clocks to allow regular read/write'/> |
133 | <field name='active' type='SFBool' accessType='outputOnly'/> |
134 | <field name='timestamp' type='SFTime' accessType='outputOnly'/> |
135 | <field name='isRtpHeaderHeard' type='SFBool' accessType='outputOnly'/> |
136 | <!-- RadioCommunicationsFamily events --> |
137 | <field name='radioID' type='SFInt32' accessType='outputOnly'/> |
138 | <!-- SignalPdu fields --> |
139 | <field name='receivedPower' type='SFFloat' accessType='outputOnly'/> |
140 | <field name='receiverState' type='SFInt32' accessType='outputOnly'/> |
141 | <field name='transmitterSiteID' type='SFInt32' accessType='outputOnly'/> |
142 | <field name='transmitterApplicationID' type='SFInt32' accessType='outputOnly'/> |
143 | <field name='transmitterEntityID' type='SFInt32' accessType='outputOnly'/> |
144 | <field name='transmitterRadioID' type='SFInt32' accessType='outputOnly'/> |
145 | <IS> |
146 | <connect nodeField='readInterval' protoField='readInterval'/> |
147 | <connect nodeField='writeInterval' protoField='writeInterval'/> |
148 | <connect nodeField='siteID' protoField='siteID'/> |
149 | <connect nodeField='applicationID' protoField='applicationID'/> |
150 | <connect nodeField='entityID' protoField='entityID'/> |
151 | <connect nodeField='address' protoField='address'/> |
152 | <connect nodeField='port' protoField='port'/> |
153 | <connect nodeField='multicastRelayHost' protoField='multicastRelayHost'/> |
154 | <connect nodeField='multicastRelayPort' protoField='multicastRelayPort'/> |
155 | <connect nodeField='rtpHeaderExpected' protoField='rtpHeaderExpected'/> |
156 | <connect nodeField='trace' protoField='trace'/> |
157 | <connect nodeField='active' protoField='active'/> |
158 | <connect nodeField='timestamp' protoField='timestamp'/> |
159 | <connect nodeField='isRtpHeaderHeard' protoField='isRtpHeaderHeard'/> |
160 | <connect nodeField='radioID' protoField='radioID'/> |
161 | <connect nodeField='receivedPower' protoField='receivedPower'/> |
162 | <connect nodeField='receiverState' protoField='receiverState'/> |
163 | <connect nodeField='transmitterSiteID' protoField='transmitterSiteID'/> |
164 | <connect nodeField='transmitterApplicationID' protoField='transmitterApplicationID'/> |
165 | <connect nodeField='transmitterEntityID' protoField='transmitterEntityID'/> |
166 | <connect nodeField='transmitterRadioID' protoField='transmitterRadioID'/> |
167 | </IS> |
168 | </Script> |
169 | <!-- Clocks stimulate the processEvents() method in the Script code, resulting in DIS PDU reads/writes. The 'update' eventIn is implicit (i.e. no corresponding Java method is needed). --> |
170 |
<!-- ROUTE information for ReceiverPduReadIntervalClock node:
[from cycleTime to ReceiverPduScriptNode.update
]
-->
<TimeSensor DEF='ReceiverPduReadIntervalClock' loop='true'/> |
171 |
<!-- ROUTE information for ReceiverPduWriteIntervalClock node:
[from cycleTime to ReceiverPduScriptNode.update
]
-->
<TimeSensor DEF='ReceiverPduWriteIntervalClock' enabled='false' loop='true'/> |
172 | < ROUTE fromNode='ReceiverPduReadIntervalClock' fromField='cycleTime' toNode='ReceiverPduScriptNode' toField='update'/> |
173 | < ROUTE fromNode='ReceiverPduWriteIntervalClock' fromField='cycleTime' toNode='ReceiverPduScriptNode' toField='update'/> |
174 | <!-- These ROUTEs connect the PDU Script node to the geometryChoice=0 text output --> |
175 | < ROUTE fromNode='ReceiverPduScriptNode' fromField='active' toNode='ReceiverOutputAssembler1' toField='active'/> |
176 | < ROUTE fromNode='ReceiverPduScriptNode' fromField='timestamp' toNode='ReceiverOutputAssembler1' toField='timestamp'/> |
177 | < ROUTE fromNode='ReceiverPduScriptNode' fromField='isRtpHeaderHeard' toNode='ReceiverOutputAssembler1' toField='isRtpHeaderHeard'/> |
178 | < ROUTE fromNode='ReceiverPduScriptNode' fromField='radioID' toNode='ReceiverOutputAssembler1' toField='radioID'/> |
179 | < ROUTE fromNode='ReceiverPduScriptNode' fromField='receivedPower' toNode='ReceiverOutputAssembler1' toField='receivedPower'/> |
180 | < ROUTE fromNode='ReceiverPduScriptNode' fromField='receiverState' toNode='ReceiverOutputAssembler1' toField='receiverState'/> |
181 | < ROUTE fromNode='ReceiverPduScriptNode' fromField='transmitterSiteID' toNode='ReceiverOutputAssembler1' toField='transmitterSiteID'/> |
182 | < ROUTE fromNode='ReceiverPduScriptNode' fromField='transmitterApplicationID' toNode='ReceiverOutputAssembler1' toField='transmitterApplicationID'/> |
183 | < ROUTE fromNode='ReceiverPduScriptNode' fromField='transmitterEntityID' toNode='ReceiverOutputAssembler1' toField='transmitterEntityID'/> |
184 | < ROUTE fromNode='ReceiverPduScriptNode' fromField='transmitterRadioID' toNode='ReceiverOutputAssembler1' toField='transmitterRadioID'/> |
185 | < ROUTE fromNode='ReceiverOutputAssembler1' fromField='messageResult' toNode='ReceiverOutput1' toField='string'/> |
186 | <!-- ROUTEs for further geometry representations go here --> |
187 | </ProtoBody> |
188 | </ProtoDeclare> |
189 | <!-- ============================================================ --> |
190 | <ProtoDeclare name='SignalPdu'> |
191 | <ProtoInterface> |
192 | <!-- set whichGeometry to -1 for no geometry, 0 for text trace, 1 for default geometry --> |
193 | <field name='whichGeometry' type='SFInt32' value='0' accessType='inputOutput'/> |
194 |
<field name='bboxCenter' type='SFVec3f' value='0 0 0' accessType='initializeOnly'
appinfo='Bounding box center: position offset from origin of local coordinate system.'/> |
195 |
<field name='bboxSize' type='SFVec3f' value='-1 -1 -1' accessType='initializeOnly'
appinfo='Bounding box size: automatically calculated can be specified as an optimization or constraint.'/> |
196 | <!-- Initialization fields --> |
197 | <field name='readInterval' type='SFTime' value='0.1' accessType='initializeOnly'/> |
198 | <field name='writeInterval' type='SFTime' value='1.0' accessType='initializeOnly'/> |
199 | <field name='siteID' type='SFInt32' value='14' accessType='initializeOnly'/> |
200 | <field name='applicationID' type='SFInt32' value='17' accessType='initializeOnly'/> |
201 | <field name='entityID' type='SFInt32' value='9' accessType='initializeOnly'/> |
202 | <field name='address' type='SFString' value='224.2.181.145' accessType='initializeOnly'/> |
203 | <field name='port' type='SFInt32' value='62040' accessType='initializeOnly'/> |
204 | <field name='multicastRelayHost' type='SFString' value='devo.cs.nps.navy.mil' accessType='initializeOnly'/> |
205 | <field name='multicastRelayPort' type='SFInt32' value='8010' accessType='initializeOnly'/> |
206 |
<field name='networkMode' type='SFString' value='standAlone' accessType='inputOutput'
appinfo='networkMode: standAlone (ignore network but still respond to local events) networkReader (listen to network as ghost entity) networkWriter (output to network as master entity at writeInterval)'/> |
207 |
<field name='isStandAlone' type='SFBool' accessType='outputOnly'
appinfo='Whether networkMode standAlone (ignore network but still respond to local events) is true/false'/> |
208 |
<field name='isMaster' type='SFBool' accessType='outputOnly'
appinfo="Whether networkMode 'networkWriter' (output to network as master entity at writeInterval) is true/false"/> |
209 |
<field name='isRemote' type='SFBool' accessType='outputOnly'
appinfo="Whether networkMode 'networkReader' (listen to network as ghost entity) is true/false"/> |
210 | <field name='rtpHeaderExpected' type='SFBool' value='false' accessType='initializeOnly'/> |
211 |
<field name='isRtpHeaderHeard' type='SFBool' accessType='outputOnly'
appinfo='whether RTP header was found prepended to DIS packet'/> |
212 | <field name='trace' type='SFBool' value='false' accessType='initializeOnly'/> |
213 | <!-- Generic events --> |
214 | <field name='active' type='SFBool' accessType='outputOnly'/> |
215 | <field name='timestamp' type='SFTime' accessType='outputOnly'/> |
216 | <!-- RadioCommunicationsFamily events --> |
217 | <field name='radioID' type='SFInt32' accessType='outputOnly'/> |
218 | <!-- SignalPdu fields --> |
219 | <field name='encodingScheme' type='SFInt32' accessType='outputOnly'/> |
220 | <field name='tdlType' type='SFInt32' accessType='outputOnly'/> |
221 | <field name='sampleRate' type='SFInt32' accessType='outputOnly'/> |
222 | <field name='samples' type='SFInt32' accessType='outputOnly'/> |
223 | <field name='dataLength' type='SFInt32' accessType='outputOnly'/> |
224 | <field name='data00' type='SFInt32' accessType='outputOnly'/> |
225 | <field name='data01' type='SFInt32' accessType='outputOnly'/> |
226 | <field name='data02' type='SFInt32' accessType='outputOnly'/> |
227 | <field name='data03' type='SFInt32' accessType='outputOnly'/> |
228 | <field name='data04' type='SFInt32' accessType='outputOnly'/> |
229 | <field name='data05' type='SFInt32' accessType='outputOnly'/> |
230 | <field name='data06' type='SFInt32' accessType='outputOnly'/> |
231 | <field name='data07' type='SFInt32' accessType='outputOnly'/> |
232 | <field name='data08' type='SFInt32' accessType='outputOnly'/> |
233 | <field name='data09' type='SFInt32' accessType='outputOnly'/> |
234 | <field name='data10' type='SFInt32' accessType='outputOnly'/> |
235 | </ProtoInterface> |
236 | <ProtoBody> |
237 | <!-- First node inside a PrototypeDeclaration is the node type of the ProtoInstance --> |
238 | <Switch DEF='SignalPduGeometrySwitch' whichChoice='-1'> |
239 | <IS> |
240 | <connect nodeField='whichChoice' protoField='whichGeometry'/> |
241 | </IS> |
242 | <!-- whichChoice -1 is no rendering, choice 0 is text trace, choice 1 is default geometry --> |
243 | <Group> |
244 | <Viewpoint description='Signal Pdu Observer' position='0 0 15'/> |
245 | <Group> |
246 | <Transform translation='0 6 0'> |
247 | <Shape> |
248 | <Text string='"Open Java Console to see PDU trace messages" "Netscape..Communicator..Tools..Java Console"'> |
249 | |
250 | </Text> |
251 | <Appearance> |
252 | <Material diffuseColor='0 0.4 0.8'/> |
253 | </Appearance> |
254 | </Shape> |
255 | </Transform> |
256 | <Transform translation='0 4.75 0'> |
257 | <Shape> |
258 | <Text string='"Signal PDU values"'> |
259 | <FontStyle USE='FONT2'/> |
260 | </Text> |
261 | <Appearance> |
262 | <Material diffuseColor='0 0.8 0.4'/> |
263 | </Appearance> |
264 | </Shape> |
265 | </Transform> |
266 | <Transform translation='0 4 0'> |
267 | <Shape> |
268 |
<!-- ROUTE information for SignalOutput1 node:
[from SignalOutputAssembler1.messageResult to string
]
-->
<Text DEF='SignalOutput1' string='"Signal Output1 unset"'> |
269 | <FontStyle USE='FONT2'/> |
270 | </Text> |
271 |
<!-- Appearance
YellowAppearance2 is a DEF node that has 1 USE node: USE_1 -->
<Appearance DEF='YellowAppearance2'> |
272 | <Material diffuseColor='0.8 0.8 0'/> |
273 | </Appearance> |
274 | </Shape> |
275 | </Transform> |
276 | <Transform translation='0 -1 0'> |
277 | <Shape> |
278 |
<!-- ROUTE information for SignalOutput2 node:
[from SignalOutputAssembler2.messageResult to string
]
-->
<Text DEF='SignalOutput2' string='"Signal Output2 unset"'> |
279 | <FontStyle USE='FONT2'/> |
280 | </Text> |
281 | <Appearance USE='YellowAppearance2'/> |
282 | </Shape> |
283 | </Transform> |
284 | </Group> |
285 |
<!-- ROUTE information for SignalOutputAssembler1 node:
[from SignalPduScriptNode.active to active
]
[from SignalPduScriptNode.timestamp to timestamp
]
[from SignalPduScriptNode.isRtpHeaderHeard to isRtpHeaderHeard
]
[from SignalPduScriptNode.radioID to radioID
]
[from SignalPduScriptNode.encodingScheme to encodingScheme
]
[from SignalPduScriptNode.tdlType to tdlType
]
[from SignalPduScriptNode.sampleRate to sampleRate
]
[from SignalPduScriptNode.samples to samples
]
[from SignalPduScriptNode.dataLength to dataLength
]
[from SignalPduScriptNode.data00 to data00
]
[from messageResult to SignalOutput1.string
]
-->
<Script DEF='SignalOutputAssembler1'> |
286 | <!-- surprising limit on MFString: 10 strings --> |
287 | <field name='messageResult' type='MFString' accessType='outputOnly'/> |
288 | <field name='active' type='SFBool' accessType='inputOnly'/> |
289 | <field name='timestamp' type='SFTime' accessType='inputOnly'/> |
290 | <field name='isRtpHeaderHeard' type='SFBool' accessType='inputOnly'/> |
291 | <field name='radioID' type='SFInt32' accessType='inputOnly'/> |
292 | <field name='encodingScheme' type='SFInt32' accessType='inputOnly'/> |
293 | <field name='tdlType' type='SFInt32' accessType='inputOnly'/> |
294 | <field name='sampleRate' type='SFInt32' accessType='inputOnly'/> |
295 | <field name='samples' type='SFInt32' accessType='inputOnly'/> |
296 | <field name='dataLength' type='SFInt32' accessType='inputOnly'/> |
297 | <field name='data00' type='SFInt32' accessType='inputOnly'/> |
<![CDATA[
ecmascript: function initialize () { value='awaiting PDU'; messageResult [0] = 'active=' + value; messageResult [1] = 'timestamp=' + value; messageResult [2] = 'isRtpHeaderHeard=' + value; messageResult [3] = 'radioID=' + value; messageResult [4] = 'encodingScheme=' + value; messageResult [5] = 'tdlType=' + value; messageResult [6] = 'sampleRate=' + value; messageResult [7] = 'samples=' + value; messageResult [8] = 'dataLength=' + value; messageResult [9] = 'data00=' + value; } function active (value, ts) { messageResult [0] = 'active=' + value; } function timestamp (value, ts) { messageResult [1] = 'timestamp=' + value; } function isRtpHeaderHeard (value, ts) { messageResult [2] = 'isRtpHeaderHeard=' + value; } function radioID (value, ts) { messageResult [3] = 'radioID=' + value; } function encodingScheme (value, ts) { messageResult [4] = 'encodingScheme=' + value; } function tdlType (value, ts) { messageResult [5] = 'tdlType=' + value; } function sampleRate (value, ts) { messageResult [6] = 'sampleRate=' + value; } function samples (value, ts) { messageResult [7] = 'samples=' + value; } function dataLength (value, ts) { messageResult [8] = 'dataLength=' + value; } function data00 (value, ts) { messageResult [9] = 'data00=' + value; }
]]>
|
|
299 | </Script> |
300 |
<!-- ROUTE information for SignalOutputAssembler2 node:
[from SignalPduScriptNode.data01 to data01
]
[from SignalPduScriptNode.data02 to data02
]
[from SignalPduScriptNode.data03 to data03
]
[from SignalPduScriptNode.data04 to data04
]
[from SignalPduScriptNode.data05 to data05
]
[from SignalPduScriptNode.data06 to data06
]
[from SignalPduScriptNode.data07 to data07
]
[from SignalPduScriptNode.data08 to data08
]
[from SignalPduScriptNode.data09 to data09
]
[from SignalPduScriptNode.data10 to data10
]
[from messageResult to SignalOutput2.string
]
-->
<Script DEF='SignalOutputAssembler2'> |
301 | <field name='messageResult' type='MFString' accessType='outputOnly'/> |
302 | <field name='data01' type='SFInt32' accessType='inputOnly'/> |
303 | <field name='data02' type='SFInt32' accessType='inputOnly'/> |
304 | <field name='data03' type='SFInt32' accessType='inputOnly'/> |
305 | <field name='data04' type='SFInt32' accessType='inputOnly'/> |
306 | <field name='data05' type='SFInt32' accessType='inputOnly'/> |
307 | <field name='data06' type='SFInt32' accessType='inputOnly'/> |
308 | <field name='data07' type='SFInt32' accessType='inputOnly'/> |
309 | <field name='data08' type='SFInt32' accessType='inputOnly'/> |
310 | <field name='data09' type='SFInt32' accessType='inputOnly'/> |
311 | <field name='data10' type='SFInt32' accessType='inputOnly'/> |
<![CDATA[
ecmascript: function initialize () { messageResult [0] = 'data01=' + value; messageResult [1] = 'data02=' + value; messageResult [2] = 'data03=' + value; messageResult [3] = 'data04=' + value; messageResult [4] = 'data05=' + value; messageResult [5] = 'data06=' + value; messageResult [6] = 'data07=' + value; messageResult [7] = 'data08=' + value; messageResult [8] = 'data09=' + value; messageResult [9] = 'data10=' + value; } function data01 (value, ts) { messageResult [0] = 'data01=' + value; } function data02 (value, ts) { messageResult [1] = 'data02=' + value; } function data03 (value, ts) { messageResult [2] = 'data03=' + value; } function data04 (value, ts) { messageResult [3] = 'data04=' + value; } function data05 (value, ts) { messageResult [4] = 'data05=' + value; } function data06 (value, ts) { messageResult [5] = 'data06=' + value; } function data07 (value, ts) { messageResult [6] = 'data07=' + value; } function data08 (value, ts) { messageResult [7] = 'data08=' + value; } function data09 (value, ts) { messageResult [8] = 'data09=' + value; } function data10 (value, ts) { messageResult [9] = 'data10=' + value; }
]]>
|
|
313 | </Script> |
314 | </Group> |
315 | </Switch> |
316 | <!-- The Script follows the Switch, since the first node in the file determines the node type of this prototype --> |
317 | <!-- Fields in the Script are directly mapped to the PrototypeDeclare field-tag interfaces by using the IS construct --> |
318 | <!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) --> |
319 |
<!-- ROUTE information for SignalPduScriptNode node:
[from SignalPduReadIntervalClock.cycleTime to update
]
[from SignalPduWriteIntervalClock.cycleTime to update
]
[from active to SignalOutputAssembler1.active
]
[from timestamp to SignalOutputAssembler1.timestamp
]
[from isRtpHeaderHeard to SignalOutputAssembler1.isRtpHeaderHeard
]
[from radioID to SignalOutputAssembler1.radioID
]
[from encodingScheme to SignalOutputAssembler1.encodingScheme
]
[from tdlType to SignalOutputAssembler1.tdlType
]
[from sampleRate to SignalOutputAssembler1.sampleRate
]
[from samples to SignalOutputAssembler1.samples
]
[from dataLength to SignalOutputAssembler1.dataLength
]
[from data00 to SignalOutputAssembler1.data00
]
[from data01 to SignalOutputAssembler2.data01
]
[from data02 to SignalOutputAssembler2.data02
]
[from data03 to SignalOutputAssembler2.data03
]
[from data04 to SignalOutputAssembler2.data04
]
[from data05 to SignalOutputAssembler2.data05
]
[from data06 to SignalOutputAssembler2.data06
]
[from data07 to SignalOutputAssembler2.data07
]
[from data08 to SignalOutputAssembler2.data08
]
[from data09 to SignalOutputAssembler2.data09
]
[from data10 to SignalOutputAssembler2.data10
]
-->
<Script DEF='SignalPduScriptNode' mustEvaluate='true' url=' "RadioCommunicationsPduScriptNode.class" "http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/dis/RadioCommunicationsPduScriptNode.class" '> |
320 | <!-- Valid values for radioPduType are ReceiverPdu, SignalPdu and TransmitterPdu --> |
321 | <field name='radioPduType' type='SFString' value='SignalPdu' accessType='initializeOnly'/> |
322 | <!-- Initialization fields --> |
323 | <field name='readInterval' type='SFTime' accessType='initializeOnly'/> |
324 | <field name='writeInterval' type='SFTime' accessType='initializeOnly'/> |
325 | <field name='siteID' type='SFInt32' accessType='initializeOnly'/> |
326 | <field name='applicationID' type='SFInt32' accessType='initializeOnly'/> |
327 | <field name='entityID' type='SFInt32' accessType='initializeOnly'/> |
328 | <field name='address' type='SFString' accessType='initializeOnly'/> |
329 | <field name='port' type='SFInt32' accessType='initializeOnly'/> |
330 | <field name='multicastRelayHost' type='SFString' accessType='initializeOnly'/> |
331 | <field name='multicastRelayPort' type='SFInt32' accessType='initializeOnly'/> |
332 | <field name='rtpHeaderExpected' type='SFBool' accessType='initializeOnly'/> |
333 | <field name='trace' type='SFBool' accessType='initializeOnly'/> |
334 | <!-- Generic events --> |
335 |
<field name='update' type='SFTime' accessType='inputOnly'
appinfo='update is triggered by local TimeSensor clocks to allow regular read/write'/> |
336 | <field name='active' type='SFBool' accessType='outputOnly'/> |
337 | <field name='timestamp' type='SFTime' accessType='outputOnly'/> |
338 | <field name='isRtpHeaderHeard' type='SFBool' accessType='outputOnly'/> |
339 | <!-- RadioCommunicationsFamily events --> |
340 | <field name='radioID' type='SFInt32' accessType='outputOnly'/> |
341 | <!-- SignalPdu fields --> |
342 | <field name='encodingScheme' type='SFInt32' accessType='outputOnly'/> |
343 | <field name='tdlType' type='SFInt32' accessType='outputOnly'/> |
344 | <field name='sampleRate' type='SFInt32' accessType='outputOnly'/> |
345 | <field name='samples' type='SFInt32' accessType='outputOnly'/> |
346 | <field name='dataLength' type='SFInt32' accessType='outputOnly'/> |
347 | <field name='data00' type='SFInt32' accessType='outputOnly'/> |
348 | <field name='data01' type='SFInt32' accessType='outputOnly'/> |
349 | <field name='data02' type='SFInt32' accessType='outputOnly'/> |
350 | <field name='data03' type='SFInt32' accessType='outputOnly'/> |
351 | <field name='data04' type='SFInt32' accessType='outputOnly'/> |
352 | <field name='data05' type='SFInt32' accessType='outputOnly'/> |
353 | <field name='data06' type='SFInt32' accessType='outputOnly'/> |
354 | <field name='data07' type='SFInt32' accessType='outputOnly'/> |
355 | <field name='data08' type='SFInt32' accessType='outputOnly'/> |
356 | <field name='data09' type='SFInt32' accessType='outputOnly'/> |
357 | <field name='data10' type='SFInt32' accessType='outputOnly'/> |
358 | <IS> |
359 | <connect nodeField='readInterval' protoField='readInterval'/> |
360 | <connect nodeField='writeInterval' protoField='writeInterval'/> |
361 | <connect nodeField='siteID' protoField='siteID'/> |
362 | <connect nodeField='applicationID' protoField='applicationID'/> |
363 | <connect nodeField='entityID' protoField='entityID'/> |
364 | <connect nodeField='address' protoField='address'/> |
365 | <connect nodeField='port' protoField='port'/> |
366 | <connect nodeField='multicastRelayHost' protoField='multicastRelayHost'/> |
367 | <connect nodeField='multicastRelayPort' protoField='multicastRelayPort'/> |
368 | <connect nodeField='rtpHeaderExpected' protoField='rtpHeaderExpected'/> |
369 | <connect nodeField='trace' protoField='trace'/> |
370 | <connect nodeField='active' protoField='active'/> |
371 | <connect nodeField='timestamp' protoField='timestamp'/> |
372 | <connect nodeField='isRtpHeaderHeard' protoField='isRtpHeaderHeard'/> |
373 | <connect nodeField='radioID' protoField='radioID'/> |
374 | <connect nodeField='encodingScheme' protoField='encodingScheme'/> |
375 | <connect nodeField='tdlType' protoField='tdlType'/> |
376 | <connect nodeField='sampleRate' protoField='sampleRate'/> |
377 | <connect nodeField='samples' protoField='samples'/> |
378 | <connect nodeField='dataLength' protoField='dataLength'/> |
379 | <connect nodeField='data00' protoField='data00'/> |
380 | <connect nodeField='data01' protoField='data01'/> |
381 | <connect nodeField='data02' protoField='data02'/> |
382 | <connect nodeField='data03' protoField='data03'/> |
383 | <connect nodeField='data04' protoField='data04'/> |
384 | <connect nodeField='data05' protoField='data05'/> |
385 | <connect nodeField='data06' protoField='data06'/> |
386 | <connect nodeField='data07' protoField='data07'/> |
387 | <connect nodeField='data08' protoField='data08'/> |
388 | <connect nodeField='data09' protoField='data09'/> |
389 | <connect nodeField='data10' protoField='data10'/> |
390 | </IS> |
391 | </Script> |
392 | <!-- Clocks stimulate the processEvents() method in the Script code, resulting in DIS PDU reads/writes. The 'update' eventIn is implicit (i.e. no corresponding Java method is needed). --> |
393 |
<!-- ROUTE information for SignalPduReadIntervalClock node:
[from cycleTime to SignalPduScriptNode.update
]
-->
<TimeSensor DEF='SignalPduReadIntervalClock' loop='true'/> |
394 |
<!-- ROUTE information for SignalPduWriteIntervalClock node:
[from cycleTime to SignalPduScriptNode.update
]
-->
<TimeSensor DEF='SignalPduWriteIntervalClock' enabled='false' loop='true'/> |
395 | < ROUTE fromNode='SignalPduReadIntervalClock' fromField='cycleTime' toNode='SignalPduScriptNode' toField='update'/> |
396 | < ROUTE fromNode='SignalPduWriteIntervalClock' fromField='cycleTime' toNode='SignalPduScriptNode' toField='update'/> |
397 | <!-- These ROUTEs connect the PDU Script node to the geometryChoice=0 text output --> |
398 | < ROUTE fromNode='SignalPduScriptNode' fromField='active' toNode='SignalOutputAssembler1' toField='active'/> |
399 | < ROUTE fromNode='SignalPduScriptNode' fromField='timestamp' toNode='SignalOutputAssembler1' toField='timestamp'/> |
400 | < ROUTE fromNode='SignalPduScriptNode' fromField='isRtpHeaderHeard' toNode='SignalOutputAssembler1' toField='isRtpHeaderHeard'/> |
401 | < ROUTE fromNode='SignalPduScriptNode' fromField='radioID' toNode='SignalOutputAssembler1' toField='radioID'/> |
402 | < ROUTE fromNode='SignalPduScriptNode' fromField='encodingScheme' toNode='SignalOutputAssembler1' toField='encodingScheme'/> |
403 | < ROUTE fromNode='SignalPduScriptNode' fromField='tdlType' toNode='SignalOutputAssembler1' toField='tdlType'/> |
404 | < ROUTE fromNode='SignalPduScriptNode' fromField='sampleRate' toNode='SignalOutputAssembler1' toField='sampleRate'/> |
405 | < ROUTE fromNode='SignalPduScriptNode' fromField='samples' toNode='SignalOutputAssembler1' toField='samples'/> |
406 | < ROUTE fromNode='SignalPduScriptNode' fromField='dataLength' toNode='SignalOutputAssembler1' toField='dataLength'/> |
407 | < ROUTE fromNode='SignalPduScriptNode' fromField='data00' toNode='SignalOutputAssembler1' toField='data00'/> |
408 | < ROUTE fromNode='SignalPduScriptNode' fromField='data01' toNode='SignalOutputAssembler2' toField='data01'/> |
409 | < ROUTE fromNode='SignalPduScriptNode' fromField='data02' toNode='SignalOutputAssembler2' toField='data02'/> |
410 | < ROUTE fromNode='SignalPduScriptNode' fromField='data03' toNode='SignalOutputAssembler2' toField='data03'/> |
411 | < ROUTE fromNode='SignalPduScriptNode' fromField='data04' toNode='SignalOutputAssembler2' toField='data04'/> |
412 | < ROUTE fromNode='SignalPduScriptNode' fromField='data05' toNode='SignalOutputAssembler2' toField='data05'/> |
413 | < ROUTE fromNode='SignalPduScriptNode' fromField='data06' toNode='SignalOutputAssembler2' toField='data06'/> |
414 | < ROUTE fromNode='SignalPduScriptNode' fromField='data07' toNode='SignalOutputAssembler2' toField='data07'/> |
415 | < ROUTE fromNode='SignalPduScriptNode' fromField='data08' toNode='SignalOutputAssembler2' toField='data08'/> |
416 | < ROUTE fromNode='SignalPduScriptNode' fromField='data09' toNode='SignalOutputAssembler2' toField='data09'/> |
417 | < ROUTE fromNode='SignalPduScriptNode' fromField='data10' toNode='SignalOutputAssembler2' toField='data10'/> |
418 | < ROUTE fromNode='SignalOutputAssembler1' fromField='messageResult' toNode='SignalOutput1' toField='string'/> |
419 | < ROUTE fromNode='SignalOutputAssembler2' fromField='messageResult' toNode='SignalOutput2' toField='string'/> |
420 | <!-- ROUTEs for further geometry representations go here --> |
421 | </ProtoBody> |
422 | </ProtoDeclare> |
423 | <!-- ============================================================ --> |
424 | <ProtoDeclare name='TransmitterPdu'> |
425 | <ProtoInterface> |
426 | <!-- set whichGeometry to -1 for no geometry, 0 for text trace, 1 for default geometry --> |
427 | <field name='whichGeometry' type='SFInt32' value='0' accessType='inputOutput'/> |
428 |
<field name='bboxCenter' type='SFVec3f' value='0 0 0' accessType='initializeOnly'
appinfo='Bounding box center: position offset from origin of local coordinate system.'/> |
429 |
<field name='bboxSize' type='SFVec3f' value='-1 -1 -1' accessType='initializeOnly'
appinfo='Bounding box size: automatically calculated can be specified as an optimization or constraint.'/> |
430 | <!-- Initialization fields --> |
431 | <field name='readInterval' type='SFTime' value='0.1' accessType='initializeOnly'/> |
432 | <field name='writeInterval' type='SFTime' value='1.0' accessType='initializeOnly'/> |
433 | <field name='siteID' type='SFInt32' value='14' accessType='initializeOnly'/> |
434 | <field name='applicationID' type='SFInt32' value='17' accessType='initializeOnly'/> |
435 | <field name='entityID' type='SFInt32' value='9' accessType='initializeOnly'/> |
436 | <field name='address' type='SFString' value='224.2.181.145' accessType='initializeOnly'/> |
437 | <field name='port' type='SFInt32' value='62040' accessType='initializeOnly'/> |
438 | <field name='multicastRelayHost' type='SFString' value='devo.cs.nps.navy.mil' accessType='initializeOnly'/> |
439 | <field name='multicastRelayPort' type='SFInt32' value='8010' accessType='initializeOnly'/> |
440 |
<field name='networkMode' type='SFString' value='standAlone' accessType='inputOutput'
appinfo='networkMode: standAlone (ignore network but still respond to local events) networkReader (listen to network as ghost entity) networkWriter (output to network as master entity at writeInterval)'/> |
441 |
<field name='isStandAlone' type='SFBool' accessType='outputOnly'
appinfo='Whether networkMode standAlone (ignore network but still respond to local events) is true/false'/> |
442 |
<field name='isMaster' type='SFBool' accessType='outputOnly'
appinfo="Whether networkMode 'networkWriter' (output to network as master entity at writeInterval) is true/false"/> |
443 |
<field name='isRemote' type='SFBool' accessType='outputOnly'
appinfo="Whether networkMode 'networkReader' (listen to network as ghost entity) is true/false"/> |
444 | <field name='rtpHeaderExpected' type='SFBool' value='false' accessType='initializeOnly'/> |
445 |
<field name='isRtpHeaderHeard' type='SFBool' accessType='outputOnly'
appinfo='whether RTP header was found prepended to DIS packet'/> |
446 | <field name='trace' type='SFBool' value='false' accessType='initializeOnly'/> |
447 | <!-- Generic events --> |
448 | <field name='active' type='SFBool' accessType='outputOnly'/> |
449 | <field name='timestamp' type='SFTime' accessType='outputOnly'/> |
450 | <!-- RadioCommunicationsFamily events --> |
451 | <field name='radioID' type='SFInt32' accessType='outputOnly'/> |
452 | <!-- TransmitterPdu fields --> |
453 | <field name='antennaLocation' type='SFVec3f' accessType='outputOnly'/> |
454 | <field name='antennaPatternLength' type='SFInt32' accessType='outputOnly'/> |
455 | <field name='antennaPatternType' type='SFInt32' accessType='outputOnly'/> |
456 | <field name='cryptoKeyID' type='SFInt32' accessType='outputOnly'/> |
457 | <field name='cryptoSytem' type='SFInt32' accessType='outputOnly'/> |
458 | <field name='frequency' type='SFInt32' accessType='outputOnly'/> |
459 | <field name='inputSource' type='SFInt32' accessType='outputOnly'/> |
460 | <field name='lengthOfModulationParameters' type='SFInt32' accessType='outputOnly'/> |
461 | <field name='modulationTypeDetail' type='SFInt32' accessType='outputOnly'/> |
462 | <field name='modulationTypeMajor' type='SFInt32' accessType='outputOnly'/> |
463 | <field name='modulationTypeSpreadSpectrum' type='SFInt32' accessType='outputOnly'/> |
464 | <field name='modulationTypeSystem' type='SFInt32' accessType='outputOnly'/> |
465 | <field name='power' type='SFInt32' accessType='outputOnly'/> |
466 | <field name='radioEntityTypeCategory' type='SFInt32' accessType='outputOnly'/> |
467 | <field name='radioEntityTypeCountry' type='SFInt32' accessType='outputOnly'/> |
468 | <field name='radioEntityTypeDomain' type='SFInt32' accessType='outputOnly'/> |
469 | <field name='radioEntityTypeKind' type='SFInt32' accessType='outputOnly'/> |
470 | <field name='radioEntityTypeNomenclature' type='SFInt32' accessType='outputOnly'/> |
471 | <field name='radioEntityTypeNomenclatureVersion' type='SFInt32' accessType='outputOnly'/> |
472 | <field name='relativeAntennaLocation' type='SFVec3f' accessType='outputOnly'/> |
473 | <field name='transmitFrequencyBandwidth' type='SFInt32' accessType='outputOnly'/> |
474 | <field name='transmitState' type='SFInt32' accessType='outputOnly'/> |
475 | </ProtoInterface> |
476 | <ProtoBody> |
477 | <!-- First node inside a PrototypeDeclaration is the node type of the ProtoInstance --> |
478 | <Switch DEF='TransmitterPduGeometrySwitch' whichChoice='-1'> |
479 | <IS> |
480 | <connect nodeField='whichChoice' protoField='whichGeometry'/> |
481 | </IS> |
482 | <!-- whichChoice -1 is no rendering, choice 0 is text trace, choice 1 is default geometry --> |
483 | <Group> |
484 | <Viewpoint description='Transmitter Pdu Observer' position='0 0 15'/> |
485 | <Group> |
486 | <Transform translation='0 6 0'> |
487 | <Shape> |
488 | <Text string='"Open Java Console to see PDU trace messages" "Netscape..Communicator..Tools..Java Console"'> |
489 | |
490 | </Text> |
491 | <Appearance> |
492 | <Material diffuseColor='0 0.4 0.8'/> |
493 | </Appearance> |
494 | </Shape> |
495 | </Transform> |
496 | <Transform translation='0 4.75 0'> |
497 | <Shape> |
498 | <Text string='"Transmitter PDU values"'> |
499 | <FontStyle USE='FONT3'/> |
500 | </Text> |
501 | <Appearance> |
502 | <Material diffuseColor='0 0.8 0.4'/> |
503 | </Appearance> |
504 | </Shape> |
505 | </Transform> |
506 | <Transform translation='0 4 0'> |
507 | <Shape> |
508 |
<!-- ROUTE information for TransmitterOutput1 node:
[from TransmitterOutputAssembler1.messageResult to string
]
-->
<Text DEF='TransmitterOutput1' string='"Transmitter Output1 unset"'> |
509 | <FontStyle USE='FONT3'/> |
510 | </Text> |
511 |
<!-- Appearance
YellowAppearance3 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<Appearance DEF='YellowAppearance3'> |
512 | <Material diffuseColor='0.8 0.8 0'/> |
513 | </Appearance> |
514 | </Shape> |
515 | </Transform> |
516 | <Transform translation='0 -1 0'> |
517 | <Shape> |
518 |
<!-- ROUTE information for TransmitterOutput2 node:
[from TransmitterOutputAssembler2.messageResult to string
]
-->
<Text DEF='TransmitterOutput2' string='"Transmitter Output2 unset"'> |
519 | <FontStyle USE='FONT3'/> |
520 | </Text> |
521 | <Appearance USE='YellowAppearance3'/> |
522 | </Shape> |
523 | </Transform> |
524 | <Transform translation='0 -6 0'> |
525 | <Shape> |
526 |
<!-- ROUTE information for TransmitterOutput3 node:
[from TransmitterOutputAssembler3.messageResult to string
]
-->
<Text DEF='TransmitterOutput3' string='"Transmitter Output2 unset"'> |
527 | <FontStyle USE='FONT3'/> |
528 | </Text> |
529 | <Appearance USE='YellowAppearance3'/> |
530 | </Shape> |
531 | </Transform> |
532 | </Group> |
533 |
<!-- ROUTE information for TransmitterOutputAssembler1 node:
[from TransmitterPduScriptNode.active to active
]
[from TransmitterPduScriptNode.timestamp to timestamp
]
[from TransmitterPduScriptNode.isRtpHeaderHeard to isRtpHeaderHeard
]
[from TransmitterPduScriptNode.radioID to radioID
]
[from TransmitterPduScriptNode.antennaLocation to antennaLocation
]
[from TransmitterPduScriptNode.antennaPatternLength to antennaPatternLength
]
[from TransmitterPduScriptNode.antennaPatternType to antennaPatternType
]
[from TransmitterPduScriptNode.cryptoKeyID to cryptoKeyID
]
[from TransmitterPduScriptNode.cryptoSytem to cryptoSytem
]
[from TransmitterPduScriptNode.frequency to frequency
]
[from messageResult to TransmitterOutput1.string
]
-->
<Script DEF='TransmitterOutputAssembler1'> |
534 | <!-- surprising limit on MFString: 10 strings --> |
535 | <field name='messageResult' type='MFString' accessType='outputOnly'/> |
536 | <field name='active' type='SFBool' accessType='inputOnly'/> |
537 | <field name='timestamp' type='SFTime' accessType='inputOnly'/> |
538 | <field name='isRtpHeaderHeard' type='SFBool' accessType='inputOnly'/> |
539 | <field name='radioID' type='SFInt32' accessType='inputOnly'/> |
540 | <field name='antennaLocation' type='SFVec3f' accessType='inputOnly'/> |
541 | <field name='antennaPatternLength' type='SFInt32' accessType='inputOnly'/> |
542 | <field name='antennaPatternType' type='SFInt32' accessType='inputOnly'/> |
543 | <field name='cryptoKeyID' type='SFInt32' accessType='inputOnly'/> |
544 | <field name='cryptoSytem' type='SFInt32' accessType='inputOnly'/> |
545 | <field name='frequency' type='SFInt32' accessType='inputOnly'/> |
<![CDATA[
ecmascript: function initialize () { value='awaiting PDU'; messageResult [0] = 'active=' + value; messageResult [1] = 'timestamp=' + value; messageResult [2] = 'isRtpHeaderHeard=' + value; messageResult [3] = 'radioID=' + value; messageResult [4] = 'antennaLocation=' + value; messageResult [5] = 'antennaPatternLength=' + value; messageResult [6] = 'antennaPatternType=' + value; messageResult [7] = 'cryptoKeyID=' + value; messageResult [8] = 'cryptoSytem=' + value; messageResult [9] = 'frequency=' + value; } function active (value, ts) { messageResult [0] = 'active=' + value; } function timestamp (value, ts) { messageResult [1] = 'timestamp=' + value; } function isRtpHeaderHeard (value, ts) { messageResult [2] = 'isRtpHeaderHeard=' + value; } function radioID (value, ts) { messageResult [3] = 'radioID=' + value; } function antennaLocation (value, ts) { messageResult [4] = 'antennaLocation=' + value; } function antennaPatternLength (value, ts) { messageResult [5] = 'antennaPatternLength=' + value; } function antennaPatternType (value, ts) { messageResult [6] = 'antennaPatternType=' + value; } function cryptoKeyID (value, ts) { messageResult [7] = 'cryptoKeyID=' + value; } function cryptoSytem (value, ts) { messageResult [8] = 'cryptoSytem=' + value; } function frequency (value, ts) { messageResult [9] = 'frequency=' + value; }
]]>
|
|
547 | </Script> |
548 |
<!-- ROUTE information for TransmitterOutputAssembler2 node:
[from TransmitterPduScriptNode.inputSource to inputSource
]
[from TransmitterPduScriptNode.lengthOfModulationParameters to lengthOfModulationParameters
]
[from TransmitterPduScriptNode.modulationTypeDetail to modulationTypeDetail
]
[from TransmitterPduScriptNode.modulationTypeMajor to modulationTypeMajor
]
[from TransmitterPduScriptNode.modulationTypeSpreadSpectrum to modulationTypeSpreadSpectrum
]
[from TransmitterPduScriptNode.modulationTypeSystem to modulationTypeSystem
]
[from TransmitterPduScriptNode.power to power
]
[from TransmitterPduScriptNode.radioEntityTypeCategory to radioEntityTypeCategory
]
[from TransmitterPduScriptNode.radioEntityTypeCountry to radioEntityTypeCountry
]
[from TransmitterPduScriptNode.radioEntityTypeDomain to radioEntityTypeDomain
]
[from messageResult to TransmitterOutput2.string
]
-->
<Script DEF='TransmitterOutputAssembler2'> |
549 | <field name='messageResult' type='MFString' accessType='outputOnly'/> |
550 | <field name='inputSource' type='SFInt32' accessType='inputOnly'/> |
551 | <field name='lengthOfModulationParameters' type='SFInt32' accessType='inputOnly'/> |
552 | <field name='modulationTypeDetail' type='SFInt32' accessType='inputOnly'/> |
553 | <field name='modulationTypeMajor' type='SFInt32' accessType='inputOnly'/> |
554 | <field name='modulationTypeSpreadSpectrum' type='SFInt32' accessType='inputOnly'/> |
555 | <field name='modulationTypeSystem' type='SFInt32' accessType='inputOnly'/> |
556 | <field name='power' type='SFInt32' accessType='inputOnly'/> |
557 | <field name='radioEntityTypeCategory' type='SFInt32' accessType='inputOnly'/> |
558 | <field name='radioEntityTypeCountry' type='SFInt32' accessType='inputOnly'/> |
559 | <field name='radioEntityTypeDomain' type='SFInt32' accessType='inputOnly'/> |
<![CDATA[
ecmascript: function initialize () { messageResult [0] = 'inputSource=' + value; messageResult [1] = 'lengthOfModulationParameters=' + value; messageResult [2] = 'modulationTypeDetail=' + value; messageResult [3] = 'modulationTypeMajor=' + value; messageResult [4] = 'modulationTypeSpreadSpectrum=' + value; messageResult [5] = 'modulationTypeSystem=' + value; messageResult [6] = 'power=' + value; messageResult [7] = 'radioEntityTypeCategory=' + value; messageResult [8] = 'radioEntityTypeCountry=' + value; messageResult [9] = 'radioEntityTypeDomain=' + value; } function inputSource (value, ts) { messageResult [0] = 'inputSource=' + value; } function lengthOfModulationParameters (value, ts) { messageResult [1] = 'lengthOfModulationParameters=' + value; } function modulationTypeDetail (value, ts) { messageResult [2] = 'modulationTypeDetail=' + value; } function modulationTypeMajor (value, ts) { messageResult [3] = 'modulationTypeMajor=' + value; } function modulationTypeSpreadSpectrum (value, ts) { messageResult [4] = 'modulationTypeSpreadSpectrum=' + value; } function modulationTypeSystem (value, ts) { messageResult [5] = 'modulationTypeSystem=' + value; } function power (value, ts) { messageResult [6] = 'power=' + value; } function radioEntityTypeCategory (value, ts) { messageResult [7] = 'radioEntityTypeCategory=' + value; } function radioEntityTypeCountry (value, ts) { messageResult [8] = 'radioEntityTypeCountry=' + value; } function radioEntityTypeDomain (value, ts) { messageResult [9] = 'radioEntityTypeDomain=' + value; }
]]>
|
|
561 | </Script> |
562 |
<!-- ROUTE information for TransmitterOutputAssembler3 node:
[from TransmitterPduScriptNode.radioEntityTypeKind to radioEntityTypeKind
]
[from TransmitterPduScriptNode.radioEntityTypeNomenclature to radioEntityTypeNomenclature
]
[from TransmitterPduScriptNode.radioEntityTypeNomenclatureVersion to radioEntityTypeNomenclatureVersion
]
[from TransmitterPduScriptNode.relativeAntennaLocation to relativeAntennaLocation
]
[from TransmitterPduScriptNode.transmitFrequencyBandwidth to transmitFrequencyBandwidth
]
[from TransmitterPduScriptNode.transmitState to transmitState
]
[from messageResult to TransmitterOutput3.string
]
-->
<Script DEF='TransmitterOutputAssembler3'> |
563 | <field name='messageResult' type='MFString' accessType='outputOnly'/> |
564 | <field name='radioEntityTypeKind' type='SFInt32' accessType='inputOnly'/> |
565 | <field name='radioEntityTypeNomenclature' type='SFInt32' accessType='inputOnly'/> |
566 | <field name='radioEntityTypeNomenclatureVersion' type='SFInt32' accessType='inputOnly'/> |
567 | <field name='relativeAntennaLocation' type='SFVec3f' accessType='inputOnly'/> |
568 | <field name='transmitFrequencyBandwidth' type='SFInt32' accessType='inputOnly'/> |
569 | <field name='transmitState' type='SFInt32' accessType='inputOnly'/> |
<![CDATA[
ecmascript: function initialize () { messageResult [0] = 'radioEntityTypeKind=' + value; messageResult [1] = 'radioEntityTypeNomenclature=' + value; messageResult [2] = 'radioEntityTypeNomenclatureVersion=' + value; messageResult [3] = 'relativeAntennaLocation=' + value; messageResult [4] = 'transmitFrequencyBandwidth=' + value; messageResult [5] = 'transmitState=' + value; } function radioEntityTypeKind (value, ts) { messageResult [0] = 'radioEntityTypeKind=' + value; } function radioEntityTypeNomenclature (value, ts) { messageResult [1] = 'radioEntityTypeNomenclature=' + value; } function radioEntityTypeNomenclatureVersion (value, ts) { messageResult [2] = 'radioEntityTypeNomenclatureVersion=' + value; } function relativeAntennaLocation (value, ts) { messageResult [3] = 'relativeAntennaLocation=' + value; } function transmitFrequencyBandwidth (value, ts) { messageResult [4] = 'transmitFrequencyBandwidth=' + value; } function transmitState (value, ts) { messageResult [5] = 'transmitState=' + value; }
]]>
|
|
571 | </Script> |
572 | </Group> |
573 | </Switch> |
574 | <!-- The Script follows the Switch, since the first node in the file determines the node type of this prototype --> |
575 | <!-- Fields in the Script are directly mapped to the PrototypeDeclare field-tag interfaces by using the IS construct --> |
576 | <!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) --> |
577 |
<!-- ROUTE information for TransmitterPduScriptNode node:
[from TransmitterPduReadIntervalClock.cycleTime to update
]
[from TransmitterPduWriteIntervalClock.cycleTime to update
]
[from active to TransmitterOutputAssembler1.active
]
[from timestamp to TransmitterOutputAssembler1.timestamp
]
[from isRtpHeaderHeard to TransmitterOutputAssembler1.isRtpHeaderHeard
]
[from radioID to TransmitterOutputAssembler1.radioID
]
[from antennaLocation to TransmitterOutputAssembler1.antennaLocation
]
[from antennaPatternLength to TransmitterOutputAssembler1.antennaPatternLength
]
[from antennaPatternType to TransmitterOutputAssembler1.antennaPatternType
]
[from cryptoKeyID to TransmitterOutputAssembler1.cryptoKeyID
]
[from cryptoSytem to TransmitterOutputAssembler1.cryptoSytem
]
[from frequency to TransmitterOutputAssembler1.frequency
]
[from inputSource to TransmitterOutputAssembler2.inputSource
]
[from lengthOfModulationParameters to TransmitterOutputAssembler2.lengthOfModulationParameters
]
[from modulationTypeDetail to TransmitterOutputAssembler2.modulationTypeDetail
]
[from modulationTypeMajor to TransmitterOutputAssembler2.modulationTypeMajor
]
[from modulationTypeSpreadSpectrum to TransmitterOutputAssembler2.modulationTypeSpreadSpectrum
]
[from modulationTypeSystem to TransmitterOutputAssembler2.modulationTypeSystem
]
[from power to TransmitterOutputAssembler2.power
]
[from radioEntityTypeCategory to TransmitterOutputAssembler2.radioEntityTypeCategory
]
[from radioEntityTypeCountry to TransmitterOutputAssembler2.radioEntityTypeCountry
]
[from radioEntityTypeDomain to TransmitterOutputAssembler2.radioEntityTypeDomain
]
[from radioEntityTypeKind to TransmitterOutputAssembler3.radioEntityTypeKind
]
[from radioEntityTypeNomenclature to TransmitterOutputAssembler3.radioEntityTypeNomenclature
]
[from radioEntityTypeNomenclatureVersion to TransmitterOutputAssembler3.radioEntityTypeNomenclatureVersion
]
[from relativeAntennaLocation to TransmitterOutputAssembler3.relativeAntennaLocation
]
[from transmitFrequencyBandwidth to TransmitterOutputAssembler3.transmitFrequencyBandwidth
]
[from transmitState to TransmitterOutputAssembler3.transmitState
]
-->
<Script DEF='TransmitterPduScriptNode' mustEvaluate='true' url=' "RadioCommunicationsPduScriptNode.class" "http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/dis/RadioCommunicationsPduScriptNode.class" '> |
578 | <!-- Valid values for radioPduType are ReceiverPdu, SignalPdu and TransmitterPdu --> |
579 | <field name='radioPduType' type='SFString' value='TransmitterPdu' accessType='initializeOnly'/> |
580 | <!-- Initialization fields --> |
581 | <field name='readInterval' type='SFTime' accessType='initializeOnly'/> |
582 | <field name='writeInterval' type='SFTime' accessType='initializeOnly'/> |
583 | <field name='siteID' type='SFInt32' accessType='initializeOnly'/> |
584 | <field name='applicationID' type='SFInt32' accessType='initializeOnly'/> |
585 | <field name='entityID' type='SFInt32' accessType='initializeOnly'/> |
586 | <field name='address' type='SFString' accessType='initializeOnly'/> |
587 | <field name='port' type='SFInt32' accessType='initializeOnly'/> |
588 | <field name='multicastRelayHost' type='SFString' accessType='initializeOnly'/> |
589 | <field name='multicastRelayPort' type='SFInt32' accessType='initializeOnly'/> |
590 | <field name='rtpHeaderExpected' type='SFBool' accessType='initializeOnly'/> |
591 |
<field name='isRtpHeaderHeard' type='SFBool' accessType='outputOnly'
appinfo='whether RTP header was found prepended to DIS packet'/> |
592 | <field name='trace' type='SFBool' accessType='initializeOnly'/> |
593 | <!-- Generic events --> |
594 |
<field name='update' type='SFTime' accessType='inputOnly'
appinfo='update is triggered by local TimeSensor clocks to allow regular read/write'/> |
595 | <field name='active' type='SFBool' accessType='outputOnly'/> |
596 | <field name='timestamp' type='SFTime' accessType='outputOnly'/> |
597 | <!-- RadioCommunicationsFamily events --> |
598 | <field name='radioID' type='SFInt32' accessType='outputOnly'/> |
599 | <!-- SignalPdu fields --> |
600 | <field name='antennaLocation' type='SFVec3f' accessType='outputOnly'/> |
601 | <field name='antennaPatternLength' type='SFInt32' accessType='outputOnly'/> |
602 | <field name='antennaPatternType' type='SFInt32' accessType='outputOnly'/> |
603 | <field name='cryptoKeyID' type='SFInt32' accessType='outputOnly'/> |
604 | <field name='cryptoSytem' type='SFInt32' accessType='outputOnly'/> |
605 | <field name='frequency' type='SFInt32' accessType='outputOnly'/> |
606 | <field name='inputSource' type='SFInt32' accessType='outputOnly'/> |
607 | <field name='lengthOfModulationParameters' type='SFInt32' accessType='outputOnly'/> |
608 | <field name='modulationTypeDetail' type='SFInt32' accessType='outputOnly'/> |
609 | <field name='modulationTypeMajor' type='SFInt32' accessType='outputOnly'/> |
610 | <field name='modulationTypeSpreadSpectrum' type='SFInt32' accessType='outputOnly'/> |
611 | <field name='modulationTypeSystem' type='SFInt32' accessType='outputOnly'/> |
612 | <field name='power' type='SFInt32' accessType='outputOnly'/> |
613 | <field name='radioEntityTypeCategory' type='SFInt32' accessType='outputOnly'/> |
614 | <field name='radioEntityTypeCountry' type='SFInt32' accessType='outputOnly'/> |
615 | <field name='radioEntityTypeDomain' type='SFInt32' accessType='outputOnly'/> |
616 | <field name='radioEntityTypeKind' type='SFInt32' accessType='outputOnly'/> |
617 | <field name='radioEntityTypeNomenclature' type='SFInt32' accessType='outputOnly'/> |
618 | <field name='radioEntityTypeNomenclatureVersion' type='SFInt32' accessType='outputOnly'/> |
619 | <field name='relativeAntennaLocation' type='SFVec3f' accessType='outputOnly'/> |
620 | <field name='transmitFrequencyBandwidth' type='SFInt32' accessType='outputOnly'/> |
621 | <field name='transmitState' type='SFInt32' accessType='outputOnly'/> |
622 | <IS> |
623 | <connect nodeField='readInterval' protoField='readInterval'/> |
624 | <connect nodeField='writeInterval' protoField='writeInterval'/> |
625 | <connect nodeField='siteID' protoField='siteID'/> |
626 | <connect nodeField='applicationID' protoField='applicationID'/> |
627 | <connect nodeField='entityID' protoField='entityID'/> |
628 | <connect nodeField='address' protoField='address'/> |
629 | <connect nodeField='port' protoField='port'/> |
630 | <connect nodeField='multicastRelayHost' protoField='multicastRelayHost'/> |
631 | <connect nodeField='multicastRelayPort' protoField='multicastRelayPort'/> |
632 | <connect nodeField='rtpHeaderExpected' protoField='rtpHeaderExpected'/> |
633 | <connect nodeField='trace' protoField='trace'/> |
634 | <connect nodeField='active' protoField='active'/> |
635 | <connect nodeField='timestamp' protoField='timestamp'/> |
636 | <connect nodeField='isRtpHeaderHeard' protoField='isRtpHeaderHeard'/> |
637 | <connect nodeField='radioID' protoField='radioID'/> |
638 | <connect nodeField='antennaLocation' protoField='antennaLocation'/> |
639 | <connect nodeField='antennaPatternLength' protoField='antennaPatternLength'/> |
640 | <connect nodeField='antennaPatternType' protoField='antennaPatternType'/> |
641 | <connect nodeField='cryptoKeyID' protoField='cryptoKeyID'/> |
642 | <connect nodeField='cryptoSytem' protoField='cryptoSytem'/> |
643 | <connect nodeField='frequency' protoField='frequency'/> |
644 | <connect nodeField='inputSource' protoField='inputSource'/> |
645 | <connect nodeField='lengthOfModulationParameters' protoField='lengthOfModulationParameters'/> |
646 | <connect nodeField='modulationTypeDetail' protoField='modulationTypeDetail'/> |
647 | <connect nodeField='modulationTypeMajor' protoField='modulationTypeMajor'/> |
648 | <connect nodeField='modulationTypeSpreadSpectrum' protoField='modulationTypeSpreadSpectrum'/> |
649 | <connect nodeField='modulationTypeSystem' protoField='modulationTypeSystem'/> |
650 | <connect nodeField='power' protoField='power'/> |
651 | <connect nodeField='radioEntityTypeCategory' protoField='radioEntityTypeCategory'/> |
652 | <connect nodeField='radioEntityTypeCountry' protoField='radioEntityTypeCountry'/> |
653 | <connect nodeField='radioEntityTypeDomain' protoField='radioEntityTypeDomain'/> |
654 | <connect nodeField='radioEntityTypeKind' protoField='radioEntityTypeKind'/> |
655 | <connect nodeField='radioEntityTypeNomenclature' protoField='radioEntityTypeNomenclature'/> |
656 | <connect nodeField='radioEntityTypeNomenclatureVersion' protoField='radioEntityTypeNomenclatureVersion'/> |
657 | <connect nodeField='relativeAntennaLocation' protoField='relativeAntennaLocation'/> |
658 | <connect nodeField='transmitFrequencyBandwidth' protoField='transmitFrequencyBandwidth'/> |
659 | <connect nodeField='transmitState' protoField='transmitState'/> |
660 | </IS> |
661 | </Script> |
662 | <!-- Clocks stimulate the processEvents() method in the Script code, resulting in DIS PDU reads/writes. The 'update' eventIn is implicit (i.e. no corresponding Java method is needed). --> |
663 |
<!-- ROUTE information for TransmitterPduReadIntervalClock node:
[from cycleTime to TransmitterPduScriptNode.update
]
-->
<TimeSensor DEF='TransmitterPduReadIntervalClock' loop='true'/> |
664 |
<!-- ROUTE information for TransmitterPduWriteIntervalClock node:
[from cycleTime to TransmitterPduScriptNode.update
]
-->
<TimeSensor DEF='TransmitterPduWriteIntervalClock' enabled='false' loop='true'/> |
665 | < ROUTE fromNode='TransmitterPduReadIntervalClock' fromField='cycleTime' toNode='TransmitterPduScriptNode' toField='update'/> |
666 | < ROUTE fromNode='TransmitterPduWriteIntervalClock' fromField='cycleTime' toNode='TransmitterPduScriptNode' toField='update'/> |
667 | <!-- These ROUTEs connect the PDU Script node to the geometryChoice=0 text output --> |
668 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='active' toNode='TransmitterOutputAssembler1' toField='active'/> |
669 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='timestamp' toNode='TransmitterOutputAssembler1' toField='timestamp'/> |
670 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='isRtpHeaderHeard' toNode='TransmitterOutputAssembler1' toField='isRtpHeaderHeard'/> |
671 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='radioID' toNode='TransmitterOutputAssembler1' toField='radioID'/> |
672 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='antennaLocation' toNode='TransmitterOutputAssembler1' toField='antennaLocation'/> |
673 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='antennaPatternLength' toNode='TransmitterOutputAssembler1' toField='antennaPatternLength'/> |
674 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='antennaPatternType' toNode='TransmitterOutputAssembler1' toField='antennaPatternType'/> |
675 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='cryptoKeyID' toNode='TransmitterOutputAssembler1' toField='cryptoKeyID'/> |
676 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='cryptoSytem' toNode='TransmitterOutputAssembler1' toField='cryptoSytem'/> |
677 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='frequency' toNode='TransmitterOutputAssembler1' toField='frequency'/> |
678 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='inputSource' toNode='TransmitterOutputAssembler2' toField='inputSource'/> |
679 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='lengthOfModulationParameters' toNode='TransmitterOutputAssembler2' toField='lengthOfModulationParameters'/> |
680 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='modulationTypeDetail' toNode='TransmitterOutputAssembler2' toField='modulationTypeDetail'/> |
681 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='modulationTypeMajor' toNode='TransmitterOutputAssembler2' toField='modulationTypeMajor'/> |
682 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='modulationTypeSpreadSpectrum' toNode='TransmitterOutputAssembler2' toField='modulationTypeSpreadSpectrum'/> |
683 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='modulationTypeSystem' toNode='TransmitterOutputAssembler2' toField='modulationTypeSystem'/> |
684 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='power' toNode='TransmitterOutputAssembler2' toField='power'/> |
685 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='radioEntityTypeCategory' toNode='TransmitterOutputAssembler2' toField='radioEntityTypeCategory'/> |
686 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='radioEntityTypeCountry' toNode='TransmitterOutputAssembler2' toField='radioEntityTypeCountry'/> |
687 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='radioEntityTypeDomain' toNode='TransmitterOutputAssembler2' toField='radioEntityTypeDomain'/> |
688 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='radioEntityTypeKind' toNode='TransmitterOutputAssembler3' toField='radioEntityTypeKind'/> |
689 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='radioEntityTypeNomenclature' toNode='TransmitterOutputAssembler3' toField='radioEntityTypeNomenclature'/> |
690 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='radioEntityTypeNomenclatureVersion' toNode='TransmitterOutputAssembler3' toField='radioEntityTypeNomenclatureVersion'/> |
691 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='relativeAntennaLocation' toNode='TransmitterOutputAssembler3' toField='relativeAntennaLocation'/> |
692 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='transmitFrequencyBandwidth' toNode='TransmitterOutputAssembler3' toField='transmitFrequencyBandwidth'/> |
693 | < ROUTE fromNode='TransmitterPduScriptNode' fromField='transmitState' toNode='TransmitterOutputAssembler3' toField='transmitState'/> |
694 | < ROUTE fromNode='TransmitterOutputAssembler1' fromField='messageResult' toNode='TransmitterOutput1' toField='string'/> |
695 | < ROUTE fromNode='TransmitterOutputAssembler2' fromField='messageResult' toNode='TransmitterOutput2' toField='string'/> |
696 | < ROUTE fromNode='TransmitterOutputAssembler3' fromField='messageResult' toNode='TransmitterOutput3' toField='string'/> |
697 | <!-- ROUTEs for further geometry representations go here --> |
698 | </ProtoBody> |
699 | </ProtoDeclare> |
700 | <!-- ============================================================ --> |
701 | <!-- Default content --> |
702 | <Group> |
703 | <Transform translation='-15 15 0'> |
704 | <ProtoInstance name='ReceiverPdu'/> |
705 | </Transform> |
706 | <Transform translation='-15 -15 0'> |
707 | <ReceiverPdu receivedPower='0.0' containerField='children'/> |
708 | </Transform> |
709 | <Transform translation='0 15 0'> |
710 | <ProtoInstance name='SignalPdu'/> |
711 | </Transform> |
712 | <Transform translation='0 -15 0'> |
713 | <SignalPdu containerField='children'/> |
714 | </Transform> |
715 | <Transform translation='15 15 0'> |
716 | <ProtoInstance name='TransmitterPdu'/> |
717 | </Transform> |
718 | <Transform translation='15 -15 0'> |
719 | <TransmitterPdu relativeAntennaLocation='0 0 0' transmitFrequencyBandwidth='0.0' containerField='children'/> |
720 | </Transform> |
721 | </Group> |
722 | </Scene> |
723 | </X3D> |
Event Graph ROUTE Table entries with 68 ROUTE connections total, showing X3D event-model relationships for this scene.
Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.
ReceiverPduReadIntervalClock
TimeSensor cycleTime SFTime |
ReceiverPduScriptNode
Script update SFTime |
ReceiverPduWriteIntervalClock
TimeSensor cycleTime SFTime |
ReceiverPduScriptNode
Script update SFTime |
SignalPduReadIntervalClock
TimeSensor cycleTime SFTime |
SignalPduScriptNode
Script update SFTime |
SignalPduWriteIntervalClock
TimeSensor cycleTime SFTime |
SignalPduScriptNode
Script update SFTime |
TransmitterPduReadIntervalClock
TimeSensor cycleTime SFTime |
TransmitterPduScriptNode
Script update SFTime |
TransmitterPduWriteIntervalClock
TimeSensor cycleTime SFTime |
TransmitterPduScriptNode
Script update SFTime |
ReceiverOutputAssembler1
Script messageResult MFString |
ReceiverOutput1
Text string MFString |
SignalOutputAssembler1
Script messageResult MFString |
SignalOutput1
Text string MFString |
SignalOutputAssembler2
Script messageResult MFString |
SignalOutput2
Text string MFString |
TransmitterOutputAssembler1
Script messageResult MFString |
TransmitterOutput1
Text string MFString |
TransmitterOutputAssembler2
Script messageResult MFString |
TransmitterOutput2
Text string MFString |
TransmitterOutputAssembler3
Script messageResult MFString |
TransmitterOutput3
Text string MFString |
ProtoInstance ReceiverPdu |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
ProtoInstance SignalPdu |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
ProtoInstance TransmitterPdu |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
<!--
Color legend: X3D terminology
<X3dNode
DEF='idName' field='value'/>
matches XML terminology
<XmlElement
DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
<ProtoInstance
name='ProtoName'>
<field
name='fieldName'/> </ProtoInstance>
-->
<!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->