<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "http://www.web3d.org/specifications/x3d-3.0.dtd" "file:///www.web3d.org/TaskGroups/x3d/translation/x3d-3.0.dtd">
<X3D profile='Full' noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.0.xsd'>
<head>
<meta name='filename' content='RadioCommunicationsPrototypes.x3d'/>
<meta name='authors' content='Don Brutzman and Dave Laflam'/>
<meta name='created' content='7 December 2000'/>
<meta name='revised' content='7 December 2001'/>
<meta name='description' content='Prototype definitions for ReceiverPdu SignalPdu and TransmitterPdu, all of which share share RadioCommunicationsPduScriptNode class'/>
<meta name='url' content='http://web.nps.navy.mil/~brutzman/vrtp/mil/navy/nps/dis/RadioCommunicationsPrototypes.xml'/>
<meta name='url' content='http://www.web3D.org/TaskGroups/x3d/translation/examples/DistributedInteractiveSimulation/RadioCommunicationsPrototypes.xml'/>
<meta name='generator' content='X3D-Edit, http://www.web3D.org/TaskGroups/x3d/translation/README.X3D-Edit.html'/>
</head>
<!--

Index for ProtoDeclares: ReceiverPdu, SignalPdu, TransmitterPdu. Index for DEFs: FONT1, FONT2, FONT3, ReceiverOutput1, ReceiverOutputAssembler1, ReceiverPduGeometrySwitch, ReceiverPduReadIntervalClock, ReceiverPduScriptNode, ReceiverPduWriteIntervalClock, SignalOutput1, SignalOutput2, SignalOutputAssembler1, SignalOutputAssembler2, SignalPduGeometrySwitch, SignalPduReadIntervalClock, SignalPduScriptNode, SignalPduWriteIntervalClock, TransmitterOutput1, TransmitterOutput2, TransmitterOutput3, TransmitterOutputAssembler1, TransmitterOutputAssembler2, TransmitterOutputAssembler3, TransmitterPduGeometrySwitch, TransmitterPduReadIntervalClock, TransmitterPduScriptNode, TransmitterPduWriteIntervalClock, YellowAppearance2, YellowAppearance3.

-->
<Scene>
<!-- ============================================================ -->
<ProtoDeclare name='ReceiverPdu'>
<!-- set whichGeometry to -1 for no geometry, 0 for text trace, 1 for default geometry -->
<field name='whichGeometry' type='Integer' value='0' IS='ReceiverPduGeometrySwitch.whichChoice' vrml97Hint='exposedField'/>
<!-- Initialization fields -->
<field name='readInterval' type='Time' value='2' IS='ReceiverPduScriptNode.readInterval' vrml97Hint='field'/>
<field name='writeInterval' type='Time' value='0' IS='ReceiverPduScriptNode.writeInterval' vrml97Hint='field'/>
<field name='siteID' type='Integer' value='14' IS='ReceiverPduScriptNode.siteID' vrml97Hint='field'/>
<field name='applicationID' type='Integer' value='17' IS='ReceiverPduScriptNode.applicationID' vrml97Hint='field'/>
<field name='entityID' type='Integer' value='9' IS='ReceiverPduScriptNode.entityID' vrml97Hint='field'/>
<field name='address' type='String' value='224.2.181.145' IS='ReceiverPduScriptNode.address' vrml97Hint='field'/>
<field name='port' type='Integer' value='62040' IS='ReceiverPduScriptNode.port' vrml97Hint='field'/>
<field name='multicastRelayHost' type='String' value='devo.cs.nps.navy.mil' IS='ReceiverPduScriptNode.multicastRelayHost' vrml97Hint='field'/>
<field name='multicastRelayPort' type='Integer' value='8010' IS='ReceiverPduScriptNode.multicastRelayPort' vrml97Hint='field'/>
<field name='rtpHeaderExpected' type='Boolean' value='false' IS='ReceiverPduScriptNode.rtpHeaderExpected' vrml97Hint='field'/>
<field name='traceJava' type='Boolean' value='false' IS='ReceiverPduScriptNode.traceJava' vrml97Hint='field'/>
<!-- Generic events -->
<field name='active' type='Boolean' IS='ReceiverPduScriptNode.active' vrml97Hint='eventOut'/>
<field name='timestamp' type='Time' IS='ReceiverPduScriptNode.timestamp' vrml97Hint='eventOut'/>
<field name='rtpHeaderHeard' type='Boolean' IS='ReceiverPduScriptNode.rtpHeaderHeard' vrml97Hint='eventOut'/>
<!-- RadioCommunicationsFamily events -->
<field name='radioID' type='Integer' IS='ReceiverPduScriptNode.radioID' vrml97Hint='eventOut'/>
<!-- ReceiverPdu fields -->
<field name='receiverPower' type='Float' IS='ReceiverPduScriptNode.receiverPower' vrml97Hint='eventOut'/>
<field name='receiverState' type='Integer' IS='ReceiverPduScriptNode.receiverState' vrml97Hint='eventOut'/>
<field name='transmitterSiteID' type='Integer' IS='ReceiverPduScriptNode.transmitterSiteID' vrml97Hint='eventOut'/>
<field name='transmitterApplicationID' type='Integer' IS='ReceiverPduScriptNode.transmitterApplicationID' vrml97Hint='eventOut'/>
<field name='transmitterEntityID' type='Integer' IS='ReceiverPduScriptNode.transmitterEntityID' vrml97Hint='eventOut'/>
<field name='transmitterRadioID' type='Integer' IS='ReceiverPduScriptNode.transmitterRadioID' vrml97Hint='eventOut'/>
<!-- First node inside a PrototypeDeclaration is the node type of the ProtoInstance -->
<Switch DEF='ReceiverPduGeometrySwitch' whichChoice='-1'>
<!-- whichChoice -1 is no rendering, choice 0 is text trace, choice 1 is default geometry -->
<Group>
<Viewpoint description='Receiver Pdu Observer' position='0 0 15' centerOfRotation='0 0 0'/>
<NavigationInfo type='"EXAMINE" "ANY"'/>
<Group>
<Transform translation='0 6 0'>
<Shape>
<Text string='"Open Java Console to see PDU trace messages" "Netscape..Communicator..Tools..Java Console"'>
<FontStyle DEF='FONT1' justify='"MIDDLE" "BEGIN"' size='0.5' family='SERIF'/>
</Text>
<Appearance>
<Material diffuseColor='0 0.4 0.8'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 4.75 0'>
<Shape>
<Text string='Receiver PDU values'>
<FontStyle USE='FONT1' justify='BEGIN' family='SERIF'/>
</Text>
<Appearance>
<Material diffuseColor='0 0.8 0.4'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 4 0'>
<Shape>
<Text DEF='ReceiverOutput1' string='Receiver output uninitialized'>
<FontStyle USE='FONT1' justify='BEGIN' family='SERIF'/>
</Text>
<Appearance>
<Material diffuseColor='0.8 0.8 0'/>
</Appearance>
</Shape>
</Transform>
</Group>
<Script DEF='ReceiverOutputAssembler1'>
<!-- surprising limit on MFString: 10 strings -->
<field name='messageResult' type='Strings' vrml97Hint='eventOut'/>
<field name='active' type='Boolean' vrml97Hint='eventIn'/>
<field name='timestamp' type='Time' vrml97Hint='eventIn'/>
<field name='rtpHeaderHeard' type='Boolean' vrml97Hint='eventIn'/>
<field name='radioID' type='Integer' vrml97Hint='eventIn'/>
<field name='receiverPower' type='Float' vrml97Hint='eventIn'/>
<field name='receiverState' type='Integer' vrml97Hint='eventIn'/>
<field name='transmitterSiteID' type='Integer' vrml97Hint='eventIn'/>
<field name='transmitterApplicationID' type='Integer' vrml97Hint='eventIn'/>
<field name='transmitterEntityID' type='Integer' vrml97Hint='eventIn'/>
<field name='transmitterRadioID' type='Integer' vrml97Hint='eventIn'/>
<![CDATA[
javascript:

function initialize ()
{
	value='awaiting PDU';
	messageResult  [0] = 'active=' + value;
	messageResult  [1] = 'timestamp=' + value;
	messageResult  [2] = 'rtpHeaderHeard=' + value;
	messageResult  [3] = 'radioID=' + value;
	messageResult  [4] = 'receiverPower=' + 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 rtpHeaderHeard			(value, ts) { messageResult [2] = 'rtpHeaderHeard=' + value; }
function radioID			(value, ts) { messageResult [3] = 'radioID=' + value; }
function receiverPower			(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; }
          ]]>
</Script>
</Group>
</Switch>
<!-- The Script follows the Switch, since the first node in the file determines the node type of this prototype -->
<!-- Fields in the Script are directly mapped to the PrototypeDeclare field-tag interfaces by using the IS construct -->
<Script DEF='ReceiverPduScriptNode' directOutput='true' mustEvaluate='true' url='"RadioCommunicationsPduScriptNode.class"'>
<!-- Valid values for radioPduType are ReceiverPdu, SignalPdu and TransmitterPdu -->
<field name='radioPduType' type='String' value='ReceiverPdu' vrml97Hint='field'/>
<!-- Initialization fields -->
<field name='readInterval' type='Time' vrml97Hint='field'/>
<field name='writeInterval' type='Time' vrml97Hint='field'/>
<field name='siteID' type='Integer' vrml97Hint='field'/>
<field name='applicationID' type='Integer' vrml97Hint='field'/>
<field name='entityID' type='Integer' vrml97Hint='field'/>
<field name='address' type='String' vrml97Hint='field'/>
<field name='port' type='Integer' vrml97Hint='field'/>
<field name='multicastRelayHost' type='String' vrml97Hint='field'/>
<field name='multicastRelayPort' type='Integer' vrml97Hint='field'/>
<field name='rtpHeaderExpected' type='Boolean' vrml97Hint='field'/>
<field name='traceJava' type='Boolean' vrml97Hint='field'/>
<!-- Generic events -->
<field name='update' type='Time' vrml97Hint='eventIn'/>
<field name='active' type='Boolean' vrml97Hint='eventOut'/>
<field name='timestamp' type='Time' vrml97Hint='eventOut'/>
<field name='rtpHeaderHeard' type='Boolean' vrml97Hint='eventOut'/>
<!-- RadioCommunicationsFamily events -->
<field name='radioID' type='Integer' vrml97Hint='eventOut'/>
<!-- SignalPdu fields -->
<field name='receiverPower' type='Float' vrml97Hint='eventOut'/>
<field name='receiverState' type='Integer' vrml97Hint='eventOut'/>
<field name='transmitterSiteID' type='Integer' vrml97Hint='eventOut'/>
<field name='transmitterApplicationID' type='Integer' vrml97Hint='eventOut'/>
<field name='transmitterEntityID' type='Integer' vrml97Hint='eventOut'/>
<field name='transmitterRadioID' type='Integer' vrml97Hint='eventOut'/>
</Script>
<!-- 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). -->
<TimeSensor DEF='ReceiverPduReadIntervalClock' loop='true' pauseTime='0' isPaused='' resumeTime='0' fraction_changed=''/>
<TimeSensor DEF='ReceiverPduWriteIntervalClock' cycleInterval='0' enabled='false' loop='true' pauseTime='0' isPaused='' resumeTime='0' fraction_changed=''/>
<ROUTE fromNode='ReceiverPduReadIntervalClock' fromField='cycleTime' toNode='ReceiverPduScriptNode' toField='update'/>
<ROUTE fromNode='ReceiverPduWriteIntervalClock' fromField='cycleTime' toNode='ReceiverPduScriptNode' toField='update'/>
<!-- These ROUTEs connect the PDU Script node to the geometryChoice=0 text output -->
<ROUTE fromNode='ReceiverPduScriptNode' fromField='active' toNode='ReceiverOutputAssembler1' toField='active'/>
<ROUTE fromNode='ReceiverPduScriptNode' fromField='timestamp' toNode='ReceiverOutputAssembler1' toField='timestamp'/>
<ROUTE fromNode='ReceiverPduScriptNode' fromField='rtpHeaderHeard' toNode='ReceiverOutputAssembler1' toField='rtpHeaderHeard'/>
<ROUTE fromNode='ReceiverPduScriptNode' fromField='radioID' toNode='ReceiverOutputAssembler1' toField='radioID'/>
<ROUTE fromNode='ReceiverPduScriptNode' fromField='receiverPower' toNode='ReceiverOutputAssembler1' toField='receiverPower'/>
<ROUTE fromNode='ReceiverPduScriptNode' fromField='receiverState' toNode='ReceiverOutputAssembler1' toField='receiverState'/>
<ROUTE fromNode='ReceiverPduScriptNode' fromField='transmitterSiteID' toNode='ReceiverOutputAssembler1' toField='transmitterSiteID'/>
<ROUTE fromNode='ReceiverPduScriptNode' fromField='transmitterApplicationID' toNode='ReceiverOutputAssembler1' toField='transmitterApplicationID'/>
<ROUTE fromNode='ReceiverPduScriptNode' fromField='transmitterEntityID' toNode='ReceiverOutputAssembler1' toField='transmitterEntityID'/>
<ROUTE fromNode='ReceiverPduScriptNode' fromField='transmitterRadioID' toNode='ReceiverOutputAssembler1' toField='transmitterRadioID'/>
<ROUTE fromNode='ReceiverOutputAssembler1' fromField='messageResult' toNode='ReceiverOutput1' toField='string'/>
<!-- ROUTEs for further geometry representations go here -->
</ProtoDeclare>
<!-- ============================================================ -->
<ProtoDeclare name='SignalPdu'>
<!-- set whichGeometry to -1 for no geometry, 0 for text trace, 1 for default geometry -->
<field name='whichGeometry' type='Integer' value='0' IS='SignalPduGeometrySwitch.whichChoice' vrml97Hint='exposedField'/>
<!-- Initialization fields -->
<field name='readInterval' type='Time' value='2' IS='SignalPduScriptNode.readInterval' vrml97Hint='field'/>
<field name='writeInterval' type='Time' value='0' IS='SignalPduScriptNode.writeInterval' vrml97Hint='field'/>
<field name='siteID' type='Integer' value='14' IS='SignalPduScriptNode.siteID' vrml97Hint='field'/>
<field name='applicationID' type='Integer' value='17' IS='SignalPduScriptNode.applicationID' vrml97Hint='field'/>
<field name='entityID' type='Integer' value='9' IS='SignalPduScriptNode.entityID' vrml97Hint='field'/>
<field name='address' type='String' value='224.2.181.145' IS='SignalPduScriptNode.address' vrml97Hint='field'/>
<field name='port' type='Integer' value='62040' IS='SignalPduScriptNode.port' vrml97Hint='field'/>
<field name='multicastRelayHost' type='String' value='devo.cs.nps.navy.mil' IS='SignalPduScriptNode.multicastRelayHost' vrml97Hint='field'/>
<field name='multicastRelayPort' type='Integer' value='8010' IS='SignalPduScriptNode.multicastRelayPort' vrml97Hint='field'/>
<field name='rtpHeaderExpected' type='Boolean' value='false' IS='SignalPduScriptNode.rtpHeaderExpected' vrml97Hint='field'/>
<field name='traceJava' type='Boolean' value='false' IS='SignalPduScriptNode.traceJava' vrml97Hint='field'/>
<!-- Generic events -->
<field name='active' type='Boolean' IS='SignalPduScriptNode.active' vrml97Hint='eventOut'/>
<field name='timestamp' type='Time' IS='SignalPduScriptNode.timestamp' vrml97Hint='eventOut'/>
<field name='rtpHeaderHeard' type='Boolean' IS='SignalPduScriptNode.rtpHeaderHeard' vrml97Hint='eventOut'/>
<!-- RadioCommunicationsFamily events -->
<field name='radioID' type='Integer' IS='SignalPduScriptNode.radioID' vrml97Hint='eventOut'/>
<!-- SignalPdu fields -->
<field name='encodingScheme' type='Integer' IS='SignalPduScriptNode.encodingScheme' vrml97Hint='eventOut'/>
<field name='tdlType' type='Integer' IS='SignalPduScriptNode.tdlType' vrml97Hint='eventOut'/>
<field name='sampleRate' type='Integer' IS='SignalPduScriptNode.sampleRate' vrml97Hint='eventOut'/>
<field name='samples' type='Integer' IS='SignalPduScriptNode.samples' vrml97Hint='eventOut'/>
<field name='dataLength' type='Integer' IS='SignalPduScriptNode.dataLength' vrml97Hint='eventOut'/>
<field name='data00' type='Integer' IS='SignalPduScriptNode.data00' vrml97Hint='eventOut'/>
<field name='data01' type='Integer' IS='SignalPduScriptNode.data01' vrml97Hint='eventOut'/>
<field name='data02' type='Integer' IS='SignalPduScriptNode.data02' vrml97Hint='eventOut'/>
<field name='data03' type='Integer' IS='SignalPduScriptNode.data03' vrml97Hint='eventOut'/>
<field name='data04' type='Integer' IS='SignalPduScriptNode.data04' vrml97Hint='eventOut'/>
<field name='data05' type='Integer' IS='SignalPduScriptNode.data05' vrml97Hint='eventOut'/>
<field name='data06' type='Integer' IS='SignalPduScriptNode.data06' vrml97Hint='eventOut'/>
<field name='data07' type='Integer' IS='SignalPduScriptNode.data07' vrml97Hint='eventOut'/>
<field name='data08' type='Integer' IS='SignalPduScriptNode.data08' vrml97Hint='eventOut'/>
<field name='data09' type='Integer' IS='SignalPduScriptNode.data09' vrml97Hint='eventOut'/>
<field name='data10' type='Integer' IS='SignalPduScriptNode.data10' vrml97Hint='eventOut'/>
<!-- First node inside a PrototypeDeclaration is the node type of the ProtoInstance -->
<Switch DEF='SignalPduGeometrySwitch' whichChoice='-1'>
<!-- whichChoice -1 is no rendering, choice 0 is text trace, choice 1 is default geometry -->
<Group>
<Viewpoint description='Signal Pdu Observer' position='0 0 15' centerOfRotation='0 0 0'/>
<NavigationInfo type='"EXAMINE" "ANY"'/>
<Group>
<Transform translation='0 6 0'>
<Shape>
<Text string='"Open Java Console to see PDU trace messages" "Netscape..Communicator..Tools..Java Console"'>
<FontStyle DEF='FONT2' justify='"MIDDLE" "BEGIN"' size='0.5' family='SERIF'/>
</Text>
<Appearance>
<Material diffuseColor='0 0.4 0.8'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 4.75 0'>
<Shape>
<Text string='Signal PDU values'>
<FontStyle USE='FONT2' justify='BEGIN' family='SERIF'/>
</Text>
<Appearance>
<Material diffuseColor='0 0.8 0.4'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 4 0'>
<Shape>
<Text DEF='SignalOutput1' string='Signal Output1 unset'>
<FontStyle USE='FONT2' justify='BEGIN' family='SERIF'/>
</Text>
<Appearance DEF='YellowAppearance2'>
<Material diffuseColor='0.8 0.8 0'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 -1 0'>
<Shape>
<Text DEF='SignalOutput2' string='Signal Output2 unset'>
<FontStyle USE='FONT2' justify='BEGIN' family='SERIF'/>
</Text>
<Appearance USE='YellowAppearance2'/>
</Shape>
</Transform>
</Group>
<Script DEF='SignalOutputAssembler1'>
<!-- surprising limit on MFString: 10 strings -->
<field name='messageResult' type='Strings' vrml97Hint='eventOut'/>
<field name='active' type='Boolean' vrml97Hint='eventIn'/>
<field name='timestamp' type='Time' vrml97Hint='eventIn'/>
<field name='rtpHeaderHeard' type='Boolean' vrml97Hint='eventIn'/>
<field name='radioID' type='Integer' vrml97Hint='eventIn'/>
<field name='encodingScheme' type='Integer' vrml97Hint='eventIn'/>
<field name='tdlType' type='Integer' vrml97Hint='eventIn'/>
<field name='sampleRate' type='Integer' vrml97Hint='eventIn'/>
<field name='samples' type='Integer' vrml97Hint='eventIn'/>
<field name='dataLength' type='Integer' vrml97Hint='eventIn'/>
<field name='data00' type='Integer' vrml97Hint='eventIn'/>
<![CDATA[
javascript:

function initialize ()
{
	value='awaiting PDU';
	messageResult  [0] = 'active=' + value;
	messageResult  [1] = 'timestamp=' + value;
	messageResult  [2] = 'rtpHeaderHeard=' + 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 rtpHeaderHeard	(value, ts) { messageResult [2] = 'rtpHeaderHeard=' + 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; }
          ]]>
</Script>
<Script DEF='SignalOutputAssembler2'>
<field name='messageResult' type='Strings' vrml97Hint='eventOut'/>
<field name='data01' type='Integer' vrml97Hint='eventIn'/>
<field name='data02' type='Integer' vrml97Hint='eventIn'/>
<field name='data03' type='Integer' vrml97Hint='eventIn'/>
<field name='data04' type='Integer' vrml97Hint='eventIn'/>
<field name='data05' type='Integer' vrml97Hint='eventIn'/>
<field name='data06' type='Integer' vrml97Hint='eventIn'/>
<field name='data07' type='Integer' vrml97Hint='eventIn'/>
<field name='data08' type='Integer' vrml97Hint='eventIn'/>
<field name='data09' type='Integer' vrml97Hint='eventIn'/>
<field name='data10' type='Integer' vrml97Hint='eventIn'/>
<![CDATA[
javascript:

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; }

          ]]>
</Script>
</Group>
</Switch>
<!-- The Script follows the Switch, since the first node in the file determines the node type of this prototype -->
<!-- Fields in the Script are directly mapped to the PrototypeDeclare field-tag interfaces by using the IS construct -->
<Script DEF='SignalPduScriptNode' directOutput='true' mustEvaluate='true' url='"RadioCommunicationsPduScriptNode.class"'>
<!-- Valid values for radioPduType are ReceiverPdu, SignalPdu and TransmitterPdu -->
<field name='radioPduType' type='String' value='SignalPdu' vrml97Hint='field'/>
<!-- Initialization fields -->
<field name='readInterval' type='Time' vrml97Hint='field'/>
<field name='writeInterval' type='Time' vrml97Hint='field'/>
<field name='siteID' type='Integer' vrml97Hint='field'/>
<field name='applicationID' type='Integer' vrml97Hint='field'/>
<field name='entityID' type='Integer' vrml97Hint='field'/>
<field name='address' type='String' vrml97Hint='field'/>
<field name='port' type='Integer' vrml97Hint='field'/>
<field name='multicastRelayHost' type='String' vrml97Hint='field'/>
<field name='multicastRelayPort' type='Integer' vrml97Hint='field'/>
<field name='rtpHeaderExpected' type='Boolean' vrml97Hint='field'/>
<field name='traceJava' type='Boolean' vrml97Hint='field'/>
<!-- Generic events -->
<field name='update' type='Time' vrml97Hint='eventIn'/>
<field name='active' type='Boolean' vrml97Hint='eventOut'/>
<field name='timestamp' type='Time' vrml97Hint='eventOut'/>
<field name='rtpHeaderHeard' type='Boolean' vrml97Hint='eventOut'/>
<!-- RadioCommunicationsFamily events -->
<field name='radioID' type='Integer' vrml97Hint='eventOut'/>
<!-- SignalPdu fields -->
<field name='encodingScheme' type='Integer' vrml97Hint='eventOut'/>
<field name='tdlType' type='Integer' vrml97Hint='eventOut'/>
<field name='sampleRate' type='Integer' vrml97Hint='eventOut'/>
<field name='samples' type='Integer' vrml97Hint='eventOut'/>
<field name='dataLength' type='Integer' vrml97Hint='eventOut'/>
<field name='data00' type='Integer' vrml97Hint='eventOut'/>
<field name='data01' type='Integer' vrml97Hint='eventOut'/>
<field name='data02' type='Integer' vrml97Hint='eventOut'/>
<field name='data03' type='Integer' vrml97Hint='eventOut'/>
<field name='data04' type='Integer' vrml97Hint='eventOut'/>
<field name='data05' type='Integer' vrml97Hint='eventOut'/>
<field name='data06' type='Integer' vrml97Hint='eventOut'/>
<field name='data07' type='Integer' vrml97Hint='eventOut'/>
<field name='data08' type='Integer' vrml97Hint='eventOut'/>
<field name='data09' type='Integer' vrml97Hint='eventOut'/>
<field name='data10' type='Integer' vrml97Hint='eventOut'/>
</Script>
<!-- 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). -->
<TimeSensor DEF='SignalPduReadIntervalClock' loop='true' pauseTime='0' isPaused='' resumeTime='0' fraction_changed=''/>
<TimeSensor DEF='SignalPduWriteIntervalClock' cycleInterval='0' enabled='false' loop='true' pauseTime='0' isPaused='' resumeTime='0' fraction_changed=''/>
<ROUTE fromNode='SignalPduReadIntervalClock' fromField='cycleTime' toNode='SignalPduScriptNode' toField='update'/>
<ROUTE fromNode='SignalPduWriteIntervalClock' fromField='cycleTime' toNode='SignalPduScriptNode' toField='update'/>
<!-- These ROUTEs connect the PDU Script node to the geometryChoice=0 text output -->
<ROUTE fromNode='SignalPduScriptNode' fromField='active' toNode='SignalOutputAssembler1' toField='active'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='timestamp' toNode='SignalOutputAssembler1' toField='timestamp'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='rtpHeaderHeard' toNode='SignalOutputAssembler1' toField='rtpHeaderHeard'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='radioID' toNode='SignalOutputAssembler1' toField='radioID'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='encodingScheme' toNode='SignalOutputAssembler1' toField='encodingScheme'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='tdlType' toNode='SignalOutputAssembler1' toField='tdlType'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='sampleRate' toNode='SignalOutputAssembler1' toField='sampleRate'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='samples' toNode='SignalOutputAssembler1' toField='samples'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='dataLength' toNode='SignalOutputAssembler1' toField='dataLength'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='data00' toNode='SignalOutputAssembler1' toField='data00'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='data01' toNode='SignalOutputAssembler2' toField='data01'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='data02' toNode='SignalOutputAssembler2' toField='data02'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='data03' toNode='SignalOutputAssembler2' toField='data03'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='data04' toNode='SignalOutputAssembler2' toField='data04'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='data05' toNode='SignalOutputAssembler2' toField='data05'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='data06' toNode='SignalOutputAssembler2' toField='data06'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='data07' toNode='SignalOutputAssembler2' toField='data07'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='data08' toNode='SignalOutputAssembler2' toField='data08'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='data09' toNode='SignalOutputAssembler2' toField='data09'/>
<ROUTE fromNode='SignalPduScriptNode' fromField='data10' toNode='SignalOutputAssembler2' toField='data10'/>
<ROUTE fromNode='SignalOutputAssembler1' fromField='messageResult' toNode='SignalOutput1' toField='string'/>
<ROUTE fromNode='SignalOutputAssembler2' fromField='messageResult' toNode='SignalOutput2' toField='string'/>
<!-- ROUTEs for further geometry representations go here -->
</ProtoDeclare>
<!-- ============================================================ -->
<ProtoDeclare name='TransmitterPdu'>
<!-- set whichGeometry to -1 for no geometry, 0 for text trace, 1 for default geometry -->
<field name='whichGeometry' type='Integer' value='0' IS='TransmitterPduGeometrySwitch.whichChoice' vrml97Hint='exposedField'/>
<!-- Initialization fields -->
<field name='readInterval' type='Time' value='2' IS='TransmitterPduScriptNode.readInterval' vrml97Hint='field'/>
<field name='writeInterval' type='Time' value='0' IS='TransmitterPduScriptNode.writeInterval' vrml97Hint='field'/>
<field name='siteID' type='Integer' value='14' IS='TransmitterPduScriptNode.siteID' vrml97Hint='field'/>
<field name='applicationID' type='Integer' value='17' IS='TransmitterPduScriptNode.applicationID' vrml97Hint='field'/>
<field name='entityID' type='Integer' value='9' IS='TransmitterPduScriptNode.entityID' vrml97Hint='field'/>
<field name='address' type='String' value='224.2.181.145' IS='TransmitterPduScriptNode.address' vrml97Hint='field'/>
<field name='port' type='Integer' value='62040' IS='TransmitterPduScriptNode.port' vrml97Hint='field'/>
<field name='multicastRelayHost' type='String' value='devo.cs.nps.navy.mil' IS='TransmitterPduScriptNode.multicastRelayHost' vrml97Hint='field'/>
<field name='multicastRelayPort' type='Integer' value='8010' IS='TransmitterPduScriptNode.multicastRelayPort' vrml97Hint='field'/>
<field name='rtpHeaderExpected' type='Boolean' value='false' IS='TransmitterPduScriptNode.rtpHeaderExpected' vrml97Hint='field'/>
<field name='traceJava' type='Boolean' value='false' IS='TransmitterPduScriptNode.traceJava' vrml97Hint='field'/>
<!-- Generic events -->
<field name='active' type='Boolean' IS='TransmitterPduScriptNode.active' vrml97Hint='eventOut'/>
<field name='timestamp' type='Time' IS='TransmitterPduScriptNode.timestamp' vrml97Hint='eventOut'/>
<field name='rtpHeaderHeard' type='Boolean' IS='TransmitterPduScriptNode.rtpHeaderHeard' vrml97Hint='eventOut'/>
<!-- RadioCommunicationsFamily events -->
<field name='radioID' type='Integer' IS='TransmitterPduScriptNode.radioID' vrml97Hint='eventOut'/>
<!-- TransmitterPdu fields -->
<field name='antennaLocation' type='Vector3Float' IS='TransmitterPduScriptNode.antennaLocation' vrml97Hint='eventOut'/>
<field name='antennaPatternLength' type='Integer' IS='TransmitterPduScriptNode.antennaPatternLength' vrml97Hint='eventOut'/>
<field name='antennaPatternType' type='Integer' IS='TransmitterPduScriptNode.antennaPatternType' vrml97Hint='eventOut'/>
<field name='cryptoKeyId' type='Integer' IS='TransmitterPduScriptNode.cryptoKeyId' vrml97Hint='eventOut'/>
<field name='cryptoSytem' type='Integer' IS='TransmitterPduScriptNode.cryptoSytem' vrml97Hint='eventOut'/>
<field name='frequency' type='Integer' IS='TransmitterPduScriptNode.frequency' vrml97Hint='eventOut'/>
<field name='inputSource' type='Integer' IS='TransmitterPduScriptNode.inputSource' vrml97Hint='eventOut'/>
<field name='lengthOfModulationParameters' type='Integer' IS='TransmitterPduScriptNode.lengthOfModulationParameters' vrml97Hint='eventOut'/>
<field name='modulationTypeDetail' type='Integer' IS='TransmitterPduScriptNode.modulationTypeDetail' vrml97Hint='eventOut'/>
<field name='modulationTypeMajor' type='Integer' IS='TransmitterPduScriptNode.modulationTypeMajor' vrml97Hint='eventOut'/>
<field name='modulationTypeSpreadSpectrum' type='Integer' IS='TransmitterPduScriptNode.modulationTypeSpreadSpectrum' vrml97Hint='eventOut'/>
<field name='modulationTypeSystem' type='Integer' IS='TransmitterPduScriptNode.modulationTypeSystem' vrml97Hint='eventOut'/>
<field name='power' type='Integer' IS='TransmitterPduScriptNode.power' vrml97Hint='eventOut'/>
<field name='radioEntityTypeCategory' type='Integer' IS='TransmitterPduScriptNode.radioEntityTypeCategory' vrml97Hint='eventOut'/>
<field name='radioEntityTypeCountry' type='Integer' IS='TransmitterPduScriptNode.radioEntityTypeCountry' vrml97Hint='eventOut'/>
<field name='radioEntityTypeDomain' type='Integer' IS='TransmitterPduScriptNode.radioEntityTypeDomain' vrml97Hint='eventOut'/>
<field name='radioEntityTypeKind' type='Integer' IS='TransmitterPduScriptNode.radioEntityTypeKind' vrml97Hint='eventOut'/>
<field name='radioEntityTypeNomenclature' type='Integer' IS='TransmitterPduScriptNode.radioEntityTypeNomenclature' vrml97Hint='eventOut'/>
<field name='radioEntityTypeNomenclatureVersion' type='Integer' IS='TransmitterPduScriptNode.radioEntityTypeNomenclatureVersion' vrml97Hint='eventOut'/>
<field name='relativeAntennaLocation' type='Vector3Float' IS='TransmitterPduScriptNode.relativeAntennaLocation' vrml97Hint='eventOut'/>
<field name='transmitFrequencyBandwidth' type='Integer' IS='TransmitterPduScriptNode.transmitFrequencyBandwidth' vrml97Hint='eventOut'/>
<field name='transmitState' type='Integer' IS='TransmitterPduScriptNode.transmitState' vrml97Hint='eventOut'/>
<!-- First node inside a PrototypeDeclaration is the node type of the ProtoInstance -->
<Switch DEF='TransmitterPduGeometrySwitch' whichChoice='-1'>
<!-- whichChoice -1 is no rendering, choice 0 is text trace, choice 1 is default geometry -->
<Group>
<Viewpoint description='Transmitter Pdu Observer' position='0 0 15' centerOfRotation='0 0 0'/>
<NavigationInfo type='"EXAMINE" "ANY"'/>
<Group>
<Transform translation='0 6 0'>
<Shape>
<Text string='"Open Java Console to see PDU trace messages" "Netscape..Communicator..Tools..Java Console"'>
<FontStyle DEF='FONT3' justify='"MIDDLE" "BEGIN"' size='0.5' family='SERIF'/>
</Text>
<Appearance>
<Material diffuseColor='0 0.4 0.8'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 4.75 0'>
<Shape>
<Text string='Transmitter PDU values'>
<FontStyle USE='FONT3' justify='BEGIN' family='SERIF'/>
</Text>
<Appearance>
<Material diffuseColor='0 0.8 0.4'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 4 0'>
<Shape>
<Text DEF='TransmitterOutput1' string='Transmitter Output1 unset'>
<FontStyle USE='FONT3' justify='BEGIN' family='SERIF'/>
</Text>
<Appearance DEF='YellowAppearance3'>
<Material diffuseColor='0.8 0.8 0'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 -1 0'>
<Shape>
<Text DEF='TransmitterOutput2' string='Transmitter Output2 unset'>
<FontStyle USE='FONT3' justify='BEGIN' family='SERIF'/>
</Text>
<Appearance USE='YellowAppearance3'/>
</Shape>
</Transform>
<Transform translation='0 -6 0'>
<Shape>
<Text DEF='TransmitterOutput3' string='Transmitter Output2 unset'>
<FontStyle USE='FONT3' justify='BEGIN' family='SERIF'/>
</Text>
<Appearance USE='YellowAppearance3'/>
</Shape>
</Transform>
</Group>
<Script DEF='TransmitterOutputAssembler1'>
<!-- surprising limit on MFString: 10 strings -->
<field name='messageResult' type='Strings' vrml97Hint='eventOut'/>
<field name='active' type='Boolean' vrml97Hint='eventIn'/>
<field name='timestamp' type='Time' vrml97Hint='eventIn'/>
<field name='rtpHeaderHeard' type='Boolean' vrml97Hint='eventIn'/>
<field name='radioID' type='Integer' vrml97Hint='eventIn'/>
<field name='antennaLocation' type='Vector3Float' vrml97Hint='eventIn'/>
<field name='antennaPatternLength' type='Integer' vrml97Hint='eventIn'/>
<field name='antennaPatternType' type='Integer' vrml97Hint='eventIn'/>
<field name='cryptoKeyId' type='Integer' vrml97Hint='eventIn'/>
<field name='cryptoSytem' type='Integer' vrml97Hint='eventIn'/>
<field name='frequency' type='Integer' vrml97Hint='eventIn'/>
<![CDATA[
javascript:

function initialize ()
{
	value='awaiting PDU';
	messageResult  [0] = 'active=' + value;
	messageResult  [1] = 'timestamp=' + value;
	messageResult  [2] = 'rtpHeaderHeard=' + 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 rtpHeaderHeard		(value, ts) { messageResult [2] = 'rtpHeaderHeard=' + 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; }
          ]]>
</Script>
<Script DEF='TransmitterOutputAssembler2'>
<field name='messageResult' type='Strings' vrml97Hint='eventOut'/>
<field name='inputSource' type='Integer' vrml97Hint='eventIn'/>
<field name='lengthOfModulationParameters' type='Integer' vrml97Hint='eventIn'/>
<field name='modulationTypeDetail' type='Integer' vrml97Hint='eventIn'/>
<field name='modulationTypeMajor' type='Integer' vrml97Hint='eventIn'/>
<field name='modulationTypeSpreadSpectrum' type='Integer' vrml97Hint='eventIn'/>
<field name='modulationTypeSystem' type='Integer' vrml97Hint='eventIn'/>
<field name='power' type='Integer' vrml97Hint='eventIn'/>
<field name='radioEntityTypeCategory' type='Integer' vrml97Hint='eventIn'/>
<field name='radioEntityTypeCountry' type='Integer' vrml97Hint='eventIn'/>
<field name='radioEntityTypeDomain' type='Integer' vrml97Hint='eventIn'/>
<![CDATA[
javascript:

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; }

          ]]>
</Script>
<Script DEF='TransmitterOutputAssembler3'>
<field name='messageResult' type='Strings' vrml97Hint='eventOut'/>
<field name='radioEntityTypeKind' type='Integer' vrml97Hint='eventIn'/>
<field name='radioEntityTypeNomenclature' type='Integer' vrml97Hint='eventIn'/>
<field name='radioEntityTypeNomenclatureVersion' type='Integer' vrml97Hint='eventIn'/>
<field name='relativeAntennaLocation' type='Vector3Float' vrml97Hint='eventIn'/>
<field name='transmitFrequencyBandwidth' type='Integer' vrml97Hint='eventIn'/>
<field name='transmitState' type='Integer' vrml97Hint='eventIn'/>
<![CDATA[
javascript:

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; }

          ]]>
</Script>
</Group>
</Switch>
<!-- The Script follows the Switch, since the first node in the file determines the node type of this prototype -->
<!-- Fields in the Script are directly mapped to the PrototypeDeclare field-tag interfaces by using the IS construct -->
<Script DEF='TransmitterPduScriptNode' directOutput='true' mustEvaluate='true' url='"RadioCommunicationsPduScriptNode.class"'>
<!-- Valid values for radioPduType are ReceiverPdu, SignalPdu and TransmitterPdu -->
<field name='radioPduType' type='String' value='TransmitterPdu' vrml97Hint='field'/>
<!-- Initialization fields -->
<field name='readInterval' type='Time' vrml97Hint='field'/>
<field name='writeInterval' type='Time' vrml97Hint='field'/>
<field name='siteID' type='Integer' vrml97Hint='field'/>
<field name='applicationID' type='Integer' vrml97Hint='field'/>
<field name='entityID' type='Integer' vrml97Hint='field'/>
<field name='address' type='String' vrml97Hint='field'/>
<field name='port' type='Integer' vrml97Hint='field'/>
<field name='multicastRelayHost' type='String' vrml97Hint='field'/>
<field name='multicastRelayPort' type='Integer' vrml97Hint='field'/>
<field name='rtpHeaderExpected' type='Boolean' vrml97Hint='field'/>
<field name='traceJava' type='Boolean' vrml97Hint='field'/>
<!-- Generic events -->
<field name='update' type='Time' vrml97Hint='eventIn'/>
<field name='active' type='Boolean' vrml97Hint='eventOut'/>
<field name='timestamp' type='Time' vrml97Hint='eventOut'/>
<field name='rtpHeaderHeard' type='Boolean' vrml97Hint='eventOut'/>
<!-- RadioCommunicationsFamily events -->
<field name='radioID' type='Integer' vrml97Hint='eventOut'/>
<!-- SignalPdu fields -->
<field name='antennaLocation' type='Vector3Float' vrml97Hint='eventOut'/>
<field name='antennaPatternLength' type='Integer' vrml97Hint='eventOut'/>
<field name='antennaPatternType' type='Integer' vrml97Hint='eventOut'/>
<field name='cryptoKeyId' type='Integer' vrml97Hint='eventOut'/>
<field name='cryptoSytem' type='Integer' vrml97Hint='eventOut'/>
<field name='frequency' type='Integer' vrml97Hint='eventOut'/>
<field name='inputSource' type='Integer' vrml97Hint='eventOut'/>
<field name='lengthOfModulationParameters' type='Integer' vrml97Hint='eventOut'/>
<field name='modulationTypeDetail' type='Integer' vrml97Hint='eventOut'/>
<field name='modulationTypeMajor' type='Integer' vrml97Hint='eventOut'/>
<field name='modulationTypeSpreadSpectrum' type='Integer' vrml97Hint='eventOut'/>
<field name='modulationTypeSystem' type='Integer' vrml97Hint='eventOut'/>
<field name='power' type='Integer' vrml97Hint='eventOut'/>
<field name='radioEntityTypeCategory' type='Integer' vrml97Hint='eventOut'/>
<field name='radioEntityTypeCountry' type='Integer' vrml97Hint='eventOut'/>
<field name='radioEntityTypeDomain' type='Integer' vrml97Hint='eventOut'/>
<field name='radioEntityTypeKind' type='Integer' vrml97Hint='eventOut'/>
<field name='radioEntityTypeNomenclature' type='Integer' vrml97Hint='eventOut'/>
<field name='radioEntityTypeNomenclatureVersion' type='Integer' vrml97Hint='eventOut'/>
<field name='relativeAntennaLocation' type='Vector3Float' vrml97Hint='eventOut'/>
<field name='transmitFrequencyBandwidth' type='Integer' vrml97Hint='eventOut'/>
<field name='transmitState' type='Integer' vrml97Hint='eventOut'/>
</Script>
<!-- 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). -->
<TimeSensor DEF='TransmitterPduReadIntervalClock' loop='true' pauseTime='0' isPaused='' resumeTime='0' fraction_changed=''/>
<TimeSensor DEF='TransmitterPduWriteIntervalClock' cycleInterval='0' enabled='false' loop='true' pauseTime='0' isPaused='' resumeTime='0' fraction_changed=''/>
<ROUTE fromNode='TransmitterPduReadIntervalClock' fromField='cycleTime' toNode='TransmitterPduScriptNode' toField='update'/>
<ROUTE fromNode='TransmitterPduWriteIntervalClock' fromField='cycleTime' toNode='TransmitterPduScriptNode' toField='update'/>
<!-- These ROUTEs connect the PDU Script node to the geometryChoice=0 text output -->
<ROUTE fromNode='TransmitterPduScriptNode' fromField='active' toNode='TransmitterOutputAssembler1' toField='active'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='timestamp' toNode='TransmitterOutputAssembler1' toField='timestamp'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='rtpHeaderHeard' toNode='TransmitterOutputAssembler1' toField='rtpHeaderHeard'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='radioID' toNode='TransmitterOutputAssembler1' toField='radioID'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='antennaLocation' toNode='TransmitterOutputAssembler1' toField='antennaLocation'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='antennaPatternLength' toNode='TransmitterOutputAssembler1' toField='antennaPatternLength'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='antennaPatternType' toNode='TransmitterOutputAssembler1' toField='antennaPatternType'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='cryptoKeyId' toNode='TransmitterOutputAssembler1' toField='cryptoKeyId'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='cryptoSytem' toNode='TransmitterOutputAssembler1' toField='cryptoSytem'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='frequency' toNode='TransmitterOutputAssembler1' toField='frequency'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='inputSource' toNode='TransmitterOutputAssembler2' toField='inputSource'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='lengthOfModulationParameters' toNode='TransmitterOutputAssembler2' toField='lengthOfModulationParameters'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='modulationTypeDetail' toNode='TransmitterOutputAssembler2' toField='modulationTypeDetail'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='modulationTypeMajor' toNode='TransmitterOutputAssembler2' toField='modulationTypeMajor'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='modulationTypeSpreadSpectrum' toNode='TransmitterOutputAssembler2' toField='modulationTypeSpreadSpectrum'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='modulationTypeSystem' toNode='TransmitterOutputAssembler2' toField='modulationTypeSystem'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='power' toNode='TransmitterOutputAssembler2' toField='power'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='radioEntityTypeCategory' toNode='TransmitterOutputAssembler2' toField='radioEntityTypeCategory'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='radioEntityTypeCountry' toNode='TransmitterOutputAssembler2' toField='radioEntityTypeCountry'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='radioEntityTypeDomain' toNode='TransmitterOutputAssembler2' toField='radioEntityTypeDomain'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='radioEntityTypeKind' toNode='TransmitterOutputAssembler3' toField='radioEntityTypeKind'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='radioEntityTypeNomenclature' toNode='TransmitterOutputAssembler3' toField='radioEntityTypeNomenclature'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='radioEntityTypeNomenclatureVersion' toNode='TransmitterOutputAssembler3' toField='radioEntityTypeNomenclatureVersion'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='relativeAntennaLocation' toNode='TransmitterOutputAssembler3' toField='relativeAntennaLocation'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='transmitFrequencyBandwidth' toNode='TransmitterOutputAssembler3' toField='transmitFrequencyBandwidth'/>
<ROUTE fromNode='TransmitterPduScriptNode' fromField='transmitState' toNode='TransmitterOutputAssembler3' toField='transmitState'/>
<ROUTE fromNode='TransmitterOutputAssembler1' fromField='messageResult' toNode='TransmitterOutput1' toField='string'/>
<ROUTE fromNode='TransmitterOutputAssembler2' fromField='messageResult' toNode='TransmitterOutput2' toField='string'/>
<ROUTE fromNode='TransmitterOutputAssembler3' fromField='messageResult' toNode='TransmitterOutput3' toField='string'/>
<!-- ROUTEs for further geometry representations go here -->
</ProtoDeclare>
<!-- ============================================================ -->
<!-- Default content -->
<Group>
<Transform translation='-15 15 0'>
<ProtoInstance name='ReceiverPdu' containerField='children'/>
</Transform>
<Transform translation='-15 -15 0'>
<ReceiverPdu nodeTypeHint='Switch' networkMode='networkReader' isNetworkReader='' writeInterval='0' isStandAlone='' containerField='children' readInterval='1' rtpHeaderExpected='false' isNetworkWriter='' isActive=''/>
</Transform>
<Transform translation='0 15 0'>
<ProtoInstance name='SignalPdu' containerField='children'/>
</Transform>
<Transform translation='0 -15 0'>
<SignalPdu networkMode='networkReader' isNetworkReader='' writeInterval='0' isStandAlone='' containerField='children' readInterval='1' rtpHeaderExpected='false' isNetworkWriter='' isActive=''/>
</Transform>
<Transform translation='15 15 0'>
<ProtoInstance name='TransmitterPdu' containerField='children'/>
</Transform>
<Transform translation='15 -15 0'>
<TransmitterPdu writeInterval='0' readInterval='1' isActive='' networkMode='networkReader' isNetworkWriter='' isStandAlone='' isNetworkReader='' containerField='children' rtpHeaderExpected='false'/>
</Transform>
</Group>
</Scene>
</X3D>
<!--

Index for ProtoDeclares: ReceiverPdu, SignalPdu, TransmitterPdu. Index for DEFs: FONT1, FONT2, FONT3, ReceiverOutput1, ReceiverOutputAssembler1, ReceiverPduGeometrySwitch, ReceiverPduReadIntervalClock, ReceiverPduScriptNode, ReceiverPduWriteIntervalClock, SignalOutput1, SignalOutput2, SignalOutputAssembler1, SignalOutputAssembler2, SignalPduGeometrySwitch, SignalPduReadIntervalClock, SignalPduScriptNode, SignalPduWriteIntervalClock, TransmitterOutput1, TransmitterOutput2, TransmitterOutput3, TransmitterOutputAssembler1, TransmitterOutputAssembler2, TransmitterOutputAssembler3, TransmitterPduGeometrySwitch, TransmitterPduReadIntervalClock, TransmitterPduScriptNode, TransmitterPduWriteIntervalClock, YellowAppearance2, YellowAppearance3.

-->
<!-- Tag color codes: <Node DEF='NodeName' attribute='value'/> < Prototype name='ProtoName'/> < field name='fieldName'/> </Prototype > -->