outputStream.write_unsigned_int(self.requestID);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( CreateEntityReliablePdu, self).parse(inputStream)
self.requiredReliabilityService = inputStream.read_unsigned_byte();
self.pad1 = inputStream.read_unsigned_short();
self.pad2 = inputStream.read_unsigned_byte();
self.requestID = inputStream.read_unsigned_int();
class StopFreezeReliablePdu( SimulationManagementWithReliabilityFamilyPdu ):
"""Section <IP_ADDRESS>: Stop freeze simulation, relaible. COMPLETE"""
def __init__(self):
""" Initializer for StopFreezeReliablePdu"""
super(StopFreezeReliablePdu, self).__init__()
self.realWorldTime = ClockTime();
""" time in real world for this operation to happen"""
self.reason = 0
""" Reason for stopping/freezing simulation"""
self.frozenBehavior = 0
""" internal behvior of the simulation while frozen"""
self.requiredReliablityService = 0
""" reliablity level"""
self.pad1 = 0
""" padding"""
self.requestID = 0
""" Request ID"""
self.pduType = 54
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( StopFreezeReliablePdu, self ).serialize(outputStream)
self.realWorldTime.serialize(outputStream)
outputStream.write_unsigned_byte(self.reason);
outputStream.write_unsigned_byte(self.frozenBehavior);
outputStream.write_unsigned_byte(self.requiredReliablityService);
outputStream.write_unsigned_byte(self.pad1);
outputStream.write_unsigned_int(self.requestID);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( StopFreezeReliablePdu, self).parse(inputStream)
self.realWorldTime.parse(inputStream)
self.reason = inputStream.read_unsigned_byte();
self.frozenBehavior = inputStream.read_unsigned_byte();
self.requiredReliablityService = inputStream.read_unsigned_byte();
self.pad1 = inputStream.read_unsigned_byte();
self.requestID = inputStream.read_unsigned_int();
class EventReportReliablePdu( SimulationManagementWithReliabilityFamilyPdu ):
"""Section <IP_ADDRESS>: reports the occurance of a significatnt event to the simulation manager. Needs manual intervention to fix padding in variable datums. UNFINISHED."""
def __init__(self):
""" Initializer for EventReportReliablePdu"""
super(EventReportReliablePdu, self).__init__()
self.eventType = 0
""" Event type"""
self.pad1 = 0
""" padding"""
self.numberOfFixedDatumRecords = 0
""" Fixed datum record count"""
self.numberOfVariableDatumRecords = 0
""" variable datum record count"""
self.fixedDatumRecords = []
""" Fixed datum records"""
self.variableDatumRecords = []
""" Variable datum records"""
self.pduType = 61
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( EventReportReliablePdu, self ).serialize(outputStream)
outputStream.write_unsigned_short(self.eventType);
outputStream.write_unsigned_int(self.pad1);
outputStream.write_unsigned_int( len(self.fixedDatumRecords));
outputStream.write_unsigned_int( len(self.variableDatumRecords));
for anObj in self.fixedDatumRecords:
anObj.serialize(outputStream)
for anObj in self.variableDatumRecords:
anObj.serialize(outputStream)
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( EventReportReliablePdu, self).parse(inputStream)
self.eventType = inputStream.read_unsigned_short();
self.pad1 = inputStream.read_unsigned_int();
self.numberOfFixedDatumRecords = inputStream.read_unsigned_int();
self.numberOfVariableDatumRecords = inputStream.read_unsigned_int();
for idx in range(0, self.numberOfFixedDatumRecords):
element = FixedDatum()
element.parse(inputStream)
self.fixedDatumRecords.append(element)
for idx in range(0, self.numberOfVariableDatumRecords):
element = VariableDatum()
element.parse(inputStream)
self.variableDatumRecords.append(element)
class MinefieldResponseNackPdu( MinefieldFamilyPdu ):
"""proivde the means to request a retransmit of a minefield data pdu. Section 7.9.5 COMPLETE"""
def __init__(self):
""" Initializer for MinefieldResponseNackPdu"""
super(MinefieldResponseNackPdu, self).__init__()
self.minefieldID = EntityID();
""" Minefield ID"""
self.requestingEntityID = EntityID();
""" entity ID making the request"""
self.requestID = 0
""" request ID"""
self.numberOfMissingPdus = 0
""" how many pdus were missing"""
self.missingPduSequenceNumbers = []
""" PDU sequence numbers that were missing"""
self.pduType = 40
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( MinefieldResponseNackPdu, self ).serialize(outputStream)
self.minefieldID.serialize(outputStream)
self.requestingEntityID.serialize(outputStream)
outputStream.write_unsigned_byte(self.requestID);
outputStream.write_unsigned_byte( len(self.missingPduSequenceNumbers));
for anObj in self.missingPduSequenceNumbers:
anObj.serialize(outputStream)
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( MinefieldResponseNackPdu, self).parse(inputStream)
self.minefieldID.parse(inputStream)
self.requestingEntityID.parse(inputStream)
self.requestID = inputStream.read_unsigned_byte();
self.numberOfMissingPdus = inputStream.read_unsigned_byte();
for idx in range(0, self.numberOfMissingPdus):
element = null()
element.parse(inputStream)
self.missingPduSequenceNumbers.append(element)
class ActionResponseReliablePdu( SimulationManagementWithReliabilityFamilyPdu ):
"""Section <IP_ADDRESS>: Response from an entity to an action request PDU. COMPLETE"""
def __init__(self):
""" Initializer for ActionResponseReliablePdu"""
super(ActionResponseReliablePdu, self).__init__()
self.requestID = 0
""" request ID"""
self.responseStatus = 0
""" status of response"""
self.numberOfFixedDatumRecords = 0
""" Fixed datum record count"""
self.numberOfVariableDatumRecords = 0
""" variable datum record count"""
self.fixedDatumRecords = []
""" Fixed datum records"""
self.variableDatumRecords = []
""" Variable datum records"""
self.pduType = 57
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( ActionResponseReliablePdu, self ).serialize(outputStream)
outputStream.write_unsigned_int(self.requestID);
outputStream.write_unsigned_int(self.responseStatus);
outputStream.write_unsigned_int( len(self.fixedDatumRecords));
outputStream.write_unsigned_int( len(self.variableDatumRecords));
for anObj in self.fixedDatumRecords:
anObj.serialize(outputStream)
for anObj in self.variableDatumRecords:
anObj.serialize(outputStream)
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( ActionResponseReliablePdu, self).parse(inputStream)
self.requestID = inputStream.read_unsigned_int();
self.responseStatus = inputStream.read_unsigned_int();
self.numberOfFixedDatumRecords = inputStream.read_unsigned_int();
self.numberOfVariableDatumRecords = inputStream.read_unsigned_int();
for idx in range(0, self.numberOfFixedDatumRecords):
element = FixedDatum()
element.parse(inputStream)
self.fixedDatumRecords.append(element)
for idx in range(0, self.numberOfVariableDatumRecords):
element = VariableDatum()
element.parse(inputStream)
self.variableDatumRecords.append(element)
class IsPartOfPdu( EntityManagementFamilyPdu ):
""" The joining of two or more simulation entities is communicated by this PDU. Section 7.8.5 COMPLETE"""
def __init__(self):
""" Initializer for IsPartOfPdu"""
super(IsPartOfPdu, self).__init__()
self.orginatingEntityID = EntityID();
""" ID of entity originating PDU"""
self.receivingEntityID = EntityID();
""" ID of entity receiving PDU"""
self.relationship = Relationship();
""" relationship of joined parts"""
self.partLocation = Vector3Float();
""" location of part; centroid of part in host's coordinate system. x=range, y=bearing, z=0"""
self.namedLocationID = NamedLocationIdentification();
""" named location"""
self.partEntityType = EntityType();
""" entity type"""
self.pduType = 36
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( IsPartOfPdu, self ).serialize(outputStream)
self.orginatingEntityID.serialize(outputStream)
self.receivingEntityID.serialize(outputStream)
self.relationship.serialize(outputStream)
self.partLocation.serialize(outputStream)
self.namedLocationID.serialize(outputStream)
self.partEntityType.serialize(outputStream)
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( IsPartOfPdu, self).parse(inputStream)
self.orginatingEntityID.parse(inputStream)
self.receivingEntityID.parse(inputStream)
self.relationship.parse(inputStream)
self.partLocation.parse(inputStream)
self.namedLocationID.parse(inputStream)
self.partEntityType.parse(inputStream)
Classes
class AcknowledgePdu
Section 7.5.6. Acknowledge the receipt of a start/resume, stop/freeze, or RemoveEntityPDU. COMPLETE
class AcknowledgePdu( SimulationManagementFamilyPdu ):
"""Section 7.5.6. Acknowledge the receipt of a start/resume, stop/freeze, or RemoveEntityPDU. COMPLETE"""
def __init__(self):
""" Initializer for AcknowledgePdu"""
super(AcknowledgePdu, self).__init__()
self.originatingID = EntityID();
""" Identifier for originating entity(or simulation)"""
self.receivingID = EntityID();
""" Identifier for the receiving entity(or simulation)"""
self.acknowledgeFlag = 0
""" type of message being acknowledged"""
self.responseFlag = 0
""" Whether or not the receiving entity was able to comply with the request"""
self.requestID = 0
""" Request ID that is unique"""
self.pduType = 15
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( AcknowledgePdu, self ).serialize(outputStream)
self.originatingID.serialize(outputStream)
self.receivingID.serialize(outputStream)
outputStream.write_unsigned_short(self.acknowledgeFlag);
outputStream.write_unsigned_short(self.responseFlag);
outputStream.write_unsigned_int(self.requestID);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( AcknowledgePdu, self).parse(inputStream)
self.originatingID.parse(inputStream)
self.receivingID.parse(inputStream)
self.acknowledgeFlag = inputStream.read_unsigned_short();
self.responseFlag = inputStream.read_unsigned_short();
self.requestID = inputStream.read_unsigned_int();
Ancestors (in MRO)
- AcknowledgePdu
- SimulationManagementFamilyPdu
- Pdu
- PduSuperclass
- builtins.object
Static methods
def __init__(
self)
Initializer for AcknowledgePdu
def __init__(self):
""" Initializer for AcknowledgePdu"""
super(AcknowledgePdu, self).__init__()
self.originatingID = EntityID();
""" Identifier for originating entity(or simulation)"""
self.receivingID = EntityID();
""" Identifier for the receiving entity(or simulation)"""
self.acknowledgeFlag = 0
""" type of message being acknowledged"""
self.responseFlag = 0
""" Whether or not the receiving entity was able to comply with the request"""
self.requestID = 0
""" Request ID that is unique"""
self.pduType = 15
""" initialize value """
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( AcknowledgePdu, self).parse(inputStream)
self.originatingID.parse(inputStream)
self.receivingID.parse(inputStream)
self.acknowledgeFlag = inputStream.read_unsigned_short();
self.responseFlag = inputStream.read_unsigned_short();
self.requestID = inputStream.read_unsigned_int();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
super( AcknowledgePdu, self ).serialize(outputStream)
self.originatingID.serialize(outputStream)
self.receivingID.serialize(outputStream)
outputStream.write_unsigned_short(self.acknowledgeFlag);
outputStream.write_unsigned_short(self.responseFlag);
outputStream.write_unsigned_int(self.requestID);
Instance variables
var acknowledgeFlag
type of message being acknowledged
var originatingID
Identifier for originating entity(or simulation)
var pduType
initialize value
var receivingID
Identifier for the receiving entity(or simulation)
var requestID
Request ID that is unique
var responseFlag
Whether or not the receiving entity was able to comply with the request
class AcknowledgeReliablePdu
Section <IP_ADDRESS>: Ack receipt of a start-resume, stop-freeze, create-entity or remove enitty (reliable) pdus. COMPLETE
class AcknowledgeReliablePdu( SimulationManagementWithReliabilityFamilyPdu ):
"""Section <IP_ADDRESS>: Ack receipt of a start-resume, stop-freeze, create-entity or remove enitty (reliable) pdus. COMPLETE"""
def __init__(self):
""" Initializer for AcknowledgeReliablePdu"""
super(AcknowledgeReliablePdu, self).__init__()
self.acknowledgeFlag = 0
""" ack flags"""
self.responseFlag = 0
""" response flags"""
self.requestID = 0
""" Request ID"""
self.pduType = 55
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( AcknowledgeReliablePdu, self ).serialize(outputStream)
outputStream.write_unsigned_short(self.acknowledgeFlag);
outputStream.write_unsigned_short(self.responseFlag);
outputStream.write_unsigned_int(self.requestID);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( AcknowledgeReliablePdu, self).parse(inputStream)
self.acknowledgeFlag = inputStream.read_unsigned_short();
self.responseFlag = inputStream.read_unsigned_short();
self.requestID = inputStream.read_unsigned_int();
Ancestors (in MRO)
- AcknowledgeReliablePdu
- SimulationManagementWithReliabilityFamilyPdu
- Pdu
- PduSuperclass
- builtins.object
Static methods
def __init__(
self)
Initializer for AcknowledgeReliablePdu
def __init__(self):
""" Initializer for AcknowledgeReliablePdu"""
super(AcknowledgeReliablePdu, self).__init__()
self.acknowledgeFlag = 0
""" ack flags"""
self.responseFlag = 0
""" response flags"""
self.requestID = 0
""" Request ID"""
self.pduType = 55
""" initialize value """
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( AcknowledgeReliablePdu, self).parse(inputStream)
self.acknowledgeFlag = inputStream.read_unsigned_short();
self.responseFlag = inputStream.read_unsigned_short();
self.requestID = inputStream.read_unsigned_int();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
super( AcknowledgeReliablePdu, self ).serialize(outputStream)
outputStream.write_unsigned_short(self.acknowledgeFlag);
outputStream.write_unsigned_short(self.responseFlag);
outputStream.write_unsigned_int(self.requestID);
Instance variables
var acknowledgeFlag
ack flags
var pduType
initialize value
var requestID
Request ID
var responseFlag
response flags
class AcousticEmitter
information about a specific UA emmtter. Section 6.2.2.
class AcousticEmitter( object ):
""" information about a specific UA emmtter. Section 6.2.2."""
def __init__(self):
""" Initializer for AcousticEmitter"""
self.acousticSystemName = 0
""" the system for a particular UA emitter, and an enumeration"""
self.acousticFunction = 0
""" The function of the acoustic system"""
self.acousticIDNumber = 0
""" The UA emitter identification number relative to a specific system"""
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_short(self.acousticSystemName);
outputStream.write_unsigned_byte(self.acousticFunction);
outputStream.write_unsigned_byte(self.acousticIDNumber);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.acousticSystemName = inputStream.read_unsigned_short();
self.acousticFunction = inputStream.read_unsigned_byte();
self.acousticIDNumber = inputStream.read_unsigned_byte();
Ancestors (in MRO)
- AcousticEmitter
- builtins.object
Static methods
def __init__(
self)
Initializer for AcousticEmitter
def __init__(self):
""" Initializer for AcousticEmitter"""
self.acousticSystemName = 0
""" the system for a particular UA emitter, and an enumeration"""
self.acousticFunction = 0
""" The function of the acoustic system"""
self.acousticIDNumber = 0
""" The UA emitter identification number relative to a specific system"""
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.acousticSystemName = inputStream.read_unsigned_short();
self.acousticFunction = inputStream.read_unsigned_byte();
self.acousticIDNumber = inputStream.read_unsigned_byte();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_short(self.acousticSystemName);
outputStream.write_unsigned_byte(self.acousticFunction);
outputStream.write_unsigned_byte(self.acousticIDNumber);
Instance variables
var acousticFunction
The function of the acoustic system
var acousticIDNumber
The UA emitter identification number relative to a specific system
var acousticSystemName
the system for a particular UA emitter, and an enumeration
class ActionRequestPdu
Section 7.5.7. Request from simulation manager to a managed entity to perform a specified action. COMPLETE
class ActionRequestPdu( SimulationManagementFamilyPdu ):
"""Section 7.5.7. Request from simulation manager to a managed entity to perform a specified action. COMPLETE"""
def __init__(self):
""" Initializer for ActionRequestPdu"""
super(ActionRequestPdu, self).__init__()
self.originatingID = EntityID();
""" Identifier for originating entity(or simulation)"""
self.receivingID = EntityID();
""" Identifier for the receiving entity(or simulation)"""
self.requestID = 0
""" identifies the request being made by the simulaton manager"""
self.actionID = 0
""" identifies the particular action being requested(see Section 7 of SISO-REF-010)."""
self.numberOfFixedDatumRecords = 0
""" Number of fixed datum records"""
self.numberOfVariableDatumRecords = 0
""" Number of variable datum records"""
self.fixedDatums = []
""" variable length list of fixed datums"""
self.variableDatums = []
""" variable length list of variable length datums"""
self.pduType = 16
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( ActionRequestPdu, self ).serialize(outputStream)
self.originatingID.serialize(outputStream)
self.receivingID.serialize(outputStream)
outputStream.write_unsigned_int(self.requestID);
outputStream.write_unsigned_int(self.actionID);
outputStream.write_unsigned_int( len(self.fixedDatums));
outputStream.write_unsigned_int( len(self.variableDatums));
for anObj in self.fixedDatums:
anObj.serialize(outputStream)
for anObj in self.variableDatums:
anObj.serialize(outputStream)
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( ActionRequestPdu, self).parse(inputStream)
self.originatingID.parse(inputStream)
self.receivingID.parse(inputStream)
self.requestID = inputStream.read_unsigned_int();
self.actionID = inputStream.read_unsigned_int();
self.numberOfFixedDatumRecords = inputStream.read_unsigned_int();
self.numberOfVariableDatumRecords = inputStream.read_unsigned_int();
for idx in range(0, self.numberOfFixedDatumRecords):
element = FixedDatum()
element.parse(inputStream)
self.fixedDatums.append(element)
for idx in range(0, self.numberOfVariableDatumRecords):
element = VariableDatum()
element.parse(inputStream)
self.variableDatums.append(element)
Ancestors (in MRO)
- ActionRequestPdu
- SimulationManagementFamilyPdu
- Pdu
- PduSuperclass
- builtins.object
Static methods
def __init__(
self)
Initializer for ActionRequestPdu
def __init__(self):
""" Initializer for ActionRequestPdu"""
super(ActionRequestPdu, self).__init__()
self.originatingID = EntityID();
""" Identifier for originating entity(or simulation)"""
self.receivingID = EntityID();
""" Identifier for the receiving entity(or simulation)"""
self.requestID = 0
""" identifies the request being made by the simulaton manager"""
self.actionID = 0
""" identifies the particular action being requested(see Section 7 of SISO-REF-010)."""
self.numberOfFixedDatumRecords = 0
""" Number of fixed datum records"""
self.numberOfVariableDatumRecords = 0
""" Number of variable datum records"""
self.fixedDatums = []
""" variable length list of fixed datums"""
self.variableDatums = []
""" variable length list of variable length datums"""
self.pduType = 16
""" initialize value """
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( ActionRequestPdu, self).parse(inputStream)
self.originatingID.parse(inputStream)
self.receivingID.parse(inputStream)
self.requestID = inputStream.read_unsigned_int();
self.actionID = inputStream.read_unsigned_int();
self.numberOfFixedDatumRecords = inputStream.read_unsigned_int();
self.numberOfVariableDatumRecords = inputStream.read_unsigned_int();
for idx in range(0, self.numberOfFixedDatumRecords):
element = FixedDatum()
element.parse(inputStream)
self.fixedDatums.append(element)
for idx in range(0, self.numberOfVariableDatumRecords):
element = VariableDatum()
element.parse(inputStream)
self.variableDatums.append(element)
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
super( ActionRequestPdu, self ).serialize(outputStream)
self.originatingID.serialize(outputStream)
self.receivingID.serialize(outputStream)
outputStream.write_unsigned_int(self.requestID);
outputStream.write_unsigned_int(self.actionID);
outputStream.write_unsigned_int( len(self.fixedDatums));
outputStream.write_unsigned_int( len(self.variableDatums));
for anObj in self.fixedDatums:
anObj.serialize(outputStream)
for anObj in self.variableDatums:
anObj.serialize(outputStream)
Instance variables
var actionID
identifies the particular action being requested(see Section 7 of SISO-REF-010).
var fixedDatums
variable length list of fixed datums
var numberOfFixedDatumRecords
Number of fixed datum records
var numberOfVariableDatumRecords
Number of variable datum records
var originatingID
Identifier for originating entity(or simulation)
var pduType
initialize value
var receivingID
Identifier for the receiving entity(or simulation)
var requestID
identifies the request being made by the simulaton manager
var variableDatums
variable length list of variable length datums
class ActionRequestReliablePdu
Section <IP_ADDRESS>: request from a simulation manager to a managed entity to perform a specified action. COMPLETE
class ActionRequestReliablePdu( SimulationManagementWithReliabilityFamilyPdu ):
"""Section <IP_ADDRESS>: request from a simulation manager to a managed entity to perform a specified action. COMPLETE"""
def __init__(self):
""" Initializer for ActionRequestReliablePdu"""
super(ActionRequestReliablePdu, self).__init__()
self.requiredReliabilityService = 0
""" level of reliability service used for this transaction"""
self.pad1 = 0
""" padding"""
self.pad2 = 0
""" padding"""
self.requestID = 0
""" request ID"""
self.actionID = 0
""" request ID"""
self.numberOfFixedDatumRecords = 0
""" Fixed datum record count"""
self.numberOfVariableDatumRecords = 0
""" variable datum record count"""
self.fixedDatumRecords = []
""" Fixed datum records"""
self.variableDatumRecords = []
""" Variable datum records"""
self.pduType = 56
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( ActionRequestReliablePdu, self ).serialize(outputStream)
outputStream.write_unsigned_byte(self.requiredReliabilityService);
outputStream.write_unsigned_short(self.pad1);
outputStream.write_unsigned_byte(self.pad2);
outputStream.write_unsigned_int(self.requestID);
outputStream.write_unsigned_int(self.actionID);
outputStream.write_unsigned_int( len(self.fixedDatumRecords));
outputStream.write_unsigned_int( len(self.variableDatumRecords));
for anObj in self.fixedDatumRecords:
anObj.serialize(outputStream)
for anObj in self.variableDatumRecords:
anObj.serialize(outputStream)
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( ActionRequestReliablePdu, self).parse(inputStream)
self.requiredReliabilityService = inputStream.read_unsigned_byte();
self.pad1 = inputStream.read_unsigned_short();
self.pad2 = inputStream.read_unsigned_byte();
self.requestID = inputStream.read_unsigned_int();
self.actionID = inputStream.read_unsigned_int();
self.numberOfFixedDatumRecords = inputStream.read_unsigned_int();
self.numberOfVariableDatumRecords = inputStream.read_unsigned_int();
for idx in range(0, self.numberOfFixedDatumRecords):
element = FixedDatum()
element.parse(inputStream)
self.fixedDatumRecords.append(element)
for idx in range(0, self.numberOfVariableDatumRecords):
element = VariableDatum()
element.parse(inputStream)
self.variableDatumRecords.append(element)
Ancestors (in MRO)
- ActionRequestReliablePdu
- SimulationManagementWithReliabilityFamilyPdu
- Pdu
- PduSuperclass
- builtins.object
Static methods
def __init__(
self)
Initializer for ActionRequestReliablePdu
def __init__(self):
""" Initializer for ActionRequestReliablePdu"""
super(ActionRequestReliablePdu, self).__init__()
self.requiredReliabilityService = 0
""" level of reliability service used for this transaction"""
self.pad1 = 0
""" padding"""
self.pad2 = 0
""" padding"""
self.requestID = 0
""" request ID"""
self.actionID = 0
""" request ID"""
self.numberOfFixedDatumRecords = 0
""" Fixed datum record count"""
self.numberOfVariableDatumRecords = 0
""" variable datum record count"""
self.fixedDatumRecords = []
""" Fixed datum records"""
self.variableDatumRecords = []
""" Variable datum records"""
self.pduType = 56
""" initialize value """
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( ActionRequestReliablePdu, self).parse(inputStream)
self.requiredReliabilityService = inputStream.read_unsigned_byte();
self.pad1 = inputStream.read_unsigned_short();
self.pad2 = inputStream.read_unsigned_byte();
self.requestID = inputStream.read_unsigned_int();
self.actionID = inputStream.read_unsigned_int();
self.numberOfFixedDatumRecords = inputStream.read_unsigned_int();
self.numberOfVariableDatumRecords = inputStream.read_unsigned_int();
for idx in range(0, self.numberOfFixedDatumRecords):
element = FixedDatum()
element.parse(inputStream)
self.fixedDatumRecords.append(element)
for idx in range(0, self.numberOfVariableDatumRecords):
element = VariableDatum()
element.parse(inputStream)
self.variableDatumRecords.append(element)
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
super( ActionRequestReliablePdu, self ).serialize(outputStream)
outputStream.write_unsigned_byte(self.requiredReliabilityService);
outputStream.write_unsigned_short(self.pad1);
outputStream.write_unsigned_byte(self.pad2);
outputStream.write_unsigned_int(self.requestID);
outputStream.write_unsigned_int(self.actionID);
outputStream.write_unsigned_int( len(self.fixedDatumRecords));
outputStream.write_unsigned_int( len(self.variableDatumRecords));
for anObj in self.fixedDatumRecords:
anObj.serialize(outputStream)
for anObj in self.variableDatumRecords:
anObj.serialize(outputStream)
Instance variables
var actionID
request ID
var fixedDatumRecords
Fixed datum records
var numberOfFixedDatumRecords
Fixed datum record count
var numberOfVariableDatumRecords
variable datum record count
var pad1
padding
var pad2
padding
var pduType
initialize value
var requestID
request ID
var requiredReliabilityService
level of reliability service used for this transaction
var variableDatumRecords
Variable datum records
class ActionResponsePdu
Section 7.5.8. response to an action request PDU. COMPLETE
class ActionResponsePdu( SimulationManagementFamilyPdu ):
"""Section 7.5.8. response to an action request PDU. COMPLETE"""
def __init__(self):
""" Initializer for ActionResponsePdu"""
super(ActionResponsePdu, self).__init__()
self.originatingID = EntityID();
""" Identifier for originating entity(or simulation)"""
self.receivingID = EntityID();
""" Identifier for the receiving entity(or simulation)"""
self.requestID = 0
""" Request ID that is unique"""
self.requestStatus = 0
""" Status of response"""
self.numberOfFixedDatumRecords = 0
""" Number of fixed datum records"""
self.numberOfVariableDatumRecords = 0
""" Number of variable datum records"""
self.fixedDatums = []
""" variable length list of fixed datums"""
self.variableDatums = []
""" variable length list of variable length datums"""
self.pduType = 17
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( ActionResponsePdu, self ).serialize(outputStream)
self.originatingID.serialize(outputStream)
self.receivingID.serialize(outputStream)
outputStream.write_unsigned_int(self.requestID);
outputStream.write_unsigned_int(self.requestStatus);
outputStream.write_unsigned_int( len(self.fixedDatums));
outputStream.write_unsigned_int( len(self.variableDatums));
for anObj in self.fixedDatums:
anObj.serialize(outputStream)
for anObj in self.variableDatums:
anObj.serialize(outputStream)
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( ActionResponsePdu, self).parse(inputStream)
self.originatingID.parse(inputStream)
self.receivingID.parse(inputStream)
self.requestID = inputStream.read_unsigned_int();
self.requestStatus = inputStream.read_unsigned_int();
self.numberOfFixedDatumRecords = inputStream.read_unsigned_int();
self.numberOfVariableDatumRecords = inputStream.read_unsigned_int();
for idx in range(0, self.numberOfFixedDatumRecords):
element = FixedDatum()
element.parse(inputStream)
self.fixedDatums.append(element)
for idx in range(0, self.numberOfVariableDatumRecords):
element = VariableDatum()
element.parse(inputStream)
self.variableDatums.append(element)
Ancestors (in MRO)
- ActionResponsePdu
- SimulationManagementFamilyPdu
- Pdu
- PduSuperclass
- builtins.object
Static methods
def __init__(
self)
Initializer for ActionResponsePdu
def __init__(self):
""" Initializer for ActionResponsePdu"""
super(ActionResponsePdu, self).__init__()
self.originatingID = EntityID();
""" Identifier for originating entity(or simulation)"""
self.receivingID = EntityID();
""" Identifier for the receiving entity(or simulation)"""
self.requestID = 0
""" Request ID that is unique"""
self.requestStatus = 0
""" Status of response"""
self.numberOfFixedDatumRecords = 0
""" Number of fixed datum records"""
self.numberOfVariableDatumRecords = 0
""" Number of variable datum records"""
self.fixedDatums = []
""" variable length list of fixed datums"""
self.variableDatums = []
""" variable length list of variable length datums"""
self.pduType = 17
""" initialize value """
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( ActionResponsePdu, self).parse(inputStream)
self.originatingID.parse(inputStream)
self.receivingID.parse(inputStream)
self.requestID = inputStream.read_unsigned_int();
self.requestStatus = inputStream.read_unsigned_int();
self.numberOfFixedDatumRecords = inputStream.read_unsigned_int();
self.numberOfVariableDatumRecords = inputStream.read_unsigned_int();
for idx in range(0, self.numberOfFixedDatumRecords):
element = FixedDatum()
element.parse(inputStream)
self.fixedDatums.append(element)
for idx in range(0, self.numberOfVariableDatumRecords):
element = VariableDatum()
element.parse(inputStream)
self.variableDatums.append(element)
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
super( ActionResponsePdu, self ).serialize(outputStream)
self.originatingID.serialize(outputStream)
self.receivingID.serialize(outputStream)
outputStream.write_unsigned_int(self.requestID);
outputStream.write_unsigned_int(self.requestStatus);
outputStream.write_unsigned_int( len(self.fixedDatums));
outputStream.write_unsigned_int( len(self.variableDatums));
for anObj in self.fixedDatums:
anObj.serialize(outputStream)
for anObj in self.variableDatums:
anObj.serialize(outputStream)
Instance variables
var fixedDatums
variable length list of fixed datums
var numberOfFixedDatumRecords
Number of fixed datum records
var numberOfVariableDatumRecords
Number of variable datum records
var originatingID
Identifier for originating entity(or simulation)
var pduType
initialize value
var receivingID
Identifier for the receiving entity(or simulation)
var requestID
Request ID that is unique
var requestStatus
Status of response
var variableDatums
variable length list of variable length datums
class ActionResponseReliablePdu
Section <IP_ADDRESS>: Response from an entity to an action request PDU. COMPLETE
class ActionResponseReliablePdu( SimulationManagementWithReliabilityFamilyPdu ):
"""Section <IP_ADDRESS>: Response from an entity to an action request PDU. COMPLETE"""
def __init__(self):
""" Initializer for ActionResponseReliablePdu"""
super(ActionResponseReliablePdu, self).__init__()
self.requestID = 0
""" request ID"""
self.responseStatus = 0
""" status of response"""
self.numberOfFixedDatumRecords = 0
""" Fixed datum record count"""
self.numberOfVariableDatumRecords = 0
""" variable datum record count"""
self.fixedDatumRecords = []
""" Fixed datum records"""
self.variableDatumRecords = []
""" Variable datum records"""
self.pduType = 57
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( ActionResponseReliablePdu, self ).serialize(outputStream)
outputStream.write_unsigned_int(self.requestID);
outputStream.write_unsigned_int(self.responseStatus);
outputStream.write_unsigned_int( len(self.fixedDatumRecords));
outputStream.write_unsigned_int( len(self.variableDatumRecords));
for anObj in self.fixedDatumRecords:
anObj.serialize(outputStream)
for anObj in self.variableDatumRecords:
anObj.serialize(outputStream)
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( ActionResponseReliablePdu, self).parse(inputStream)
self.requestID = inputStream.read_unsigned_int();
self.responseStatus = inputStream.read_unsigned_int();
self.numberOfFixedDatumRecords = inputStream.read_unsigned_int();
self.numberOfVariableDatumRecords = inputStream.read_unsigned_int();
for idx in range(0, self.numberOfFixedDatumRecords):
element = FixedDatum()
element.parse(inputStream)
self.fixedDatumRecords.append(element)
for idx in range(0, self.numberOfVariableDatumRecords):
element = VariableDatum()
element.parse(inputStream)
self.variableDatumRecords.append(element)
Ancestors (in MRO)
- ActionResponseReliablePdu
- SimulationManagementWithReliabilityFamilyPdu
- Pdu
- PduSuperclass
- builtins.object
Static methods
def __init__(
self)
Initializer for ActionResponseReliablePdu
def __init__(self):
""" Initializer for ActionResponseReliablePdu"""
super(ActionResponseReliablePdu, self).__init__()
self.requestID = 0
""" request ID"""
self.responseStatus = 0
""" status of response"""
self.numberOfFixedDatumRecords = 0
""" Fixed datum record count"""
self.numberOfVariableDatumRecords = 0
""" variable datum record count"""
self.fixedDatumRecords = []
""" Fixed datum records"""
self.variableDatumRecords = []
""" Variable datum records"""
self.pduType = 57
""" initialize value """
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( ActionResponseReliablePdu, self).parse(inputStream)
self.requestID = inputStream.read_unsigned_int();
self.responseStatus = inputStream.read_unsigned_int();
self.numberOfFixedDatumRecords = inputStream.read_unsigned_int();
self.numberOfVariableDatumRecords = inputStream.read_unsigned_int();
for idx in range(0, self.numberOfFixedDatumRecords):
element = FixedDatum()
element.parse(inputStream)
self.fixedDatumRecords.append(element)
for idx in range(0, self.numberOfVariableDatumRecords):
element = VariableDatum()
element.parse(inputStream)
self.variableDatumRecords.append(element)
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
super( ActionResponseReliablePdu, self ).serialize(outputStream)
outputStream.write_unsigned_int(self.requestID);
outputStream.write_unsigned_int(self.responseStatus);
outputStream.write_unsigned_int( len(self.fixedDatumRecords));
outputStream.write_unsigned_int( len(self.variableDatumRecords));
for anObj in self.fixedDatumRecords:
anObj.serialize(outputStream)
for anObj in self.variableDatumRecords:
anObj.serialize(outputStream)
Instance variables
var fixedDatumRecords
Fixed datum records
var numberOfFixedDatumRecords
Fixed datum record count
var numberOfVariableDatumRecords
variable datum record count
var pduType
initialize value
var requestID
request ID
var responseStatus
status of response
var variableDatumRecords
Variable datum records
class AggregateIdentifier
The unique designation of each aggrgate in an exercise is specified by an aggregate identifier record. The aggregate ID is not an entity and shall not be treated as such. Section 6.2.3.
class AggregateIdentifier( object ):
"""The unique designation of each aggrgate in an exercise is specified by an aggregate identifier record. The aggregate ID is not an entity and shall not be treated as such. Section 6.2.3."""
def __init__(self):
""" Initializer for AggregateIdentifier"""
self.simulationAddress = SimulationAddress();
""" Simulation address, ie site and application, the first two fields of the entity ID"""
self.aggregateID = 0
""" the aggregate ID"""
def serialize(self, outputStream):
"""serialize the class """
self.simulationAddress.serialize(outputStream)
outputStream.write_unsigned_short(self.aggregateID);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.simulationAddress.parse(inputStream)
self.aggregateID = inputStream.read_unsigned_short();
Ancestors (in MRO)
- AggregateIdentifier
- builtins.object
Static methods
def __init__(
self)
Initializer for AggregateIdentifier
def __init__(self):
""" Initializer for AggregateIdentifier"""
self.simulationAddress = SimulationAddress();
""" Simulation address, ie site and application, the first two fields of the entity ID"""
self.aggregateID = 0
""" the aggregate ID"""
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.simulationAddress.parse(inputStream)
self.aggregateID = inputStream.read_unsigned_short();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
self.simulationAddress.serialize(outputStream)
outputStream.write_unsigned_short(self.aggregateID);
Instance variables
var aggregateID
the aggregate ID
var simulationAddress
Simulation address, ie site and application, the first two fields of the entity ID
class AggregateMarking
Specifies the character set used in the first byte, followed by up to 31 characters of text data. Section 6.2.4.
class AggregateMarking( object ):
"""Specifies the character set used in the first byte, followed by up to 31 characters of text data. Section 6.2.4. """
def __init__(self):
""" Initializer for AggregateMarking"""
self.characterSet = 0
""" The character set"""
self.characters = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
""" The characters"""
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_byte(self.characterSet);
for idx in range(0, 31):
outputStream.write_unsigned_byte( self.characters[ idx ] );
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.characterSet = inputStream.read_unsigned_byte();
self.characters = [0]*31
for idx in range(0, 31):
val = inputStream.read_unsigned_byte()
self.characters[ idx ] = val
Ancestors (in MRO)
- AggregateMarking
- builtins.object
Static methods
def __init__(
self)
Initializer for AggregateMarking
def __init__(self):
""" Initializer for AggregateMarking"""
self.characterSet = 0
""" The character set"""
self.characters = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
""" The characters"""
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.characterSet = inputStream.read_unsigned_byte();
self.characters = [0]*31
for idx in range(0, 31):
val = inputStream.read_unsigned_byte()
self.characters[ idx ] = val
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_byte(self.characterSet);
for idx in range(0, 31):
outputStream.write_unsigned_byte( self.characters[ idx ] );
Instance variables
var characterSet
The character set
var characters
The characters
class AggregateType
Identifies the type and organization of an aggregate. Section 6.2.5
class AggregateType( object ):
"""Identifies the type and organization of an aggregate. Section 6.2.5"""
def __init__(self):
""" Initializer for AggregateType"""
self.aggregateKind = 0
""" Grouping criterion used to group the aggregate. Enumeration from EBV document"""
self.domain = 0
""" Domain of entity (air, surface, subsurface, space, etc) Zero means domain does not apply."""
self.country = 0
""" country to which the design of the entity is attributed"""
self.category = 0
""" category of entity"""
self.subcategory = 0
""" subcategory of entity"""
self.specificInfo = 0
""" specific info based on subcategory field. specific is a reserved word in sql."""
self.extra = 0
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_byte(self.aggregateKind);
outputStream.write_unsigned_byte(self.domain);
outputStream.write_unsigned_short(self.country);
outputStream.write_unsigned_byte(self.category);
outputStream.write_unsigned_byte(self.subcategory);
outputStream.write_unsigned_byte(self.specificInfo);
outputStream.write_unsigned_byte(self.extra);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.aggregateKind = inputStream.read_unsigned_byte();
self.domain = inputStream.read_unsigned_byte();
self.country = inputStream.read_unsigned_short();
self.category = inputStream.read_unsigned_byte();
self.subcategory = inputStream.read_unsigned_byte();
self.specificInfo = inputStream.read_unsigned_byte();
self.extra = inputStream.read_unsigned_byte();
Ancestors (in MRO)
- AggregateType
- builtins.object
Static methods
def __init__(
self)
Initializer for AggregateType
def __init__(self):
""" Initializer for AggregateType"""
self.aggregateKind = 0
""" Grouping criterion used to group the aggregate. Enumeration from EBV document"""
self.domain = 0
""" Domain of entity (air, surface, subsurface, space, etc) Zero means domain does not apply."""
self.country = 0
""" country to which the design of the entity is attributed"""
self.category = 0
""" category of entity"""
self.subcategory = 0
""" subcategory of entity"""
self.specificInfo = 0
""" specific info based on subcategory field. specific is a reserved word in sql."""
self.extra = 0
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.aggregateKind = inputStream.read_unsigned_byte();
self.domain = inputStream.read_unsigned_byte();
self.country = inputStream.read_unsigned_short();
self.category = inputStream.read_unsigned_byte();
self.subcategory = inputStream.read_unsigned_byte();
self.specificInfo = inputStream.read_unsigned_byte();
self.extra = inputStream.read_unsigned_byte();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_byte(self.aggregateKind);
outputStream.write_unsigned_byte(self.domain);
outputStream.write_unsigned_short(self.country);
outputStream.write_unsigned_byte(self.category);
outputStream.write_unsigned_byte(self.subcategory);
outputStream.write_unsigned_byte(self.specificInfo);
outputStream.write_unsigned_byte(self.extra);
Instance variables
var aggregateKind
Grouping criterion used to group the aggregate. Enumeration from EBV document
var category
category of entity
var country
country to which the design of the entity is attributed
var domain
Domain of entity (air, surface, subsurface, space, etc) Zero means domain does not apply.
var extra
var specificInfo
specific info based on subcategory field. specific is a reserved word in sql.
var subcategory
subcategory of entity
class AngleDeception
The Angle Deception attribute record may be used to communicate discrete values that are associated with angle deception jamming that cannot be referenced to an emitter mode. The values provided in the record records (provided in the associated Electromagnetic Emission PDU). (The victim radar beams are those that are targeted by the jammer.) Section <IP_ADDRESS>.2
class AngleDeception( object ):
"""The Angle Deception attribute record may be used to communicate discrete values that are associated with angle deception jamming that cannot be referenced to an emitter mode. The values provided in the record records (provided in the associated Electromagnetic Emission PDU). (The victim radar beams are those that are targeted by the jammer.) Section <IP_ADDRESS>.2"""
def __init__(self):
""" Initializer for AngleDeception"""
self.recordType = 3501
self.recordLength = 48
self.padding = 0
self.emitterNumber = 0
self.beamNumber = 0
self.stateIndicator = 0
self.padding2 = 0
self.azimuthOffset = 0
self.azimuthWidth = 0
self.azimuthPullRate = 0
self.azimuthPullAcceleration = 0
self.elevationOffset = 0
self.elevationWidth = 0
self.elevationPullRate = 0
self.elevationPullAcceleration = 0
self.padding3 = 0
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_int(self.recordType);
outputStream.write_unsigned_short(self.recordLength);
outputStream.write_unsigned_short(self.padding);
outputStream.write_unsigned_byte(self.emitterNumber);
outputStream.write_unsigned_byte(self.beamNumber);
outputStream.write_unsigned_byte(self.stateIndicator);
outputStream.write_unsigned_byte(self.padding2);
outputStream.write_float(self.azimuthOffset);
outputStream.write_float(self.azimuthWidth);
outputStream.write_float(self.azimuthPullRate);
outputStream.write_float(self.azimuthPullAcceleration);
outputStream.write_float(self.elevationOffset);
outputStream.write_float(self.elevationWidth);
outputStream.write_float(self.elevationPullRate);
outputStream.write_float(self.elevationPullAcceleration);
outputStream.write_unsigned_int(self.padding3);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.recordType = inputStream.read_unsigned_int();
self.recordLength = inputStream.read_unsigned_short();
self.padding = inputStream.read_unsigned_short();
self.emitterNumber = inputStream.read_unsigned_byte();
self.beamNumber = inputStream.read_unsigned_byte();
self.stateIndicator = inputStream.read_unsigned_byte();
self.padding2 = inputStream.read_unsigned_byte();
self.azimuthOffset = inputStream.read_float();
self.azimuthWidth = inputStream.read_float();
self.azimuthPullRate = inputStream.read_float();
self.azimuthPullAcceleration = inputStream.read_float();
self.elevationOffset = inputStream.read_float();
self.elevationWidth = inputStream.read_float();
self.elevationPullRate = inputStream.read_float();
self.elevationPullAcceleration = inputStream.read_float();
self.padding3 = inputStream.read_unsigned_int();
Ancestors (in MRO)
- AngleDeception
- builtins.object
Static methods
def __init__(
self)
Initializer for AngleDeception
def __init__(self):
""" Initializer for AngleDeception"""
self.recordType = 3501
self.recordLength = 48
self.padding = 0
self.emitterNumber = 0
self.beamNumber = 0
self.stateIndicator = 0
self.padding2 = 0
self.azimuthOffset = 0
self.azimuthWidth = 0
self.azimuthPullRate = 0
self.azimuthPullAcceleration = 0
self.elevationOffset = 0
self.elevationWidth = 0
self.elevationPullRate = 0
self.elevationPullAcceleration = 0
self.padding3 = 0
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.recordType = inputStream.read_unsigned_int();
self.recordLength = inputStream.read_unsigned_short();
self.padding = inputStream.read_unsigned_short();
self.emitterNumber = inputStream.read_unsigned_byte();
self.beamNumber = inputStream.read_unsigned_byte();
self.stateIndicator = inputStream.read_unsigned_byte();
self.padding2 = inputStream.read_unsigned_byte();
self.azimuthOffset = inputStream.read_float();
self.azimuthWidth = inputStream.read_float();
self.azimuthPullRate = inputStream.read_float();
self.azimuthPullAcceleration = inputStream.read_float();
self.elevationOffset = inputStream.read_float();
self.elevationWidth = inputStream.read_float();
self.elevationPullRate = inputStream.read_float();
self.elevationPullAcceleration = inputStream.read_float();
self.padding3 = inputStream.read_unsigned_int();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_int(self.recordType);
outputStream.write_unsigned_short(self.recordLength);
outputStream.write_unsigned_short(self.padding);
outputStream.write_unsigned_byte(self.emitterNumber);
outputStream.write_unsigned_byte(self.beamNumber);
outputStream.write_unsigned_byte(self.stateIndicator);
outputStream.write_unsigned_byte(self.padding2);
outputStream.write_float(self.azimuthOffset);
outputStream.write_float(self.azimuthWidth);
outputStream.write_float(self.azimuthPullRate);
outputStream.write_float(self.azimuthPullAcceleration);
outputStream.write_float(self.elevationOffset);
outputStream.write_float(self.elevationWidth);
outputStream.write_float(self.elevationPullRate);
outputStream.write_float(self.elevationPullAcceleration);
outputStream.write_unsigned_int(self.padding3);
Instance variables
var azimuthOffset
var azimuthPullAcceleration
var azimuthPullRate
var azimuthWidth
var beamNumber
var elevationOffset
var elevationPullAcceleration
var elevationPullRate
var elevationWidth
var emitterNumber
var padding
var padding2
var padding3
var recordLength
var recordType
var stateIndicator
class AngularVelocityVector
Angular velocity measured in radians per second out each of the entity's own coordinate axes. Order of measurement is angular velocity around the x, y, and z axis of the entity. The positive direction is determined by the right hand rule. Section 6.2.7
class AngularVelocityVector( object ):
"""Angular velocity measured in radians per second out each of the entity's own coordinate axes. Order of measurement is angular velocity around the x, y, and z axis of the entity. The positive direction is determined by the right hand rule. Section 6.2.7"""
def __init__(self):
""" Initializer for AngularVelocityVector"""
self.x = 0
""" velocity about the x axis"""
self.y = 0
""" velocity about the y axis"""
self.z = 0
""" velocity about the zaxis"""
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_float(self.x);
outputStream.write_float(self.y);
outputStream.write_float(self.z);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.x = inputStream.read_float();
self.y = inputStream.read_float();
self.z = inputStream.read_float();
Ancestors (in MRO)
- AngularVelocityVector
- builtins.object
Static methods
def __init__(
self)
Initializer for AngularVelocityVector
def __init__(self):
""" Initializer for AngularVelocityVector"""
self.x = 0
""" velocity about the x axis"""
self.y = 0
""" velocity about the y axis"""
self.z = 0
""" velocity about the zaxis"""
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.x = inputStream.read_float();
self.y = inputStream.read_float();
self.z = inputStream.read_float();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_float(self.x);
outputStream.write_float(self.y);
outputStream.write_float(self.z);
Instance variables
var x
velocity about the x axis
var y
velocity about the y axis
var z
velocity about the zaxis
class AntennaLocation
Location of the radiating portion of the antenna, specified in world coordinates and entity coordinates. Section 6.2.8
class AntennaLocation( object ):
"""Location of the radiating portion of the antenna, specified in world coordinates and entity coordinates. Section 6.2.8"""
def __init__(self):
""" Initializer for AntennaLocation"""
self.antennaLocation = Vector3Double();
""" Location of the radiating portion of the antenna in world coordinates"""
self.relativeAntennaLocation = Vector3Float();
""" Location of the radiating portion of the antenna in entity coordinates"""
def serialize(self, outputStream):
"""serialize the class """
self.antennaLocation.serialize(outputStream)
self.relativeAntennaLocation.serialize(outputStream)
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.antennaLocation.parse(inputStream)
self.relativeAntennaLocation.parse(inputStream)
Ancestors (in MRO)
- AntennaLocation
- builtins.object
Static methods
def __init__(
self)
Initializer for AntennaLocation
def __init__(self):
""" Initializer for AntennaLocation"""
self.antennaLocation = Vector3Double();
""" Location of the radiating portion of the antenna in world coordinates"""
self.relativeAntennaLocation = Vector3Float();
""" Location of the radiating portion of the antenna in entity coordinates"""
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.antennaLocation.parse(inputStream)
self.relativeAntennaLocation.parse(inputStream)
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
self.antennaLocation.serialize(outputStream)
self.relativeAntennaLocation.serialize(outputStream)
Instance variables
var antennaLocation
Location of the radiating portion of the antenna in world coordinates
var relativeAntennaLocation
Location of the radiating portion of the antenna in entity coordinates
class ArealObjectStatePdu
Information about the addition/modification of an oobject that is geometrically anchored to the terrain with a set of three or more points that come to a closure. Section 7.10.6 COMPLETE
class ArealObjectStatePdu( SyntheticEnvironmentFamilyPdu ):
"""Information about the addition/modification of an oobject that is geometrically anchored to the terrain with a set of three or more points that come to a closure. Section 7.10.6 COMPLETE"""
def __init__(self):
""" Initializer for ArealObjectStatePdu"""
super(ArealObjectStatePdu, self).__init__()
self.objectID = EntityID();
""" Object in synthetic environment"""
self.referencedObjectID = EntityID();
""" Object with which this point object is associated"""
self.updateNumber = 0
""" unique update number of each state transition of an object"""
self.forceID = 0
""" force ID"""
self.modifications = 0
""" modifications enumeration"""
self.objectType = EntityType();
""" Object type"""
self.specificObjectAppearance = 0
""" Object appearance"""
self.generalObjectAppearance = 0
""" Object appearance"""
self.numberOfPoints = 0
""" Number of points"""
self.requesterID = SimulationAddress();
""" requesterID"""
self.receivingID = SimulationAddress();
""" receiver ID"""
self.objectLocation = []
""" location of object"""
self.pduType = 45
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( ArealObjectStatePdu, self ).serialize(outputStream)
self.objectID.serialize(outputStream)
self.referencedObjectID.serialize(outputStream)
outputStream.write_unsigned_short(self.updateNumber);
outputStream.write_unsigned_byte(self.forceID);
outputStream.write_unsigned_byte(self.modifications);
self.objectType.serialize(outputStream)
outputStream.write_unsigned_int(self.specificObjectAppearance);
outputStream.write_unsigned_short(self.generalObjectAppearance);
outputStream.write_unsigned_short( len(self.objectLocation));
self.requesterID.serialize(outputStream)
self.receivingID.serialize(outputStream)
for anObj in self.objectLocation:
anObj.serialize(outputStream)
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( ArealObjectStatePdu, self).parse(inputStream)
self.objectID.parse(inputStream)
self.referencedObjectID.parse(inputStream)
self.updateNumber = inputStream.read_unsigned_short();
self.forceID = inputStream.read_unsigned_byte();
self.modifications = inputStream.read_unsigned_byte();
self.objectType.parse(inputStream)
self.specificObjectAppearance = inputStream.read_unsigned_int();
self.generalObjectAppearance = inputStream.read_unsigned_short();
self.numberOfPoints = inputStream.read_unsigned_short();
self.requesterID.parse(inputStream)
self.receivingID.parse(inputStream)
for idx in range(0, self.numberOfPoints):
element = null()
element.parse(inputStream)
self.objectLocation.append(element)
Ancestors (in MRO)
- ArealObjectStatePdu
- SyntheticEnvironmentFamilyPdu
- Pdu
- PduSuperclass
- builtins.object
Static methods
def __init__(
self)
Initializer for ArealObjectStatePdu
def __init__(self):
""" Initializer for ArealObjectStatePdu"""
super(ArealObjectStatePdu, self).__init__()
self.objectID = EntityID();
""" Object in synthetic environment"""
self.referencedObjectID = EntityID();
""" Object with which this point object is associated"""
self.updateNumber = 0
""" unique update number of each state transition of an object"""
self.forceID = 0
""" force ID"""
self.modifications = 0
""" modifications enumeration"""
self.objectType = EntityType();
""" Object type"""
self.specificObjectAppearance = 0
""" Object appearance"""
self.generalObjectAppearance = 0
""" Object appearance"""
self.numberOfPoints = 0
""" Number of points"""
self.requesterID = SimulationAddress();
""" requesterID"""
self.receivingID = SimulationAddress();
""" receiver ID"""
self.objectLocation = []
""" location of object"""
self.pduType = 45
""" initialize value """
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( ArealObjectStatePdu, self).parse(inputStream)
self.objectID.parse(inputStream)
self.referencedObjectID.parse(inputStream)
self.updateNumber = inputStream.read_unsigned_short();
self.forceID = inputStream.read_unsigned_byte();
self.modifications = inputStream.read_unsigned_byte();
self.objectType.parse(inputStream)
self.specificObjectAppearance = inputStream.read_unsigned_int();
self.generalObjectAppearance = inputStream.read_unsigned_short();
self.numberOfPoints = inputStream.read_unsigned_short();
self.requesterID.parse(inputStream)
self.receivingID.parse(inputStream)
for idx in range(0, self.numberOfPoints):
element = null()
element.parse(inputStream)
self.objectLocation.append(element)
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
super( ArealObjectStatePdu, self ).serialize(outputStream)
self.objectID.serialize(outputStream)
self.referencedObjectID.serialize(outputStream)
outputStream.write_unsigned_short(self.updateNumber);
outputStream.write_unsigned_byte(self.forceID);
outputStream.write_unsigned_byte(self.modifications);
self.objectType.serialize(outputStream)
outputStream.write_unsigned_int(self.specificObjectAppearance);
outputStream.write_unsigned_short(self.generalObjectAppearance);
outputStream.write_unsigned_short( len(self.objectLocation));
self.requesterID.serialize(outputStream)
self.receivingID.serialize(outputStream)
for anObj in self.objectLocation:
anObj.serialize(outputStream)
Instance variables
var forceID
force ID
var generalObjectAppearance
Object appearance
var modifications
modifications enumeration
var numberOfPoints
Number of points
var objectID
Object in synthetic environment
var objectLocation
location of object
var objectType
Object type
var pduType
initialize value
var receivingID
receiver ID
var referencedObjectID
Object with which this point object is associated
var requesterID
requesterID
var specificObjectAppearance
Object appearance
var updateNumber
unique update number of each state transition of an object
class ArticulatedParts
articulated parts for movable parts and a combination of moveable/attached parts of an entity. Section <IP_ADDRESS>
class ArticulatedParts( object ):
""" articulated parts for movable parts and a combination of moveable/attached parts of an entity. Section <IP_ADDRESS>"""
def __init__(self):
""" Initializer for ArticulatedParts"""
self.recordType = 0
""" the identification of the Variable Parameter record. Enumeration from EBV"""
self.changeIndicator = 0
""" indicate the change of any parameter for any articulated part. Starts at zero, incremented for each change """
self.partAttachedTo = 0
""" the identification of the articulated part to which this articulation parameter is attached. This field shall be specified by a 16-bit unsigned integer. This field shall contain the value zero if the articulated part is attached directly to the entity."""
self.parameterType = 0
""" the type of parameter represented, 32 bit enumeration"""
self.parameterValue = 0
""" The definition of the 64 bits shall be determined based on the type of parameter specified in the Parameter Type field """
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_byte(self.recordType);
outputStream.write_unsigned_byte(self.changeIndicator);
outputStream.write_unsigned_short(self.partAttachedTo);
outputStream.write_unsigned_int(self.parameterType);
outputStream.write_long(self.parameterValue);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.recordType = inputStream.read_unsigned_byte();
self.changeIndicator = inputStream.read_unsigned_byte();
self.partAttachedTo = inputStream.read_unsigned_short();
self.parameterType = inputStream.read_unsigned_int();
self.parameterValue = inputStream.read_long();
Ancestors (in MRO)
- ArticulatedParts
- builtins.object
Static methods
def __init__(
self)
Initializer for ArticulatedParts
def __init__(self):
""" Initializer for ArticulatedParts"""
self.recordType = 0
""" the identification of the Variable Parameter record. Enumeration from EBV"""
self.changeIndicator = 0
""" indicate the change of any parameter for any articulated part. Starts at zero, incremented for each change """
self.partAttachedTo = 0
""" the identification of the articulated part to which this articulation parameter is attached. This field shall be specified by a 16-bit unsigned integer. This field shall contain the value zero if the articulated part is attached directly to the entity."""
self.parameterType = 0
""" the type of parameter represented, 32 bit enumeration"""
self.parameterValue = 0
""" The definition of the 64 bits shall be determined based on the type of parameter specified in the Parameter Type field """
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.recordType = inputStream.read_unsigned_byte();
self.changeIndicator = inputStream.read_unsigned_byte();
self.partAttachedTo = inputStream.read_unsigned_short();
self.parameterType = inputStream.read_unsigned_int();
self.parameterValue = inputStream.read_long();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_byte(self.recordType);
outputStream.write_unsigned_byte(self.changeIndicator);
outputStream.write_unsigned_short(self.partAttachedTo);
outputStream.write_unsigned_int(self.parameterType);
outputStream.write_long(self.parameterValue);
Instance variables
var changeIndicator
indicate the change of any parameter for any articulated part. Starts at zero, incremented for each change
var parameterType
the type of parameter represented, 32 bit enumeration
var parameterValue
The definition of the 64 bits shall be determined based on the type of parameter specified in the Parameter Type field
var partAttachedTo
the identification of the articulated part to which this articulation parameter is attached. This field shall be specified by a 16-bit unsigned integer. This field shall contain the value zero if the articulated part is attached directly to the entity.
var recordType
the identification of the Variable Parameter record. Enumeration from EBV
class Association
An entity's associations with other entities and/or locations. For each association, this record shall specify the type of the association, the associated entity's EntityID and/or the associated location's world coordinates. This record may be used (optionally) in a transfer transaction to send internal state data from the divesting simulation to the acquiring simulation (see 5.9.4). This record may also be used for other purposes. Section 6.2.9
class Association( object ):
"""An entity's associations with other entities and/or locations. For each association, this record shall specify the type of the association, the associated entity's EntityID and/or the associated location's world coordinates. This record may be used (optionally) in a transfer transaction to send internal state data from the divesting simulation to the acquiring simulation (see 5.9.4). This record may also be used for other purposes. Section 6.2.9"""
def __init__(self):
""" Initializer for Association"""
self.associationType = 0
self.padding4 = 0
self.associatedEntityID = EntityID();
""" identity of associated entity. If none, NO_SPECIFIC_ENTITY"""
self.associatedLocation = Vector3Double();
""" location, in world coordinates"""
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_byte(self.associationType);
outputStream.write_unsigned_byte(self.padding4);
self.associatedEntityID.serialize(outputStream)
self.associatedLocation.serialize(outputStream)
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.associationType = inputStream.read_unsigned_byte();
self.padding4 = inputStream.read_unsigned_byte();
self.associatedEntityID.parse(inputStream)
self.associatedLocation.parse(inputStream)
Ancestors (in MRO)
- Association
- builtins.object
Static methods
def __init__(
self)
Initializer for Association
def __init__(self):
""" Initializer for Association"""
self.associationType = 0
self.padding4 = 0
self.associatedEntityID = EntityID();
""" identity of associated entity. If none, NO_SPECIFIC_ENTITY"""
self.associatedLocation = Vector3Double();
""" location, in world coordinates"""
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.associationType = inputStream.read_unsigned_byte();
self.padding4 = inputStream.read_unsigned_byte();
self.associatedEntityID.parse(inputStream)
self.associatedLocation.parse(inputStream)
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_byte(self.associationType);
outputStream.write_unsigned_byte(self.padding4);
self.associatedEntityID.serialize(outputStream)
self.associatedLocation.serialize(outputStream)
Instance variables
var associatedEntityID
identity of associated entity. If none, NO_SPECIFIC_ENTITY
var associatedLocation
location, in world coordinates
var associationType
var padding4
class AttachedParts
Removable parts that may be attached to an entity. Section <IP_ADDRESS>
class AttachedParts( object ):
"""Removable parts that may be attached to an entity. Section <IP_ADDRESS>"""
def __init__(self):
""" Initializer for AttachedParts"""
self.recordType = 1
""" the identification of the Variable Parameter record. Enumeration from EBV"""
self.detachedIndicator = 0
""" 0 = attached, 1 = detached. See I.2.3.1 for state transition diagram"""
self.partAttachedTo = 0
""" the identification of the articulated part to which this articulation parameter is attached. This field shall be specified by a 16-bit unsigned integer. This field shall contain the value zero if the articulated part is attached directly to the entity."""
self.parameterType = 0
""" The location or station to which the part is attached"""
self.parameterValue = 0
""" The definition of the 64 bits shall be determined based on the type of parameter specified in the Parameter Type field """
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_byte(self.recordType);
outputStream.write_unsigned_byte(self.detachedIndicator);
outputStream.write_unsigned_short(self.partAttachedTo);
outputStream.write_unsigned_int(self.parameterType);
outputStream.write_long(self.parameterValue);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.recordType = inputStream.read_unsigned_byte();
self.detachedIndicator = inputStream.read_unsigned_byte();
self.partAttachedTo = inputStream.read_unsigned_short();
self.parameterType = inputStream.read_unsigned_int();
self.parameterValue = inputStream.read_long();
Ancestors (in MRO)
- AttachedParts
- builtins.object
Static methods
def __init__(
self)
Initializer for AttachedParts
def __init__(self):
""" Initializer for AttachedParts"""
self.recordType = 1
""" the identification of the Variable Parameter record. Enumeration from EBV"""
self.detachedIndicator = 0
""" 0 = attached, 1 = detached. See I.2.3.1 for state transition diagram"""
self.partAttachedTo = 0
""" the identification of the articulated part to which this articulation parameter is attached. This field shall be specified by a 16-bit unsigned integer. This field shall contain the value zero if the articulated part is attached directly to the entity."""
self.parameterType = 0
""" The location or station to which the part is attached"""
self.parameterValue = 0
""" The definition of the 64 bits shall be determined based on the type of parameter specified in the Parameter Type field """
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.recordType = inputStream.read_unsigned_byte();
self.detachedIndicator = inputStream.read_unsigned_byte();
self.partAttachedTo = inputStream.read_unsigned_short();
self.parameterType = inputStream.read_unsigned_int();
self.parameterValue = inputStream.read_long();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_byte(self.recordType);
outputStream.write_unsigned_byte(self.detachedIndicator);
outputStream.write_unsigned_short(self.partAttachedTo);
outputStream.write_unsigned_int(self.parameterType);
outputStream.write_long(self.parameterValue);
Instance variables
var detachedIndicator
0 = attached, 1 = detached. See I.2.3.1 for state transition diagram
var parameterType
The location or station to which the part is attached
var parameterValue
The definition of the 64 bits shall be determined based on the type of parameter specified in the Parameter Type field
var partAttachedTo
the identification of the articulated part to which this articulation parameter is attached. This field shall be specified by a 16-bit unsigned integer. This field shall contain the value zero if the articulated part is attached directly to the entity.
var recordType
the identification of the Variable Parameter record. Enumeration from EBV
class Attribute
Used to convey information for one or more attributes. Attributes conform to the standard variable record format of 6.2.82. Section 6.2.10. NOT COMPLETE
class Attribute( object ):
"""Used to convey information for one or more attributes. Attributes conform to the standard variable record format of 6.2.82. Section 6.2.10. NOT COMPLETE"""
def __init__(self):
""" Initializer for Attribute"""
self.recordType = 0
self.recordLength = 0
self.recordSpecificFields = 0
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_int(self.recordType);
outputStream.write_unsigned_short(self.recordLength);
outputStream.write_long(self.recordSpecificFields);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.recordType = inputStream.read_unsigned_int();
self.recordLength = inputStream.read_unsigned_short();
self.recordSpecificFields = inputStream.read_long();
Ancestors (in MRO)
- Attribute
- builtins.object
Static methods
def __init__(
self)
Initializer for Attribute
def __init__(self):
""" Initializer for Attribute"""
self.recordType = 0
self.recordLength = 0
self.recordSpecificFields = 0
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.recordType = inputStream.read_unsigned_int();
self.recordLength = inputStream.read_unsigned_short();
self.recordSpecificFields = inputStream.read_long();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_int(self.recordType);
outputStream.write_unsigned_short(self.recordLength);
outputStream.write_long(self.recordSpecificFields);
Instance variables
var recordLength
var recordSpecificFields
var recordType
class AttributePdu
Information about individual attributes for a particular entity, other object, or event may be communicated using an Attribute PDU. The Attribute PDU shall not be used to exchange data available in any other PDU except where explicitly mentioned in the PDU issuance instructions within this standard. See 5.3.6 for the information requirements and issuance and receipt rules for this PDU. Section 7.2.6. INCOMPLETE
class AttributePdu( EntityInformationFamilyPdu ):
"""Information about individual attributes for a particular entity, other object, or event may be communicated using an Attribute PDU. The Attribute PDU shall not be used to exchange data available in any other PDU except where explicitly mentioned in the PDU issuance instructions within this standard. See 5.3.6 for the information requirements and issuance and receipt rules for this PDU. Section 7.2.6. INCOMPLETE"""
def __init__(self):
""" Initializer for AttributePdu"""
super(AttributePdu, self).__init__()
self.originatingSimulationAddress = SimulationAddress();
""" This field shall identify the simulation issuing the Attribute PDU. It shall be represented by a Simulation Address record (see 6.2.79)."""
self.padding1 = 0
""" Padding"""
self.padding2 = 0
""" Padding"""
self.attributeRecordPduType = 0
""" This field shall represent the type of the PDU that is being extended or updated, if applicable. It shall be represented by an 8-bit enumeration."""
self.attributeRecordProtocolVersion = 0
""" This field shall indicate the Protocol Version associated with the Attribute Record PDU Type. It shall be represented by an 8-bit enumeration."""
self.masterAttributeRecordType = 0
""" This field shall contain the Attribute record type of the Attribute records in the PDU if they all have the same Attribute record type. It shall be represented by a 32-bit enumeration."""
self.actionCode = 0
""" This field shall identify the action code applicable to this Attribute PDU. The Action Code shall apply to all Attribute records contained in the PDU. It shall be represented by an 8-bit enumeration."""
self.padding3 = 0
""" Padding"""
self.numberAttributeRecordSet = 0
""" This field shall specify the number of Attribute Record Sets that make up the remainder of the PDU. It shall be represented by a 16-bit unsigned integer."""
def serialize(self, outputStream):
"""serialize the class """
super( AttributePdu, self ).serialize(outputStream)
self.originatingSimulationAddress.serialize(outputStream)
outputStream.write_int(self.padding1);
outputStream.write_short(self.padding2);
outputStream.write_unsigned_byte(self.attributeRecordPduType);
outputStream.write_unsigned_byte(self.attributeRecordProtocolVersion);
outputStream.write_unsigned_int(self.masterAttributeRecordType);
outputStream.write_unsigned_byte(self.actionCode);
outputStream.write_byte(self.padding3);
outputStream.write_unsigned_short(self.numberAttributeRecordSet);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( AttributePdu, self).parse(inputStream)
self.originatingSimulationAddress.parse(inputStream)
self.padding1 = inputStream.read_int();
self.padding2 = inputStream.read_short();
self.attributeRecordPduType = inputStream.read_unsigned_byte();
self.attributeRecordProtocolVersion = inputStream.read_unsigned_byte();
self.masterAttributeRecordType = inputStream.read_unsigned_int();
self.actionCode = inputStream.read_unsigned_byte();
self.padding3 = inputStream.read_byte();
self.numberAttributeRecordSet = inputStream.read_unsigned_short();
Ancestors (in MRO)
- AttributePdu
- EntityInformationFamilyPdu
- Pdu
- PduSuperclass
- builtins.object
Static methods
def __init__(
self)
Initializer for AttributePdu
def __init__(self):
""" Initializer for AttributePdu"""
super(AttributePdu, self).__init__()
self.originatingSimulationAddress = SimulationAddress();
""" This field shall identify the simulation issuing the Attribute PDU. It shall be represented by a Simulation Address record (see 6.2.79)."""
self.padding1 = 0
""" Padding"""
self.padding2 = 0
""" Padding"""
self.attributeRecordPduType = 0
""" This field shall represent the type of the PDU that is being extended or updated, if applicable. It shall be represented by an 8-bit enumeration."""
self.attributeRecordProtocolVersion = 0
""" This field shall indicate the Protocol Version associated with the Attribute Record PDU Type. It shall be represented by an 8-bit enumeration."""
self.masterAttributeRecordType = 0
""" This field shall contain the Attribute record type of the Attribute records in the PDU if they all have the same Attribute record type. It shall be represented by a 32-bit enumeration."""
self.actionCode = 0
""" This field shall identify the action code applicable to this Attribute PDU. The Action Code shall apply to all Attribute records contained in the PDU. It shall be represented by an 8-bit enumeration."""
self.padding3 = 0
""" Padding"""
self.numberAttributeRecordSet = 0
""" This field shall specify the number of Attribute Record Sets that make up the remainder of the PDU. It shall be represented by a 16-bit unsigned integer."""
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( AttributePdu, self).parse(inputStream)
self.originatingSimulationAddress.parse(inputStream)
self.padding1 = inputStream.read_int();
self.padding2 = inputStream.read_short();
self.attributeRecordPduType = inputStream.read_unsigned_byte();
self.attributeRecordProtocolVersion = inputStream.read_unsigned_byte();
self.masterAttributeRecordType = inputStream.read_unsigned_int();
self.actionCode = inputStream.read_unsigned_byte();
self.padding3 = inputStream.read_byte();
self.numberAttributeRecordSet = inputStream.read_unsigned_short();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
super( AttributePdu, self ).serialize(outputStream)
self.originatingSimulationAddress.serialize(outputStream)
outputStream.write_int(self.padding1);
outputStream.write_short(self.padding2);
outputStream.write_unsigned_byte(self.attributeRecordPduType);
outputStream.write_unsigned_byte(self.attributeRecordProtocolVersion);
outputStream.write_unsigned_int(self.masterAttributeRecordType);
outputStream.write_unsigned_byte(self.actionCode);
outputStream.write_byte(self.padding3);
outputStream.write_unsigned_short(self.numberAttributeRecordSet);
Instance variables
var actionCode
This field shall identify the action code applicable to this Attribute PDU. The Action Code shall apply to all Attribute records contained in the PDU. It shall be represented by an 8-bit enumeration.
var attributeRecordPduType
This field shall represent the type of the PDU that is being extended or updated, if applicable. It shall be represented by an 8-bit enumeration.
var attributeRecordProtocolVersion
This field shall indicate the Protocol Version associated with the Attribute Record PDU Type. It shall be represented by an 8-bit enumeration.
var masterAttributeRecordType
This field shall contain the Attribute record type of the Attribute records in the PDU if they all have the same Attribute record type. It shall be represented by a 32-bit enumeration.
var numberAttributeRecordSet
This field shall specify the number of Attribute Record Sets that make up the remainder of the PDU. It shall be represented by a 16-bit unsigned integer.
var originatingSimulationAddress
This field shall identify the simulation issuing the Attribute PDU. It shall be represented by a Simulation Address record (see 6.2.79).
var padding1
Padding
var padding2
Padding
var padding3
Padding
class BeamAntennaPattern
Used when the antenna pattern type field has a value of 1. Specifies the direction, pattern, and polarization of radiation from an antenna. Section <IP_ADDRESS>
class BeamAntennaPattern( object ):
"""Used when the antenna pattern type field has a value of 1. Specifies the direction, pattern, and polarization of radiation from an antenna. Section <IP_ADDRESS>"""
def __init__(self):
""" Initializer for BeamAntennaPattern"""
self.beamDirection = EulerAngles();
""" The rotation that transforms the reference coordinate sytem into the beam coordinate system. Either world coordinates or entity coordinates may be used as the reference coordinate system, as specified by the reference system field of the antenna pattern record."""
self.azimuthBeamwidth = 0
self.elevationBeamwidth = 0
self.referenceSystem = 0
self.padding1 = 0
self.padding2 = 0
self.ez = 0.0
""" This field shall specify the magnitude of the Z-component (in beam coordinates) of the Electrical field at some arbitrary single point in the main beam and in the far field of the antenna. """
self.ex = 0.0
""" This field shall specify the magnitude of the X-component (in beam coordinates) of the Electri- cal field at some arbitrary single point in the main beam and in the far field of the antenna."""
self.phase = 0.0
""" This field shall specify the phase angle between EZ and EX in radians. If fully omni-direc- tional antenna is modeled using beam pattern type one, the omni-directional antenna shall be repre- sented by beam direction Euler angles psi, theta, and phi of zero, an azimuth beamwidth of 2PI, and an elevation beamwidth of PI"""
self.padding3 = 0
""" padding"""
def serialize(self, outputStream):
"""serialize the class """
self.beamDirection.serialize(outputStream)
outputStream.write_float(self.azimuthBeamwidth);
outputStream.write_float(self.elevationBeamwidth);
outputStream.write_unsigned_byte(self.referenceSystem);
outputStream.write_unsigned_byte(self.padding1);
outputStream.write_unsigned_short(self.padding2);
outputStream.write_float(self.ez);
outputStream.write_float(self.ex);
outputStream.write_float(self.phase);
outputStream.write_unsigned_int(self.padding3);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.beamDirection.parse(inputStream)
self.azimuthBeamwidth = inputStream.read_float();
self.elevationBeamwidth = inputStream.read_float();
self.referenceSystem = inputStream.read_unsigned_byte();
self.padding1 = inputStream.read_unsigned_byte();
self.padding2 = inputStream.read_unsigned_short();
self.ez = inputStream.read_float();
self.ex = inputStream.read_float();
self.phase = inputStream.read_float();
self.padding3 = inputStream.read_unsigned_int();
Ancestors (in MRO)
- BeamAntennaPattern
- builtins.object
Static methods
def __init__(
self)
Initializer for BeamAntennaPattern
def __init__(self):
""" Initializer for BeamAntennaPattern"""
self.beamDirection = EulerAngles();
""" The rotation that transforms the reference coordinate sytem into the beam coordinate system. Either world coordinates or entity coordinates may be used as the reference coordinate system, as specified by the reference system field of the antenna pattern record."""
self.azimuthBeamwidth = 0
self.elevationBeamwidth = 0
self.referenceSystem = 0
self.padding1 = 0
self.padding2 = 0
self.ez = 0.0
""" This field shall specify the magnitude of the Z-component (in beam coordinates) of the Electrical field at some arbitrary single point in the main beam and in the far field of the antenna. """
self.ex = 0.0
""" This field shall specify the magnitude of the X-component (in beam coordinates) of the Electri- cal field at some arbitrary single point in the main beam and in the far field of the antenna."""
self.phase = 0.0
""" This field shall specify the phase angle between EZ and EX in radians. If fully omni-direc- tional antenna is modeled using beam pattern type one, the omni-directional antenna shall be repre- sented by beam direction Euler angles psi, theta, and phi of zero, an azimuth beamwidth of 2PI, and an elevation beamwidth of PI"""
self.padding3 = 0
""" padding"""
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.beamDirection.parse(inputStream)
self.azimuthBeamwidth = inputStream.read_float();
self.elevationBeamwidth = inputStream.read_float();
self.referenceSystem = inputStream.read_unsigned_byte();
self.padding1 = inputStream.read_unsigned_byte();
self.padding2 = inputStream.read_unsigned_short();
self.ez = inputStream.read_float();
self.ex = inputStream.read_float();
self.phase = inputStream.read_float();
self.padding3 = inputStream.read_unsigned_int();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
self.beamDirection.serialize(outputStream)
outputStream.write_float(self.azimuthBeamwidth);
outputStream.write_float(self.elevationBeamwidth);
outputStream.write_unsigned_byte(self.referenceSystem);
outputStream.write_unsigned_byte(self.padding1);
outputStream.write_unsigned_short(self.padding2);
outputStream.write_float(self.ez);
outputStream.write_float(self.ex);
outputStream.write_float(self.phase);
outputStream.write_unsigned_int(self.padding3);
Instance variables
var azimuthBeamwidth
var beamDirection
The rotation that transforms the reference coordinate sytem into the beam coordinate system. Either world coordinates or entity coordinates may be used as the reference coordinate system, as specified by the reference system field of the antenna pattern record.
var elevationBeamwidth
var ex
This field shall specify the magnitude of the X-component (in beam coordinates) of the Electri- cal field at some arbitrary single point in the main beam and in the far field of the antenna.
var ez
This field shall specify the magnitude of the Z-component (in beam coordinates) of the Electrical field at some arbitrary single point in the main beam and in the far field of the antenna.
var padding1
var padding2
var padding3
padding
var phase
This field shall specify the phase angle between EZ and EX in radians. If fully omni-direc- tional antenna is modeled using beam pattern type one, the omni-directional antenna shall be repre- sented by beam direction Euler angles psi, theta, and phi of zero, an azimuth beamwidth of 2PI, and an elevation beamwidth of PI
var referenceSystem
class BeamData
Describes the scan volue of an emitter beam. Section 6.2.11.
class BeamData( object ):
"""Describes the scan volue of an emitter beam. Section 6.2.11."""
def __init__(self):
""" Initializer for BeamData"""
self.beamAzimuthCenter = 0
""" Specifies the beam azimuth an elevation centers and corresponding half-angles to describe the scan volume"""
self.beamAzimuthSweep = 0
""" Specifies the beam azimuth sweep to determine scan volume"""
self.beamElevationCenter = 0
""" Specifies the beam elevation center to determine scan volume"""
self.beamElevationSweep = 0
""" Specifies the beam elevation sweep to determine scan volume"""
self.beamSweepSync = 0
""" allows receiver to synchronize its regenerated scan pattern to that of the emmitter. Specifies the percentage of time a scan is through its pattern from its origion."""
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_float(self.beamAzimuthCenter);
outputStream.write_float(self.beamAzimuthSweep);
outputStream.write_float(self.beamElevationCenter);
outputStream.write_float(self.beamElevationSweep);
outputStream.write_float(self.beamSweepSync);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.beamAzimuthCenter = inputStream.read_float();
self.beamAzimuthSweep = inputStream.read_float();
self.beamElevationCenter = inputStream.read_float();
self.beamElevationSweep = inputStream.read_float();
self.beamSweepSync = inputStream.read_float();
Ancestors (in MRO)
- BeamData
- builtins.object
Static methods
def __init__(
self)
Initializer for BeamData
def __init__(self):
""" Initializer for BeamData"""
self.beamAzimuthCenter = 0
""" Specifies the beam azimuth an elevation centers and corresponding half-angles to describe the scan volume"""
self.beamAzimuthSweep = 0
""" Specifies the beam azimuth sweep to determine scan volume"""
self.beamElevationCenter = 0
""" Specifies the beam elevation center to determine scan volume"""
self.beamElevationSweep = 0
""" Specifies the beam elevation sweep to determine scan volume"""
self.beamSweepSync = 0
""" allows receiver to synchronize its regenerated scan pattern to that of the emmitter. Specifies the percentage of time a scan is through its pattern from its origion."""
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.beamAzimuthCenter = inputStream.read_float();
self.beamAzimuthSweep = inputStream.read_float();
self.beamElevationCenter = inputStream.read_float();
self.beamElevationSweep = inputStream.read_float();
self.beamSweepSync = inputStream.read_float();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_float(self.beamAzimuthCenter);
outputStream.write_float(self.beamAzimuthSweep);
outputStream.write_float(self.beamElevationCenter);
outputStream.write_float(self.beamElevationSweep);
outputStream.write_float(self.beamSweepSync);
Instance variables
var beamAzimuthCenter
Specifies the beam azimuth an elevation centers and corresponding half-angles to describe the scan volume
var beamAzimuthSweep
Specifies the beam azimuth sweep to determine scan volume
var beamElevationCenter
Specifies the beam elevation center to determine scan volume
var beamElevationSweep
Specifies the beam elevation sweep to determine scan volume
var beamSweepSync
allows receiver to synchronize its regenerated scan pattern to that of the emmitter. Specifies the percentage of time a scan is through its pattern from its origion.
class BeamStatus
Information related to the status of a beam. This is contained in the beam status field of the electromagnitec emission PDU. The first bit determines whether the beam is active (0) or deactivated (1). Section 6.2.12.
class BeamStatus( object ):
"""Information related to the status of a beam. This is contained in the beam status field of the electromagnitec emission PDU. The first bit determines whether the beam is active (0) or deactivated (1). Section 6.2.12."""
def __init__(self):
""" Initializer for BeamStatus"""
self.beamState = 0
""" First bit zero means beam is active, first bit = 1 means deactivated. The rest is padding."""
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_byte(self.beamState);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.beamState = inputStream.read_unsigned_byte();
Ancestors (in MRO)
- BeamStatus
- builtins.object
Static methods
def __init__(
self)
Initializer for BeamStatus
def __init__(self):
""" Initializer for BeamStatus"""
self.beamState = 0
""" First bit zero means beam is active, first bit = 1 means deactivated. The rest is padding."""
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.beamState = inputStream.read_unsigned_byte();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_byte(self.beamState);
Instance variables
var beamState
First bit zero means beam is active, first bit = 1 means deactivated. The rest is padding.
class BlankingSector
The Blanking Sector attribute record may be used to convey persistent areas within a scan volume where emitter power for a specific active emitter beam is reduced to an insignificant value. Section <IP_ADDRESS>
class BlankingSector( object ):
"""The Blanking Sector attribute record may be used to convey persistent areas within a scan volume where emitter power for a specific active emitter beam is reduced to an insignificant value. Section <IP_ADDRESS>"""
def __init__(self):
""" Initializer for BlankingSector"""
self.recordType = 3500
self.recordLength = 40
self.padding = 0
self.emitterNumber = 0
self.beamNumber = 0
self.stateIndicator = 0
self.padding2 = 0
self.leftAzimuth = 0
self.rightAzimuth = 0
self.lowerElevation = 0
self.upperElevation = 0
self.residualPower = 0
self.padding3 = 0
self.padding4 = 0
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_int(self.recordType);
outputStream.write_unsigned_short(self.recordLength);
outputStream.write_unsigned_short(self.padding);
outputStream.write_unsigned_byte(self.emitterNumber);
outputStream.write_unsigned_byte(self.beamNumber);
outputStream.write_unsigned_byte(self.stateIndicator);
outputStream.write_unsigned_byte(self.padding2);
outputStream.write_float(self.leftAzimuth);
outputStream.write_float(self.rightAzimuth);
outputStream.write_float(self.lowerElevation);
outputStream.write_float(self.upperElevation);
outputStream.write_float(self.residualPower);
outputStream.write_int(self.padding3);
outputStream.write_int(self.padding4);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.recordType = inputStream.read_int();
self.recordLength = inputStream.read_unsigned_short();
self.padding = inputStream.read_unsigned_short();
self.emitterNumber = inputStream.read_unsigned_byte();
self.beamNumber = inputStream.read_unsigned_byte();
self.stateIndicator = inputStream.read_unsigned_byte();
self.padding2 = inputStream.read_unsigned_byte();
self.leftAzimuth = inputStream.read_float();
self.rightAzimuth = inputStream.read_float();
self.lowerElevation = inputStream.read_float();
self.upperElevation = inputStream.read_float();
self.residualPower = inputStream.read_float();
self.padding3 = inputStream.read_int();
self.padding4 = inputStream.read_int();
Ancestors (in MRO)
- BlankingSector
- builtins.object
Static methods
def __init__(
self)
Initializer for BlankingSector
def __init__(self):
""" Initializer for BlankingSector"""
self.recordType = 3500
self.recordLength = 40
self.padding = 0
self.emitterNumber = 0
self.beamNumber = 0
self.stateIndicator = 0
self.padding2 = 0
self.leftAzimuth = 0
self.rightAzimuth = 0
self.lowerElevation = 0
self.upperElevation = 0
self.residualPower = 0
self.padding3 = 0
self.padding4 = 0
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.recordType = inputStream.read_int();
self.recordLength = inputStream.read_unsigned_short();
self.padding = inputStream.read_unsigned_short();
self.emitterNumber = inputStream.read_unsigned_byte();
self.beamNumber = inputStream.read_unsigned_byte();
self.stateIndicator = inputStream.read_unsigned_byte();
self.padding2 = inputStream.read_unsigned_byte();
self.leftAzimuth = inputStream.read_float();
self.rightAzimuth = inputStream.read_float();
self.lowerElevation = inputStream.read_float();
self.upperElevation = inputStream.read_float();
self.residualPower = inputStream.read_float();
self.padding3 = inputStream.read_int();
self.padding4 = inputStream.read_int();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_int(self.recordType);
outputStream.write_unsigned_short(self.recordLength);
outputStream.write_unsigned_short(self.padding);
outputStream.write_unsigned_byte(self.emitterNumber);
outputStream.write_unsigned_byte(self.beamNumber);
outputStream.write_unsigned_byte(self.stateIndicator);
outputStream.write_unsigned_byte(self.padding2);
outputStream.write_float(self.leftAzimuth);
outputStream.write_float(self.rightAzimuth);
outputStream.write_float(self.lowerElevation);
outputStream.write_float(self.upperElevation);
outputStream.write_float(self.residualPower);
outputStream.write_int(self.padding3);
outputStream.write_int(self.padding4);
Instance variables
var beamNumber
var emitterNumber
var leftAzimuth
var lowerElevation
var padding
var padding2
var padding3
var padding4
var recordLength
var recordType
var residualPower
var rightAzimuth
var stateIndicator
var upperElevation
class ChangeOptions
This is wrong and breaks serialization. See section 6.2.13 aka B.2.41
class ChangeOptions( object ):
"""This is wrong and breaks serialization. See section 6.2.13 aka B.2.41"""
def __init__(self):
""" Initializer for ChangeOptions"""
def serialize(self, outputStream):
"""serialize the class """
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
Ancestors (in MRO)
- ChangeOptions
- builtins.object
Static methods
def __init__(
self)
Initializer for ChangeOptions
def __init__(self):
""" Initializer for ChangeOptions"""
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
class ClockTime
Time measurements that exceed one hour are represented by this record. The first field is the hours since the unix epoch (Jan 1 1970, used by most Unix systems and java) and the second field the timestamp units since the top of the hour. Section 6.2.14
class ClockTime( object ):
"""Time measurements that exceed one hour are represented by this record. The first field is the hours since the unix epoch (Jan 1 1970, used by most Unix systems and java) and the second field the timestamp units since the top of the hour. Section 6.2.14"""
def __init__(self):
""" Initializer for ClockTime"""
self.hour = 0
""" Hours in UTC"""
self.timePastHour = 0
""" Time past the hour"""
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_int(self.hour);
outputStream.write_unsigned_int(self.timePastHour);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.hour = inputStream.read_unsigned_int();
self.timePastHour = inputStream.read_unsigned_int();
Ancestors (in MRO)
- ClockTime
- builtins.object
Static methods
def __init__(
self)
Initializer for ClockTime
def __init__(self):
""" Initializer for ClockTime"""
self.hour = 0
""" Hours in UTC"""
self.timePastHour = 0
""" Time past the hour"""
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
self.hour = inputStream.read_unsigned_int();
self.timePastHour = inputStream.read_unsigned_int();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
outputStream.write_unsigned_int(self.hour);
outputStream.write_unsigned_int(self.timePastHour);
Instance variables
var hour
Hours in UTC
var timePastHour
Time past the hour
class CollisionElasticPdu
Information about elastic collisions in a DIS exercise shall be communicated using a Collision-Elastic PDU. Section 7.2.4. COMPLETE
class CollisionElasticPdu( EntityInformationFamilyPdu ):
"""Information about elastic collisions in a DIS exercise shall be communicated using a Collision-Elastic PDU. Section 7.2.4. COMPLETE"""
def __init__(self):
""" Initializer for CollisionElasticPdu"""
super(CollisionElasticPdu, self).__init__()
self.issuingEntityID = EntityID();
""" This field shall identify the entity that is issuing the PDU and shall be represented by an Entity Identifier record (see 6.2.28)"""
self.collidingEntityID = EntityID();
""" This field shall identify the entity that has collided with the issuing entity. This field shall be a valid identifier of an entity or server capable of responding to the receipt of this Collision-Elastic PDU. This field shall be represented by an Entity Identifier record (see 6.2.28)."""
self.collisionEventID = EventIdentifier();
""" This field shall contain an identification generated by the issuing simulation application to associate related collision events. This field shall be represented by an Event Identifier record (see 6.2.34)."""
self.pad = 0
""" some padding"""
self.contactVelocity = Vector3Float();
""" This field shall contain the velocity at the time the collision is detected at the point the collision is detected. The velocity shall be represented in world coordinates. This field shall be represented by the Linear Velocity Vector record [see 6.2.95 item c)]"""
self.mass = 0
""" This field shall contain the mass of the issuing entity and shall be represented by a 32-bit floating point number representing kilograms"""
self.locationOfImpact = Vector3Float();
""" This field shall specify the location of the collision with respect to the entity with which the issuing entity collided. This field shall be represented by an Entity Coordinate Vector record [see 6.2.95 item a)]."""
self.collisionIntermediateResultXX = 0
""" These six records represent the six independent components of a positive semi-definite matrix formed by pre-multiplying and post-multiplying the tensor of inertia, by the anti-symmetric matrix generated by the moment arm, and shall be represented by 32-bit floating point numbers (see <IP_ADDRESS>)"""
self.collisionIntermediateResultXY = 0
""" tensor values"""
self.collisionIntermediateResultXZ = 0
""" tensor values"""
self.collisionIntermediateResultYY = 0
""" tensor values"""
self.collisionIntermediateResultYZ = 0
""" tensor values"""
self.collisionIntermediateResultZZ = 0
""" tensor values"""
self.unitSurfaceNormal = Vector3Float();
""" This record shall represent the normal vector to the surface at the point of collision detection. The surface normal shall be represented in world coordinates. This field shall be represented by an Entity Coordinate Vector record [see 6.2.95 item a)]."""
self.coefficientOfRestitution = 0
""" This field shall represent the degree to which energy is conserved in a collision and shall be represented by a 32-bit floating point number. In addition, it represents a free parameter by which simulation application developers may tune their collision interactions."""
self.pduType = 66
""" initialize value """
self.protocolFamily = 1
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( CollisionElasticPdu, self ).serialize(outputStream)
self.issuingEntityID.serialize(outputStream)
self.collidingEntityID.serialize(outputStream)
self.collisionEventID.serialize(outputStream)
outputStream.write_short(self.pad);
self.contactVelocity.serialize(outputStream)
outputStream.write_float(self.mass);
self.locationOfImpact.serialize(outputStream)
outputStream.write_float(self.collisionIntermediateResultXX);
outputStream.write_float(self.collisionIntermediateResultXY);
outputStream.write_float(self.collisionIntermediateResultXZ);
outputStream.write_float(self.collisionIntermediateResultYY);
outputStream.write_float(self.collisionIntermediateResultYZ);
outputStream.write_float(self.collisionIntermediateResultZZ);
self.unitSurfaceNormal.serialize(outputStream)
outputStream.write_float(self.coefficientOfRestitution);
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( CollisionElasticPdu, self).parse(inputStream)
self.issuingEntityID.parse(inputStream)
self.collidingEntityID.parse(inputStream)
self.collisionEventID.parse(inputStream)
self.pad = inputStream.read_short();
self.contactVelocity.parse(inputStream)
self.mass = inputStream.read_float();
self.locationOfImpact.parse(inputStream)
self.collisionIntermediateResultXX = inputStream.read_float();
self.collisionIntermediateResultXY = inputStream.read_float();
self.collisionIntermediateResultXZ = inputStream.read_float();
self.collisionIntermediateResultYY = inputStream.read_float();
self.collisionIntermediateResultYZ = inputStream.read_float();
self.collisionIntermediateResultZZ = inputStream.read_float();
self.unitSurfaceNormal.parse(inputStream)
self.coefficientOfRestitution = inputStream.read_float();
Ancestors (in MRO)
- CollisionElasticPdu
- EntityInformationFamilyPdu
- Pdu
- PduSuperclass
- builtins.object
Static methods
def __init__(
self)
Initializer for CollisionElasticPdu
def __init__(self):
""" Initializer for CollisionElasticPdu"""
super(CollisionElasticPdu, self).__init__()
self.issuingEntityID = EntityID();
""" This field shall identify the entity that is issuing the PDU and shall be represented by an Entity Identifier record (see 6.2.28)"""
self.collidingEntityID = EntityID();
""" This field shall identify the entity that has collided with the issuing entity. This field shall be a valid identifier of an entity or server capable of responding to the receipt of this Collision-Elastic PDU. This field shall be represented by an Entity Identifier record (see 6.2.28)."""
self.collisionEventID = EventIdentifier();
""" This field shall contain an identification generated by the issuing simulation application to associate related collision events. This field shall be represented by an Event Identifier record (see 6.2.34)."""
self.pad = 0
""" some padding"""
self.contactVelocity = Vector3Float();
""" This field shall contain the velocity at the time the collision is detected at the point the collision is detected. The velocity shall be represented in world coordinates. This field shall be represented by the Linear Velocity Vector record [see 6.2.95 item c)]"""
self.mass = 0
""" This field shall contain the mass of the issuing entity and shall be represented by a 32-bit floating point number representing kilograms"""
self.locationOfImpact = Vector3Float();
""" This field shall specify the location of the collision with respect to the entity with which the issuing entity collided. This field shall be represented by an Entity Coordinate Vector record [see 6.2.95 item a)]."""
self.collisionIntermediateResultXX = 0
""" These six records represent the six independent components of a positive semi-definite matrix formed by pre-multiplying and post-multiplying the tensor of inertia, by the anti-symmetric matrix generated by the moment arm, and shall be represented by 32-bit floating point numbers (see <IP_ADDRESS>)"""
self.collisionIntermediateResultXY = 0
""" tensor values"""
self.collisionIntermediateResultXZ = 0
""" tensor values"""
self.collisionIntermediateResultYY = 0
""" tensor values"""
self.collisionIntermediateResultYZ = 0
""" tensor values"""
self.collisionIntermediateResultZZ = 0
""" tensor values"""
self.unitSurfaceNormal = Vector3Float();
""" This record shall represent the normal vector to the surface at the point of collision detection. The surface normal shall be represented in world coordinates. This field shall be represented by an Entity Coordinate Vector record [see 6.2.95 item a)]."""
self.coefficientOfRestitution = 0
""" This field shall represent the degree to which energy is conserved in a collision and shall be represented by a 32-bit floating point number. In addition, it represents a free parameter by which simulation application developers may tune their collision interactions."""
self.pduType = 66
""" initialize value """
self.protocolFamily = 1
""" initialize value """
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( CollisionElasticPdu, self).parse(inputStream)
self.issuingEntityID.parse(inputStream)
self.collidingEntityID.parse(inputStream)
self.collisionEventID.parse(inputStream)
self.pad = inputStream.read_short();
self.contactVelocity.parse(inputStream)
self.mass = inputStream.read_float();
self.locationOfImpact.parse(inputStream)
self.collisionIntermediateResultXX = inputStream.read_float();
self.collisionIntermediateResultXY = inputStream.read_float();
self.collisionIntermediateResultXZ = inputStream.read_float();
self.collisionIntermediateResultYY = inputStream.read_float();
self.collisionIntermediateResultYZ = inputStream.read_float();
self.collisionIntermediateResultZZ = inputStream.read_float();
self.unitSurfaceNormal.parse(inputStream)
self.coefficientOfRestitution = inputStream.read_float();
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
super( CollisionElasticPdu, self ).serialize(outputStream)
self.issuingEntityID.serialize(outputStream)
self.collidingEntityID.serialize(outputStream)
self.collisionEventID.serialize(outputStream)
outputStream.write_short(self.pad);
self.contactVelocity.serialize(outputStream)
outputStream.write_float(self.mass);
self.locationOfImpact.serialize(outputStream)
outputStream.write_float(self.collisionIntermediateResultXX);
outputStream.write_float(self.collisionIntermediateResultXY);
outputStream.write_float(self.collisionIntermediateResultXZ);
outputStream.write_float(self.collisionIntermediateResultYY);
outputStream.write_float(self.collisionIntermediateResultYZ);
outputStream.write_float(self.collisionIntermediateResultZZ);
self.unitSurfaceNormal.serialize(outputStream)
outputStream.write_float(self.coefficientOfRestitution);
Instance variables
var coefficientOfRestitution
This field shall represent the degree to which energy is conserved in a collision and shall be represented by a 32-bit floating point number. In addition, it represents a free parameter by which simulation application developers may tune their collision interactions.
var collidingEntityID
This field shall identify the entity that has collided with the issuing entity. This field shall be a valid identifier of an entity or server capable of responding to the receipt of this Collision-Elastic PDU. This field shall be represented by an Entity Identifier record (see 6.2.28).
var collisionEventID
This field shall contain an identification generated by the issuing simulation application to associate related collision events. This field shall be represented by an Event Identifier record (see 6.2.34).
var collisionIntermediateResultXX
These six records represent the six independent components of a positive semi-definite matrix formed by pre-multiplying and post-multiplying the tensor of inertia, by the anti-symmetric matrix generated by the moment arm, and shall be represented by 32-bit floating point numbers (see <IP_ADDRESS>)
var collisionIntermediateResultXY
tensor values
var collisionIntermediateResultXZ
tensor values
var collisionIntermediateResultYY
tensor values
var collisionIntermediateResultYZ
tensor values
var collisionIntermediateResultZZ
tensor values
var contactVelocity
This field shall contain the velocity at the time the collision is detected at the point the collision is detected. The velocity shall be represented in world coordinates. This field shall be represented by the Linear Velocity Vector record [see 6.2.95 item c)]
var issuingEntityID
This field shall identify the entity that is issuing the PDU and shall be represented by an Entity Identifier record (see 6.2.28)
var locationOfImpact
This field shall specify the location of the collision with respect to the entity with which the issuing entity collided. This field shall be represented by an Entity Coordinate Vector record [see 6.2.95 item a)].
var mass
This field shall contain the mass of the issuing entity and shall be represented by a 32-bit floating point number representing kilograms
var pad
some padding
var pduType
initialize value
var protocolFamily
initialize value
var unitSurfaceNormal
This record shall represent the normal vector to the surface at the point of collision detection. The surface normal shall be represented in world coordinates. This field shall be represented by an Entity Coordinate Vector record [see 6.2.95 item a)].
class CollisionPdu
Section 7.2.3 Collisions between entities shall be communicated by issuing a Collision PDU. COMPLETE
class CollisionPdu( EntityInformationFamilyPdu ):
"""Section 7.2.3 Collisions between entities shall be communicated by issuing a Collision PDU. COMPLETE"""
def __init__(self):
""" Initializer for CollisionPdu"""
super(CollisionPdu, self).__init__()
self.issuingEntityID = EntityID();
""" This field shall identify the entity that is issuing the PDU, and shall be represented by an Entity Identifier record (see 6.2.28)."""
self.collidingEntityID = EntityID();
""" This field shall identify the entity that has collided with the issuing entity (see <IP_ADDRESS>). This field shall be represented by an Entity Identifier record (see 6.2.28)."""
self.eventID = EventIdentifier();
""" This field shall contain an identification generated by the issuing simulation application to associate related collision events. This field shall be represented by an Event Identifier record (see 6.2.34)."""
self.collisionType = 0
""" This field shall identify the type of collision. The Collision Type field shall be represented by an 8-bit record of enumerations"""
self.pad = 0
""" some padding"""
self.velocity = Vector3Float();
""" This field shall contain the velocity (at the time the collision is detected) of the issuing entity. The velocity shall be represented in world coordinates. This field shall be represented by the Linear Velocity Vector record [see 6.2.95 item c)]."""
self.mass = 0
""" This field shall contain the mass of the issuing entity, and shall be represented by a 32-bit floating point number representing kilograms."""
self.location = Vector3Float();
""" This field shall specify the location of the collision with respect to the entity with which the issuing entity collided. The Location field shall be represented by an Entity Coordinate Vector record [see 6.2.95 item a)]."""
self.pduType = 4
""" initialize value """
self.protocolFamily = 1
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( CollisionPdu, self ).serialize(outputStream)
self.issuingEntityID.serialize(outputStream)
self.collidingEntityID.serialize(outputStream)
self.eventID.serialize(outputStream)
outputStream.write_unsigned_byte(self.collisionType);
outputStream.write_byte(self.pad);
self.velocity.serialize(outputStream)
outputStream.write_float(self.mass);
self.location.serialize(outputStream)
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( CollisionPdu, self).parse(inputStream)
self.issuingEntityID.parse(inputStream)
self.collidingEntityID.parse(inputStream)
self.eventID.parse(inputStream)
self.collisionType = inputStream.read_unsigned_byte();
self.pad = inputStream.read_byte();
self.velocity.parse(inputStream)
self.mass = inputStream.read_float();
self.location.parse(inputStream)
Ancestors (in MRO)
- CollisionPdu
- EntityInformationFamilyPdu
- Pdu
- PduSuperclass
- builtins.object
Static methods
def __init__(
self)
Initializer for CollisionPdu
def __init__(self):
""" Initializer for CollisionPdu"""
super(CollisionPdu, self).__init__()
self.issuingEntityID = EntityID();
""" This field shall identify the entity that is issuing the PDU, and shall be represented by an Entity Identifier record (see 6.2.28)."""
self.collidingEntityID = EntityID();
""" This field shall identify the entity that has collided with the issuing entity (see <IP_ADDRESS>). This field shall be represented by an Entity Identifier record (see 6.2.28)."""
self.eventID = EventIdentifier();
""" This field shall contain an identification generated by the issuing simulation application to associate related collision events. This field shall be represented by an Event Identifier record (see 6.2.34)."""
self.collisionType = 0
""" This field shall identify the type of collision. The Collision Type field shall be represented by an 8-bit record of enumerations"""
self.pad = 0
""" some padding"""
self.velocity = Vector3Float();
""" This field shall contain the velocity (at the time the collision is detected) of the issuing entity. The velocity shall be represented in world coordinates. This field shall be represented by the Linear Velocity Vector record [see 6.2.95 item c)]."""
self.mass = 0
""" This field shall contain the mass of the issuing entity, and shall be represented by a 32-bit floating point number representing kilograms."""
self.location = Vector3Float();
""" This field shall specify the location of the collision with respect to the entity with which the issuing entity collided. The Location field shall be represented by an Entity Coordinate Vector record [see 6.2.95 item a)]."""
self.pduType = 4
""" initialize value """
self.protocolFamily = 1
""" initialize value """
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( CollisionPdu, self).parse(inputStream)
self.issuingEntityID.parse(inputStream)
self.collidingEntityID.parse(inputStream)
self.eventID.parse(inputStream)
self.collisionType = inputStream.read_unsigned_byte();
self.pad = inputStream.read_byte();
self.velocity.parse(inputStream)
self.mass = inputStream.read_float();
self.location.parse(inputStream)
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
super( CollisionPdu, self ).serialize(outputStream)
self.issuingEntityID.serialize(outputStream)
self.collidingEntityID.serialize(outputStream)
self.eventID.serialize(outputStream)
outputStream.write_unsigned_byte(self.collisionType);
outputStream.write_byte(self.pad);
self.velocity.serialize(outputStream)
outputStream.write_float(self.mass);
self.location.serialize(outputStream)
Instance variables
var collidingEntityID
This field shall identify the entity that has collided with the issuing entity (see <IP_ADDRESS>). This field shall be represented by an Entity Identifier record (see 6.2.28).
var collisionType
This field shall identify the type of collision. The Collision Type field shall be represented by an 8-bit record of enumerations
var eventID
This field shall contain an identification generated by the issuing simulation application to associate related collision events. This field shall be represented by an Event Identifier record (see 6.2.34).
var issuingEntityID
This field shall identify the entity that is issuing the PDU, and shall be represented by an Entity Identifier record (see 6.2.28).
var location
This field shall specify the location of the collision with respect to the entity with which the issuing entity collided. The Location field shall be represented by an Entity Coordinate Vector record [see 6.2.95 item a)].
var mass
This field shall contain the mass of the issuing entity, and shall be represented by a 32-bit floating point number representing kilograms.
var pad
some padding
var pduType
initialize value
var protocolFamily
initialize value
var velocity
This field shall contain the velocity (at the time the collision is detected) of the issuing entity. The velocity shall be represented in world coordinates. This field shall be represented by the Linear Velocity Vector record [see 6.2.95 item c)].
class CommentPdu
Arbitrary messages can be entered into the data stream via use of this PDU. Section 7.5.13 COMPLETE
class CommentPdu( SimulationManagementFamilyPdu ):
""" Arbitrary messages can be entered into the data stream via use of this PDU. Section 7.5.13 COMPLETE"""
def __init__(self):
""" Initializer for CommentPdu"""
super(CommentPdu, self).__init__()
self.numberOfFixedDatumRecords = 0
""" Number of fixed datum records"""
self.numberOfVariableDatumRecords = 0
""" Number of variable datum records"""
self.fixedDatums = []
""" variable length list of fixed datums"""
self.variableDatums = []
""" variable length list of variable length datums"""
self.pduType = 22
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( CommentPdu, self ).serialize(outputStream)
outputStream.write_unsigned_int( len(self.fixedDatums));
outputStream.write_unsigned_int( len(self.variableDatums));
for anObj in self.fixedDatums:
anObj.serialize(outputStream)
for anObj in self.variableDatums:
anObj.serialize(outputStream)
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( CommentPdu, self).parse(inputStream)
self.numberOfFixedDatumRecords = inputStream.read_unsigned_int();
self.numberOfVariableDatumRecords = inputStream.read_unsigned_int();
for idx in range(0, self.numberOfFixedDatumRecords):
element = FixedDatum()
element.parse(inputStream)
self.fixedDatums.append(element)
for idx in range(0, self.numberOfVariableDatumRecords):
element = VariableDatum()
element.parse(inputStream)
self.variableDatums.append(element)
Ancestors (in MRO)
- CommentPdu
- SimulationManagementFamilyPdu
- Pdu
- PduSuperclass
- builtins.object
Static methods
def __init__(
self)
Initializer for CommentPdu
def __init__(self):
""" Initializer for CommentPdu"""
super(CommentPdu, self).__init__()
self.numberOfFixedDatumRecords = 0
""" Number of fixed datum records"""
self.numberOfVariableDatumRecords = 0
""" Number of variable datum records"""
self.fixedDatums = []
""" variable length list of fixed datums"""
self.variableDatums = []
""" variable length list of variable length datums"""
self.pduType = 22
""" initialize value """
def parse(
self, inputStream)
"Parse a message. This may recursively call embedded objects.
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( CommentPdu, self).parse(inputStream)
self.numberOfFixedDatumRecords = inputStream.read_unsigned_int();
self.numberOfVariableDatumRecords = inputStream.read_unsigned_int();
for idx in range(0, self.numberOfFixedDatumRecords):
element = FixedDatum()
element.parse(inputStream)
self.fixedDatums.append(element)
for idx in range(0, self.numberOfVariableDatumRecords):
element = VariableDatum()
element.parse(inputStream)
self.variableDatums.append(element)
def serialize(
self, outputStream)
serialize the class
def serialize(self, outputStream):
"""serialize the class """
super( CommentPdu, self ).serialize(outputStream)
outputStream.write_unsigned_int( len(self.fixedDatums));
outputStream.write_unsigned_int( len(self.variableDatums));
for anObj in self.fixedDatums:
anObj.serialize(outputStream)
for anObj in self.variableDatums:
anObj.serialize(outputStream)
Instance variables
var fixedDatums
variable length list of fixed datums
var numberOfFixedDatumRecords
Number of fixed datum records
var numberOfVariableDatumRecords
Number of variable datum records
var pduType
initialize value
var variableDatums
variable length list of variable length datums
class CommentReliablePdu
Section <IP_ADDRESS>: Arbitrary messages. Only reliable this time. Neds manual intervention to fix padding in variable datums. UNFINISHED
class CommentReliablePdu( SimulationManagementWithReliabilityFamilyPdu ):
"""Section <IP_ADDRESS>: Arbitrary messages. Only reliable this time. Neds manual intervention to fix padding in variable datums. UNFINISHED"""
def __init__(self):
""" Initializer for CommentReliablePdu"""
super(CommentReliablePdu, self).__init__()
self.numberOfFixedDatumRecords = 0
""" Fixed datum record count"""
self.numberOfVariableDatumRecords = 0
""" variable datum record count"""
self.fixedDatumRecords = []
""" Fixed datum records"""
self.variableDatumRecords = []
""" Variable datum records"""
self.pduType = 62
""" initialize value """
def serialize(self, outputStream):
"""serialize the class """
super( CommentReliablePdu, self ).serialize(outputStream)
outputStream.write_unsigned_int( len(self.fixedDatumRecords));
outputStream.write_unsigned_int( len(self.variableDatumRecords));
for anObj in self.fixedDatumRecords:
anObj.serialize(outputStream)
for anObj in self.variableDatumRecords:
anObj.serialize(outputStream)
def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
super( CommentReliablePdu, self).parse(inputStream)
self.numberOfFixedDatumRecords = inputStream.read_unsigned_int();
self.numberOfVariableDatumRecords = inputStream.read_unsigned_int();
for idx in range(0, self.numberOfFixedDatumRecords):
element = FixedDatum()
element.parse(inputStream)
self.fixedDatumRecords.append(element)
for idx in range(0, self.numberOfVariableDatumRecords):
element = VariableDatum()
element.parse(inputStream)
self.variableDatumRecords.append(element)
Ancestors (in MRO)
Static methods
def __init__(
self)
Initializer for CommentReliablePdu
def __init__(self):
""" Initializer for CommentReliablePdu"""
super(CommentReliablePdu, self).__init__()
self.numberOfFixedDatumRecords = 0
""" Fixed datum record count"""
self.numberOfVariableDatumRecords = 0
""" variable datum record count"""
self.fixedDatumRecords = []
""" Fixed datum records"""
self.variableDatumRecords = []
""" Variable datum records"""
self.pduType = 62