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

662 lines
39 KiB
XML
Executable File

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<service namespace="InfrastructureManagement" abbreviation="ISM" procNames="InfrastructureManagement" exerciseDependency="Global" groups="Core" prio="1">
<rcs>
<Id Id="$Id$"/>
<HeadURL HeadURL="$HeadURL$"/>
<Author Author="$Author$"/>
</rcs>
<operatorRights offset="18">
<guiPlugin name="InfrastructureManagement" offset="1">
<operatorRightGroup name="Infrastructure Management" description="Edit Infrastructural Plans">
<operatorRight right="InfrastructurePlansEdit" value="1" description="Edit Infrastructural Plans"/>
<operatorRight right="InfrastructurePlansShow" value="2" description="Show Infrastructural Plans (also allows view of Assets, Mounting Points,...)"/>
<operatorRight right="InfrastructurePlansChangeStatus" value="3" description="Change status of Infrastructure Plan"/>
</operatorRightGroup>
</guiPlugin>
<guiPlugin name="ResourceManagement" offset="2">
<operatorRightGroup name="ResourceManagement" description="Edit Resource Management Data">
<operatorRight right="DatabaseAdministration" value="1" description="Database Administration"/>
</operatorRightGroup>
<operatorRightGroup name="ResourceManagementSystemConfiguration" description="Edit Resource Management System Configuration Data">
<operatorRight right="SystemConfiguration" value="1"/>
</operatorRightGroup>
</guiPlugin>
</operatorRights>
<tables>
<table name="ism_asset">
<column name="id" datatype="bigint" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="name" datatype="text"/>
<column name="mounting_point_type_id" datatype="bigint" isForeignKey="1"/>
<column name="barcode" datatype="text"/>
<column name="hostname" datatype="text"/>
<column name="properties" datatype="jsonb" default="'{}'" comment="&quot;username&quot;:&quot;ahtc&quot;, &quot;password&quot;:&quot;mout11de&quot;, &quot;hitSoundVolume&quot; : 100, &quot;activationSoundVolume&quot; : 100, &quot;fireSoundVolume&quot; : 100, &quot;effects&quot; : [ {&quot;type&quot;:&quot;Fog&quot;, &quot;damage&quot;:80, &quot;id&quot;: 1, &quot;repeat&quot;:3, &quot;pulse&quot;: 3000, &quot;delay&quot;: 1000}, {&quot;type&quot;:&quot;FireLamp&quot;, &quot;damage&quot;:80, &quot;id&quot;: 2, &quot;repeat&quot;:0}, {&quot;type&quot;:&quot;SignalLamp&quot;, i &quot;damage&quot;:80, &quot;id&quot;: 3, &quot;repeat&quot;:0}] , &quot;scenarios&quot; : [{&quot;id&quot;:1, &quot;damage&quot;: 50}] Example OPS: {&quot;opticalCode&quot;: 2201, &quot;opsTunnel&quot;: true}"/>
<column name="asset_state_id" datatype="bigint" isForeignKey="1"/>
<column name="available_in_exercise" datatype="integer[]"/>
<column name="last_updated" datatype="timestamp" default="now()"/>
<foreignKey name="FK_ism_asset_ism_mounting_point_type">
<source table="ism_asset" column="mounting_point_type_id"/>
<destination table="ism_mounting_point_type" column="id"/>
</foreignKey>
<foreignKey name="FK_ism_asset_ism_asset_state">
<source table="ism_asset" column="asset_state_id"/>
<destination table="ism_asset_state" column="id"/>
</foreignKey>
</table>
<table name="ism_asset_state">
<column name="id" datatype="bigint" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="name" datatype="text"/>
</table>
<table name="ism_main_structure_element">
<column name="id" datatype="bigint" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="name" datatype="text"/>
<column name="description" datatype="text"/>
<column name="geo_position" datatype="point_3d"/>
<column name="angle" datatype="real"/>
<column name="model_id" datatype="bigint"/>
<column name="external_wls_id" datatype="bigint"/>
<column name="group_id" datatype="integer"/>
<column name="properties" datatype="jsonb" default="'{}'"/>
<foreignKey name="FK_ism_main_structure_element_ism_building_group">
<source table="ism_main_structure_element" column="group_id"/>
<destination table="ism_building_group" column="id"/>
</foreignKey>
</table>
<table name="ism_mounting_point_asset">
<column name="id" datatype="bigint" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="asset_id" datatype="bigint" isForeignKey="1"/>
<column name="structure_element_id" datatype="bigint" isForeignKey="1"/>
<column name="name" datatype="text"/>
<column name="last_updated" datatype="timestamp" default="now()"/>
<constraint name="UQ_ism_mounting_point_asset_asset_id" type="unique">
<column name="asset_id"/>
</constraint>
<constraint name="UQ_ism_mounting_point_asset_structure_element_id" type="unique">
<column name="structure_element_id"/>
</constraint>
<foreignKey name="FK_ism_mounting_point_asset_ism_asset">
<source table="ism_mounting_point_asset" column="asset_id"/>
<destination table="ism_asset" column="id"/>
</foreignKey>
<foreignKey name="FK_ism_mounting_point_asset_ism_structure_element">
<source table="ism_mounting_point_asset" column="structure_element_id"/>
<destination table="ism_structure_element" column="id"/>
</foreignKey>
</table>
<table name="ism_mounting_point_plan">
<column name="id" datatype="bigint" isPrimaryKey="1" comment="in fact not used...">
<sequence start="1" increment="1"/>
</column>
<column name="mounting_point_schedule_id" datatype="bigint" isForeignKey="1"/>
<column name="structure_element_id" datatype="bigint" isForeignKey="1"/>
<column name="mounting_point_state" datatype="integer" default="0" isForeignKey="1" comment="(-1, 0, 1) - (Empty, Idle, Equipped)"/>
<foreignKey name="FK_ism_mounting_point_plan_ism_structure_element">
<source table="ism_mounting_point_plan" column="structure_element_id"/>
<destination table="ism_structure_element" column="id"/>
</foreignKey>
<foreignKey name="FK_ism_mp_plan_ism_mp_schedule">
<source table="ism_mounting_point_plan" column="mounting_point_schedule_id"/>
<destination table="ism_mounting_point_schedule" column="id"/>
</foreignKey>
<foreignKey name="FK_ism_mp_plan_ism_mp_state">
<source table="ism_mounting_point_plan" column="mounting_point_state"/>
<destination table="ism_mounting_point_state" column="id"/>
</foreignKey>
<constraint name="UQ_ism_mp_plan_plan_structure_element_id" type="unique">
<column name="mounting_point_schedule_id"/>
<column name="structure_element_id"/>
</constraint>
<constraint name="IDX_ism_mounting_point_plan_schedule_id" type="index">
<column name="mounting_point_schedule_id"/>
</constraint>
</table>
<table name="ism_mounting_point_schedule">
<column name="id" datatype="bigint" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="name" datatype="text"/>
<column name="status_id" datatype="integer" isForeignKey="1"/>
<column name="time_created" datatype="timestamp" default="now()"/>
<column name="time_start" datatype="timestamp" comment="time activated"/>
<column name="time_end" datatype="timestamp" comment="time expired"/>
<column name="exercise_id" datatype="bigint" isOptional="1" isForeignKey="1"/>
<foreignKey name="FK_ism_mounting_point_schedule_exercise">
<source table="ism_mounting_point_schedule" column="exercise_id"/>
<destination service="ExerciseManagement" serviceAbbr="exm" schema="exm" table="exercise" column="id"/>
</foreignKey>
<foreignKey name="FK_ism_mounting_point_schedule_schedule_status">
<source table="ism_mounting_point_schedule" column="status_id"/>
<destination table="ism_schedule_status" column="id"/>
</foreignKey>
</table>
<table name="ism_mounting_point_state">
<column name="id" datatype="bigint" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="name" datatype="text"/>
</table>
<table name="ism_mounting_point_type">
<column name="id" datatype="bigint" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="name" datatype="text"/>
</table>
<table name="ism_building_group">
<column name="id" datatype="bigint" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="name" datatype="text"/>
</table>
<table name="ism_special_area">
<column name="id" datatype="bigint" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="name" datatype="text"/>
<column name="special_type" datatype="bigint" isForeignKey="1"/>
<column name="polygon" datatype="jsonb"/>
<foreignKey name="FK_ism_special_area_ism_special_area_type">
<source table="ism_special_area" column="special_type"/>
<destination table="ism_special_area_type" column="id"/>
</foreignKey>
</table>
<table name="ism_schedule_status_change" comment="instrumentation plan status changes">
<column name="id" datatype="integer" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="schedule_id" datatype="integer" isForeignKey="1"/>
<column name="schedule_status_id" datatype="integer" isForeignKey="1"/>
<column name="changed_at" datatype="bigint"/>
<column name="operator_id" datatype="integer"/>
<column name="workstation_id" datatype="integer"/>
<foreignKey name="FK_ism_schedule_status_change_schedule_id">
<source table="ism_schedule_status_change" column="schedule_id"/>
<destination table="ism_mounting_point_schedule" column="id"/>
</foreignKey>
<foreignKey name="FK_ism_schedule_status_change_schedule_status_id">
<source table="ism_schedule_status_change" column="schedule_status_id"/>
<destination table="ism_schedule_status" column="id"/>
</foreignKey>
</table>
<table name="ism_schedule_status">
<column name="id" datatype="integer" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="name" datatype="text"/>
</table>
<table name="ism_special_area_type">
<column name="id" datatype="bigint" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="name" datatype="text"/>
</table>
<table name="ism_structure_element">
<column name="id" datatype="bigint" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="name" datatype="text"/>
<column name="main_structure_element_id" datatype="bigint" isForeignKey="1"/>
<column name="structure_element_type_id" datatype="bigint" isForeignKey="1"/>
<column name="path" datatype="integer[]"/>
<column name="mounting_point_id" datatype="integer"/>
<column name="barcode" datatype="text"/>
<column name="rel_position" datatype="point_3d"/>
<column name="mounting_point_type_id" datatype="bigint" isForeignKey="1"/>
<column name="orientation" datatype="point_3d"/>
<column name="properties" datatype="jsonb" default="'{}'"/>
<column name="display_name" datatype="text"/>
<constraint name="UQ_ism_structure_element_path" type="unique">
<column name="path"/>
</constraint>
<foreignKey name="FK_ism_structure_element_ism_se_type">
<source table="ism_structure_element" column="structure_element_type_id"/>
<destination table="ism_structure_element_type" column="id"/>
</foreignKey>
<foreignKey name="FK_ism_structure_element_ism_mounting_point_type">
<source table="ism_structure_element" column="mounting_point_type_id"/>
<destination table="ism_mounting_point_type" column="id"/>
</foreignKey>
<foreignKey name="FK_ism_structure_element_ism_se_main_id">
<source table="ism_structure_element" column="main_structure_element_id"/>
<destination table="ism_main_structure_element" column="id"/>
</foreignKey>
</table>
<table name="ism_structure_element_footprint">
<column name="id" datatype="bigint" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="structure_element_id" datatype="bigint" isForeignKey="1"/>
<column name="index_no" datatype="bigint"/>
<column name="rel_position" datatype="point_3d"/>
<column name="is_ground_level" datatype="boolean" default="false"/>
<constraint name="UQ_ism_structure_element_footprint_index_no" type="unique">
<column name="structure_element_id"/>
<column name="index_no"/>
</constraint>
<foreignKey name="FK_ism_se_footprint_ism_se_id">
<source table="ism_structure_element_footprint" column="structure_element_id"/>
<destination table="ism_structure_element" column="id"/>
</foreignKey>
</table>
<table name="ism_structure_element_type">
<column name="id" datatype="bigint" isPrimaryKey="1">
<sequence start="1" increment="1"/>
</column>
<column name="name" datatype="text"/>
</table>
</tables>
<views/>
<dbServiceStructs>
<serviceStruct name="IsmAsset" table="ism_asset"/>
<serviceStruct name="IsmMainStructureElement" table="ism_main_structure_element"/>
<serviceStruct name="IsmMountingPointAsset" table="ism_mounting_point_asset"/>
<serviceStruct name="IsmMountingPointPlan" table="ism_mounting_point_plan">
<function name="updateMountingPointPlan" returns="bool">
<parameter pos="1" name="scheduleId" type="int"/>
<parameter pos="2" name="mountingPointId" type="int"/>
<parameter pos="3" name="mountingPointState" type="MountingPointState"/>
</function>
<function name="deleteMountingPointPlan" returns="bool">
<parameter pos="1" name="scheduleId" type="int"/>
<parameter pos="2" name="mountingPointId" type="int"/>
</function>
<function name="insertMountingPointPlans" returns="bool">
<parameter pos="1" name="mpps" type="const std::vector&lt;Database::IsmMountingPointPlan&gt; &amp;"/>
</function>
</serviceStruct>
<serviceStruct name="IsmMountingPointSchedule" table="ism_mounting_point_schedule">
<notification name="notifyInsertMainSchedule" returns="void" notificationTypes="AfterInsert">
<parameter pos="1" name="id" type="qint64"/>
</notification>
<function name="copySchedule" returns="int">
<parameter pos="1" name="scheduleId" type="int"/>
</function>
</serviceStruct>
<serviceStruct name="IsmScheduleStatusChange" table="ism_schedule_status_change"/>
<serviceStruct name="IsmSpecialArea" table="ism_special_area"/>
<serviceStruct name="IsmStructureElement" table="ism_structure_element"/>
<serviceStruct name="IsmStructureElementFootprint" table="ism_structure_element_footprint"/>
<table name="ism_asset"/>
<table name="ism_main_structure_element"/>
<table name="ism_mounting_point_asset"/>
<table name="ism_mounting_point_plan"/>
<table name="ism_mounting_point_schedule"/>
<table name="ism_schedule_status_change"/>
<table name="ism_structure_element"/>
<table name="ism_structure_element_footprint"/>
</dbServiceStructs>
<topicTypes>
<topicType name="SpecialArea" isDataObject="1" autosubscribe="1" routeToClient="1" routeToServer="0" routeInReplay="0" baseValueType="Core::BaseEntity">
<column name="specialType" idlType="SpecialAreaType"/>
<column name="polygon" idlType="sequence&lt;Core::GeoPosition2D&gt;"/>
<column name="boundingBoxBottomLeft" idlType="Core::GeoPosition2D"/>
<column name="boundingBoxTopRight" idlType="Core::GeoPosition2D"/>
</topicType>
<topicType name="InstrumentationAsset" isDataObject="1" autosubscribe="1" routeToClient="1" routeToServer="0" routeInReplay="0" baseValueType="Core::BaseEntity">
<column name="mountingPointTypeId" idlType="MountingPointType"/>
<column name="barcode" idlType="string"/>
<column name="hostname" idlType="string"/>
<column name="properties" idlType="string"/>
<column name="assetStateId" idlType="InstrumentationAssetState"/>
<column name="lastUpdated" idlType="long long"/>
<column name="availableInExercise" idlType="sequence&lt;long&gt;"/>
</topicType>
<topicType name="InstrumentationAssetModifyRequest">
<column name="id" idlType="long"/>
<column name="name" idlType="string"/>
<column name="mountingPointTypeId" idlType="MountingPointType"/>
<column name="barcode" idlType="string"/>
<column name="hostname" idlType="string"/>
<column name="properties" idlType="string"/>
<column name="instrumentationAssetStateId" idlType="InstrumentationAssetState"/>
<column name="lastUpdated" idlType="long long"/>
<column name="availableInExercise" idlType="sequence&lt;long&gt;"/>
</topicType>
<topicType name="InstrumentationAssetSetStateRequest">
<column name="id" idlType="long"/>
<column name="instrumentationAssetStateId" idlType="InstrumentationAssetState"/>
</topicType>
<topicType name="InstrumentationAssetUnmountRequest">
<column name="id" idlType="long"/>
</topicType>
<topicType name="MainSchedule" isDataObject="1" autosubscribe="1" routeToClient="1" routeToServer="0" routeInReplay="0" baseValueType="Core::BaseEntity">
<column name="description" idlType="string"/>
<column name="statusId" idlType="ScheduleStatus"/>
<column name="timeCreated" idlType="long long"/>
<column name="timeStart" idlType="long long" isOptional="1"/>
<column name="timeEnd" idlType="long long" isOptional="1"/>
<column name="exerciseId" idlType="long" isOptional="1"/>
<column name="elements" idlType="sequence&lt;MountingPointPlan&gt;"/>
</topicType>
<topicType name="MainScheduleCopyRequest">
<column name="id" idlType="long"/>
</topicType>
<topicType name="MainScheduleModifyRequest">
<column name="id" idlType="long"/>
<column name="name" idlType="string"/>
<column name="description" idlType="string"/>
<column name="statusId" idlType="ScheduleStatus"/>
<column name="timeCreated" idlType="long long"/>
<column name="timeStart" idlType="long long" isOptional="1"/>
<column name="timeEnd" idlType="long long" isOptional="1"/>
<column name="exerciseId" idlType="long" isOptional="1"/>
<column name="elements" idlType="sequence&lt;StructureElement&gt;"/>
</topicType>
<topicType name="MountingPointAsset" isDataObject="1" autosubscribe="1" routeToClient="1" routeToServer="0" routeInReplay="0">
<column name="id" idlType="long" isKey="1"/>
<column name="structureElementId" idlType="long"/>
<column name="assetId" idlType="long"/>
<column name="name" idlType="string"/>
<column name="lastUpdated" idlType="long long"/>
</topicType>
<topicType name="MountingPointAssetModifyRequest" baseValueType="MountingPointAsset">
<column name="dummy" idlType="long"/>
</topicType>
<topicType name="MountingPointPlan">
<column name="structureElementId" idlType="long"/>
<column name="mountingPointState" idlType="MountingPointState"/>
</topicType>
<topicType name="MountingPointPlanModifyRequest">
<column name="mountingPointScheduleId" idlType="long"/>
<column name="mountingPointPlans" idlType="sequence&lt;MountingPointPlan&gt;"/>
</topicType>
<topicType name="EffectArea" isDataObject="1" autosubscribe="1" routeToClient="1" routeToServer="0" routeInReplay="0">
<column name="id" idlType="long" isKey="1"/>
<column name="name" idlType="string"/>
<column name="areaEgcuId" idlType="long"/>
<column name="egcuIds" idlType="sequence&lt;long&gt;" comment="EGCU-IDs"/>
<column name="geometry" idlType="sequence&lt;Core::GeoPosition2D&gt;"/>
</topicType>
<topicType name="FootprintElement">
<column name="id" idlType="long"/>
<column name="relPosition" idlType="Core::RelativePosition"/>
<column name="isGroundLevel" idlType="boolean"/>
</topicType>
<topicType name="MainFootprint" isDataObject="1" autosubscribe="1" routeToClient="1" routeToServer="0" routeInReplay="1" baseValueType="Core::BaseEntity">
<column name="structureElementId" idlType="long"/>
<column name="elements" idlType="sequence&lt;FootprintElement&gt;"/>
</topicType>
<topicType name="MainStructureElement" isDataObject="1" autosubscribe="1" routeToClient="1" routeToServer="0" routeInReplay="1" baseValueType="Core::BaseEntity">
<column name="description" idlType="string"/>
<column name="properties" idlType="string"/>
<column name="structureElementId" idlType="long"/>
<column name="structureElementTypeId" idlType="StructureElementType"/>
<column name="geoPosition" idlType="Core::GeoPosition"/>
<column name="angle" idlType="double"/>
<column name="modelId" idlType="long"/>
<column name="externalWlsId" idlType="long"/>
<column name="groupId" idlType="long"/>
<column name="elements" idlType="sequence&lt;StructureElement&gt;"/>
</topicType>
<topicType name="MainStructureElementModifyBridgeStatusRequest">
<column name="id" idlType="long"/>
<column name="status" idlType="BridgeStatus"/>
</topicType>
<topicType name="MainStructureElementModifyPositionRequest">
<column name="id" idlType="long"/>
<column name="geoPosition" idlType="Core::GeoPosition"/>
</topicType>
<topicType name="MainStructureElementModifyRequest" baseValueType="MainStructureElement">
<column name="childParentRelations" idlType="sequence&lt;long&gt;" comment="contains the index of the parent in the elements structure"/>
<column name="footprint" idlType="sequence&lt;FootprintElement&gt;" isOptional="1" comment="if not set -&amp;gt; no update, if empty -&amp;gt; remove"/>
</topicType>
<topicType name="MainStructureElementRemoveRequest">
<column name="id" idlType="long"/>
</topicType>
<topicType name="StructureElement" baseValueType="Core::BaseEntity">
<column name="mainStructureElementId" idlType="long"/>
<column name="structureElementTypeId" idlType="StructureElementType"/>
<column name="path" idlType="sequence&lt;long&gt;"/>
<column name="mountingPointId" idlType="long" comment="SubId from XML"/>
<column name="barcode" idlType="string"/>
<column name="relPosition" idlType="Core::RelativePosition"/>
<column name="geoPosition" idlType="Core::GeoPosition"/>
<column name="mountingPointTypeId" idlType="MountingPointType"/>
<column name="orientation" idlType="Core::Orientation"/>
<column name="properties" idlType="string" comment="Overrides: relays json array [key id des Relais 0 = aus, 1 = on, nichts bi auto-Mode], sounds:0, flash:0, (bei sounds und flash ist entwerder 0 oder nicht vorhanden)"/>
<column name="displayName" idlType="string"/>
</topicType>
<topicType name="StructureElementModifyRequest">
<column name="mainStructureElementId" idlType="long"/>
<column name="elements" idlType="sequence&lt;StructureElement&gt;"/>
</topicType>
<topicType name="StructureElementUpdateEffectOverrideRequest">
<column name="structureElementId" idlType="long"/>
<column name="effectId" idlType="long"/>
<column name="effectOverride" idlType="EffectOverride"/>
</topicType>
<topicType name="BridgeChangeStatus" isDataObject="1" autosubscribe="1" routeToClient="1" routeToServer="0" routeInReplay="0" baseValueType="Core::BaseEntityWithSampleTime">
<column name="buildingId" idlType="long"/>
<column name="status" idlType="BridgeStatus"/>
</topicType>
</topicTypes>
<functionTopics>
<functionTopic name="InstrumentationAssetModify" requestTopicType="InstrumentationAssetModifyRequest" replyTopicType="Core::FunctionReply" requestTopicName="InstrumentationAssetModifyRequest" replyTopicName="InstrumentationAssetModifyReply" routeInReplay="0"/>
<functionTopic name="InstrumentationAssetRemove" requestTopicType="Core::RemoveElementRequest" replyTopicType="Core::FunctionReply" requestTopicName="InstrumentationAssetRemoveRequest" replyTopicName="InstrumentationAssetRemoveReply" routeInReplay="0"/>
<functionTopic name="InstrumentationAssetSetState" requestTopicType="InstrumentationAssetSetStateRequest" replyTopicType="Core::FunctionReply" requestTopicName="InstrumentationAssetSetStateRequest" replyTopicName="InstrumentationAssetSetStateReply" routeInReplay="0"/>
<functionTopic name="InstrumentationAssetUnmount" requestTopicType="InstrumentationAssetUnmountRequest" replyTopicType="Core::FunctionReply" requestTopicName="InstrumentationAssetUnmountRequest" replyTopicName="InstrumentationAssetUnmountReply" routeInReplay="0"/>
<functionTopic name="MainScheduleModify" requestTopicType="MainScheduleModifyRequest" replyTopicType="Core::FunctionReply" requestTopicName="MainScheduleModifyRequest" replyTopicName="MainScheduleModifyReply" routeInReplay="0"/>
<functionTopic name="MainScheduleRemove" requestTopicType="Core::RemoveElementRequest" replyTopicType="Core::FunctionReply" requestTopicName="MainScheduleRemoveRequest" replyTopicName="MainScheduleRemoveReply" routeInReplay="0"/>
<functionTopic name="MainScheduleCopy" requestTopicType="MainScheduleCopyRequest" replyTopicType="Core::FunctionReply" requestTopicName="MainScheduleCopyRequest" replyTopicName="MainScheduleCopyReply" routeInReplay="0"/>
<functionTopic name="MountingPointAssetModify" requestTopicType="MountingPointAssetModifyRequest" replyTopicType="Core::FunctionReply" requestTopicName="MountingPointAssetModifyRequest" replyTopicName="MountingPointAssetModifyReply" routeInReplay="0"/>
<functionTopic name="MountingPointAssetRemove" requestTopicType="Core::RemoveElementRequest" replyTopicType="Core::FunctionReply" requestTopicName="MountingPointAssetRemoveRequest" replyTopicName="MountingPointAssetRemoveReply" routeInReplay="0"/>
<functionTopic name="MountingPointPlanModify" requestTopicType="MountingPointPlanModifyRequest" replyTopicType="Core::FunctionReply" requestTopicName="MountingPointPlanModifyRequest" replyTopicName="MountingPointPlanModifyReply" routeInReplay="0"/>
<functionTopic name="MainStructureElementModifyBridgeStatus" requestTopicType="MainStructureElementModifyBridgeStatusRequest" replyTopicType="Core::FunctionReply" requestTopicName="MainStructureElementModifyBridgeStatusRequest" replyTopicName="MainStructureElementModifyBridgeStatusReply" routeInReplay="0"/>
<functionTopic name="MainStructureElementModifyPosition" requestTopicType="MainStructureElementModifyPositionRequest" replyTopicType="Core::FunctionReply" requestTopicName="MainStructureElementModifyPositionRequest" replyTopicName="MainStructureElementModifyPositionReply" routeInReplay="0"/>
<functionTopic name="MainStructureElementModify" requestTopicType="MainStructureElementModifyRequest" replyTopicType="Core::FunctionReply" requestTopicName="MainStructureElementModifyRequest" replyTopicName="MainStructureElementModifyReply" routeInReplay="0"/>
<functionTopic name="MainStructureElementRemove" requestTopicType="MainStructureElementRemoveRequest" replyTopicType="Core::FunctionReply" requestTopicName="MainStructureElementRemoveRequest" replyTopicName="MainStructureElementRemoveReply" routeInReplay="0"/>
<functionTopic name="StructureElementModify" requestTopicType="StructureElementModifyRequest" replyTopicType="Core::FunctionReply" requestTopicName="StructureElementModifyRequest" replyTopicName="StructureElementModifyReply" routeInReplay="0"/>
<functionTopic name="StructureElementUpdateEffectOverride" requestTopicType="StructureElementUpdateEffectOverrideRequest" replyTopicType="Core::FunctionReply" requestTopicName="StructureElementUpdateEffectOverrideRequest" replyTopicName="StructureElementUpdateEffectOverrideReply" routeInReplay="0"/>
</functionTopics>
<customDtcFunctions>
<customDtcFunction>
<function name="getMountingPointAssetId" returns="bool" isConst="1">
<parameter pos="1" name="structureElementId" type="int"/>
<parameter pos="2" name="assetId" type="int"/>
<parameter pos="3" name="mountingPointAssetId" type="int &amp;"/>
</function>
<function name="getAssetIdFromMountingPoint" returns="bool" isConst="1">
<parameter pos="1" name="structureElementId" type="int"/>
<parameter pos="2" name="mountingPointAssetId" type="int"/>
<parameter pos="3" name="assetId" type="int &amp;"/>
</function>
<function name="getOpticalCodeFromAssetId" returns="int" isConst="1">
<parameter pos="1" name="assetId" type="int"/>
</function>
<function name="getAssetIdFromOpticalCode" returns="int" isConst="1">
<parameter pos="1" name="opticalCode" type="int"/>
</function>
<function name="getAssetIdFromMountingPointId" returns="int" isConst="1">
<parameter pos="1" name="mainStructureElementId" type="int"/>
<parameter pos="2" name="mountingPointId" type="int"/>
</function>
<function name="getOpsDataFromMseIdAndSeId" returns="bool" isConst="1">
<parameter pos="1" name="mainStructureElementId" type="int"/>
<parameter pos="2" name="structureElementId" type="int"/>
<parameter pos="3" name="roomId" type="int &amp;"/>
<parameter pos="4" name="geoPosition" type="Core::GeoPosition &amp;"/>
</function>
<function name="getStructureElementById" returns="bool" isConst="1">
<parameter pos="1" name="structureElementId" type="int"/>
<parameter pos="2" name="structureElement" type="StructureElement &amp;"/>
</function>
<function name="getStructureElementInMntPointAssetByAssetId" returns="bool" isConst="1">
<parameter pos="1" name="assetId" type="int"/>
<parameter pos="2" name="structureElement" type="StructureElement &amp;"/>
</function>
<function name="getStructureElementByBuildingIdAndMountingPointId" returns="bool" >
<parameter pos="1" name="mainStructureElementId" type="int"/>
<parameter pos="2" name="mountingPointId" type="int"/>
<parameter pos="3" name="structureElement" type="StructureElement &amp;"/>
</function>
<function name="getAllAssetsPerRoom" returns="bool" >
<parameter pos="1" name="predicate" type="const std::function&lt;bool(const InstrumentationAsset&amp;)&gt; &amp;"/>
<parameter pos="2" name="allAssets" type="QMap&lt;int, QVector&lt;InstrumentationAsset&gt; &gt; &amp;"/>
</function>
<function name="getAllAssetsPerBuilding" returns="bool" isConst="1">
<parameter pos="1" name="predicate" type="const std::function&lt;bool(const InstrumentationAsset&amp;)&gt; &amp;"/>
<parameter pos="2" name="allAssets" type="QMap&lt;int, QVector&lt;InstrumentationAsset&gt; &gt; &amp;"/>
</function>
<function name="getBuildingId" returns="bool" isConst="1">
<parameter pos="1" name="structureElementId" type="int"/>
<parameter pos="2" name="buildingId" type="int &amp;"/>
</function>
<function name="getBuildingDisplayName" returns="QString">
<parameter pos="1" name="buildingId" type="int"/>
</function>
<function name="getBuildingDisplayName" returns="QString" isConst="1">
<parameter pos="1" name="mse" type="const MainStructureElement &amp;"/>
</function>
<function name="getMountingPointPlan" returns="MountingPointPlan" isConst="1">
<parameter pos="1" name="scheduleId" type="int"/>
<parameter pos="2" name="structureElementId" type="int"/>
</function>
<function name="isElementAssignedToExercise" returns="bool" isConst="1">
<parameter pos="1" name="mse" type="const MainStructureElement&amp;"/>
<parameter pos="2" name="exerciseId" type="int"/>
</function>
<function name="getBuildingRoomsCount" returns="int">
<parameter pos="1" name="buildingId" type="int"/>
</function>
<function name="getBridgeStatus" returns="BridgeStatus">
<parameter pos="1" name="buildingId" type="int"/>
</function>
<function name="checkSchedule" returns="bool">
<parameter pos="1" name="scheduleId" type="int"/>
</function>
<function name="getScheduleDifferences" returns="bool">
<parameter pos="1" name="scheduleId" type="int"/>
<parameter pos="2" name="diffList" type="QList&lt;MountingPointPlan&gt; &amp;"/>
</function>
<function name="getMountedAssetId" returns="int" isConst="1">
<parameter pos="1" name="structureElementId" type="int"/>
</function>
<function name="getStructueElementIdFromAssetId" returns="int" isConst="1">
<parameter pos="1" name="assetId" type="int"/>
</function>
<function name="getSections" returns="QList&lt;int&gt;">
</function>
<function name="getFootprintsByExerciseId" returns="QMap&lt;int, MainFootprint&gt;">
<parameter pos="1" name="exerciseId" type="int"/>
</function>
<function name="getUtmFootprintsByExerciseId" returns="QMap&lt;int, QPolygonF&gt;">
<parameter pos="1" name="exerciseId" type="int"/>
<parameter pos="2" name="zone" type="int &amp;"/>
<parameter pos="3" name="isGroundLevel" type="bool"/>
</function>
<function name="getUtmFootprintById" returns="QPolygonF">
<parameter pos="1" name="mseId" type="int"/>
<parameter pos="2" name="zone" type="int &amp;"/>
<parameter pos="3" name="isGroundLevel" type="bool"/>
</function>
<function name="getBuildingByPolygon" returns="QVector&lt;int&gt;">
<parameter pos="1" name="exerciseId" type="int"/>
<parameter pos="2" name="polygon" type="const QPolygonF &amp;"/>
<parameter pos="3" name="completeEnclosed" type="bool"/>
<parameter pos="4" name="isGroundLevel" type="bool"/>
</function>
<function name="getSurroundingBuildingByPolygon" returns="int">
<parameter pos="1" name="exerciseId" type="int"/>
<parameter pos="2" name="polygon" type="const QPolygonF &amp;"/>
<parameter pos="3" name="isGroundLevel" type="bool"/>
</function>
<function name="getBuildingIdAtPosition" returns="int">
<parameter pos="1" name="exerciseId" type="int"/>
<parameter pos="2" name="utmPos" type="const QPointF &amp;"/>
<parameter pos="3" name="isGroundLevel" type="bool"/>
</function>
<function name="getFloorIdsFromBuilding" returns="QVector&lt;int&gt;">
<parameter pos="1" name="buildingId" type="int"/>
</function>
<function name="getHalfFloorHeight" returns="double">
<parameter pos="1" name="buildingId" type="int"/>
<parameter pos="2" name="floorId" type="int"/>
</function>
<function name="getRoomIdsFromFloorId" returns="QVector&lt;int&gt;">
<parameter pos="1" name="buildingId" type="int"/>
<parameter pos="2" name="floorId" type="int"/>
</function>
<function name="getBuildingIdsByExercise" returns="QVector&lt;int&gt;">
<parameter pos="1" name="exerciseId" type="int"/>
</function>
<function name="getVulnerabilityModelData" returns="QByteArray">
<parameter pos="1" name="buildingId" type="int"/>
</function>
</customDtcFunction>
</customDtcFunctions>
<enumerations>
<enumeration name="BuildingGroup" table="ism_building_group">
<attribute key="UnknownGroup" value="0"/>
<attribute key="OutdoorCameras" value="1"/>
<attribute key="Section0" value="2"/>
<attribute key="Section1" value="3"/>
<attribute key="Section2" value="4"/>
<attribute key="Section3" value="5"/>
<attribute key="Section4" value="6"/>
<attribute key="Salchau" value="7"/>
</enumeration>
<enumeration name="EffectOverride">
<attribute key="Automatic" value="-1"/>
<attribute key="PermanentOff" value="0"/>
<attribute key="PermanentOn" value="1"/>
</enumeration>
<enumeration name="InstrumentationAssetState" table="ism_asset_state">
<attribute key="Unmounted" value="0"/>
<attribute key="Mounted" value="1"/>
<attribute key="Defect" value="2"/>
</enumeration>
<enumeration name="MountingPointState" table="ism_mounting_point_state">
<attribute key="Empty" value="-1"/>
<attribute key="Idle" value="0"/>
<attribute key="Equipped" value="1"/>
</enumeration>
<enumeration name="MountingPointType" table="ism_mounting_point_type">
<attribute key="Unknown" value="0"/>
<attribute key="BuildingSensorModule" value="1"/>
<attribute key="BuildingControlUnit" value="2"/>
<attribute key="OutdoorCamera" value="3"/>
<attribute key="IndoorCamera" value="4"/>
<attribute key="OutdoorIPS" value="5"/>
<attribute key="IndoorIPS" value="6"/>
<attribute key="MeteoDataUnit" value="7"/>
<attribute key="AnnouncementUnit" value="10"/>
<attribute key="VirtualIPS" value="11"/>
<attribute key="EffectGenerationControlUnit" value="12"/>
<attribute key="OutdoorControlUnit" value="13"/>
<attribute key="BuildingNetworkSwitch" value="14"/>
</enumeration>
<enumeration name="ScheduleStatus" table="ism_schedule_status">
<attribute key="Active" value="0"/>
<attribute key="Inactive" value="1"/>
</enumeration>
<enumeration name="StructureElementType" table="ism_structure_element_type">
<attribute key="TrainingArea" value="0"/>
<attribute key="City" value="1"/>
<attribute key="Section" value="2"/>
<attribute key="Building" value="3"/>
<attribute key="Floor" value="4"/>
<attribute key="Room" value="5"/>
<attribute key="MountingPoint" value="6"/>
<attribute key="ApproachingPoint" value="7"/>
<attribute key="RadioStation" value="8"/>
<attribute key="MeteoDataUnit" value="9"/>
<attribute key="Announcement" value="10"/>
<attribute key="Bridge" value="11"/>
</enumeration>
<enumeration name="BridgeStatus">
<attribute key="Intact" value="0"/>
<attribute key="Broken" value="1"/>
</enumeration>
<enumeration name="SpecialAreaType" table="ism_special_area_type">
<attribute key="SatMoutArea" value="1"/>
<attribute key="SatCesArea" value="2"/>
</enumeration>
</enumerations>
</service>