| 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://www.web3d.org/x3d/tools/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 |
| line 704
ProtoInstance ReceiverPdu |
No direct ROUTE connection found for events to/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. |
| line 710
ProtoInstance SignalPdu |
No direct ROUTE connection found for events to/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. |
| line 716
ProtoInstance TransmitterPdu |
No direct ROUTE connection found for events to/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-coding 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.
-->