Skip to content

Commit 1722d61

Browse files
authored
refactor: handle VariableTransmitterParameters in TransmitterPdu
1 parent 12dad11 commit 1722d61

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

opendis/dis7.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
#This code is licensed under the BSD software license
33
#
44

5+
from typing import Sequence
6+
57
from .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

Comments
 (0)