<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"   "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D version='3.1profile='Immersivexmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation=' http://www.web3d.org/specifications/x3d-3.1.xsd '>
<head>
<component name='DISlevel='1'/>
<meta name='titlecontent='RadioCommunicationsPrototypes.x3d'/>
<meta name='authorscontent='Don Brutzman and Dave Laflam'/>
<meta name='createdcontent='7 December 2000'/>
<meta name='modifiedcontent='4 July 2004'/>
<meta name='warningcontent='under development. Need to fix url values in X3dToVrml97.xslt translation signatures, and check Savage CommunicationsAndSensors DIS examples.'/>
<meta name='descriptioncontent='Prototype definitions for ReceiverPdu SignalPdu and TransmitterPdu, all of which share share RadioCommunicationsPduScriptNode class'/>
<meta name='identifiercontent=' http://web.nps.navy.mil/~brutzman/vrtp/mil/navy/nps/dis/RadioCommunicationsPrototypes.x3d '/>
<meta name='identifiercontent=' http://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/RadioCommunicationsPrototypes.x3d '/>
<meta name='generatorcontent='X3D-Edit, http://www.web3d.org/x3d/content/README.X3D-Edit.html'/>
<meta name='licensecontent='../../license.html'/>
</head>
<!--

Index for ProtoDeclares: ReceiverPdu, SignalPdu, TransmitterPdu
Index for DEF nodes: 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'>
<ProtoInterface>
<field name='whichGeometrytype='SFInt32value='0accessType='inputOutput'
 appinfo='set whichGeometry to -1 for no geometry, 0 for text trace, 1 for default geometry'/>
<field name='bboxCentertype='SFVec3fvalue='0 0 0accessType='initializeOnly'
 appinfo='Bounding box center: position offset from origin of local coordinate system.'/>
<field name='bboxSizetype='SFVec3fvalue='-1 -1 -1accessType='initializeOnly'
 appinfo='Bounding box size: automatically calculated, can be specified as an optimization or constraint.'/>
<!-- Initialization fields -->
<field name='readIntervaltype='SFTimevalue='0.1accessType='initializeOnly'/>
<field name='writeIntervaltype='SFTimevalue='1.0accessType='initializeOnly'/>
<field name='siteIDtype='SFInt32value='14accessType='initializeOnly'/>
<field name='applicationIDtype='SFInt32value='17accessType='initializeOnly'/>
<field name='entityIDtype='SFInt32value='9accessType='initializeOnly'/>
<field name='addresstype='SFStringvalue='224.2.181.145accessType='initializeOnly'/>
<field name='porttype='SFInt32value='62040accessType='initializeOnly'/>
<field name='multicastRelayHosttype='SFStringvalue='devo.cs.nps.navy.milaccessType='initializeOnly'/>
<field name='multicastRelayPorttype='SFInt32value='8010accessType='initializeOnly'/>
<field name='networkModetype='SFStringvalue='standAloneaccessType='inputOutput'
 appinfo='networkMode:&#10;standAlone (ignore network but still respond to local events)&#10;networkReader (listen to network as ghost entity)&#10;networkWriter (output to network as master entity at writeInterval)'/>
<field name='isStandAlonetype='SFBoolaccessType='outputOnly'
 appinfo='Whether networkMode standAlone (ignore network but still respond to local events) is true/false'/>
<field name='isMastertype='SFBoolaccessType='outputOnly'
 appinfo='Whether networkMode 'networkWriter' (output to network as master entity at writeInterval) is true/false'/>
<field name='isRemotetype='SFBoolaccessType='outputOnly'
 appinfo='Whether networkMode 'networkReader' (listen to network as ghost entity) is true/false'/>
<field name='rtpHeaderExpectedtype='SFBoolvalue='falseaccessType='initializeOnly'/>
<field name='isRtpHeaderHeardtype='SFBoolaccessType='outputOnly'
 appinfo='whether RTP header was found prepended to DIS packet'/>
<field name='tracetype='SFBoolvalue='falseaccessType='initializeOnly'/>
<!-- Generic events -->
<field name='activetype='SFBoolaccessType='outputOnly'/>
<field name='timestamptype='SFTimeaccessType='outputOnly'/>
<!-- RadioCommunicationsFamily events -->
<field name='radioIDtype='SFInt32accessType='outputOnly'/>
<!-- ReceiverPdu fields -->
<field name='receivedPowertype='SFFloataccessType='outputOnly'/>
<field name='receiverStatetype='SFInt32accessType='outputOnly'/>
<field name='transmitterSiteIDtype='SFInt32accessType='outputOnly'/>
<field name='transmitterApplicationIDtype='SFInt32accessType='outputOnly'/>
<field name='transmitterEntityIDtype='SFInt32accessType='outputOnly'/>
<field name='transmitterRadioIDtype='SFInt32accessType='outputOnly'/>
</ProtoInterface>
<ProtoBody>
<!-- First node inside a PrototypeDeclaration is the node type of the ProtoInstance -->
<Switch DEF='ReceiverPduGeometrySwitchwhichChoice='-1'>
<IS>
<connect nodeField='whichChoiceprotoField='whichGeometry'/>
</IS>
<!-- whichChoice -1 is no rendering, choice 0 is text trace, choice 1 is default geometry -->
<Group>
<Viewpoint description='Receiver Pdu Observerposition='0 0 15'/>
<Group>
<Transform translation='0 6 0'>
<Shape>
<Text string='"Open Java Console to see PDU trace messages" "Netscape..Communicator..Tools..Java Console"solid='truetextBounds='lineBounds=''>
<FontStyle DEF='FONT1justify='"MIDDLE" "BEGIN"size='0.5'/>
</Text>
<Appearance>
<Material diffuseColor='0 0.4 0.8'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 4.75 0'>
<Shape>
<Text string='Receiver PDU valuessolid='truetextBounds='lineBounds=''>
<FontStyle USE='FONT1'/>
</Text>
<Appearance>
<Material diffuseColor='0 0.8 0.4'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 4 0'>
<Shape>
<!-- ReceiverOutput1 ROUTE:  [from ReceiverOutputAssembler1.messageResult to string ] -->
<Text DEF='ReceiverOutput1string='Receiver output uninitializedsolid='truetextBounds='lineBounds=''>
<FontStyle USE='FONT1'/>
</Text>
<Appearance>
<Material diffuseColor='0.8 0.8 0'/>
</Appearance>
</Shape>
</Transform>
</Group>
<!-- ReceiverOutputAssembler1 ROUTEs:  [from ReceiverPduScriptNode.active to active ] [from ReceiverPduScriptNode.timestamp to timestamp ] [from ReceiverPduScriptNode.isRtpHeaderHeard to isRtpHeaderHeard ] [from ReceiverPduScriptNode.radioID to radioID ] [from ReceiverPduScriptNode.receivedPower to receivedPower ] [from ReceiverPduScriptNode.receiverState to receiverState ] [from ReceiverPduScriptNode.transmitterSiteID to transmitterSiteID ] [from ReceiverPduScriptNode.transmitterApplicationID to transmitterApplicationID ] [from ReceiverPduScriptNode.transmitterEntityID to transmitterEntityID ] [from ReceiverPduScriptNode.transmitterRadioID to transmitterRadioID ] [from messageResult to ReceiverOutput1.string ] -->
<Script DEF='ReceiverOutputAssembler1'>
<!-- surprising limit on MFString: 10 strings -->
<field name='messageResulttype='MFStringaccessType='outputOnly'/>
<field name='activetype='SFBoolaccessType='inputOnly'/>
<field name='timestamptype='SFTimeaccessType='inputOnly'/>
<field name='isRtpHeaderHeardtype='SFBoolaccessType='inputOnly'/>
<field name='radioIDtype='SFInt32accessType='inputOnly'/>
<field name='receivedPowertype='SFFloataccessType='inputOnly'/>
<field name='receiverStatetype='SFInt32accessType='inputOnly'/>
<field name='transmitterSiteIDtype='SFInt32accessType='inputOnly'/>
<field name='transmitterApplicationIDtype='SFInt32accessType='inputOnly'/>
<field name='transmitterEntityIDtype='SFInt32accessType='inputOnly'/>
<field name='transmitterRadioIDtype='SFInt32accessType='inputOnly'/>
<![CDATA[
ecmascript:

function initialize ()
{
	value='awaiting PDU';
	messageResult  [0] = 'active=' + value;
	messageResult  [1] = 'timestamp=' + value;
	messageResult  [2] = 'isRtpHeaderHeard=' + value;
	messageResult  [3] = 'radioID=' + value;
	messageResult  [4] = 'receivedPower=' + value;
	messageResult  [5] = 'receiverState=' + value;
	messageResult  [6] = 'transmitterSiteID=' + value;
	messageResult  [7] = 'transmitterApplicationID=' + value;
	messageResult  [8] = 'transmitterEntityID=' + value;
	messageResult  [9] = 'transmitterRadioID=' + value;
}
function active 			(value, ts) { messageResult [0] = 'active=' + value; }
function timestamp			(value, ts) { messageResult [1] = 'timestamp=' + value; }
function isRtpHeaderHeard		(value, ts) { messageResult [2] = 'isRtpHeaderHeard=' + value; }
function radioID			(value, ts) { messageResult [3] = 'radioID=' + value; }
function receivedPower			(value, ts) { messageResult [4] = 'receiverPower=' + value; }
function receiverState			(value, ts) { messageResult [5] = 'receiverState=' + value; }
function transmitterSiteID		(value, ts) { messageResult [6] = 'transmitterSiteID=' + value; }
function transmitterApplicationID	(value, ts) { messageResult [7] = 'transmitterApplicationID=' + value; }
function transmitterEntityID		(value, ts) { messageResult [8] = 'transmitterEntityID=' + value; }
function transmitterRadioID 		(value, ts) { messageResult [9] = 'transmitterRadioID=' + value; }
          
]]>
</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 -->
<!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) -->
<!-- ReceiverPduScriptNode ROUTEs:  [from ReceiverPduReadIntervalClock.cycleTime to update ] [from ReceiverPduWriteIntervalClock.cycleTime to update ] [from active to ReceiverOutputAssembler1.active ] [from timestamp to ReceiverOutputAssembler1.timestamp ] [from isRtpHeaderHeard to ReceiverOutputAssembler1.isRtpHeaderHeard ] [from radioID to ReceiverOutputAssembler1.radioID ] [from receivedPower to ReceiverOutputAssembler1.receivedPower ] [from receiverState to ReceiverOutputAssembler1.receiverState ] [from transmitterSiteID to ReceiverOutputAssembler1.transmitterSiteID ] [from transmitterApplicationID to ReceiverOutputAssembler1.transmitterApplicationID ] [from transmitterEntityID to ReceiverOutputAssembler1.transmitterEntityID ] [from transmitterRadioID to ReceiverOutputAssembler1.transmitterRadioID ] -->
<Script DEF='ReceiverPduScriptNodemustEvaluate='true'
  url=' "RadioCommunicationsPduScriptNode.class" "http://web.nps.navy.mil/~brutzman/vrtp/mil/navy/nps/dis/RadioCommunicationsPduScriptNode.class" '>
<!-- Valid values for radioPduType are ReceiverPdu, SignalPdu and TransmitterPdu -->
<field name='radioPduTypetype='SFStringvalue='ReceiverPduaccessType='initializeOnly'/>
<!-- Initialization fields -->
<field name='readIntervaltype='SFTimeaccessType='initializeOnly'/>
<field name='writeIntervaltype='SFTimeaccessType='initializeOnly'/>
<field name='siteIDtype='SFInt32accessType='initializeOnly'/>
<field name='applicationIDtype='SFInt32accessType='initializeOnly'/>
<field name='entityIDtype='SFInt32accessType='initializeOnly'/>
<field name='addresstype='SFStringaccessType='initializeOnly'/>
<field name='porttype='SFInt32accessType='initializeOnly'/>
<field name='multicastRelayHosttype='SFStringaccessType='initializeOnly'/>
<field name='multicastRelayPorttype='SFInt32accessType='initializeOnly'/>
<field name='rtpHeaderExpectedtype='SFBoolaccessType='initializeOnly'/>
<field name='tracetype='SFBoolaccessType='initializeOnly'/>
<!-- Generic events -->
<field name='updatetype='SFTimeaccessType='inputOnly'
 appinfo='update is triggered by local TimeSensor clocks to allow regular read/write'/>
<field name='activetype='SFBoolaccessType='outputOnly'/>
<field name='timestamptype='SFTimeaccessType='outputOnly'/>
<field name='isRtpHeaderHeardtype='SFBoolaccessType='outputOnly'/>
<!-- RadioCommunicationsFamily events -->
<field name='radioIDtype='SFInt32accessType='outputOnly'/>
<!-- SignalPdu fields -->
<field name='receivedPowertype='SFFloataccessType='outputOnly'/>
<field name='receiverStatetype='SFInt32accessType='outputOnly'/>
<field name='transmitterSiteIDtype='SFInt32accessType='outputOnly'/>
<field name='transmitterApplicationIDtype='SFInt32accessType='outputOnly'/>
<field name='transmitterEntityIDtype='SFInt32accessType='outputOnly'/>
<field name='transmitterRadioIDtype='SFInt32accessType='outputOnly'/>
<IS>
<connect nodeField='readIntervalprotoField='readInterval'/>
<connect nodeField='writeIntervalprotoField='writeInterval'/>
<connect nodeField='siteIDprotoField='siteID'/>
<connect nodeField='applicationIDprotoField='applicationID'/>
<connect nodeField='entityIDprotoField='entityID'/>
<connect nodeField='addressprotoField='address'/>
<connect nodeField='portprotoField='port'/>
<connect nodeField='multicastRelayHostprotoField='multicastRelayHost'/>
<connect nodeField='multicastRelayPortprotoField='multicastRelayPort'/>
<connect nodeField='rtpHeaderExpectedprotoField='rtpHeaderExpected'/>
<connect nodeField='traceprotoField='trace'/>
<connect nodeField='activeprotoField='active'/>
<connect nodeField='timestampprotoField='timestamp'/>
<connect nodeField='isRtpHeaderHeardprotoField='isRtpHeaderHeard'/>
<connect nodeField='radioIDprotoField='radioID'/>
<connect nodeField='receivedPowerprotoField='receivedPower'/>
<connect nodeField='receiverStateprotoField='receiverState'/>
<connect nodeField='transmitterSiteIDprotoField='transmitterSiteID'/>
<connect nodeField='transmitterApplicationIDprotoField='transmitterApplicationID'/>
<connect nodeField='transmitterEntityIDprotoField='transmitterEntityID'/>
<connect nodeField='transmitterRadioIDprotoField='transmitterRadioID'/>
</IS>
</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). -->
<!-- ReceiverPduReadIntervalClock ROUTE:  [from cycleTime to ReceiverPduScriptNode.update ] -->
<TimeSensor DEF='ReceiverPduReadIntervalClockloop='true'/>
<!-- ReceiverPduWriteIntervalClock ROUTE:  [from cycleTime to ReceiverPduScriptNode.update ] -->
<TimeSensor DEF='ReceiverPduWriteIntervalClockcycleInterval='0enabled='falseloop='true'/>
<ROUTE fromNode='ReceiverPduReadIntervalClockfromField='cycleTimetoNode='ReceiverPduScriptNodetoField='update'/>
<ROUTE fromNode='ReceiverPduWriteIntervalClockfromField='cycleTimetoNode='ReceiverPduScriptNodetoField='update'/>
<!-- These ROUTEs connect the PDU Script node to the geometryChoice=0 text output -->
<ROUTE fromNode='ReceiverPduScriptNodefromField='activetoNode='ReceiverOutputAssembler1toField='active'/>
<ROUTE fromNode='ReceiverPduScriptNodefromField='timestamptoNode='ReceiverOutputAssembler1toField='timestamp'/>
<ROUTE fromNode='ReceiverPduScriptNodefromField='isRtpHeaderHeardtoNode='ReceiverOutputAssembler1toField='isRtpHeaderHeard'/>
<ROUTE fromNode='ReceiverPduScriptNodefromField='radioIDtoNode='ReceiverOutputAssembler1toField='radioID'/>
<ROUTE fromNode='ReceiverPduScriptNodefromField='receivedPowertoNode='ReceiverOutputAssembler1toField='receivedPower'/>
<ROUTE fromNode='ReceiverPduScriptNodefromField='receiverStatetoNode='ReceiverOutputAssembler1toField='receiverState'/>
<ROUTE fromNode='ReceiverPduScriptNodefromField='transmitterSiteIDtoNode='ReceiverOutputAssembler1toField='transmitterSiteID'/>
<ROUTE fromNode='ReceiverPduScriptNodefromField='transmitterApplicationIDtoNode='ReceiverOutputAssembler1toField='transmitterApplicationID'/>
<ROUTE fromNode='ReceiverPduScriptNodefromField='transmitterEntityIDtoNode='ReceiverOutputAssembler1toField='transmitterEntityID'/>
<ROUTE fromNode='ReceiverPduScriptNodefromField='transmitterRadioIDtoNode='ReceiverOutputAssembler1toField='transmitterRadioID'/>
<ROUTE fromNode='ReceiverOutputAssembler1fromField='messageResulttoNode='ReceiverOutput1toField='string'/>
<!-- ROUTEs for further geometry representations go here -->
</ProtoBody>
</ProtoDeclare>
<!-- ============================================================ -->
<ProtoDeclare name='SignalPdu'>
<ProtoInterface>
<!-- set whichGeometry to -1 for no geometry, 0 for text trace, 1 for default geometry -->
<field name='whichGeometrytype='SFInt32value='0accessType='inputOutput'/>
<field name='bboxCentertype='SFVec3fvalue='0 0 0accessType='initializeOnly'
 appinfo='Bounding box center: position offset from origin of local coordinate system.'/>
<field name='bboxSizetype='SFVec3fvalue='-1 -1 -1accessType='initializeOnly'
 appinfo='Bounding box size: automatically calculated, can be specified as an optimization or constraint.'/>
<!-- Initialization fields -->
<field name='readIntervaltype='SFTimevalue='0.1accessType='initializeOnly'/>
<field name='writeIntervaltype='SFTimevalue='1.0accessType='initializeOnly'/>
<field name='siteIDtype='SFInt32value='14accessType='initializeOnly'/>
<field name='applicationIDtype='SFInt32value='17accessType='initializeOnly'/>
<field name='entityIDtype='SFInt32value='9accessType='initializeOnly'/>
<field name='addresstype='SFStringvalue='224.2.181.145accessType='initializeOnly'/>
<field name='porttype='SFInt32value='62040accessType='initializeOnly'/>
<field name='multicastRelayHosttype='SFStringvalue='devo.cs.nps.navy.milaccessType='initializeOnly'/>
<field name='multicastRelayPorttype='SFInt32value='8010accessType='initializeOnly'/>
<field name='networkModetype='SFStringvalue='standAloneaccessType='inputOutput'
 appinfo='networkMode:&#10;standAlone (ignore network but still respond to local events)&#10;networkReader (listen to network as ghost entity)&#10;networkWriter (output to network as master entity at writeInterval)'/>
<field name='isStandAlonetype='SFBoolaccessType='outputOnly'
 appinfo='Whether networkMode standAlone (ignore network but still respond to local events) is true/false'/>
<field name='isMastertype='SFBoolaccessType='outputOnly'
 appinfo='Whether networkMode 'networkWriter' (output to network as master entity at writeInterval) is true/false'/>
<field name='isRemotetype='SFBoolaccessType='outputOnly'
 appinfo='Whether networkMode 'networkReader' (listen to network as ghost entity) is true/false'/>
<field name='rtpHeaderExpectedtype='SFBoolvalue='falseaccessType='initializeOnly'/>
<field name='isRtpHeaderHeardtype='SFBoolaccessType='outputOnly'
 appinfo='whether RTP header was found prepended to DIS packet'/>
<field name='tracetype='SFBoolvalue='falseaccessType='initializeOnly'/>
<!-- Generic events -->
<field name='activetype='SFBoolaccessType='outputOnly'/>
<field name='timestamptype='SFTimeaccessType='outputOnly'/>
<!-- RadioCommunicationsFamily events -->
<field name='radioIDtype='SFInt32accessType='outputOnly'/>
<!-- SignalPdu fields -->
<field name='encodingSchemetype='SFInt32accessType='outputOnly'/>
<field name='tdlTypetype='SFInt32accessType='outputOnly'/>
<field name='sampleRatetype='SFInt32accessType='outputOnly'/>
<field name='samplestype='SFInt32accessType='outputOnly'/>
<field name='dataLengthtype='SFInt32accessType='outputOnly'/>
<field name='data00type='SFInt32accessType='outputOnly'/>
<field name='data01type='SFInt32accessType='outputOnly'/>
<field name='data02type='SFInt32accessType='outputOnly'/>
<field name='data03type='SFInt32accessType='outputOnly'/>
<field name='data04type='SFInt32accessType='outputOnly'/>
<field name='data05type='SFInt32accessType='outputOnly'/>
<field name='data06type='SFInt32accessType='outputOnly'/>
<field name='data07type='SFInt32accessType='outputOnly'/>
<field name='data08type='SFInt32accessType='outputOnly'/>
<field name='data09type='SFInt32accessType='outputOnly'/>
<field name='data10type='SFInt32accessType='outputOnly'/>
</ProtoInterface>
<ProtoBody>
<!-- First node inside a PrototypeDeclaration is the node type of the ProtoInstance -->
<Switch DEF='SignalPduGeometrySwitchwhichChoice='-1'>
<IS>
<connect nodeField='whichChoiceprotoField='whichGeometry'/>
</IS>
<!-- whichChoice -1 is no rendering, choice 0 is text trace, choice 1 is default geometry -->
<Group>
<Viewpoint description='Signal Pdu Observerposition='0 0 15'/>
<Group>
<Transform translation='0 6 0'>
<Shape>
<Text string='"Open Java Console to see PDU trace messages" "Netscape..Communicator..Tools..Java Console"solid='truetextBounds='lineBounds=''>
<FontStyle DEF='FONT2justify='"MIDDLE" "BEGIN"size='0.5'/>
</Text>
<Appearance>
<Material diffuseColor='0 0.4 0.8'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 4.75 0'>
<Shape>
<Text string='Signal PDU valuessolid='truetextBounds='lineBounds=''>
<FontStyle USE='FONT2'/>
</Text>
<Appearance>
<Material diffuseColor='0 0.8 0.4'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 4 0'>
<Shape>
<!-- SignalOutput1 ROUTE:  [from SignalOutputAssembler1.messageResult to string ] -->
<Text DEF='SignalOutput1string='Signal Output1 unsetsolid='truetextBounds='lineBounds=''>
<FontStyle USE='FONT2'/>
</Text>
<Appearance DEF='YellowAppearance2'>
<Material diffuseColor='0.8 0.8 0'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 -1 0'>
<Shape>
<!-- SignalOutput2 ROUTE:  [from SignalOutputAssembler2.messageResult to string ] -->
<Text DEF='SignalOutput2string='Signal Output2 unsetsolid='truetextBounds='lineBounds=''>
<FontStyle USE='FONT2'/>
</Text>
<Appearance USE='YellowAppearance2'/>
</Shape>
</Transform>
</Group>
<!-- SignalOutputAssembler1 ROUTEs:  [from SignalPduScriptNode.active to active ] [from SignalPduScriptNode.timestamp to timestamp ] [from SignalPduScriptNode.isRtpHeaderHeard to isRtpHeaderHeard ] [from SignalPduScriptNode.radioID to radioID ] [from SignalPduScriptNode.encodingScheme to encodingScheme ] [from SignalPduScriptNode.tdlType to tdlType ] [from SignalPduScriptNode.sampleRate to sampleRate ] [from SignalPduScriptNode.samples to samples ] [from SignalPduScriptNode.dataLength to dataLength ] [from SignalPduScriptNode.data00 to data00 ] [from messageResult to SignalOutput1.string ] -->
<Script DEF='SignalOutputAssembler1'>
<!-- surprising limit on MFString: 10 strings -->
<field name='messageResulttype='MFStringaccessType='outputOnly'/>
<field name='activetype='SFBoolaccessType='inputOnly'/>
<field name='timestamptype='SFTimeaccessType='inputOnly'/>
<field name='isRtpHeaderHeardtype='SFBoolaccessType='inputOnly'/>
<field name='radioIDtype='SFInt32accessType='inputOnly'/>
<field name='encodingSchemetype='SFInt32accessType='inputOnly'/>
<field name='tdlTypetype='SFInt32accessType='inputOnly'/>
<field name='sampleRatetype='SFInt32accessType='inputOnly'/>
<field name='samplestype='SFInt32accessType='inputOnly'/>
<field name='dataLengthtype='SFInt32accessType='inputOnly'/>
<field name='data00type='SFInt32accessType='inputOnly'/>
<![CDATA[
ecmascript:

function initialize ()
{
	value='awaiting PDU';
	messageResult  [0] = 'active=' + value;
	messageResult  [1] = 'timestamp=' + value;
	messageResult  [2] = 'isRtpHeaderHeard=' + value;
	messageResult  [3] = 'radioID=' + value;
	messageResult  [4] = 'encodingScheme=' + value;
	messageResult  [5] = 'tdlType=' + value;
	messageResult  [6] = 'sampleRate=' + value;
	messageResult  [7] = 'samples=' + value;
	messageResult  [8] = 'dataLength=' + value;
	messageResult  [9] = 'data00=' + value;
}
function active 	(value, ts) { messageResult [0] = 'active=' + value; }
function timestamp	(value, ts) { messageResult [1] = 'timestamp=' + value; }
function isRtpHeaderHeard	(value, ts) { messageResult [2] = 'isRtpHeaderHeard=' + value; }
function radioID	(value, ts) { messageResult [3] = 'radioID=' + value; }
function encodingScheme	(value, ts) { messageResult [4] = 'encodingScheme=' + value; }
function tdlType	(value, ts) { messageResult [5] = 'tdlType=' + value; }
function sampleRate	(value, ts) { messageResult [6] = 'sampleRate=' + value; }
function samples	(value, ts) { messageResult [7] = 'samples=' + value; }
function dataLength	(value, ts) { messageResult [8] = 'dataLength=' + value; }
function data00  	(value, ts) { messageResult [9] = 'data00=' + value; }
          
]]>
</Script>
<!-- SignalOutputAssembler2 ROUTEs:  [from SignalPduScriptNode.data01 to data01 ] [from SignalPduScriptNode.data02 to data02 ] [from SignalPduScriptNode.data03 to data03 ] [from SignalPduScriptNode.data04 to data04 ] [from SignalPduScriptNode.data05 to data05 ] [from SignalPduScriptNode.data06 to data06 ] [from SignalPduScriptNode.data07 to data07 ] [from SignalPduScriptNode.data08 to data08 ] [from SignalPduScriptNode.data09 to data09 ] [from SignalPduScriptNode.data10 to data10 ] [from messageResult to SignalOutput2.string ] -->
<Script DEF='SignalOutputAssembler2'>
<field name='messageResulttype='MFStringaccessType='outputOnly'/>
<field name='data01type='SFInt32accessType='inputOnly'/>
<field name='data02type='SFInt32accessType='inputOnly'/>
<field name='data03type='SFInt32accessType='inputOnly'/>
<field name='data04type='SFInt32accessType='inputOnly'/>
<field name='data05type='SFInt32accessType='inputOnly'/>
<field name='data06type='SFInt32accessType='inputOnly'/>
<field name='data07type='SFInt32accessType='inputOnly'/>
<field name='data08type='SFInt32accessType='inputOnly'/>
<field name='data09type='SFInt32accessType='inputOnly'/>
<field name='data10type='SFInt32accessType='inputOnly'/>
<![CDATA[
ecmascript:

function initialize ()
{
	messageResult [0] = 'data01=' + value;
	messageResult [1] = 'data02=' + value;
	messageResult [2] = 'data03=' + value;
	messageResult [3] = 'data04=' + value;
	messageResult [4] = 'data05=' + value;
	messageResult [5] = 'data06=' + value;
	messageResult [6] = 'data07=' + value;
	messageResult [7] = 'data08=' + value;
	messageResult [8] = 'data09=' + value;
	messageResult [9] = 'data10=' + value;
}
function data01 	(value, ts) { messageResult [0] = 'data01=' + value; }
function data02 	(value, ts) { messageResult [1] = 'data02=' + value; }
function data03 	(value, ts) { messageResult [2] = 'data03=' + value; }
function data04 	(value, ts) { messageResult [3] = 'data04=' + value; }
function data05 	(value, ts) { messageResult [4] = 'data05=' + value; }
function data06 	(value, ts) { messageResult [5] = 'data06=' + value; }
function data07 	(value, ts) { messageResult [6] = 'data07=' + value; }
function data08 	(value, ts) { messageResult [7] = 'data08=' + value; }
function data09 	(value, ts) { messageResult [8] = 'data09=' + value; }
function data10 	(value, ts) { messageResult [9] = 'data10=' + value; }

          
]]>
</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 -->
<!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) -->
<!-- SignalPduScriptNode ROUTEs:  [from SignalPduReadIntervalClock.cycleTime to update ] [from SignalPduWriteIntervalClock.cycleTime to update ] [from active to SignalOutputAssembler1.active ] [from timestamp to SignalOutputAssembler1.timestamp ] [from isRtpHeaderHeard to SignalOutputAssembler1.isRtpHeaderHeard ] [from radioID to SignalOutputAssembler1.radioID ] [from encodingScheme to SignalOutputAssembler1.encodingScheme ] [from tdlType to SignalOutputAssembler1.tdlType ] [from sampleRate to SignalOutputAssembler1.sampleRate ] [from samples to SignalOutputAssembler1.samples ] [from dataLength to SignalOutputAssembler1.dataLength ] [from data00 to SignalOutputAssembler1.data00 ] [from data01 to SignalOutputAssembler2.data01 ] [from data02 to SignalOutputAssembler2.data02 ] [from data03 to SignalOutputAssembler2.data03 ] [from data04 to SignalOutputAssembler2.data04 ] [from data05 to SignalOutputAssembler2.data05 ] [from data06 to SignalOutputAssembler2.data06 ] [from data07 to SignalOutputAssembler2.data07 ] [from data08 to SignalOutputAssembler2.data08 ] [from data09 to SignalOutputAssembler2.data09 ] [from data10 to SignalOutputAssembler2.data10 ] -->
<Script DEF='SignalPduScriptNodemustEvaluate='true'
  url=' "RadioCommunicationsPduScriptNode.class" "http://web.nps.navy.mil/~brutzman/vrtp/mil/navy/nps/dis/RadioCommunicationsPduScriptNode.class" '>
<!-- Valid values for radioPduType are ReceiverPdu, SignalPdu and TransmitterPdu -->
<field name='radioPduTypetype='SFStringvalue='SignalPduaccessType='initializeOnly'/>
<!-- Initialization fields -->
<field name='readIntervaltype='SFTimeaccessType='initializeOnly'/>
<field name='writeIntervaltype='SFTimeaccessType='initializeOnly'/>
<field name='siteIDtype='SFInt32accessType='initializeOnly'/>
<field name='applicationIDtype='SFInt32accessType='initializeOnly'/>
<field name='entityIDtype='SFInt32accessType='initializeOnly'/>
<field name='addresstype='SFStringaccessType='initializeOnly'/>
<field name='porttype='SFInt32accessType='initializeOnly'/>
<field name='multicastRelayHosttype='SFStringaccessType='initializeOnly'/>
<field name='multicastRelayPorttype='SFInt32accessType='initializeOnly'/>
<field name='rtpHeaderExpectedtype='SFBoolaccessType='initializeOnly'/>
<field name='tracetype='SFBoolaccessType='initializeOnly'/>
<!-- Generic events -->
<field name='updatetype='SFTimeaccessType='inputOnly'
 appinfo='update is triggered by local TimeSensor clocks to allow regular read/write'/>
<field name='activetype='SFBoolaccessType='outputOnly'/>
<field name='timestamptype='SFTimeaccessType='outputOnly'/>
<field name='isRtpHeaderHeardtype='SFBoolaccessType='outputOnly'/>
<!-- RadioCommunicationsFamily events -->
<field name='radioIDtype='SFInt32accessType='outputOnly'/>
<!-- SignalPdu fields -->
<field name='encodingSchemetype='SFInt32accessType='outputOnly'/>
<field name='tdlTypetype='SFInt32accessType='outputOnly'/>
<field name='sampleRatetype='SFInt32accessType='outputOnly'/>
<field name='samplestype='SFInt32accessType='outputOnly'/>
<field name='dataLengthtype='SFInt32accessType='outputOnly'/>
<field name='data00type='SFInt32accessType='outputOnly'/>
<field name='data01type='SFInt32accessType='outputOnly'/>
<field name='data02type='SFInt32accessType='outputOnly'/>
<field name='data03type='SFInt32accessType='outputOnly'/>
<field name='data04type='SFInt32accessType='outputOnly'/>
<field name='data05type='SFInt32accessType='outputOnly'/>
<field name='data06type='SFInt32accessType='outputOnly'/>
<field name='data07type='SFInt32accessType='outputOnly'/>
<field name='data08type='SFInt32accessType='outputOnly'/>
<field name='data09type='SFInt32accessType='outputOnly'/>
<field name='data10type='SFInt32accessType='outputOnly'/>
<IS>
<connect nodeField='readIntervalprotoField='readInterval'/>
<connect nodeField='writeIntervalprotoField='writeInterval'/>
<connect nodeField='siteIDprotoField='siteID'/>
<connect nodeField='applicationIDprotoField='applicationID'/>
<connect nodeField='entityIDprotoField='entityID'/>
<connect nodeField='addressprotoField='address'/>
<connect nodeField='portprotoField='port'/>
<connect nodeField='multicastRelayHostprotoField='multicastRelayHost'/>
<connect nodeField='multicastRelayPortprotoField='multicastRelayPort'/>
<connect nodeField='rtpHeaderExpectedprotoField='rtpHeaderExpected'/>
<connect nodeField='traceprotoField='trace'/>
<connect nodeField='activeprotoField='active'/>
<connect nodeField='timestampprotoField='timestamp'/>
<connect nodeField='isRtpHeaderHeardprotoField='isRtpHeaderHeard'/>
<connect nodeField='radioIDprotoField='radioID'/>
<connect nodeField='encodingSchemeprotoField='encodingScheme'/>
<connect nodeField='tdlTypeprotoField='tdlType'/>
<connect nodeField='sampleRateprotoField='sampleRate'/>
<connect nodeField='samplesprotoField='samples'/>
<connect nodeField='dataLengthprotoField='dataLength'/>
<connect nodeField='data00protoField='data00'/>
<connect nodeField='data01protoField='data01'/>
<connect nodeField='data02protoField='data02'/>
<connect nodeField='data03protoField='data03'/>
<connect nodeField='data04protoField='data04'/>
<connect nodeField='data05protoField='data05'/>
<connect nodeField='data06protoField='data06'/>
<connect nodeField='data07protoField='data07'/>
<connect nodeField='data08protoField='data08'/>
<connect nodeField='data09protoField='data09'/>
<connect nodeField='data10protoField='data10'/>
</IS>
</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). -->
<!-- SignalPduReadIntervalClock ROUTE:  [from cycleTime to SignalPduScriptNode.update ] -->
<TimeSensor DEF='SignalPduReadIntervalClockloop='true'/>
<!-- SignalPduWriteIntervalClock ROUTE:  [from cycleTime to SignalPduScriptNode.update ] -->
<TimeSensor DEF='SignalPduWriteIntervalClockcycleInterval='0enabled='falseloop='true'/>
<ROUTE fromNode='SignalPduReadIntervalClockfromField='cycleTimetoNode='SignalPduScriptNodetoField='update'/>
<ROUTE fromNode='SignalPduWriteIntervalClockfromField='cycleTimetoNode='SignalPduScriptNodetoField='update'/>
<!-- These ROUTEs connect the PDU Script node to the geometryChoice=0 text output -->
<ROUTE fromNode='SignalPduScriptNodefromField='activetoNode='SignalOutputAssembler1toField='active'/>
<ROUTE fromNode='SignalPduScriptNodefromField='timestamptoNode='SignalOutputAssembler1toField='timestamp'/>
<ROUTE fromNode='SignalPduScriptNodefromField='isRtpHeaderHeardtoNode='SignalOutputAssembler1toField='isRtpHeaderHeard'/>
<ROUTE fromNode='SignalPduScriptNodefromField='radioIDtoNode='SignalOutputAssembler1toField='radioID'/>
<ROUTE fromNode='SignalPduScriptNodefromField='encodingSchemetoNode='SignalOutputAssembler1toField='encodingScheme'/>
<ROUTE fromNode='SignalPduScriptNodefromField='tdlTypetoNode='SignalOutputAssembler1toField='tdlType'/>
<ROUTE fromNode='SignalPduScriptNodefromField='sampleRatetoNode='SignalOutputAssembler1toField='sampleRate'/>
<ROUTE fromNode='SignalPduScriptNodefromField='samplestoNode='SignalOutputAssembler1toField='samples'/>
<ROUTE fromNode='SignalPduScriptNodefromField='dataLengthtoNode='SignalOutputAssembler1toField='dataLength'/>
<ROUTE fromNode='SignalPduScriptNodefromField='data00toNode='SignalOutputAssembler1toField='data00'/>
<ROUTE fromNode='SignalPduScriptNodefromField='data01toNode='SignalOutputAssembler2toField='data01'/>
<ROUTE fromNode='SignalPduScriptNodefromField='data02toNode='SignalOutputAssembler2toField='data02'/>
<ROUTE fromNode='SignalPduScriptNodefromField='data03toNode='SignalOutputAssembler2toField='data03'/>
<ROUTE fromNode='SignalPduScriptNodefromField='data04toNode='SignalOutputAssembler2toField='data04'/>
<ROUTE fromNode='SignalPduScriptNodefromField='data05toNode='SignalOutputAssembler2toField='data05'/>
<ROUTE fromNode='SignalPduScriptNodefromField='data06toNode='SignalOutputAssembler2toField='data06'/>
<ROUTE fromNode='SignalPduScriptNodefromField='data07toNode='SignalOutputAssembler2toField='data07'/>
<ROUTE fromNode='SignalPduScriptNodefromField='data08toNode='SignalOutputAssembler2toField='data08'/>
<ROUTE fromNode='SignalPduScriptNodefromField='data09toNode='SignalOutputAssembler2toField='data09'/>
<ROUTE fromNode='SignalPduScriptNodefromField='data10toNode='SignalOutputAssembler2toField='data10'/>
<ROUTE fromNode='SignalOutputAssembler1fromField='messageResulttoNode='SignalOutput1toField='string'/>
<ROUTE fromNode='SignalOutputAssembler2fromField='messageResulttoNode='SignalOutput2toField='string'/>
<!-- ROUTEs for further geometry representations go here -->
</ProtoBody>
</ProtoDeclare>
<!-- ============================================================ -->
<ProtoDeclare name='TransmitterPdu'>
<ProtoInterface>
<!-- set whichGeometry to -1 for no geometry, 0 for text trace, 1 for default geometry -->
<field name='whichGeometrytype='SFInt32value='0accessType='inputOutput'/>
<field name='bboxCentertype='SFVec3fvalue='0 0 0accessType='initializeOnly'
 appinfo='Bounding box center: position offset from origin of local coordinate system.'/>
<field name='bboxSizetype='SFVec3fvalue='-1 -1 -1accessType='initializeOnly'
 appinfo='Bounding box size: automatically calculated, can be specified as an optimization or constraint.'/>
<!-- Initialization fields -->
<field name='readIntervaltype='SFTimevalue='0.1accessType='initializeOnly'/>
<field name='writeIntervaltype='SFTimevalue='1.0accessType='initializeOnly'/>
<field name='siteIDtype='SFInt32value='14accessType='initializeOnly'/>
<field name='applicationIDtype='SFInt32value='17accessType='initializeOnly'/>
<field name='entityIDtype='SFInt32value='9accessType='initializeOnly'/>
<field name='addresstype='SFStringvalue='224.2.181.145accessType='initializeOnly'/>
<field name='porttype='SFInt32value='62040accessType='initializeOnly'/>
<field name='multicastRelayHosttype='SFStringvalue='devo.cs.nps.navy.milaccessType='initializeOnly'/>
<field name='multicastRelayPorttype='SFInt32value='8010accessType='initializeOnly'/>
<field name='networkModetype='SFStringvalue='standAloneaccessType='inputOutput'
 appinfo='networkMode:&#10;standAlone (ignore network but still respond to local events)&#10;networkReader (listen to network as ghost entity)&#10;networkWriter (output to network as master entity at writeInterval)'/>
<field name='isStandAlonetype='SFBoolaccessType='outputOnly'
 appinfo='Whether networkMode standAlone (ignore network but still respond to local events) is true/false'/>
<field name='isMastertype='SFBoolaccessType='outputOnly'
 appinfo='Whether networkMode 'networkWriter' (output to network as master entity at writeInterval) is true/false'/>
<field name='isRemotetype='SFBoolaccessType='outputOnly'
 appinfo='Whether networkMode 'networkReader' (listen to network as ghost entity) is true/false'/>
<field name='rtpHeaderExpectedtype='SFBoolvalue='falseaccessType='initializeOnly'/>
<field name='isRtpHeaderHeardtype='SFBoolaccessType='outputOnly'
 appinfo='whether RTP header was found prepended to DIS packet'/>
<field name='tracetype='SFBoolvalue='falseaccessType='initializeOnly'/>
<!-- Generic events -->
<field name='activetype='SFBoolaccessType='outputOnly'/>
<field name='timestamptype='SFTimeaccessType='outputOnly'/>
<!-- RadioCommunicationsFamily events -->
<field name='radioIDtype='SFInt32accessType='outputOnly'/>
<!-- TransmitterPdu fields -->
<field name='antennaLocationtype='SFVec3faccessType='outputOnly'/>
<field name='antennaPatternLengthtype='SFInt32accessType='outputOnly'/>
<field name='antennaPatternTypetype='SFInt32accessType='outputOnly'/>
<field name='cryptoKeyIDtype='SFInt32accessType='outputOnly'/>
<field name='cryptoSytemtype='SFInt32accessType='outputOnly'/>
<field name='frequencytype='SFInt32accessType='outputOnly'/>
<field name='inputSourcetype='SFInt32accessType='outputOnly'/>
<field name='lengthOfModulationParameterstype='SFInt32accessType='outputOnly'/>
<field name='modulationTypeDetailtype='SFInt32accessType='outputOnly'/>
<field name='modulationTypeMajortype='SFInt32accessType='outputOnly'/>
<field name='modulationTypeSpreadSpectrumtype='SFInt32accessType='outputOnly'/>
<field name='modulationTypeSystemtype='SFInt32accessType='outputOnly'/>
<field name='powertype='SFInt32accessType='outputOnly'/>
<field name='radioEntityTypeCategorytype='SFInt32accessType='outputOnly'/>
<field name='radioEntityTypeCountrytype='SFInt32accessType='outputOnly'/>
<field name='radioEntityTypeDomaintype='SFInt32accessType='outputOnly'/>
<field name='radioEntityTypeKindtype='SFInt32accessType='outputOnly'/>
<field name='radioEntityTypeNomenclaturetype='SFInt32accessType='outputOnly'/>
<field name='radioEntityTypeNomenclatureVersiontype='SFInt32accessType='outputOnly'/>
<field name='relativeAntennaLocationtype='SFVec3faccessType='outputOnly'/>
<field name='transmitFrequencyBandwidthtype='SFInt32accessType='outputOnly'/>
<field name='transmitStatetype='SFInt32accessType='outputOnly'/>
</ProtoInterface>
<ProtoBody>
<!-- First node inside a PrototypeDeclaration is the node type of the ProtoInstance -->
<Switch DEF='TransmitterPduGeometrySwitchwhichChoice='-1'>
<IS>
<connect nodeField='whichChoiceprotoField='whichGeometry'/>
</IS>
<!-- whichChoice -1 is no rendering, choice 0 is text trace, choice 1 is default geometry -->
<Group>
<Viewpoint description='Transmitter Pdu Observerposition='0 0 15'/>
<Group>
<Transform translation='0 6 0'>
<Shape>
<Text string='"Open Java Console to see PDU trace messages" "Netscape..Communicator..Tools..Java Console"solid='truetextBounds='lineBounds=''>
<FontStyle DEF='FONT3justify='"MIDDLE" "BEGIN"size='0.5'/>
</Text>
<Appearance>
<Material diffuseColor='0 0.4 0.8'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 4.75 0'>
<Shape>
<Text string='Transmitter PDU valuessolid='truetextBounds='lineBounds=''>
<FontStyle USE='FONT3'/>
</Text>
<Appearance>
<Material diffuseColor='0 0.8 0.4'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 4 0'>
<Shape>
<!-- TransmitterOutput1 ROUTE:  [from TransmitterOutputAssembler1.messageResult to string ] -->
<Text DEF='TransmitterOutput1string='Transmitter Output1 unsetsolid='truetextBounds='lineBounds=''>
<FontStyle USE='FONT3'/>
</Text>
<Appearance DEF='YellowAppearance3'>
<Material diffuseColor='0.8 0.8 0'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 -1 0'>
<Shape>
<!-- TransmitterOutput2 ROUTE:  [from TransmitterOutputAssembler2.messageResult to string ] -->
<Text DEF='TransmitterOutput2string='Transmitter Output2 unsetsolid='truetextBounds='lineBounds=''>
<FontStyle USE='FONT3'/>
</Text>
<Appearance USE='YellowAppearance3'/>
</Shape>
</Transform>
<Transform translation='0 -6 0'>
<Shape>
<!-- TransmitterOutput3 ROUTE:  [from TransmitterOutputAssembler3.messageResult to string ] -->
<Text DEF='TransmitterOutput3string='Transmitter Output2 unsetsolid='truetextBounds='lineBounds=''>
<FontStyle USE='FONT3'/>
</Text>
<Appearance USE='YellowAppearance3'/>
</Shape>
</Transform>
</Group>
<!-- TransmitterOutputAssembler1 ROUTEs:  [from TransmitterPduScriptNode.active to active ] [from TransmitterPduScriptNode.timestamp to timestamp ] [from TransmitterPduScriptNode.isRtpHeaderHeard to isRtpHeaderHeard ] [from TransmitterPduScriptNode.radioID to radioID ] [from TransmitterPduScriptNode.antennaLocation to antennaLocation ] [from TransmitterPduScriptNode.antennaPatternLength to antennaPatternLength ] [from TransmitterPduScriptNode.antennaPatternType to antennaPatternType ] [from TransmitterPduScriptNode.cryptoKeyID to cryptoKeyID ] [from TransmitterPduScriptNode.cryptoSytem to cryptoSytem ] [from TransmitterPduScriptNode.frequency to frequency ] [from messageResult to TransmitterOutput1.string ] -->
<Script DEF='TransmitterOutputAssembler1'>
<!-- surprising limit on MFString: 10 strings -->
<field name='messageResulttype='MFStringaccessType='outputOnly'/>
<field name='activetype='SFBoolaccessType='inputOnly'/>
<field name='timestamptype='SFTimeaccessType='inputOnly'/>
<field name='isRtpHeaderHeardtype='SFBoolaccessType='inputOnly'/>
<field name='radioIDtype='SFInt32accessType='inputOnly'/>
<field name='antennaLocationtype='SFVec3faccessType='inputOnly'/>
<field name='antennaPatternLengthtype='SFInt32accessType='inputOnly'/>
<field name='antennaPatternTypetype='SFInt32accessType='inputOnly'/>
<field name='cryptoKeyIDtype='SFInt32accessType='inputOnly'/>
<field name='cryptoSytemtype='SFInt32accessType='inputOnly'/>
<field name='frequencytype='SFInt32accessType='inputOnly'/>
<![CDATA[
ecmascript:

function initialize ()
{
	value='awaiting PDU';
	messageResult  [0] = 'active=' + value;
	messageResult  [1] = 'timestamp=' + value;
	messageResult  [2] = 'isRtpHeaderHeard=' + value;
	messageResult  [3] = 'radioID=' + value;
	messageResult  [4] = 'antennaLocation=' + value;
	messageResult  [5] = 'antennaPatternLength=' + value;
	messageResult  [6] = 'antennaPatternType=' + value;
	messageResult  [7] = 'cryptoKeyID=' + value;
	messageResult  [8] = 'cryptoSytem=' + value;
	messageResult  [9] = 'frequency=' + value;
}
function active 		(value, ts) { messageResult [0] = 'active=' + value; }
function timestamp		(value, ts) { messageResult [1] = 'timestamp=' + value; }
function isRtpHeaderHeard		(value, ts) { messageResult [2] = 'isRtpHeaderHeard=' + value; }
function radioID		(value, ts) { messageResult [3] = 'radioID=' + value; }
function antennaLocation	(value, ts) { messageResult [4] = 'antennaLocation=' + value; }
function antennaPatternLength	(value, ts) { messageResult [5] = 'antennaPatternLength=' + value; }
function antennaPatternType	(value, ts) { messageResult [6] = 'antennaPatternType=' + value; }
function cryptoKeyID		(value, ts) { messageResult [7] = 'cryptoKeyID=' + value; }
function cryptoSytem		(value, ts) { messageResult [8] = 'cryptoSytem=' + value; }
function frequency  		(value, ts) { messageResult [9] = 'frequency=' + value; }
          
]]>
</Script>
<!-- TransmitterOutputAssembler2 ROUTEs:  [from TransmitterPduScriptNode.inputSource to inputSource ] [from TransmitterPduScriptNode.lengthOfModulationParameters to lengthOfModulationParameters ] [from TransmitterPduScriptNode.modulationTypeDetail to modulationTypeDetail ] [from TransmitterPduScriptNode.modulationTypeMajor to modulationTypeMajor ] [from TransmitterPduScriptNode.modulationTypeSpreadSpectrum to modulationTypeSpreadSpectrum ] [from TransmitterPduScriptNode.modulationTypeSystem to modulationTypeSystem ] [from TransmitterPduScriptNode.power to power ] [from TransmitterPduScriptNode.radioEntityTypeCategory to radioEntityTypeCategory ] [from TransmitterPduScriptNode.radioEntityTypeCountry to radioEntityTypeCountry ] [from TransmitterPduScriptNode.radioEntityTypeDomain to radioEntityTypeDomain ] [from messageResult to TransmitterOutput2.string ] -->
<Script DEF='TransmitterOutputAssembler2'>
<field name='messageResulttype='MFStringaccessType='outputOnly'/>
<field name='inputSourcetype='SFInt32accessType='inputOnly'/>
<field name='lengthOfModulationParameterstype='SFInt32accessType='inputOnly'/>
<field name='modulationTypeDetailtype='SFInt32accessType='inputOnly'/>
<field name='modulationTypeMajortype='SFInt32accessType='inputOnly'/>
<field name='modulationTypeSpreadSpectrumtype='SFInt32accessType='inputOnly'/>
<field name='modulationTypeSystemtype='SFInt32accessType='inputOnly'/>
<field name='powertype='SFInt32accessType='inputOnly'/>
<field name='radioEntityTypeCategorytype='SFInt32accessType='inputOnly'/>
<field name='radioEntityTypeCountrytype='SFInt32accessType='inputOnly'/>
<field name='radioEntityTypeDomaintype='SFInt32accessType='inputOnly'/>
<![CDATA[
ecmascript:

function initialize ()
{
	messageResult [0] = 'inputSource=' + value;
	messageResult [1] = 'lengthOfModulationParameters=' + value;
	messageResult [2] = 'modulationTypeDetail=' + value;
	messageResult [3] = 'modulationTypeMajor=' + value;
	messageResult [4] = 'modulationTypeSpreadSpectrum=' + value;
	messageResult [5] = 'modulationTypeSystem=' + value;
	messageResult [6] = 'power=' + value;
	messageResult [7] = 'radioEntityTypeCategory=' + value;
	messageResult [8] = 'radioEntityTypeCountry=' + value;
	messageResult [9] = 'radioEntityTypeDomain=' + value;
}
function inputSource 			(value, ts) { messageResult [0] = 'inputSource=' + value; }
function lengthOfModulationParameters 	(value, ts) { messageResult [1] = 'lengthOfModulationParameters=' + value; }
function modulationTypeDetail		(value, ts) { messageResult [2] = 'modulationTypeDetail=' + value; }
function modulationTypeMajor 		(value, ts) { messageResult [3] = 'modulationTypeMajor=' + value; }
function modulationTypeSpreadSpectrum 	(value, ts) { messageResult [4] = 'modulationTypeSpreadSpectrum=' + value; }
function modulationTypeSystem		(value, ts) { messageResult [5] = 'modulationTypeSystem=' + value; }
function power	 			(value, ts) { messageResult [6] = 'power=' + value; }
function radioEntityTypeCategory 	(value, ts) { messageResult [7] = 'radioEntityTypeCategory=' + value; }
function radioEntityTypeCountry 	(value, ts) { messageResult [8] = 'radioEntityTypeCountry=' + value; }
function radioEntityTypeDomain 		(value, ts) { messageResult [9] = 'radioEntityTypeDomain=' + value; }

          
]]>
</Script>
<!-- TransmitterOutputAssembler3 ROUTEs:  [from TransmitterPduScriptNode.radioEntityTypeKind to radioEntityTypeKind ] [from TransmitterPduScriptNode.radioEntityTypeNomenclature to radioEntityTypeNomenclature ] [from TransmitterPduScriptNode.radioEntityTypeNomenclatureVersion to radioEntityTypeNomenclatureVersion ] [from TransmitterPduScriptNode.relativeAntennaLocation to relativeAntennaLocation ] [from TransmitterPduScriptNode.transmitFrequencyBandwidth to transmitFrequencyBandwidth ] [from TransmitterPduScriptNode.transmitState to transmitState ] [from messageResult to TransmitterOutput3.string ] -->
<Script DEF='TransmitterOutputAssembler3'>
<field name='messageResulttype='MFStringaccessType='outputOnly'/>
<field name='radioEntityTypeKindtype='SFInt32accessType='inputOnly'/>
<field name='radioEntityTypeNomenclaturetype='SFInt32accessType='inputOnly'/>
<field name='radioEntityTypeNomenclatureVersiontype='SFInt32accessType='inputOnly'/>
<field name='relativeAntennaLocationtype='SFVec3faccessType='inputOnly'/>
<field name='transmitFrequencyBandwidthtype='SFInt32accessType='inputOnly'/>
<field name='transmitStatetype='SFInt32accessType='inputOnly'/>
<![CDATA[
ecmascript:

function initialize ()
{
	messageResult [0] = 'radioEntityTypeKind=' + value;
	messageResult [1] = 'radioEntityTypeNomenclature=' + value;
	messageResult [2] = 'radioEntityTypeNomenclatureVersion=' + value;
	messageResult [3] = 'relativeAntennaLocation=' + value;
	messageResult [4] = 'transmitFrequencyBandwidth=' + value;
	messageResult [5] = 'transmitState=' + value;
}
function radioEntityTypeKind 			(value, ts) { messageResult [0] = 'radioEntityTypeKind=' + value; }
function radioEntityTypeNomenclature 		(value, ts) { messageResult [1] = 'radioEntityTypeNomenclature=' + value; }
function radioEntityTypeNomenclatureVersion 	(value, ts) { messageResult [2] = 'radioEntityTypeNomenclatureVersion=' + value; }
function relativeAntennaLocation 		(value, ts) { messageResult [3] = 'relativeAntennaLocation=' + value; }
function transmitFrequencyBandwidth		(value, ts) { messageResult [4] = 'transmitFrequencyBandwidth=' + value; }
function transmitState	 			(value, ts) { messageResult [5] = 'transmitState=' + value; }

          
]]>
</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 -->
<!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) -->
<!-- TransmitterPduScriptNode ROUTEs:  [from TransmitterPduReadIntervalClock.cycleTime to update ] [from TransmitterPduWriteIntervalClock.cycleTime to update ] [from active to TransmitterOutputAssembler1.active ] [from timestamp to TransmitterOutputAssembler1.timestamp ] [from isRtpHeaderHeard to TransmitterOutputAssembler1.isRtpHeaderHeard ] [from radioID to TransmitterOutputAssembler1.radioID ] [from antennaLocation to TransmitterOutputAssembler1.antennaLocation ] [from antennaPatternLength to TransmitterOutputAssembler1.antennaPatternLength ] [from antennaPatternType to TransmitterOutputAssembler1.antennaPatternType ] [from cryptoKeyID to TransmitterOutputAssembler1.cryptoKeyID ] [from cryptoSytem to TransmitterOutputAssembler1.cryptoSytem ] [from frequency to TransmitterOutputAssembler1.frequency ] [from inputSource to TransmitterOutputAssembler2.inputSource ] [from lengthOfModulationParameters to TransmitterOutputAssembler2.lengthOfModulationParameters ] [from modulationTypeDetail to TransmitterOutputAssembler2.modulationTypeDetail ] [from modulationTypeMajor to TransmitterOutputAssembler2.modulationTypeMajor ] [from modulationTypeSpreadSpectrum to TransmitterOutputAssembler2.modulationTypeSpreadSpectrum ] [from modulationTypeSystem to TransmitterOutputAssembler2.modulationTypeSystem ] [from power to TransmitterOutputAssembler2.power ] [from radioEntityTypeCategory to TransmitterOutputAssembler2.radioEntityTypeCategory ] [from radioEntityTypeCountry to TransmitterOutputAssembler2.radioEntityTypeCountry ] [from radioEntityTypeDomain to TransmitterOutputAssembler2.radioEntityTypeDomain ] [from radioEntityTypeKind to TransmitterOutputAssembler3.radioEntityTypeKind ] [from radioEntityTypeNomenclature to TransmitterOutputAssembler3.radioEntityTypeNomenclature ] [from radioEntityTypeNomenclatureVersion to TransmitterOutputAssembler3.radioEntityTypeNomenclatureVersion ] [from relativeAntennaLocation to TransmitterOutputAssembler3.relativeAntennaLocation ] [from transmitFrequencyBandwidth to TransmitterOutputAssembler3.transmitFrequencyBandwidth ] [from transmitState to TransmitterOutputAssembler3.transmitState ] -->
<Script DEF='TransmitterPduScriptNodemustEvaluate='true'
  url=' "RadioCommunicationsPduScriptNode.class" "http://web.nps.navy.mil/~brutzman/vrtp/mil/navy/nps/dis/RadioCommunicationsPduScriptNode.class" '>
<!-- Valid values for radioPduType are ReceiverPdu, SignalPdu and TransmitterPdu -->
<field name='radioPduTypetype='SFStringvalue='TransmitterPduaccessType='initializeOnly'/>
<!-- Initialization fields -->
<field name='readIntervaltype='SFTimeaccessType='initializeOnly'/>
<field name='writeIntervaltype='SFTimeaccessType='initializeOnly'/>
<field name='siteIDtype='SFInt32accessType='initializeOnly'/>
<field name='applicationIDtype='SFInt32accessType='initializeOnly'/>
<field name='entityIDtype='SFInt32accessType='initializeOnly'/>
<field name='addresstype='SFStringaccessType='initializeOnly'/>
<field name='porttype='SFInt32accessType='initializeOnly'/>
<field name='multicastRelayHosttype='SFStringaccessType='initializeOnly'/>
<field name='multicastRelayPorttype='SFInt32accessType='initializeOnly'/>
<field name='rtpHeaderExpectedtype='SFBoolaccessType='initializeOnly'/>
<field name='isRtpHeaderHeardtype='SFBoolaccessType='outputOnly'
 appinfo='whether RTP header was found prepended to DIS packet'/>
<field name='tracetype='SFBoolaccessType='initializeOnly'/>
<!-- Generic events -->
<field name='updatetype='SFTimeaccessType='inputOnly'
 appinfo='update is triggered by local TimeSensor clocks to allow regular read/write'/>
<field name='activetype='SFBoolaccessType='outputOnly'/>
<field name='timestamptype='SFTimeaccessType='outputOnly'/>
<!-- RadioCommunicationsFamily events -->
<field name='radioIDtype='SFInt32accessType='outputOnly'/>
<!-- SignalPdu fields -->
<field name='antennaLocationtype='SFVec3faccessType='outputOnly'/>
<field name='antennaPatternLengthtype='SFInt32accessType='outputOnly'/>
<field name='antennaPatternTypetype='SFInt32accessType='outputOnly'/>
<field name='cryptoKeyIDtype='SFInt32accessType='outputOnly'/>
<field name='cryptoSytemtype='SFInt32accessType='outputOnly'/>
<field name='frequencytype='SFInt32accessType='outputOnly'/>
<field name='inputSourcetype='SFInt32accessType='outputOnly'/>
<field name='lengthOfModulationParameterstype='SFInt32accessType='outputOnly'/>
<field name='modulationTypeDetailtype='SFInt32accessType='outputOnly'/>
<field name='modulationTypeMajortype='SFInt32accessType='outputOnly'/>
<field name='modulationTypeSpreadSpectrumtype='SFInt32accessType='outputOnly'/>
<field name='modulationTypeSystemtype='SFInt32accessType='outputOnly'/>
<field name='powertype='SFInt32accessType='outputOnly'/>
<field name='radioEntityTypeCategorytype='SFInt32accessType='outputOnly'/>
<field name='radioEntityTypeCountrytype='SFInt32accessType='outputOnly'/>
<field name='radioEntityTypeDomaintype='SFInt32accessType='outputOnly'/>
<field name='radioEntityTypeKindtype='SFInt32accessType='outputOnly'/>
<field name='radioEntityTypeNomenclaturetype='SFInt32accessType='outputOnly'/>
<field name='radioEntityTypeNomenclatureVersiontype='SFInt32accessType='outputOnly'/>
<field name='relativeAntennaLocationtype='SFVec3faccessType='outputOnly'/>
<field name='transmitFrequencyBandwidthtype='SFInt32accessType='outputOnly'/>
<field name='transmitStatetype='SFInt32accessType='outputOnly'/>
<IS>
<connect nodeField='readIntervalprotoField='readInterval'/>
<connect nodeField='writeIntervalprotoField='writeInterval'/>
<connect nodeField='siteIDprotoField='siteID'/>
<connect nodeField='applicationIDprotoField='applicationID'/>
<connect nodeField='entityIDprotoField='entityID'/>
<connect nodeField='addressprotoField='address'/>
<connect nodeField='portprotoField='port'/>
<connect nodeField='multicastRelayHostprotoField='multicastRelayHost'/>
<connect nodeField='multicastRelayPortprotoField='multicastRelayPort'/>
<connect nodeField='rtpHeaderExpectedprotoField='rtpHeaderExpected'/>
<connect nodeField='traceprotoField='trace'/>
<connect nodeField='activeprotoField='active'/>
<connect nodeField='timestampprotoField='timestamp'/>
<connect nodeField='isRtpHeaderHeardprotoField='isRtpHeaderHeard'/>
<connect nodeField='radioIDprotoField='radioID'/>
<connect nodeField='antennaLocationprotoField='antennaLocation'/>
<connect nodeField='antennaPatternLengthprotoField='antennaPatternLength'/>
<connect nodeField='antennaPatternTypeprotoField='antennaPatternType'/>
<connect nodeField='cryptoKeyIDprotoField='cryptoKeyID'/>
<connect nodeField='cryptoSytemprotoField='cryptoSytem'/>
<connect nodeField='frequencyprotoField='frequency'/>
<connect nodeField='inputSourceprotoField='inputSource'/>
<connect nodeField='lengthOfModulationParametersprotoField='lengthOfModulationParameters'/>
<connect nodeField='modulationTypeDetailprotoField='modulationTypeDetail'/>
<connect nodeField='modulationTypeMajorprotoField='modulationTypeMajor'/>
<connect nodeField='modulationTypeSpreadSpectrumprotoField='modulationTypeSpreadSpectrum'/>
<connect nodeField='modulationTypeSystemprotoField='modulationTypeSystem'/>
<connect nodeField='powerprotoField='power'/>
<connect nodeField='radioEntityTypeCategoryprotoField='radioEntityTypeCategory'/>
<connect nodeField='radioEntityTypeCountryprotoField='radioEntityTypeCountry'/>
<connect nodeField='radioEntityTypeDomainprotoField='radioEntityTypeDomain'/>
<connect nodeField='radioEntityTypeKindprotoField='radioEntityTypeKind'/>
<connect nodeField='radioEntityTypeNomenclatureprotoField='radioEntityTypeNomenclature'/>
<connect nodeField='radioEntityTypeNomenclatureVersionprotoField='radioEntityTypeNomenclatureVersion'/>
<connect nodeField='relativeAntennaLocationprotoField='relativeAntennaLocation'/>
<connect nodeField='transmitFrequencyBandwidthprotoField='transmitFrequencyBandwidth'/>
<connect nodeField='transmitStateprotoField='transmitState'/>
</IS>
</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). -->
<!-- TransmitterPduReadIntervalClock ROUTE:  [from cycleTime to TransmitterPduScriptNode.update ] -->
<TimeSensor DEF='TransmitterPduReadIntervalClockloop='true'/>
<!-- TransmitterPduWriteIntervalClock ROUTE:  [from cycleTime to TransmitterPduScriptNode.update ] -->
<TimeSensor DEF='TransmitterPduWriteIntervalClockcycleInterval='0enabled='falseloop='true'/>
<ROUTE fromNode='TransmitterPduReadIntervalClockfromField='cycleTimetoNode='TransmitterPduScriptNodetoField='update'/>
<ROUTE fromNode='TransmitterPduWriteIntervalClockfromField='cycleTimetoNode='TransmitterPduScriptNodetoField='update'/>
<!-- These ROUTEs connect the PDU Script node to the geometryChoice=0 text output -->
<ROUTE fromNode='TransmitterPduScriptNodefromField='activetoNode='TransmitterOutputAssembler1toField='active'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='timestamptoNode='TransmitterOutputAssembler1toField='timestamp'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='isRtpHeaderHeardtoNode='TransmitterOutputAssembler1toField='isRtpHeaderHeard'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='radioIDtoNode='TransmitterOutputAssembler1toField='radioID'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='antennaLocationtoNode='TransmitterOutputAssembler1toField='antennaLocation'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='antennaPatternLengthtoNode='TransmitterOutputAssembler1toField='antennaPatternLength'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='antennaPatternTypetoNode='TransmitterOutputAssembler1toField='antennaPatternType'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='cryptoKeyIDtoNode='TransmitterOutputAssembler1toField='cryptoKeyID'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='cryptoSytemtoNode='TransmitterOutputAssembler1toField='cryptoSytem'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='frequencytoNode='TransmitterOutputAssembler1toField='frequency'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='inputSourcetoNode='TransmitterOutputAssembler2toField='inputSource'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='lengthOfModulationParameterstoNode='TransmitterOutputAssembler2toField='lengthOfModulationParameters'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='modulationTypeDetailtoNode='TransmitterOutputAssembler2toField='modulationTypeDetail'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='modulationTypeMajortoNode='TransmitterOutputAssembler2toField='modulationTypeMajor'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='modulationTypeSpreadSpectrumtoNode='TransmitterOutputAssembler2toField='modulationTypeSpreadSpectrum'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='modulationTypeSystemtoNode='TransmitterOutputAssembler2toField='modulationTypeSystem'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='powertoNode='TransmitterOutputAssembler2toField='power'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='radioEntityTypeCategorytoNode='TransmitterOutputAssembler2toField='radioEntityTypeCategory'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='radioEntityTypeCountrytoNode='TransmitterOutputAssembler2toField='radioEntityTypeCountry'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='radioEntityTypeDomaintoNode='TransmitterOutputAssembler2toField='radioEntityTypeDomain'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='radioEntityTypeKindtoNode='TransmitterOutputAssembler3toField='radioEntityTypeKind'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='radioEntityTypeNomenclaturetoNode='TransmitterOutputAssembler3toField='radioEntityTypeNomenclature'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='radioEntityTypeNomenclatureVersiontoNode='TransmitterOutputAssembler3toField='radioEntityTypeNomenclatureVersion'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='relativeAntennaLocationtoNode='TransmitterOutputAssembler3toField='relativeAntennaLocation'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='transmitFrequencyBandwidthtoNode='TransmitterOutputAssembler3toField='transmitFrequencyBandwidth'/>
<ROUTE fromNode='TransmitterPduScriptNodefromField='transmitStatetoNode='TransmitterOutputAssembler3toField='transmitState'/>
<ROUTE fromNode='TransmitterOutputAssembler1fromField='messageResulttoNode='TransmitterOutput1toField='string'/>
<ROUTE fromNode='TransmitterOutputAssembler2fromField='messageResulttoNode='TransmitterOutput2toField='string'/>
<ROUTE fromNode='TransmitterOutputAssembler3fromField='messageResulttoNode='TransmitterOutput3toField='string'/>
<!-- ROUTEs for further geometry representations go here -->
</ProtoBody>
</ProtoDeclare>
<!-- ============================================================ -->
<!-- Default content -->
<NavigationInfo type='"EXAMINE" "ANY"transitionComplete='transitionTime='1.0transitionType='"ANIMATE"'/>
<Group>
<Transform translation='-15 15 0'>
<ProtoInstance name='ReceiverPducontainerField='children'/>
</Transform>
<Transform translation='-15 -15 0'>
<ReceiverPdu applicationID='1timestamp='address='localhostenabled='trueport='0entityID='0siteID='0networkMode='standAlonereceivedPower='0.0containerField='children'/>
</Transform>
<Transform translation='0 15 0'>
<ProtoInstance name='SignalPducontainerField='children'/>
</Transform>
<Transform translation='0 -15 0'>
<SignalPdu applicationID='1timestamp='address='localhostenabled='trueport='0entityID='0siteID='0networkMode='standAlonecontainerField='children'/>
</Transform>
<Transform translation='15 15 0'>
<ProtoInstance name='TransmitterPducontainerField='children'/>
</Transform>
<Transform translation='15 -15 0'>
<TransmitterPdu enabled='truetimestamp='transmitFrequencyBandwidth='0.0entityID='0containerField='childrennetworkMode='standAloneport='0applicationID='1address='localhostrelativeAntennaLocation='0 0 0siteID='0'/>
</Transform>
</Group>
</Scene>
</X3D>
<!--

Index for ProtoDeclares: ReceiverPdu, SignalPdu, TransmitterPdu
Index for DEF nodes: 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> -->