Files
qt5-legatus-legacy/Lts/Services/CentralEffectSimulation/ces_service.xml
T
2026-08-13 18:33:10 +02:00

174 lines
10 KiB
XML
Executable File

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<service namespace="CentralEffectSimulation" abbreviation="CES" procNames="CentralEffectSimulation" exerciseDependency="Exercise" groups="ExerciseExecution">
<rcs>
<Id Id="$Id$"/>
<HeadURL HeadURL="$HeadURL$"/>
<Author Author="$Author$"/>
</rcs>
<operatorRights offset="7">
<guiPlugin name="ParticipantMove" offset="1">
<operatorRightGroup name="Participant Movement Simulation" description="Set Participant Position">
<operatorRight right="ParticipantMove" value="1" description="Set Participant Position"/>
</operatorRightGroup>
<operatorRightGroup name="UAS Control" description="Control UAS">
<operatorRight right="UasControl" value="1"/>
</operatorRightGroup>
</guiPlugin>
</operatorRights>
<tables>
<table name="ces_ownership">
<column name="id" datatype="integer" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="building_id" datatype="integer"/>
<column name="floor_id" datatype="integer"/>
<column name="party_id" datatype="integer"/>
<constraint name="UQ_ces_ownership_id" type="unique">
<column name="id"/>
</constraint>
<constraint name="IDX_ces_ownership_building_id" type="index">
<column name="building_id"/>
</constraint>
</table>
<table name="ces_simulated_movement">
<column name="id" datatype="integer" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="name" datatype="text"/>
<column name="start_time" datatype="bigint"/>
<column name="participant_id" datatype="integer"/>
<column name="repeat" datatype="boolean"/>
<column name="nextpoint" datatype="integer"/>
</table>
<table name="ces_simulated_movement_segment">
<column name="id" datatype="integer" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="simulated_movement_id" datatype="integer" isForeignKey="1"/>
<column name="position_index" datatype="integer"/>
<column name="position" datatype="point_2d"/>
<column name="speed" datatype="real" comment="speed in m/s"/>
<column name="delay" datatype="real" comment="[sec]"/>
<column name="name" datatype="text"/>
<constraint name="IDX_ces_simulated_movement_segment_movement_id" type="index">
<column name="simulated_movement_id"/>
</constraint>
<foreignKey name="FK_ces_simulated_movement_segment_ces_simulated_movement">
<source table="ces_simulated_movement_segment" column="simulated_movement_id"/>
<destination table="ces_simulated_movement" column="id"/>
</foreignKey>
</table>
</tables>
<views/>
<dbServiceStructs>
<serviceStruct name="CesOwnership" table="ces_ownership"/>
<serviceStruct name="CesSimulatedMovement" table="ces_simulated_movement"/>
<serviceStruct name="CesSimulatedMovementSegment" table="ces_simulated_movement_segment"/>
<table name="ces_ownership"/>
<table name="ces_simulated_movement"/>
<table name="ces_simulated_movement_segment"/>
</dbServiceStructs>
<topicTypes>
<topicType name="DetonationLocationReply" baseValueType="Core::FunctionReply">
<column name="index" idlType="long" comment="Context AES: index of a single explosion in the cluster"/>
<column name="buildingId" idlType="long" comment="intersection trajectory with building"/>
<column name="position" idlType="Core::GeoPosition"/>
</topicType>
<topicType name="DetonationLocationRequest">
<column name="id" idlType="long" isKey="1" comment="Context AES: aesItemId"/>
<column name="index" idlType="long" comment="Context AES: index of a single explosion in the cluster"/>
<column name="chargeTypeId" idlType="long"/>
<column name="igniterTypeId" idlType="long"/>
<column name="igniterFunctionId" idlType="long"/>
<column name="trajectory" idlType="sequence&lt;Core::GeoPosition&gt;"/>
</topicType>
<topicType name="GetLineBuildingIntersectionReply" baseValueType="Core::FunctionReply">
<column name="intersection" idlType="Core::GeoPosition"/>
<column name="requestId" idlType="string" comment="to be used to assign request and reply"/>
</topicType>
<topicType name="GetLineBuildingIntersectionRequest">
<column name="line" idlType="sequence&lt;Core::GeoPosition&gt;" comment="most of the times, two coordinates: start, end. But to be prepared for future requirements, use a sequence"/>
<column name="requestId" idlType="string" comment="to be used to assign request and reply"/>
</topicType>
<topicType name="GetLineBuildingIntersectsReply" baseValueType="Core::FunctionReply">
<column name="intersects" idlType="boolean"/>
<column name="requestId" idlType="string" comment="to be used to assign request and reply"/>
</topicType>
<topicType name="GetLineBuildingIntersectsRequest">
<column name="line" idlType="sequence&lt;Core::GeoPosition&gt;" comment="most of the times, two coordinates: start, end. But to be prepared for future requirements, use a sequence"/>
<column name="requestId" idlType="string" comment="to be used to assign request and reply"/>
</topicType>
<topicType name="ParticipantEvent" isDataObject="1" autosubscribe="0" routeToClient="1" routeToServer="0" routeInReplay="0">
<column name="aesItemId" idlType="long"/>
<column name="eventTypeId" idlType="ProjectDataManagement::EventType"/>
<column name="participantId" idlType="long"/>
<column name="eventTime" idlType="long long"/>
<column name="friendlyFire" idlType="boolean"/>
<column name="vulnerability" idlType="long"/>
<column name="id" idlType="long" isKey="1"/>
<column name="equipmentNumber" idlType="long"/>
<column name="partyId" idlType="long"/>
<column name="position" idlType="Core::GeoPosition"/>
<column name="aesName" idlType="string"/>
</topicType>
<topicType name="BuildingOwnership" isDataObject="1" autosubscribe="1" routeToClient="1" routeToServer="0" routeInReplay="0" recordTopic="1">
<column name="buildingId" idlType="long" isKey="1"/>
<column name="sampleTime" idlType="long long"/>
<column name="ownerships" idlType="sequence&lt;Ownership&gt;"/>
</topicType>
<topicType name="Ownership">
<column name="floorId" idlType="long"/>
<column name="partyId" idlType="long"/>
</topicType>
<topicType name="SetOwnershipRequest">
<column name="buildingId" idlType="long"/>
<column name="partyId" idlType="long"/>
</topicType>
<topicType name="SimulatedMovement" isDataObject="1" autosubscribe="1" routeToClient="1" routeToServer="0" routeInReplay="0">
<column name="id" idlType="long" isKey="1"/>
<column name="name" idlType="string"/>
<column name="startTime" idlType="long long"/>
<column name="participantId" idlType="long"/>
<column name="segments" idlType="sequence&lt;SimulatedMovementSegment&gt;"/>
<column name="repeat" idlType="boolean"/>
<column name="nextPoint" idlType="long"/>
<column name="jumpToStart" idlType="boolean"/>
</topicType>
<topicType name="SimulatedMovementRemoveByParticipantId">
<column name="participantId" idlType="long"/>
</topicType>
<topicType name="SimulatedMovementSegment">
<column name="position" idlType="Core::GeoPosition2D"/>
<column name="delay" idlType="double"/>
<column name="speed" idlType="double" comment="[m/s]"/>
<column name="name" idlType="string"/>
</topicType>
</topicTypes>
<functionTopics>
<functionTopic name="DetonationLocation" requestTopicType="DetonationLocationRequest" replyTopicType="DetonationLocationReply" requestTopicName="DetonationLocationRequest" replyTopicName="DetonationLocationReply" routeInReplay="0"/>
<functionTopic name="GetLineBuildingIntersection" requestTopicType="GetLineBuildingIntersectionRequest" replyTopicType="GetLineBuildingIntersectionReply" requestTopicName="GetLineBuildingIntersectionRequest" replyTopicName="GetLineBuildingIntersectionReply" routeInReplay="0"/>
<functionTopic name="GetLineBuildingIntersects" requestTopicType="GetLineBuildingIntersectsRequest" replyTopicType="GetLineBuildingIntersectsReply" requestTopicName="GetLineBuildingIntersectsRequest" replyTopicName="GetLineBuildingIntersectsReply" routeInReplay="0"/>
<functionTopic name="SetOwnership" requestTopicType="SetOwnershipRequest" replyTopicType="Core::FunctionReply" requestTopicName="SetOwnershipRequest" replyTopicName="SetOwnershipReply" routeInReplay="0"/>
<functionTopic name="SimulatedMovementModify" requestTopicType="SimulatedMovement" replyTopicType="Core::FunctionReply" requestTopicName="SimulatedMovementModifyRequest" replyTopicName="SimulatedMovementModifyReply" routeInReplay="0"/>
<functionTopic name="SimulatedMovementRemove" requestTopicType="Core::RemoveElementRequest" replyTopicType="Core::FunctionReply" requestTopicName="SimulatedMovementRemoveRequest" replyTopicName="SimulatedMovementRemoveReply" routeInReplay="0"/>
<functionTopic name="SimulatedMovementRemoveByParticipantId" requestTopicType="SimulatedMovementRemoveByParticipantId" replyTopicType="Core::FunctionReply" requestTopicName="SimulatedMovementRemoveByParticipantIdRequest" replyTopicName="SimulatedMovementRemoveByParticipantIdReply" routeInReplay="0"/>
</functionTopics>
<enumerations>
<enumeration name="dummy">
<attribute key="CombatReady" value="0"/>
<attribute key="LightDamage" value="1"/>
<attribute key="MediumDamage" value="2"/>
<attribute key="HeavyDamage" value="3"/>
<attribute key="MobilityKill" value="4"/>
<attribute key="VisibleMobilityKill" value="5"/>
<attribute key="WeaponSystemDamage" value="6"/>
<attribute key="VisibleWeaponSystemDamage" value="7"/>
<attribute key="CatastrophicKill" value="8"/>
<attribute key="TemporarySeverance" value="9"/>
<attribute key="NearMiss" value="10"/>
<attribute key="HitWithNoEffect" value="11"/>
<attribute key="NotReady" value="99"/>
</enumeration>
</enumerations>
</service>