22#This code is licensed under the BSD software license
33#
44
5+ from typing import Sequence
6+
57from .record import (
68 AntennaPatternRecord ,
79 ModulationType ,
@@ -5423,19 +5425,18 @@ def __init__(self,
54235425 radioEntityType : "EntityType | None" = None ,
54245426 transmitState : enum8 = 0 , # [UID 164]
54255427 inputSource : enum8 = 0 , # [UID 165]
5426- variableTransmitterParameterCount : uint16 = 0 ,
54275428 antennaLocation : "Vector3Double | None" = None ,
54285429 relativeAntennaLocation : "Vector3Float | None" = None ,
54295430 antennaPatternType : enum16 = 0 , # [UID 167]
5430- antennaPatternCount : uint16 = 0 , # in bytes
54315431 frequency : uint64 = 0 , # in Hz
54325432 transmitFrequencyBandwidth : float32 = 0.0 , # in Hz
54335433 power : float32 = 0.0 , # in decibel-milliwatts
54345434 modulationType : "ModulationType | None" = None ,
54355435 cryptoSystem : enum16 = 0 , # [UID 166]
54365436 cryptoKeyId : struct16 = 0 , # See Table 175
54375437 modulationParameters : ModulationParameters | None = None ,
5438- antennaPatternList = None ):
5438+ antennaPattern : AntennaPatternRecord | None = None ,
5439+ variableTransmitterParameters : Sequence [VariableTransmitterParameters ] | None = None ):
54395440 super (TransmitterPdu , self ).__init__ ()
54405441 self .radioReferenceID = radioReferenceID or EntityID ()
54415442 """ID of the entity that is the source of the communication"""
@@ -5448,7 +5449,6 @@ def __init__(self,
54485449 self .relativeAntennaLocation = relativeAntennaLocation or Vector3Float (
54495450 )
54505451 self .antennaPatternType = antennaPatternType
5451- self .antennaPatternCount = antennaPatternCount
54525452 self .frequency = frequency
54535453 self .transmitFrequencyBandwidth = transmitFrequencyBandwidth
54545454 self .power = power
@@ -5459,6 +5459,7 @@ def __init__(self,
54595459 self .padding3 = 0
54605460 self .modulationParameters = modulationParameters
54615461 self .antennaPattern = antennaPattern
5462+ self .variableTransmitterParameters = variableTransmitterParameters or []
54625463
54635464 @property
54645465 def antennaPatternLength (self ) -> uint16 :
@@ -5476,21 +5477,16 @@ def modulationParametersLength(self) -> uint8:
54765477
54775478 @property
54785479 def variableTransmitterParameterCount (self ) -> uint16 :
5479- """How many variable transmitter parameters are in the variable length list.
5480- In earlier versions of DIS these were known as articulation parameters.
5481- """
5482- return len (self .modulationParametersList )
5480+ return len (self .variableTransmitterParameters )
54835481
54845482 def serialize (self , outputStream : DataOutputStream ) -> None :
5485- """serialize the class"""
54865483 super (TransmitterPdu , self ).serialize (outputStream )
54875484 self .radioReferenceID .serialize (outputStream )
54885485 outputStream .write_uint16 (self .radioNumber )
54895486 self .radioEntityType .serialize (outputStream )
54905487 outputStream .write_uint8 (self .transmitState )
54915488 outputStream .write_uint8 (self .inputSource )
5492- outputStream .write_uint16 (
5493- self .variableTransmitterParameterCount )
5489+ outputStream .write_uint16 (self .variableTransmitterParameterCount )
54945490 self .antennaLocation .serialize (outputStream )
54955491 self .relativeAntennaLocation .serialize (outputStream )
54965492 outputStream .write_uint16 (self .antennaPatternType )
@@ -5515,6 +5511,10 @@ def serialize(self, outputStream: DataOutputStream) -> None:
55155511 if self .antennaPattern :
55165512 self .antennaPattern .serialize (outputStream )
55175513
5514+ ## Variable Transmitter Parameters
5515+ for vtp in self .variableTransmitterParameters :
5516+ vtp .serialize (outputStream )
5517+
55185518 def parse (self , inputStream : DataInputStream ) -> None :
55195519 """Parse a message. This may recursively call embedded objects."""
55205520 super (TransmitterPdu , self ).parse (inputStream )
0 commit comments