<?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 ProtoDeclaresReceiverPdu, SignalPdu, TransmitterPdu. Index for DEFsFONT1, 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 ProtoDeclaresReceiverPdu, SignalPdu, TransmitterPdu. Index for DEFsFONT1, 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 > -->