Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
248 changes: 248 additions & 0 deletions dis/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,248 @@
import sys
sys.path.append('dis')
sys.path.append('dis/utils')
sys.path.append('dis/siso_ref_010/enums')

from dis.acknowledge_pdu import AcknowledgePdu
from dis.acknowledge_reliable_pdu import AcknowledgeReliablePdu
from dis.acknowledge_rpdu import AcknowledgeRPdu
from dis.acoustic_emitter import AcousticEmitter
from dis.action_request_pdu import ActionRequestPdu
from dis.action_request_reliable_pdu import ActionRequestReliablePdu
from dis.action_request_rpdu import ActionRequestRPdu
from dis.action_response_pdu import ActionResponsePdu
from dis.action_response_reliable_pdu import ActionResponseReliablePdu
from dis.action_response_rpdu import ActionResponseRPdu
from dis.aggregate_identifier import AggregateIdentifier
from dis.aggregate_marking import AggregateMarking
from dis.aggregate_state_pdu import AggregateStatePdu
from dis.aggregate_type import AggregateType
from dis.angle_deception import AngleDeception
from dis.angular_velocity_vector import AngularVelocityVector
from dis.antenna_location import AntennaLocation
from dis.apa import APA
from dis.appearance_pdu import AppearancePdu
from dis.appearance import Appearance
from dis.areal_object_state_pdu import ArealObjectStatePdu
from dis.articulated_parts_pdu import ArticulatedPartsPdu
from dis.articulated_part_vp import ArticulatedPartVP
from dis.association import Association
from dis.attached_part_vp import AttachedPartVP
from dis.attribute_pdu import AttributePdu
from dis.attribute import Attribute
from dis.attribute_record_set import AttributeRecordSet
from dis.beam_antenna_pattern import BeamAntennaPattern
from dis.beam_data import BeamData
from dis.beam_status import BeamStatus
from dis.blanking_sector import BlankingSector
from dis.change_options import ChangeOptions
from dis.clock_time import ClockTime
from dis.collision_elastic_pdu import CollisionElasticPdu
from dis.collision_pdu import CollisionPdu
from dis.comment_pdu import CommentPdu
from dis.comment_reliable_pdu import CommentReliablePdu
from dis.comment_rpdu import CommentRPdu
from dis.communications_node_id import CommunicationsNodeID
from dis.create_entity_pdu import CreateEntityPdu
from dis.create_entity_reliable_pdu import CreateEntityReliablePdu
from dis.create_entity_rpdu import CreateEntityRPdu
from dis.data_filter_record import DataFilterRecord
from dis.data_pdu import DataPdu
from dis.data_query_datum_specification import DataQueryDatumSpecification
from dis.data_query_pdu import DataQueryPdu
from dis.data_query_reliable_pdu import DataQueryReliablePdu
from dis.data_query_rpdu import DataQueryRPdu
from dis.data_reliable_pdu import DataReliablePdu
from dis.data_rpdu import DataRPdu
from dis.datum_specification import DatumSpecification
from dis.dead_reckoning_parameters import DeadReckoningParameters
from dis.designator_pdu import DesignatorPdu
from dis.detonation_pdu import DetonationPdu
from dis.directed_energy_area_aimpoint import DirectedEnergyAreaAimpoint
from dis.directed_energy_damage import DirectedEnergyDamage
from dis.directed_energy_fire_pdu import DirectedEnergyFirePdu
from dis.directed_energy_precision_aimpoint import DirectedEnergyPrecisionAimpoint
from dis.directed_energy_target_energy_deposition import DirectedEnergyTargetEnergyDeposition
from dis.distributed_emissions_regeneration_family_pdu import DistributedEmissionsRegenerationFamilyPdu
from dis.domain import Domain
from dis.eefundamental_parameter_data import EEFundamentalParameterData
from dis.electromagnetic_emission_pdu import ElectromagneticEmissionPdu
from dis.electronic_emitter import ElectronicEmitter
from dis.emitter_beam import EmitterBeam
from dis.emitter_system import EmitterSystem
from dis.engine_fuel import EngineFuel
from dis.engine_fuel_reload import EngineFuelReload
from dis.entity_association_vp import EntityAssociationVP
from dis.entity_damage_status_pdu import EntityDamageStatusPdu
from dis.entity_identifier import EntityIdentifier
from dis.entity_id import EntityID
from dis.entity_information_interaction_family_pdu import EntityInformationInteractionFamilyPdu
from dis.entity_management_family_pdu import EntityManagementFamilyPdu
from dis.entity_marking import EntityMarking
from dis.entity_state_pdu import EntityStatePdu
from dis.entity_state_update_pdu import EntityStateUpdatePdu
from dis.entity_type import EntityType
from dis.entity_type_raw import EntityTypeRaw
from dis.entity_type_vp import EntityTypeVP
from dis.environmental_process_pdu import EnvironmentalProcessPdu
from dis.environment import Environment
from dis.euler_angles import EulerAngles
from dis.event_identifier_live_entity import EventIdentifierLiveEntity
from dis.event_identifier import EventIdentifier
from dis.event_report_pdu import EventReportPdu
from dis.event_report_reliable_pdu import EventReportReliablePdu
from dis.event_report_rpdu import EventReportRPdu
from dis.expendable_descriptor import ExpendableDescriptor
from dis.expendable import Expendable
from dis.expendable_reload import ExpendableReload
from dis.explosion_descriptor import ExplosionDescriptor
from dis.false_targets_attribute import FalseTargetsAttribute
from dis.fire_pdu import FirePdu
from dis.fixed_datum import FixedDatum
from dis.fundamental_operational_data import FundamentalOperationalData
from dis.grid_axis_descriptor_fixed import GridAxisDescriptorFixed
from dis.grid_axis_descriptor import GridAxisDescriptor
from dis.grid_axis_descriptor_variable import GridAxisDescriptorVariable
from dis.grid_data import GridData
from dis.grid_data_type0 import GridDataType0
from dis.grid_data_type1 import GridDataType1
from dis.grid_data_type2 import GridDataType2
from dis.gridded_data_pdu import GriddedDataPdu
from dis.group_id import GroupID
from dis.identification_friend_or_foe_pdu import IdentificationFriendOrFoePdu
from dis.iffdata import IFFData
from dis.iffdata_specification import IFFDataSpecification
from dis.ifffundamental_parameter_data import IFFFundamentalParameterData
from dis.iffpdu_layer2data import IFFPduLayer2Data
from dis.iffpdu import IFFPdu
from dis.information_operations_action_pdu import InformationOperationsActionPdu
from dis.information_operations_family_pdu import InformationOperationsFamilyPdu
from dis.information_operations_report_pdu import InformationOperationsReportPdu
from dis.intercom_communications_parameters import IntercomCommunicationsParameters
from dis.intercom_control_pdu import IntercomControlPdu
from dis.intercom_identifier import IntercomIdentifier
from dis.intercom_reference_id import IntercomReferenceID
from dis.intercom_signal_pdu import IntercomSignalPdu
from dis.iocomms_node_record import IOCommsNodeRecord
from dis.ioeffect_record import IOEffectRecord
from dis.iorecord import IORecord
from dis.is_group_of_pdu import IsGroupOfPdu
from dis.is_part_of_pdu import IsPartOfPdu
from dis.jamming_technique import JammingTechnique
from dis.launched_munition_record import LaunchedMunitionRecord
from dis.layer_header import LayerHeader
from dis.ledetonation_pdu import LEDetonationPdu
from dis.lefire_pdu import LEFirePdu
from dis.levector3fixed_byte import LEVector3FixedByte
from dis.linear_object_state_pdu import LinearObjectStatePdu
from dis.linear_segment_parameter import LinearSegmentParameter
from dis.live_dead_reckoning_parameters import LiveDeadReckoningParameters
from dis.live_entity_detonation_pdu import LiveEntityDetonationPdu
from dis.live_entity_family_pdu import LiveEntityFamilyPdu
from dis.live_entity_fire_pdu import LiveEntityFirePdu
from dis.live_entity_identifier import LiveEntityIdentifier
from dis.live_entity_linear_velocity import LiveEntityLinearVelocity
from dis.live_entity_orientation16 import LiveEntityOrientation16
from dis.live_entity_orientation_error import LiveEntityOrientationError
from dis.live_entity_orientation import LiveEntityOrientation
from dis.live_entity_position_error import LiveEntityPositionError
from dis.live_entity_relative_world_coordinates import LiveEntityRelativeWorldCoordinates
from dis.live_simulation_address import LiveSimulationAddress
from dis.logistics_family_pdu import LogisticsFamilyPdu
from dis.mine_emplacement_time import MineEmplacementTime
from dis.mine_entity_identifier import MineEntityIdentifier
from dis.minefield_data_pdu import MinefieldDataPdu
from dis.minefield_family_pdu import MinefieldFamilyPdu
from dis.minefield_identifier import MinefieldIdentifier
from dis.minefield_query_pdu import MinefieldQueryPdu
from dis.minefield_response_nackpdu import MinefieldResponseNACKPdu
from dis.minefield_sensor_type import MinefieldSensorType
from dis.minefield_state_pdu import MinefieldStatePdu
from dis.modulation_parameters import ModulationParameters
from dis.modulation_type import ModulationType
from dis.munition_descriptor import MunitionDescriptor
from dis.munition import Munition
from dis.munition_reload import MunitionReload
from dis.named_location_identification import NamedLocationIdentification
from dis.object_identifier import ObjectIdentifier
from dis.object_type import ObjectType
from dis.ownership_status_record import OwnershipStatusRecord
from dis.pdu_base import PduBase
from dis.pdu import Pdu
from dis.pdu_status import PduStatus
from dis.point_object_state_pdu import PointObjectStatePdu
from dis.propulsion_system_data import PropulsionSystemData
from dis.protocol_mode import ProtocolMode
from dis.radio_comms_header import RadioCommsHeader
from dis.radio_communications_family_pdu import RadioCommunicationsFamilyPdu
from dis.radio_identifier import RadioIdentifier
from dis.radio_type import RadioType
from dis.receiver_pdu import ReceiverPdu
from dis.record_query_reliable_pdu import RecordQueryReliablePdu
from dis.record_query_rpdu import RecordQueryRPdu
from dis.record_query_specification import RecordQuerySpecification
from dis.record_reliable_pdu import RecordReliablePdu
from dis.record_rpdu import RecordRPdu
from dis.record_specification_element import RecordSpecificationElement
from dis.record_specification import RecordSpecification
from dis.relationship import Relationship
from dis.remove_entity_pdu import RemoveEntityPdu
from dis.remove_entity_reliable_pdu import RemoveEntityReliablePdu
from dis.remove_entity_rpdu import RemoveEntityRPdu
from dis.repair_complete_pdu import RepairCompletePdu
from dis.repair_response_pdu import RepairResponsePdu
from dis.request_id import RequestID
from dis.resupply_cancel_pdu import ResupplyCancelPdu
from dis.resupply_offer_pdu import ResupplyOfferPdu
from dis.resupply_received_pdu import ResupplyReceivedPdu
from dis.secondary_operational_data import SecondaryOperationalData
from dis.seespdu import SEESPdu
from dis.sensor import Sensor
from dis.separation_vp import SeparationVP
from dis.service_request_pdu import ServiceRequestPdu
from dis.set_data_pdu import SetDataPdu
from dis.set_data_reliable_pdu import SetDataReliablePdu
from dis.set_data_rpdu import SetDataRPdu
from dis.set_record_reliable_pdu import SetRecordReliablePdu
from dis.set_record_rpdu import SetRecordRPdu
from dis.shaft_rpm import ShaftRPM
from dis.signal_pdu import SignalPdu
from dis.silent_entity_system import SilentEntitySystem
from dis.simulation_address import SimulationAddress
from dis.simulation_identifier import SimulationIdentifier
from dis.simulation_management_family_pdu import SimulationManagementFamilyPdu
from dis.simulation_management_with_reliability_family_pdu import SimulationManagementWithReliabilityFamilyPdu
from dis.standard_variable_record import StandardVariableRecord
from dis.standard_variable_specification import StandardVariableSpecification
from dis.start_resume_pdu import StartResumePdu
from dis.start_resume_reliable_pdu import StartResumeReliablePdu
from dis.start_resume_rpdu import StartResumeRPdu
from dis.stop_freeze_pdu import StopFreezePdu
from dis.stop_freeze_reliable_pdu import StopFreezeReliablePdu
from dis.stop_freeze_rpdu import StopFreezeRPdu
from dis.storage_fuel import StorageFuel
from dis.storage_fuel_reload import StorageFuelReload
from dis.supplemental_emission_entity_state_pdu import SupplementalEmissionEntityStatePdu
from dis.supply_quantity import SupplyQuantity
from dis.synthetic_environment_family_pdu import SyntheticEnvironmentFamilyPdu
from dis.system_identifier import SystemIdentifier
from dis.time_space_position_information_pdu import TimeSpacePositionInformationPdu
from dis.total_record_sets import TotalRecordSets
from dis.track_jam_data import TrackJamData
from dis.transfer_ownership_pdu import TransferOwnershipPdu
from dis.transmitter_pdu import TransmitterPdu
from dis.tspipdu import TSPIPdu
from dis.uabeam import UABeam
from dis.uaemitter import UAEmitter
from dis.uafundamental_parameter import UAFundamentalParameter
from dis.unattached_identifier import UnattachedIdentifier
from dis.underwater_acoustic_pdu import UnderwaterAcousticPdu
from dis.unsigned_disinteger import UnsignedDISInteger
from dis.variable_datum import VariableDatum
from dis.variable_parameter import VariableParameter
from dis.variable_transmitter_parameters import VariableTransmitterParameters
from dis.vector2float import Vector2Float
from dis.vector3double import Vector3Double
from dis.vector3float import Vector3Float
from dis.vectoring_nozzle_system import VectoringNozzleSystem
from dis.warfare_family_pdu import WarfareFamilyPdu
82 changes: 82 additions & 0 deletions dis/abstract_iffpdu_layer_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
from enum import Enum


class AbstractIFFPduLayerData( object ):
"""7.6.5.1 Abstract base class for IFFPduLayerData classes"""

def __init__(self):
""" Initializer for AbstractIFFPduLayerData"""
pass

def to_string(self) ->str:
outputString = ""
return outputString

def __str__(self):
return self.to_string()

def serialize_enum(self, enumValue, outputStream):
enumSize = enumValue.get_marshaled_size()
marshallers = {8 : 'byte', 16 : 'short', 32 : 'int'}
marshalFunction = getattr(outputStream, 'write_unsigned_' + marshallers[enumSize])
result = marshalFunction(int(enumValue))

def parse_enum(self, enumValue, intputStream) -> int:
enumSize = enumValue.get_marshaled_size()
marshallers = {8 : 'byte', 16 : 'short', 32 : 'int'}
marshalFunction = getattr(intputStream, 'read_unsigned_' + marshallers[enumSize])
return marshalFunction()

def serialize(self, outputStream):
"""serialize the class """
pass

def parse(self, inputStream):
""""Parse a message. This may recursively call embedded objects."""
pass

# Get the number of attributes defined by SISO
def get_design_attribute_count(self) -> int:
return 0

def get_attribute_count(self) -> int:
attrList = list()
for attr in dir(self):
if not callable(getattr(self, attr)):
if not attr.startswith("__"):
if not hasattr(self.__class__.__base__(), attr):
attrList.append(attr)
return len(attrList)

def __eq__(self, other):
if isinstance(other, self.__class__):
return self.__dict__ == other.__dict__
else:
return False

def __ne__(self, other):
return not self.__eq__(other)

def diff(self,other) -> set:
diffs = set()
for key, value in self.__dict__.items():
value2 = other.__dict__[key]
if (value != value2):
if type(value) is list:
diffs.add((key, str(value)))
diffs.add((key, str(value2)))
elif (type(value).__module__ == "builtins"):
diffs.add((key, value))
diffs.add((key, value2))
elif (isinstance(value, Enum)):
diffs.add((key, value))
diffs.add((key, value2))
elif (isinstance(value, object)):
diffs.update(value.diff(value2))
else:
diffs.add((key, value))
diffs.add((key, value2))
return(diffs)



Loading