From 4f44d674cbb1a237ea30ee2b4e39c8988c0135f6 Mon Sep 17 00:00:00 2001 From: Frank Rohde <frank.rohde@tu-dresden.de> Date: Fri, 25 Mar 2022 12:56:25 +0100 Subject: [PATCH] completed OSM-extension (has been tested) SimpleSceneIntegration now publishes IposMonitoringWrapper --- build.gradle | 3 +- emf_datamodel/model/iPos_Datamodel.aird | 600 +++++++++++++++++- emf_datamodel/model/iPos_Datamodel.ecore | 46 ++ emf_datamodel/model/iPos_Datamodel.genmodel | 49 ++ init_Industrierobotik.txt | 2 +- .../ipos/project/CustomLoggingFilter.java | 4 +- .../SimpleSceneIntegration.java | 18 +- .../OSM/OSMExtractedAttributes.java | 23 + .../iPos_Datamodel/OSM/OSMObject.java | 222 ------- .../iPos_Datamodel/OSM/OSMPackage.java | 46 +- .../OSM/impl/OSMExtractedAttributesImpl.java | 55 ++ .../OSM/impl/OSMObjectImpl.java | 91 +-- .../OSM/impl/OSMPackageImpl.java | 17 +- src/main/java/ipos/project/MainApp.java | 8 +- .../orderpicker/OFBizOrderPicker.java | 2 +- .../orderpicker/OFBizOrderPickerMqtt.java | 19 +- .../ipos/project/iposextension/osm/OSM.java | 16 + .../project/iposextension/osm/OSMExt.java | 2 +- .../iposextension/osm/OSMExtInputMqtt.java | 1 + .../iposextension/osm/OSMExtOutputMqtt.java | 11 +- .../osm/OSMIPosMonitoringWrapperMqtt.java | 11 +- .../project/iposextension/osm/OSMTrans.java | 176 ++++- testdata_raw_orderpicker_posEvts.txt | 34 +- testdata_raw_orderpicker_posEvts_readable.txt | 192 +++--- 24 files changed, 1227 insertions(+), 421 deletions(-) delete mode 100644 src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMObject.java diff --git a/build.gradle b/build.gradle index 2310a89..0c967f8 100644 --- a/build.gradle +++ b/build.gradle @@ -85,7 +85,8 @@ sourceSets { "models/interfaces/SimpleScene", "models/interfaces/OFBizOrderpicker", "models/interfaces/Tooz", - "models/interfaces/VDA5050" + "models/interfaces/VDA5050", + "models/interfaces/OSM" // srcDir "src/main/resources" } java { diff --git a/emf_datamodel/model/iPos_Datamodel.aird b/emf_datamodel/model/iPos_Datamodel.aird index 2c493ea..c2d8a26 100644 --- a/emf_datamodel/model/iPos_Datamodel.aird +++ b/emf_datamodel/model/iPos_Datamodel.aird @@ -5,7 +5,7 @@ <semanticResources>iPos_Datamodel.genmodel</semanticResources> <ownedViews xmi:type="viewpoint:DView" uid="_EpwecAQNEey-kNQ7esRa_g"> <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> - <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_Et4wgAQNEey-kNQ7esRa_g" name="iPos_Datamodel" repPath="#_Es-xkAQNEey-kNQ7esRa_g" changeId="35178b3f-3d7f-425c-b778-889bae2431fb"> + <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_Et4wgAQNEey-kNQ7esRa_g" name="iPos_Datamodel" repPath="#_Es-xkAQNEey-kNQ7esRa_g" changeId="312793ea-fa37-4cd3-9270-a2f279f61765"> <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#/"/> </ownedRepresentationDescriptors> @@ -25,6 +25,10 @@ <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//VDA5050"/> </ownedRepresentationDescriptors> + <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_q62u4KEeEeyjYoAVD5IwbQ" name="OSM" repPath="#_q60SoKEeEeyjYoAVD5IwbQ" changeId="95660e9c-3628-4a27-b3e3-fbe035508556"> + <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> + <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//OSM"/> + </ownedRepresentationDescriptors> </ownedViews> </viewpoint:DAnalysis> <diagram:DSemanticDiagram uid="_Es-xkAQNEey-kNQ7esRa_g"> @@ -779,6 +783,19 @@ <styles xmi:type="notation:ShapeStyle" xmi:id="_-HZlMZosEeybDM53IXNodQ" fontName="Segoe UI" fontHeight="8"/> <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-HZlMposEeybDM53IXNodQ" x="2715" y="924" width="276" height="141"/> </children> + <children xmi:type="notation:Node" xmi:id="_evlZ8KEgEeyjYoAVD5IwbQ" type="2003" element="_evTGEKEgEeyjYoAVD5IwbQ"> + <children xmi:type="notation:Node" xmi:id="_evlZ86EgEeyjYoAVD5IwbQ" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_evlZ9KEgEeyjYoAVD5IwbQ" type="7004"> + <children xmi:type="notation:Node" xmi:id="_evmBAKEgEeyjYoAVD5IwbQ" type="3010" element="_evdeJKEgEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_evmBAaEgEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8" italic="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_evmBAqEgEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_evlZ9aEgEeyjYoAVD5IwbQ"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_evlZ9qEgEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_evlZ8aEgEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_evlZ8qEgEeyjYoAVD5IwbQ" x="2232" y="967" width="140" height="50"/> + </children> <styles xmi:type="notation:DiagramStyle" xmi:id="_EuqzogQNEey-kNQ7esRa_g"/> <edges xmi:type="notation:Edge" xmi:id="_slHHwAQOEey-kNQ7esRa_g" type="4001" element="_sk66gAQOEey-kNQ7esRa_g" source="_OVBp4AQNEey-kNQ7esRa_g" target="_hS0UIAQOEey-kNQ7esRa_g"> <children xmi:type="notation:Node" xmi:id="_slIV4AQOEey-kNQ7esRa_g" type="6001"> @@ -3154,6 +3171,26 @@ <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@subNodeMappings[name='EC_DataType_InstanceClassName']"/> </ownedElements> </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_evTGEKEgEeyjYoAVD5IwbQ" name="IntArray" tooltipText="" width="14" height="5"> + <target xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//IntArray"/> + <semanticElements xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//IntArray"/> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_evTGEaEgEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="255,250,191"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_evdeJKEgEeyjYoAVD5IwbQ" name="int[]" tooltipText=""> + <target xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//IntArray"/> + <semanticElements xmi:type="ecore:EDataType" href="iPos_Datamodel.ecore#//IntArray"/> + <decorations xmi:type="viewpoint:Decoration" uid="_evdeJaEgEeyjYoAVD5IwbQ"> + <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/> + </decorations> + <ownedStyle xmi:type="diagram:BundledImage" uid="_evdeJqEgEeyjYoAVD5IwbQ" showIcon="false"> + <labelFormat>italic</labelFormat> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@subNodeMappings[name='EC_DataType_InstanceClassName']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EDataType']/@subNodeMappings[name='EC_DataType_InstanceClassName']"/> + </ownedElements> + </ownedDiagramElements> <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_EthkIAQNEey-kNQ7esRa_g"/> <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> @@ -5182,4 +5219,565 @@ <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/> <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//VDA5050"/> </diagram:DSemanticDiagram> + <diagram:DSemanticDiagram uid="_q60SoKEeEeyjYoAVD5IwbQ"> + <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_q9SX0KEeEeyjYoAVD5IwbQ" source="GMF_DIAGRAMS"> + <data xmi:type="notation:Diagram" xmi:id="_q9SX0aEeEeyjYoAVD5IwbQ" type="Sirius" element="_q60SoKEeEeyjYoAVD5IwbQ" measurementUnit="Pixel"> + <children xmi:type="notation:Node" xmi:id="_s0i0YKEeEeyjYoAVD5IwbQ" type="2003" element="_sz0boKEeEeyjYoAVD5IwbQ"> + <children xmi:type="notation:Node" xmi:id="_s0kpkKEeEeyjYoAVD5IwbQ" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_s0lQoKEeEeyjYoAVD5IwbQ" type="7004"> + <children xmi:type="notation:Node" xmi:id="_-dKQ4KEeEeyjYoAVD5IwbQ" type="3010" element="_-cfigKEeEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_-dKQ4aEeEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_-dKQ4qEeEeyjYoAVD5IwbQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_AhMlMKEfEeyjYoAVD5IwbQ" type="3010" element="_AgyVgKEfEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_AhMlMaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_AhMlMqEfEeyjYoAVD5IwbQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_DnwtgKEfEeyjYoAVD5IwbQ" type="3010" element="_DnXr8KEfEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_DnwtgaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_DnwtgqEfEeyjYoAVD5IwbQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_FEr-gKEfEeyjYoAVD5IwbQ" type="3010" element="_FEX1cKEfEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_FEr-gaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_FEr-gqEfEeyjYoAVD5IwbQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_G-Als6EhEeyjYoAVD5IwbQ" type="3010" element="_G9wHAKEhEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_G-AltKEhEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_G-AltaEhEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_s0lQoaEeEeyjYoAVD5IwbQ"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_s0lQoqEeEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_s0i0YaEeEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s0i0YqEeEeyjYoAVD5IwbQ" x="516" y="156" width="207" height="279"/> + </children> + <children xmi:type="notation:Node" xmi:id="_JRsKcKEfEeyjYoAVD5IwbQ" type="2003" element="_JRUXAKEfEeyjYoAVD5IwbQ"> + <children xmi:type="notation:Node" xmi:id="_JRsxgKEfEeyjYoAVD5IwbQ" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_JRsxgaEfEeyjYoAVD5IwbQ" type="7004"> + <children xmi:type="notation:Node" xmi:id="_L9H186EfEeyjYoAVD5IwbQ" type="3010" element="_L80T8KEfEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_L9H19KEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_L9H19aEfEeyjYoAVD5IwbQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_YN65MKEfEeyjYoAVD5IwbQ" type="3010" element="_YNpzcKEfEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_YN65MaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_YN65MqEfEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_JRsxgqEfEeyjYoAVD5IwbQ"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_JRsxg6EfEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_JRsKcaEfEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JRsKcqEfEeyjYoAVD5IwbQ" x="912" y="204" width="177" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_O8tMgKEfEeyjYoAVD5IwbQ" type="2003" element="_O8ZqgKEfEeyjYoAVD5IwbQ"> + <children xmi:type="notation:Node" xmi:id="_O8tMg6EfEeyjYoAVD5IwbQ" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_O8tMhKEfEeyjYoAVD5IwbQ" type="7004"> + <children xmi:type="notation:Node" xmi:id="_TKxvcKEfEeyjYoAVD5IwbQ" type="3010" element="_TKeNcKEfEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_TKxvcaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_TKxvcqEfEeyjYoAVD5IwbQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_UqkuQKEfEeyjYoAVD5IwbQ" type="3010" element="_UqTBcKEfEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_UqkuQaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_UqkuQqEfEeyjYoAVD5IwbQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Vv7MwKEfEeyjYoAVD5IwbQ" type="3010" element="_VvgWAKEfEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_Vv7MwaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Vv7MwqEfEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_O8tMhaEfEeyjYoAVD5IwbQ"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_O8tMhqEfEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_O8tMgaEfEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O8tMgqEfEeyjYoAVD5IwbQ" x="924" y="354" width="120" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_hzyAPKEfEeyjYoAVD5IwbQ" type="2003" element="_hzcpAKEfEeyjYoAVD5IwbQ"> + <children xmi:type="notation:Node" xmi:id="_hzynQKEfEeyjYoAVD5IwbQ" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_hzynQaEfEeyjYoAVD5IwbQ" type="7004"> + <children xmi:type="notation:Node" xmi:id="_jX43QKEfEeyjYoAVD5IwbQ" type="3010" element="_jXeAgKEfEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_jX43QaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_jX43QqEfEeyjYoAVD5IwbQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_k1y_sKEfEeyjYoAVD5IwbQ" type="3010" element="_k1ihAKEfEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_k1y_saEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_k1y_sqEfEeyjYoAVD5IwbQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_l4qK4KEfEeyjYoAVD5IwbQ" type="3010" element="_l4S-gKEfEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_l4qK4aEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_l4qK4qEfEeyjYoAVD5IwbQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_n6h8AKEfEeyjYoAVD5IwbQ" type="3010" element="_n6OaAKEfEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_n6h8AaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_n6h8AqEfEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_hzynQqEfEeyjYoAVD5IwbQ"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_hzynQ6EfEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_hzyAPaEfEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hzyAPqEfEeyjYoAVD5IwbQ" x="252" y="156" width="120" height="100"/> + </children> + <children xmi:type="notation:Node" xmi:id="_xIh8rKEfEeyjYoAVD5IwbQ" type="2003" element="_xISFAKEfEeyjYoAVD5IwbQ"> + <children xmi:type="notation:Node" xmi:id="_xIijsKEfEeyjYoAVD5IwbQ" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_xIijsaEfEeyjYoAVD5IwbQ" type="7004"> + <children xmi:type="notation:Node" xmi:id="_2FnhsKEfEeyjYoAVD5IwbQ" type="3010" element="_2FWb8KEfEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_2FnhsaEfEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2FnhsqEfEeyjYoAVD5IwbQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Rkt7IKEgEeyjYoAVD5IwbQ" type="3010" element="_RkZLAKEgEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_Rkt7IaEgEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Rkt7IqEgEeyjYoAVD5IwbQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="__rZ6wKEgEeyjYoAVD5IwbQ" type="3010" element="__rJcEKEgEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="__rZ6waEgEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="__rZ6wqEgEeyjYoAVD5IwbQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_VTZsMKO5EeydOu36HZmRaA" type="3010" element="_VSyoMKO5EeydOu36HZmRaA"> + <styles xmi:type="notation:FontStyle" xmi:id="_VTZsMaO5EeydOu36HZmRaA" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VTZsMqO5EeydOu36HZmRaA"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_xIijsqEfEeyjYoAVD5IwbQ"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_xIijs6EfEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_xIh8raEfEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xIh8rqEfEeyjYoAVD5IwbQ" x="240" y="330" width="165" height="117"/> + </children> + <children xmi:type="notation:Node" xmi:id="_XYLSEKEhEeyjYoAVD5IwbQ" type="2003" element="_XX3wEKEhEeyjYoAVD5IwbQ"> + <children xmi:type="notation:Node" xmi:id="_XYLSE6EhEeyjYoAVD5IwbQ" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_XYLSFKEhEeyjYoAVD5IwbQ" type="7004"> + <children xmi:type="notation:Node" xmi:id="_cGn-MKEhEeyjYoAVD5IwbQ" type="3010" element="_cGXfgKEhEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_cGn-MaEhEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_cGn-MqEhEeyjYoAVD5IwbQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_e0n1gKEhEeyjYoAVD5IwbQ" type="3010" element="_e0QCEKEhEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_e0n1gaEhEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_e0n1gqEhEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_XYLSFaEhEeyjYoAVD5IwbQ"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_XYLSFqEhEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_XYLSEaEhEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XYLSEqEhEeyjYoAVD5IwbQ" x="762" y="516" width="195" height="75"/> + </children> + <children xmi:type="notation:Node" xmi:id="_imKT0KEpEeyjYoAVD5IwbQ" type="2003" element="_il2x0KEpEeyjYoAVD5IwbQ"> + <children xmi:type="notation:Node" xmi:id="_imK64KEpEeyjYoAVD5IwbQ" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_imK64aEpEeyjYoAVD5IwbQ" type="7004"> + <children xmi:type="notation:Node" xmi:id="_ohUDoKEpEeyjYoAVD5IwbQ" type="3010" element="_ohCW0KEpEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_ohUDoaEpEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_ohUDoqEpEeyjYoAVD5IwbQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_qKBG1qEpEeyjYoAVD5IwbQ" type="3010" element="_qJoFQKEpEeyjYoAVD5IwbQ"> + <styles xmi:type="notation:FontStyle" xmi:id="_qKBG16EpEeyjYoAVD5IwbQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_qKBG2KEpEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:SortingStyle" xmi:id="_imK64qEpEeyjYoAVD5IwbQ"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_imK646EpEeyjYoAVD5IwbQ"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_imKT0aEpEeyjYoAVD5IwbQ" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_imKT0qEpEeyjYoAVD5IwbQ" x="1098" y="444" width="204" height="100"/> + </children> + <styles xmi:type="notation:DiagramStyle" xmi:id="_q9SX0qEeEeyjYoAVD5IwbQ"/> + <edges xmi:type="notation:Edge" xmi:id="_bNm9cKEfEeyjYoAVD5IwbQ" type="4001" element="_bNQ_MKEfEeyjYoAVD5IwbQ" source="_JRsKcKEfEeyjYoAVD5IwbQ" target="_O8tMgKEfEeyjYoAVD5IwbQ"> + <children xmi:type="notation:Node" xmi:id="_bNnkgKEfEeyjYoAVD5IwbQ" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bNnkgaEfEeyjYoAVD5IwbQ" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_bNoLkKEfEeyjYoAVD5IwbQ" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bNoLkaEfEeyjYoAVD5IwbQ" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_bNoLkqEfEeyjYoAVD5IwbQ" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bNoLk6EfEeyjYoAVD5IwbQ" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_bNm9caEfEeyjYoAVD5IwbQ" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_bNm9cqEfEeyjYoAVD5IwbQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bNm9c6EfEeyjYoAVD5IwbQ" points="[0, 0, 0, -52]$[0, 52, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bNrO4KEfEeyjYoAVD5IwbQ" id="(0.4057142857142857,1.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bNrO4aEfEeyjYoAVD5IwbQ" id="(0.5,0.0)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_dTwKkKEfEeyjYoAVD5IwbQ" type="4001" element="_dTY-NqEfEeyjYoAVD5IwbQ" source="_s0i0YKEeEeyjYoAVD5IwbQ" target="_JRsKcKEfEeyjYoAVD5IwbQ"> + <children xmi:type="notation:Node" xmi:id="_dTwKlKEfEeyjYoAVD5IwbQ" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dTwKlaEfEeyjYoAVD5IwbQ" x="196" y="8"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dTwKlqEfEeyjYoAVD5IwbQ" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dTwKl6EfEeyjYoAVD5IwbQ" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_dTwKmKEfEeyjYoAVD5IwbQ" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dTwKmaEfEeyjYoAVD5IwbQ" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_dTwKkaEfEeyjYoAVD5IwbQ" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_dTwKkqEfEeyjYoAVD5IwbQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dTwKk6EfEeyjYoAVD5IwbQ" points="[0, 0, -287, -36]$[287, 0, 0, -36]$[287, 36, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dTwKmqEfEeyjYoAVD5IwbQ" id="(1.0,0.04332129963898917)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dTwKm6EfEeyjYoAVD5IwbQ" id="(0.5485714285714286,0.0)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_pkY1wKEfEeyjYoAVD5IwbQ" type="4001" element="_pkI-LKEfEeyjYoAVD5IwbQ" source="_s0i0YKEeEeyjYoAVD5IwbQ" target="_hzyAPKEfEeyjYoAVD5IwbQ"> + <children xmi:type="notation:Node" xmi:id="_pkY1xKEfEeyjYoAVD5IwbQ" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pkY1xaEfEeyjYoAVD5IwbQ" x="11" y="20"/> + </children> + <children xmi:type="notation:Node" xmi:id="_pkY1xqEfEeyjYoAVD5IwbQ" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pkY1x6EfEeyjYoAVD5IwbQ" x="-2" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_pkY1yKEfEeyjYoAVD5IwbQ" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pkY1yaEfEeyjYoAVD5IwbQ" x="-40" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_pkY1waEfEeyjYoAVD5IwbQ" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_pkY1wqEfEeyjYoAVD5IwbQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pkY1w6EfEeyjYoAVD5IwbQ" points="[0, 0, 146, 0]$[-146, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pkY1yqEfEeyjYoAVD5IwbQ" id="(0.0,0.04332129963898917)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pkY1y6EfEeyjYoAVD5IwbQ" id="(1.0,0.12244897959183673)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_CxgJAKEhEeyjYoAVD5IwbQ" type="4001" element="_CxOcQqEhEeyjYoAVD5IwbQ" source="_s0i0YKEeEeyjYoAVD5IwbQ" target="_xIh8rKEfEeyjYoAVD5IwbQ"> + <children xmi:type="notation:Node" xmi:id="_CxgwEKEhEeyjYoAVD5IwbQ" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CxgwEaEhEeyjYoAVD5IwbQ" x="57" y="21"/> + </children> + <children xmi:type="notation:Node" xmi:id="_CxgwEqEhEeyjYoAVD5IwbQ" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CxgwE6EhEeyjYoAVD5IwbQ" x="148" y="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_CxgwFKEhEeyjYoAVD5IwbQ" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CxgwFaEhEeyjYoAVD5IwbQ" y="-10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_CxgJAaEhEeyjYoAVD5IwbQ" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_CxgJAqEhEeyjYoAVD5IwbQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CxgJA6EhEeyjYoAVD5IwbQ" points="[103, 265, 283, 103]$[103, 317, 283, 155]$[-195, 317, -15, 155]$[-195, 277, -15, 115]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CxgwFqEhEeyjYoAVD5IwbQ" id="(0.0,0.04332129963898917)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CxgwF6EhEeyjYoAVD5IwbQ" id="(0.588957055214724,0.0)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_ibnxYKEhEeyjYoAVD5IwbQ" type="4001" element="_ibXSyKEhEeyjYoAVD5IwbQ" source="_s0i0YKEeEeyjYoAVD5IwbQ" target="_XYLSEKEhEeyjYoAVD5IwbQ"> + <children xmi:type="notation:Node" xmi:id="_ibnxZKEhEeyjYoAVD5IwbQ" type="6001"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ibnxZaEhEeyjYoAVD5IwbQ" x="7"/> + </children> + <children xmi:type="notation:Node" xmi:id="_ibnxZqEhEeyjYoAVD5IwbQ" type="6002"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ibnxZ6EhEeyjYoAVD5IwbQ" x="10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_ibnxaKEhEeyjYoAVD5IwbQ" type="6003"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ibnxaaEhEeyjYoAVD5IwbQ" x="-61" y="-121"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_ibnxYaEhEeyjYoAVD5IwbQ" routing="Rectilinear"/> + <styles xmi:type="notation:FontStyle" xmi:id="_ibnxYqEhEeyjYoAVD5IwbQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ibnxY6EhEeyjYoAVD5IwbQ" points="[-43, 277, -156, -83]$[-43, 410, -156, 50]$[41, 410, -72, 50]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ibnxaqEhEeyjYoAVD5IwbQ" id="(1.0,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ibnxa6EhEeyjYoAVD5IwbQ" id="(0.37305699481865284,0.0)"/> + </edges> + </data> + </ownedAnnotationEntries> + <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_q9Tl8KEeEeyjYoAVD5IwbQ" source="DANNOTATION_CUSTOMIZATION_KEY"> + <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_q9Tl8aEeEeyjYoAVD5IwbQ"/> + </ownedAnnotationEntries> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_sz0boKEeEeyjYoAVD5IwbQ" name="OSMObject" tooltipText="" outgoingEdges="_dTY-NqEfEeyjYoAVD5IwbQ _pkI-LKEfEeyjYoAVD5IwbQ _CxOcQqEhEeyjYoAVD5IwbQ _ibXSyKEhEeyjYoAVD5IwbQ" width="12" height="10"> + <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMObject"/> + <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMObject"/> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_IMkDgaEhEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_-cfigKEeEeyjYoAVD5IwbQ" name="id : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/id"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/id"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="__mhssaEeEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_AgyVgKEfEeyjYoAVD5IwbQ" name="sensorId : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/sensorId"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/sensorId"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_CCxss6EfEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_DnXr8KEfEeyjYoAVD5IwbQ" name="type : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/type"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/type"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_EmwFU6EfEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_FEX1cKEfEeyjYoAVD5IwbQ" name="sensorType : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/sensorType"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/sensorType"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_GFGSp6EfEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_G9wHAKEhEeyjYoAVD5IwbQ" name="lastPosUpdate : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/lastPosUpdate"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMObject/lastPosUpdate"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_IMkqlKEhEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_JRUXAKEfEeyjYoAVD5IwbQ" name="OSMPosition" tooltipText="" outgoingEdges="_bNQ_MKEfEeyjYoAVD5IwbQ" incomingEdges="_dTY-NqEfEeyjYoAVD5IwbQ" width="12" height="10"> + <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMPosition"/> + <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMPosition"/> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_ZP3eY6EfEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_L80T8KEfEeyjYoAVD5IwbQ" name="refSystemId : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPosition/refSystemId"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPosition/refSystemId"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_M9oQsaEfEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_YNpzcKEfEeyjYoAVD5IwbQ" name="accuracy : EFloat = 0.0" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPosition/accuracy"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPosition/accuracy"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_ZP3ebaEfEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_O8ZqgKEfEeyjYoAVD5IwbQ" name="OSMPoint" tooltipText="" incomingEdges="_bNQ_MKEfEeyjYoAVD5IwbQ" width="12" height="10"> + <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMPoint"/> + <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMPoint"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Wex21aEfEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_TKeNcKEfEeyjYoAVD5IwbQ" name="x : EFloat = 0.0" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPoint/x"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPoint/x"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_UBptG6EfEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_UqTBcKEfEeyjYoAVD5IwbQ" name="y : EFloat = 0.0" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPoint/y"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPoint/y"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_VbMS6KEfEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_VvgWAKEfEeyjYoAVD5IwbQ" name="z : EFloat = 0.0" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPoint/z"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMPoint/z"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_Weyd46EfEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" uid="_bNQ_MKEfEeyjYoAVD5IwbQ" name="[0..1] osmpoint" sourceNode="_JRUXAKEfEeyjYoAVD5IwbQ" targetNode="_O8ZqgKEfEeyjYoAVD5IwbQ"> + <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMPosition/osmpoint"/> + <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMPosition/osmpoint"/> + <ownedStyle xmi:type="diagram:EdgeStyle" uid="_bNRmQKEfEeyjYoAVD5IwbQ" routingStyle="manhattan" strokeColor="0,0,0"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_bNRmQqEfEeyjYoAVD5IwbQ" showIcon="false"> + <customFeatures>labelSize</customFeatures> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_bNRmQaEfEeyjYoAVD5IwbQ" showIcon="false" labelColor="39,76,114"> + <customFeatures>labelSize</customFeatures> + </endLabelStyle> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" uid="_dTY-NqEfEeyjYoAVD5IwbQ" name="[0..1] osmposition" sourceNode="_sz0boKEeEeyjYoAVD5IwbQ" targetNode="_JRUXAKEfEeyjYoAVD5IwbQ"> + <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmposition"/> + <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmposition"/> + <ownedStyle xmi:type="diagram:EdgeStyle" uid="_dTY-N6EfEeyjYoAVD5IwbQ" routingStyle="manhattan" strokeColor="0,0,0"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_dTY-OaEfEeyjYoAVD5IwbQ" showIcon="false"> + <customFeatures>labelSize</customFeatures> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_dTY-OKEfEeyjYoAVD5IwbQ" showIcon="false" labelColor="39,76,114"> + <customFeatures>labelSize</customFeatures> + </endLabelStyle> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_hzcpAKEfEeyjYoAVD5IwbQ" name="OSMOrientation" tooltipText="" incomingEdges="_pkI-LKEfEeyjYoAVD5IwbQ" width="12" height="10"> + <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMOrientation"/> + <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMOrientation"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_oiBZ16EfEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_jXeAgKEfEeyjYoAVD5IwbQ" name="x : EFloat = 0.0" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/x"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/x"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_keKi1KEfEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_k1ihAKEfEeyjYoAVD5IwbQ" name="y : EFloat = 0.0" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/y"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/y"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_lkl_dKEfEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_l4S-gKEfEeyjYoAVD5IwbQ" name="z : EFloat = 0.0" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/z"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/z"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_nXan7aEfEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_n6OaAKEfEeyjYoAVD5IwbQ" name="w : EFloat = 0.0" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/w"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMOrientation/w"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_oiBZ5qEfEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" uid="_pkI-LKEfEeyjYoAVD5IwbQ" name="[0..1] osmorientation" sourceNode="_sz0boKEeEeyjYoAVD5IwbQ" targetNode="_hzcpAKEfEeyjYoAVD5IwbQ"> + <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmorientation"/> + <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmorientation"/> + <ownedStyle xmi:type="diagram:EdgeStyle" uid="_pkI-LaEfEeyjYoAVD5IwbQ" routingStyle="manhattan" strokeColor="0,0,0"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_pkI-L6EfEeyjYoAVD5IwbQ" showIcon="false"> + <customFeatures>labelSize</customFeatures> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_pkI-LqEfEeyjYoAVD5IwbQ" showIcon="false" labelColor="39,76,114"> + <customFeatures>labelSize</customFeatures> + </endLabelStyle> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_xISFAKEfEeyjYoAVD5IwbQ" name="OSMExtractedAttributes" tooltipText="" incomingEdges="_CxOcQqEhEeyjYoAVD5IwbQ" width="12" height="10"> + <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes"/> + <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_XwGYIaO5EeydOu36HZmRaA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_2FWb8KEfEeyjYoAVD5IwbQ" name="batteryChargeLevel : EFloat = 0.0" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/batteryChargeLevel"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/batteryChargeLevel"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_3zXdCaEfEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_RkZLAKEgEeyjYoAVD5IwbQ" name="loadedItems : IntArray" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/loadedItems"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/loadedItems"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_6mR0EKEgEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="__rJcEKEgEeyjYoAVD5IwbQ" name="errors : IntArray" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/errors"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/errors"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_A1d6O6EhEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_VSyoMKO5EeydOu36HZmRaA" name="theta : EFloat = 0.0" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/theta"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/theta"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_XwINVqO5EeydOu36HZmRaA" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" uid="_CxOcQqEhEeyjYoAVD5IwbQ" name="[0..1] osmextractedattributes" sourceNode="_sz0boKEeEeyjYoAVD5IwbQ" targetNode="_xISFAKEfEeyjYoAVD5IwbQ"> + <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmextractedattributes"/> + <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmextractedattributes"/> + <ownedStyle xmi:type="diagram:EdgeStyle" uid="_CxOcQ6EhEeyjYoAVD5IwbQ" routingStyle="manhattan" strokeColor="0,0,0"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_CxOcRaEhEeyjYoAVD5IwbQ" showIcon="false"> + <customFeatures>labelSize</customFeatures> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_CxOcRKEhEeyjYoAVD5IwbQ" showIcon="false" labelColor="39,76,114"> + <customFeatures>labelSize</customFeatures> + </endLabelStyle> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_XX3wEKEhEeyjYoAVD5IwbQ" name="OSMZoneDescriptor" tooltipText="" incomingEdges="_ibXSyKEhEeyjYoAVD5IwbQ" width="12" height="10"> + <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor"/> + <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor"/> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_li6Se6EhEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_cGXfgKEhEeyjYoAVD5IwbQ" name="zoneId : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor/zoneId"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor/zoneId"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_ebWZ8qEhEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_e0QCEKEhEeyjYoAVD5IwbQ" name="notificationType : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor/notificationType"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor/notificationType"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_gEStu6EhEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ibXSyKEhEeyjYoAVD5IwbQ" name="[0..*] osmzonedescriptor" sourceNode="_sz0boKEeEeyjYoAVD5IwbQ" targetNode="_XX3wEKEhEeyjYoAVD5IwbQ"> + <target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmzonedescriptor"/> + <semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//OSM/OSMObject/osmzonedescriptor"/> + <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ibX5wKEhEeyjYoAVD5IwbQ" routingStyle="manhattan" strokeColor="0,0,0"> + <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> + <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ibX5wqEhEeyjYoAVD5IwbQ" showIcon="false"> + <customFeatures>labelSize</customFeatures> + </centerLabelStyle> + <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_ibX5waEhEeyjYoAVD5IwbQ" showIcon="false" labelColor="39,76,114"> + <customFeatures>labelSize</customFeatures> + </endLabelStyle> + </ownedStyle> + <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> + </ownedDiagramElements> + <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_il2x0KEpEeyjYoAVD5IwbQ" name="OSMMonitoringTarget" tooltipText="" width="12" height="10"> + <target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget"/> + <semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget"/> + <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> + <arrangeConstraints>KEEP_SIZE</arrangeConstraints> + <arrangeConstraints>KEEP_RATIO</arrangeConstraints> + <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_rA8HzaEpEeyjYoAVD5IwbQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_ohCW0KEpEeyjYoAVD5IwbQ" name="monitoringTaskId : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget/monitoringTaskId"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget/monitoringTaskId"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_purOpqEpEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + <ownedElements xmi:type="diagram:DNodeListElement" uid="_qJoFQKEpEeyjYoAVD5IwbQ" name="protocol : EString" tooltipText=""> + <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget/protocol"/> + <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget/protocol"/> + <ownedStyle xmi:type="diagram:BundledImage" uid="_rA8u3qEpEeyjYoAVD5IwbQ" labelAlignment="LEFT"> + <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> + </ownedElements> + </ownedDiagramElements> + <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> + <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_q61gwKEeEeyjYoAVD5IwbQ"/> + <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> + <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/> + <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/> + <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#//OSM"/> + </diagram:DSemanticDiagram> </xmi:XMI> diff --git a/emf_datamodel/model/iPos_Datamodel.ecore b/emf_datamodel/model/iPos_Datamodel.ecore index 4b05f36..e58900e 100644 --- a/emf_datamodel/model/iPos_Datamodel.ecore +++ b/emf_datamodel/model/iPos_Datamodel.ecore @@ -250,6 +250,7 @@ </eClassifiers> <eClassifiers xsi:type="ecore:EDataType" name="ByteArray" instanceClassName="java.lang.byte[]"/> <eClassifiers xsi:type="ecore:EDataType" name="ListOfStringMaps" instanceClassName="java.util.LinkedList<java.util.HashMap<java.lang.String, java.lang.String>>"/> + <eClassifiers xsi:type="ecore:EDataType" name="IntArray" instanceClassName="int[]"/> <eSubpackages name="OFBiz" nsURI="ofbiz" nsPrefix="ofbiz"> <eClassifiers xsi:type="ecore:EClass" name="Picklist"> <eStructuralFeatures xsi:type="ecore:EAttribute" name="picklistId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/> @@ -436,4 +437,49 @@ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> </eClassifiers> </eSubpackages> + <eSubpackages name="OSM" nsURI="osm" nsPrefix="osm"> + <eClassifiers xsi:type="ecore:EClass" name="OSMObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="sensorId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="sensorType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="osmposition" eType="#//OSM/OSMPosition"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="osmorientation" eType="#//OSM/OSMOrientation"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="osmextractedattributes" + eType="#//OSM/OSMExtractedAttributes"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastPosUpdate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="osmzonedescriptor" upperBound="-1" + eType="#//OSM/OSMZoneDescriptor"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OSMPosition"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="refSystemId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="accuracy" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="osmpoint" eType="#//OSM/OSMPoint"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OSMPoint"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="z" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OSMOrientation"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="z" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="w" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OSMExtractedAttributes"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="batteryChargeLevel" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadedItems" eType="#//IntArray"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="errors" eType="#//IntArray"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="theta" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OSMZoneDescriptor"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="zoneId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="notificationType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OSMMonitoringTarget"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="monitoringTaskId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="protocol" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + </eSubpackages> </ecore:EPackage> diff --git a/emf_datamodel/model/iPos_Datamodel.genmodel b/emf_datamodel/model/iPos_Datamodel.genmodel index f526d0d..0eabcb0 100644 --- a/emf_datamodel/model/iPos_Datamodel.genmodel +++ b/emf_datamodel/model/iPos_Datamodel.genmodel @@ -17,6 +17,7 @@ <genDataTypes ecoreDataType="iPos_Datamodel.ecore#//FloatArray"/> <genDataTypes ecoreDataType="iPos_Datamodel.ecore#//ByteArray"/> <genDataTypes ecoreDataType="iPos_Datamodel.ecore#//ListOfStringMaps"/> + <genDataTypes ecoreDataType="iPos_Datamodel.ecore#//IntArray"/> <genClasses ecoreClass="iPos_Datamodel.ecore#//Agent"> <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//Agent/lObject"/> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Agent/agentType"/> @@ -339,5 +340,53 @@ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//VDA5050/Load/loadId"/> </genClasses> </nestedGenPackages> + <nestedGenPackages prefix="OSM" disposableProviderFactory="true" ecorePackage="iPos_Datamodel.ecore#//OSM"> + <genClasses ecoreClass="iPos_Datamodel.ecore#//OSM/OSMObject"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMObject/id"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMObject/sensorId"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMObject/type"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMObject/sensorType"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//OSM/OSMObject/osmposition"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//OSM/OSMObject/osmorientation"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//OSM/OSMObject/osmextractedattributes"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMObject/lastPosUpdate"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//OSM/OSMObject/osmzonedescriptor"/> + </genClasses> + <genClasses ecoreClass="iPos_Datamodel.ecore#//OSM/OSMPosition"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMPosition/refSystemId"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMPosition/accuracy"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//OSM/OSMPosition/osmpoint"/> + </genClasses> + <genClasses ecoreClass="iPos_Datamodel.ecore#//OSM/OSMPoint"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMPoint/x"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMPoint/y"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMPoint/z"/> + </genClasses> + <genClasses ecoreClass="iPos_Datamodel.ecore#//OSM/OSMOrientation"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMOrientation/x"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMOrientation/y"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMOrientation/z"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMOrientation/w"/> + </genClasses> + <genClasses ecoreClass="iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/batteryChargeLevel"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/loadedItems"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/errors"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMExtractedAttributes/theta"/> + </genClasses> + <genClasses ecoreClass="iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor/zoneId"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMZoneDescriptor/notificationType"/> + </genClasses> + <genClasses ecoreClass="iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget/monitoringTaskId"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OSM/OSMMonitoringTarget/protocol"/> + </genClasses> + </nestedGenPackages> </genPackages> </genmodel:GenModel> diff --git a/init_Industrierobotik.txt b/init_Industrierobotik.txt index ebec6ac..c5e6fbd 100644 --- a/init_Industrierobotik.txt +++ b/init_Industrierobotik.txt @@ -2,4 +2,4 @@ {"refSystems": [{"id": "ROOT"}, {"id": "CETI_ROOT", "position": {"refSystemId": "ROOT", "point": {"x": 0.5,"y": 0.75,"z": 1.0}, "accuracy": 1.0}, "orientation": {"x": 0.7071067811865477,"y": 0.0,"z": 0.0, "w": 0.7071067811865477}}, {"id": "CETI_ROBOLAB", "position": {"refSystemId": "CETI_ROOT", "point": {"x": 0.2,"y": 0.2,"z": 0.2}, "accuracy": 1.0}, "orientation": {"x": 0.4082481001180531,"y": 0.4082481001180531,"z": 0.4082481001180531, "w": 0.7071067811865477}}, {"id": "CETI_OFFICE", "position": {"refSystemId": "CETI_ROOT", "point": {"x": 2.0,"y": 2.0,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}}, {"id": "TL_TESTHALL", "position": {"refSystemId": "ROOT", "point": {"x": 40.0,"y": 60.0,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.21643961393810285, "w": 0.9762960071199334}}, {"id": "CETI_ROBOTARM_CELL", "position": {"refSystemId": "CETI_ROBOLAB", "point": {"x": 0.0,"y": 1.2,"z": 2.2}, "accuracy": 1.0}, "orientation": {"x": 0.2705992818596786,"y": 0.2705992818596786,"z": 0.0, "w": 0.9238795325112868}}]} {"objectConfigs": [{"agentId": "Employee_1", "sensorId": "UWB_2", "agentType": "HUMAN", "sensorType": "UWB"}, {"agentId": "turtlebot", "sensorId": "UWB_1", "agentType": "ROBOT", "sensorType": "UWB"}, {"agentId": "turtlebot", "sensorId": "98:CD:AC:26:2D:18", "agentType": "ROBOT", "sensorType": "RFID_SCANNER"}, {"agentId": "turtlebot", "sensorId": "handy1", "agentType": "ROBOT", "sensorType": "IMU"}, {"agentId": "tooz_employee", "sensorId": "tooz_employee_uwb", "agentType": "HUMAN", "sensorType": "UWB"}, {"agentId": "TL_TUD-Virtual_AGV", "sensorId": "TL_TUD-Virtual_AGV", "agentType": "Robot", "sensorType": "virtual"}]} {"pois": [{"id": "UWB_BEACON_1", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 3.1,"y": 0.5,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "UWB_BEACON_2", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": -0.3,"y": 4.5,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}}, {"id": "83221710", "description": "RFID_TAG", "data": {"type" : "NFC"}, "position": {"refSystemId": "ROOT", "point": {"x": 2.1,"y": 0.4,"z": 0.5}, "accuracy": 0.1}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "31762128", "description": "RFID_TAG", "data": {"type" : "NFC"}, "position": {"refSystemId": "ROOT", "point": {"x": 2.2,"y": 3.4,"z": 0.5}, "accuracy": 0.1}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "885", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "2934", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 4.24,"y": 1.33,"z": 1.0}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "3383", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 1.25,"y": 5.89,"z": 1.06}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }, {"id": "1107", "description": "Beacon_Position", "data": {"type" : "UWB"}, "position": {"refSystemId": "ROOT", "point": {"x": 4.24,"y": 5.83,"z": 1.05}, "accuracy": 0.01}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }]} -{"monitoringRequests": [{"frameIds": ["cobot1_door_zone", "cobot1_window_zone"], "monitoringTaskId": "RobolabMonitoringCeti", "refSystemId": "CETI_ROBOTARM_CELL", "serializationType": "protobuf"}, {"frameIds": ["cobot1_door_zone", "cobot1_window_zone"], "monitoringTaskId": "RobolabMonitoringFrontend", "refSystemId": "ROOT", "serializationType": "json"}, {"properties" : ["VDA5050"], "monitoringTaskId" : "AGVViewer_VDA5050", "refSystemId": "ROOT", "serializationType": "json"}]} \ No newline at end of file +{"monitoringRequests": [{"frameIds": ["cobot1_door_zone", "cobot1_window_zone"], "monitoringTaskId": "RobolabMonitoringCeti", "refSystemId": "CETI_ROBOTARM_CELL", "serializationType": "protobuf"}, {"frameIds": ["cobot1_door_zone", "cobot1_window_zone"], "monitoringTaskId": "AGVViewer_VDA5050", "refSystemId": "ROOT", "serializationType": "json"}]} \ No newline at end of file diff --git a/src/main/java/ipos/project/CustomLoggingFilter.java b/src/main/java/ipos/project/CustomLoggingFilter.java index 56b94ba..e587e5d 100644 --- a/src/main/java/ipos/project/CustomLoggingFilter.java +++ b/src/main/java/ipos/project/CustomLoggingFilter.java @@ -25,11 +25,13 @@ public class CustomLoggingFilter extends Filter<ILoggingEvent> { } else if (event.getMessage().contains("Received a Message:")){ // MQTT-library meldet sich return FilterReply.DENY; } else if (event.getMessage().contains("OP:")){ - return FilterReply.ACCEPT; + return FilterReply.DENY; } else if (event.getMessage().contains("TOOZ:")){ return FilterReply.DENY; } else if (event.getMessage().contains("VDA5050:")){ return FilterReply.ACCEPT; + } else if (event.getMessage().contains("OSM:")){ + return FilterReply.ACCEPT; }else if (event.getMessage().contains("SHELL:")){ return FilterReply.ACCEPT; } else { diff --git a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/SimpleSceneIntegration.java b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/SimpleSceneIntegration.java index c17b57d..26180e5 100644 --- a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/SimpleSceneIntegration.java +++ b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/SimpleSceneIntegration.java @@ -105,10 +105,11 @@ public class SimpleSceneIntegration { // PositionEvent posEvent_copy = duplicatePositionEvent(positionEvent); // scale_position_frontend_app(posEvent_copy, 15); SimpleScene.IposPositionEvent posEvent_proto = SimpleSceneTransformer.posEvent_internal2Proto(positionEvent, notificationType); + SimpleScene.IposMonitoringWrapper iposMonitoringWrapper = wrapIntoMonitoringWrapper(posEvent_proto); logging_sdf(monitoringTaskId, serializationType, posEvent_proto); logging_indfro(positionEvent, monitoringTaskId, serializationType); logging_op(positionEvent, monitoringTaskId, serializationType); - OtherUtility.publishRespectingSerializationType(monitoringTaskId, serializationType, posEvent_proto); + OtherUtility.publishRespectingSerializationType(monitoringTaskId, serializationType, iposMonitoringWrapper); }else{ LOG.warn("Warning: SimpleScene: Received empty PositionEvent"); @@ -118,12 +119,25 @@ public class SimpleSceneIntegration { public static void receiveMessage(IposMsgRcvEvent iposMsgRcvEvent, String monitoringTaskId, String serializationType){ if (iposMsgRcvEvent != null){ SimpleScene.IposMsgRcvEvent iposMsgRcvEvent_proto = SimpleSceneTransformer.iposMsgRcvEvent_internal2proto(iposMsgRcvEvent); - OtherUtility.publishRespectingSerializationType(monitoringTaskId, serializationType, iposMsgRcvEvent_proto); + SimpleScene.IposMonitoringWrapper iposMonitoringWrapper_proto = wrapIntoMonitoringWrapper(iposMsgRcvEvent_proto); + OtherUtility.publishRespectingSerializationType(monitoringTaskId, serializationType, iposMonitoringWrapper_proto); }else{ LOG.warn("Warning: SimpleScene: Received empty IposMsgRcvEvent"); } } + private static SimpleScene.IposMonitoringWrapper wrapIntoMonitoringWrapper(SimpleScene.IposPositionEvent posEvent_proto) { + SimpleScene.IposMonitoringWrapper.Builder iposMonitoringWrapper_proto = SimpleScene.IposMonitoringWrapper.newBuilder(); + iposMonitoringWrapper_proto.addIposPositionEvents(posEvent_proto); + return iposMonitoringWrapper_proto.build(); + } + + private static SimpleScene.IposMonitoringWrapper wrapIntoMonitoringWrapper(SimpleScene.IposMsgRcvEvent iposMsg) { + SimpleScene.IposMonitoringWrapper.Builder iposMonitoringWrapper_proto = SimpleScene.IposMonitoringWrapper.newBuilder(); + iposMonitoringWrapper_proto.addIposMsgRcvEvents(iposMsg); + return iposMonitoringWrapper_proto.build(); + } + private static void logging_op(PositionEvent positionEvent, String monitoringTaskId, String serializationType) { LOG.info("OP: Publishing PositionEvent on topic " + monitoringTaskId + ": ZoneDescriptors:" + logZoneDescr(positionEvent.getZonedescriptors()) + "; serializationType: " + serializationType); LOG.info("OP:"); diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMExtractedAttributes.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMExtractedAttributes.java index 9c42cb0..0407139 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMExtractedAttributes.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMExtractedAttributes.java @@ -16,6 +16,7 @@ import org.eclipse.emf.ecore.EObject; * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getBatteryChargeLevel <em>Battery Charge Level</em>}</li> * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getLoadedItems <em>Loaded Items</em>}</li> * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getErrors <em>Errors</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getTheta <em>Theta</em>}</li> * </ul> * * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMExtractedAttributes() @@ -89,4 +90,26 @@ public interface OSMExtractedAttributes extends EObject { */ void setErrors(int[] value); + /** + * Returns the value of the '<em><b>Theta</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Theta</em>' attribute. + * @see #setTheta(float) + * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMExtractedAttributes_Theta() + * @model + * @generated + */ + float getTheta(); + + /** + * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getTheta <em>Theta</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Theta</em>' attribute. + * @see #getTheta() + * @generated + */ + void setTheta(float value); + } // OSMExtractedAttributes diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMObject.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMObject.java deleted file mode 100644 index 9d4dfbc..0000000 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMObject.java +++ /dev/null @@ -1,222 +0,0 @@ -/** - */ -package ipos.project.DataModellntegration.iPos_Datamodel.OSM; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EObject; - -/** - * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Object</b></em>'. - * <!-- end-user-doc --> - * - * <p> - * The following features are supported: - * </p> - * <ul> - * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getId <em>Id</em>}</li> - * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorId <em>Sensor Id</em>}</li> - * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getType <em>Type</em>}</li> - * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorType <em>Sensor Type</em>}</li> - * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmposition <em>Osmposition</em>}</li> - * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmorientation <em>Osmorientation</em>}</li> - * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmextractedattributes <em>Osmextractedattributes</em>}</li> - * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getLastPosUpdate <em>Last Pos Update</em>}</li> - * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmzonedescriptor <em>Osmzonedescriptor</em>}</li> - * </ul> - * - * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject() - * @model - * @generated - */ -public interface OSMObject extends EObject { - /** - * Returns the value of the '<em><b>Id</b></em>' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the value of the '<em>Id</em>' attribute. - * @see #setId(String) - * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_Id() - * @model - * @generated - */ - String getId(); - - /** - * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getId <em>Id</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Id</em>' attribute. - * @see #getId() - * @generated - */ - void setId(String value); - - /** - * Returns the value of the '<em><b>Sensor Id</b></em>' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the value of the '<em>Sensor Id</em>' attribute. - * @see #setSensorId(String) - * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_SensorId() - * @model - * @generated - */ - String getSensorId(); - - /** - * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorId <em>Sensor Id</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Sensor Id</em>' attribute. - * @see #getSensorId() - * @generated - */ - void setSensorId(String value); - - /** - * Returns the value of the '<em><b>Type</b></em>' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the value of the '<em>Type</em>' attribute. - * @see #setType(String) - * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_Type() - * @model - * @generated - */ - String getType(); - - /** - * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getType <em>Type</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Type</em>' attribute. - * @see #getType() - * @generated - */ - void setType(String value); - - /** - * Returns the value of the '<em><b>Sensor Type</b></em>' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the value of the '<em>Sensor Type</em>' attribute. - * @see #setSensorType(String) - * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_SensorType() - * @model - * @generated - */ - String getSensorType(); - - /** - * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorType <em>Sensor Type</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Sensor Type</em>' attribute. - * @see #getSensorType() - * @generated - */ - void setSensorType(String value); - - /** - * Returns the value of the '<em><b>Osmposition</b></em>' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the value of the '<em>Osmposition</em>' reference. - * @see #setOsmposition(OSMPosition) - * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_Osmposition() - * @model - * @generated - */ - OSMPosition getOsmposition(); - - /** - * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmposition <em>Osmposition</em>}' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Osmposition</em>' reference. - * @see #getOsmposition() - * @generated - */ - void setOsmposition(OSMPosition value); - - /** - * Returns the value of the '<em><b>Osmorientation</b></em>' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the value of the '<em>Osmorientation</em>' reference. - * @see #setOsmorientation(OSMOrientation) - * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_Osmorientation() - * @model - * @generated - */ - OSMOrientation getOsmorientation(); - - /** - * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmorientation <em>Osmorientation</em>}' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Osmorientation</em>' reference. - * @see #getOsmorientation() - * @generated - */ - void setOsmorientation(OSMOrientation value); - - /** - * Returns the value of the '<em><b>Osmextractedattributes</b></em>' reference list. - * The list contents are of type {@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes}. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the value of the '<em>Osmextractedattributes</em>' reference list. - * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_Osmextractedattributes() - * @model - * @generated - */ - EList<OSMExtractedAttributes> getOsmextractedattributes(); - - /** - * Returns the value of the '<em><b>Last Pos Update</b></em>' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the value of the '<em>Last Pos Update</em>' attribute. - * @see #setLastPosUpdate(String) - * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_LastPosUpdate() - * @model - * @generated - */ - String getLastPosUpdate(); - - /** - * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getLastPosUpdate <em>Last Pos Update</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Last Pos Update</em>' attribute. - * @see #getLastPosUpdate() - * @generated - */ - void setLastPosUpdate(String value); - - /** - * Returns the value of the '<em><b>Osmzonedescriptor</b></em>' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the value of the '<em>Osmzonedescriptor</em>' reference. - * @see #setOsmzonedescriptor(OSMZoneDescriptor) - * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMObject_Osmzonedescriptor() - * @model - * @generated - */ - OSMZoneDescriptor getOsmzonedescriptor(); - - /** - * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmzonedescriptor <em>Osmzonedescriptor</em>}' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Osmzonedescriptor</em>' reference. - * @see #getOsmzonedescriptor() - * @generated - */ - void setOsmzonedescriptor(OSMZoneDescriptor value); - -} // OSMObject diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPackage.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPackage.java index 516b4bd..63c47c0 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPackage.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPackage.java @@ -121,7 +121,7 @@ public interface OSMPackage extends EPackage { int OSM_OBJECT__OSMORIENTATION = 5; /** - * The feature id for the '<em><b>Osmextractedattributes</b></em>' reference list. + * The feature id for the '<em><b>Osmextractedattributes</b></em>' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -139,7 +139,7 @@ public interface OSMPackage extends EPackage { int OSM_OBJECT__LAST_POS_UPDATE = 7; /** - * The feature id for the '<em><b>Osmzonedescriptor</b></em>' reference. + * The feature id for the '<em><b>Osmzonedescriptor</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -376,6 +376,15 @@ public interface OSMPackage extends EPackage { */ int OSM_EXTRACTED_ATTRIBUTES__ERRORS = 2; + /** + * The feature id for the '<em><b>Theta</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int OSM_EXTRACTED_ATTRIBUTES__THETA = 3; + /** * The number of structural features of the '<em>Extracted Attributes</em>' class. * <!-- begin-user-doc --> @@ -383,7 +392,7 @@ public interface OSMPackage extends EPackage { * @generated * @ordered */ - int OSM_EXTRACTED_ATTRIBUTES_FEATURE_COUNT = 3; + int OSM_EXTRACTED_ATTRIBUTES_FEATURE_COUNT = 4; /** * The number of operations of the '<em>Extracted Attributes</em>' class. @@ -563,10 +572,10 @@ public interface OSMPackage extends EPackage { EReference getOSMObject_Osmorientation(); /** - * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmextractedattributes <em>Osmextractedattributes</em>}'. + * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmextractedattributes <em>Osmextractedattributes</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the reference list '<em>Osmextractedattributes</em>'. + * @return the meta object for the reference '<em>Osmextractedattributes</em>'. * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmextractedattributes() * @see #getOSMObject() * @generated @@ -585,10 +594,10 @@ public interface OSMPackage extends EPackage { EAttribute getOSMObject_LastPosUpdate(); /** - * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmzonedescriptor <em>Osmzonedescriptor</em>}'. + * Returns the meta object for the reference list '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmzonedescriptor <em>Osmzonedescriptor</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the reference '<em>Osmzonedescriptor</em>'. + * @return the meta object for the reference list '<em>Osmzonedescriptor</em>'. * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmzonedescriptor() * @see #getOSMObject() * @generated @@ -778,6 +787,17 @@ public interface OSMPackage extends EPackage { */ EAttribute getOSMExtractedAttributes_Errors(); + /** + * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getTheta <em>Theta</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Theta</em>'. + * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getTheta() + * @see #getOSMExtractedAttributes() + * @generated + */ + EAttribute getOSMExtractedAttributes_Theta(); + /** * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor <em>Zone Descriptor</em>}'. * <!-- begin-user-doc --> @@ -924,7 +944,7 @@ public interface OSMPackage extends EPackage { EReference OSM_OBJECT__OSMORIENTATION = eINSTANCE.getOSMObject_Osmorientation(); /** - * The meta object literal for the '<em><b>Osmextractedattributes</b></em>' reference list feature. + * The meta object literal for the '<em><b>Osmextractedattributes</b></em>' reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -940,7 +960,7 @@ public interface OSMPackage extends EPackage { EAttribute OSM_OBJECT__LAST_POS_UPDATE = eINSTANCE.getOSMObject_LastPosUpdate(); /** - * The meta object literal for the '<em><b>Osmzonedescriptor</b></em>' reference feature. + * The meta object literal for the '<em><b>Osmzonedescriptor</b></em>' reference list feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -1092,6 +1112,14 @@ public interface OSMPackage extends EPackage { */ EAttribute OSM_EXTRACTED_ATTRIBUTES__ERRORS = eINSTANCE.getOSMExtractedAttributes_Errors(); + /** + * The meta object literal for the '<em><b>Theta</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute OSM_EXTRACTED_ATTRIBUTES__THETA = eINSTANCE.getOSMExtractedAttributes_Theta(); + /** * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMZoneDescriptorImpl <em>Zone Descriptor</em>}' class. * <!-- begin-user-doc --> diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMExtractedAttributesImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMExtractedAttributesImpl.java index 8e64cf4..6aa6022 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMExtractedAttributesImpl.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMExtractedAttributesImpl.java @@ -23,6 +23,7 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl#getBatteryChargeLevel <em>Battery Charge Level</em>}</li> * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl#getLoadedItems <em>Loaded Items</em>}</li> * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl#getErrors <em>Errors</em>}</li> + * <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl#getTheta <em>Theta</em>}</li> * </ul> * * @generated @@ -88,6 +89,26 @@ public class OSMExtractedAttributesImpl extends MinimalEObjectImpl.Container imp */ protected int[] errors = ERRORS_EDEFAULT; + /** + * The default value of the '{@link #getTheta() <em>Theta</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTheta() + * @generated + * @ordered + */ + protected static final float THETA_EDEFAULT = 0.0F; + + /** + * The cached value of the '{@link #getTheta() <em>Theta</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTheta() + * @generated + * @ordered + */ + protected float theta = THETA_EDEFAULT; + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -174,6 +195,28 @@ public class OSMExtractedAttributesImpl extends MinimalEObjectImpl.Container imp oldErrors, errors)); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public float getTheta() { + return theta; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTheta(float newTheta) { + float oldTheta = theta; + theta = newTheta; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_EXTRACTED_ATTRIBUTES__THETA, oldTheta, + theta)); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -188,6 +231,8 @@ public class OSMExtractedAttributesImpl extends MinimalEObjectImpl.Container imp return getLoadedItems(); case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__ERRORS: return getErrors(); + case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__THETA: + return getTheta(); } return super.eGet(featureID, resolve, coreType); } @@ -209,6 +254,9 @@ public class OSMExtractedAttributesImpl extends MinimalEObjectImpl.Container imp case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__ERRORS: setErrors((int[]) newValue); return; + case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__THETA: + setTheta((Float) newValue); + return; } super.eSet(featureID, newValue); } @@ -230,6 +278,9 @@ public class OSMExtractedAttributesImpl extends MinimalEObjectImpl.Container imp case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__ERRORS: setErrors(ERRORS_EDEFAULT); return; + case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__THETA: + setTheta(THETA_EDEFAULT); + return; } super.eUnset(featureID); } @@ -248,6 +299,8 @@ public class OSMExtractedAttributesImpl extends MinimalEObjectImpl.Container imp return LOADED_ITEMS_EDEFAULT == null ? loadedItems != null : !LOADED_ITEMS_EDEFAULT.equals(loadedItems); case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__ERRORS: return ERRORS_EDEFAULT == null ? errors != null : !ERRORS_EDEFAULT.equals(errors); + case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__THETA: + return theta != THETA_EDEFAULT; } return super.eIsSet(featureID); } @@ -269,6 +322,8 @@ public class OSMExtractedAttributesImpl extends MinimalEObjectImpl.Container imp result.append(loadedItems); result.append(", errors: "); result.append(errors); + result.append(", theta: "); + result.append(theta); result.append(')'); return result.toString(); } diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMObjectImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMObjectImpl.java index c89b352..25d6ccd 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMObjectImpl.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMObjectImpl.java @@ -146,14 +146,14 @@ public class OSMObjectImpl extends MinimalEObjectImpl.Container implements OSMOb protected OSMOrientation osmorientation; /** - * The cached value of the '{@link #getOsmextractedattributes() <em>Osmextractedattributes</em>}' reference list. + * The cached value of the '{@link #getOsmextractedattributes() <em>Osmextractedattributes</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getOsmextractedattributes() * @generated * @ordered */ - protected EList<OSMExtractedAttributes> osmextractedattributes; + protected OSMExtractedAttributes osmextractedattributes; /** * The default value of the '{@link #getLastPosUpdate() <em>Last Pos Update</em>}' attribute. @@ -176,14 +176,14 @@ public class OSMObjectImpl extends MinimalEObjectImpl.Container implements OSMOb protected String lastPosUpdate = LAST_POS_UPDATE_EDEFAULT; /** - * The cached value of the '{@link #getOsmzonedescriptor() <em>Osmzonedescriptor</em>}' reference. + * The cached value of the '{@link #getOsmzonedescriptor() <em>Osmzonedescriptor</em>}' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getOsmzonedescriptor() * @generated * @ordered */ - protected OSMZoneDescriptor osmzonedescriptor; + protected EList<OSMZoneDescriptor> osmzonedescriptor; /** * <!-- begin-user-doc --> @@ -375,10 +375,16 @@ public class OSMObjectImpl extends MinimalEObjectImpl.Container implements OSMOb * <!-- end-user-doc --> * @generated */ - public EList<OSMExtractedAttributes> getOsmextractedattributes() { - if (osmextractedattributes == null) { - osmextractedattributes = new EObjectResolvingEList<OSMExtractedAttributes>(OSMExtractedAttributes.class, - this, OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES); + public OSMExtractedAttributes getOsmextractedattributes() { + if (osmextractedattributes != null && osmextractedattributes.eIsProxy()) { + InternalEObject oldOsmextractedattributes = (InternalEObject) osmextractedattributes; + osmextractedattributes = (OSMExtractedAttributes) eResolveProxy(oldOsmextractedattributes); + if (osmextractedattributes != oldOsmextractedattributes) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES, oldOsmextractedattributes, + osmextractedattributes)); + } } return osmextractedattributes; } @@ -388,8 +394,8 @@ public class OSMObjectImpl extends MinimalEObjectImpl.Container implements OSMOb * <!-- end-user-doc --> * @generated */ - public String getLastPosUpdate() { - return lastPosUpdate; + public OSMExtractedAttributes basicGetOsmextractedattributes() { + return osmextractedattributes; } /** @@ -397,12 +403,12 @@ public class OSMObjectImpl extends MinimalEObjectImpl.Container implements OSMOb * <!-- end-user-doc --> * @generated */ - public void setLastPosUpdate(String newLastPosUpdate) { - String oldLastPosUpdate = lastPosUpdate; - lastPosUpdate = newLastPosUpdate; + public void setOsmextractedattributes(OSMExtractedAttributes newOsmextractedattributes) { + OSMExtractedAttributes oldOsmextractedattributes = osmextractedattributes; + osmextractedattributes = newOsmextractedattributes; if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__LAST_POS_UPDATE, - oldLastPosUpdate, lastPosUpdate)); + eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES, + oldOsmextractedattributes, osmextractedattributes)); } /** @@ -410,17 +416,8 @@ public class OSMObjectImpl extends MinimalEObjectImpl.Container implements OSMOb * <!-- end-user-doc --> * @generated */ - public OSMZoneDescriptor getOsmzonedescriptor() { - if (osmzonedescriptor != null && osmzonedescriptor.eIsProxy()) { - InternalEObject oldOsmzonedescriptor = (InternalEObject) osmzonedescriptor; - osmzonedescriptor = (OSMZoneDescriptor) eResolveProxy(oldOsmzonedescriptor); - if (osmzonedescriptor != oldOsmzonedescriptor) { - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.RESOLVE, OSMPackage.OSM_OBJECT__OSMZONEDESCRIPTOR, - oldOsmzonedescriptor, osmzonedescriptor)); - } - } - return osmzonedescriptor; + public String getLastPosUpdate() { + return lastPosUpdate; } /** @@ -428,8 +425,12 @@ public class OSMObjectImpl extends MinimalEObjectImpl.Container implements OSMOb * <!-- end-user-doc --> * @generated */ - public OSMZoneDescriptor basicGetOsmzonedescriptor() { - return osmzonedescriptor; + public void setLastPosUpdate(String newLastPosUpdate) { + String oldLastPosUpdate = lastPosUpdate; + lastPosUpdate = newLastPosUpdate; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__LAST_POS_UPDATE, + oldLastPosUpdate, lastPosUpdate)); } /** @@ -437,12 +438,12 @@ public class OSMObjectImpl extends MinimalEObjectImpl.Container implements OSMOb * <!-- end-user-doc --> * @generated */ - public void setOsmzonedescriptor(OSMZoneDescriptor newOsmzonedescriptor) { - OSMZoneDescriptor oldOsmzonedescriptor = osmzonedescriptor; - osmzonedescriptor = newOsmzonedescriptor; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__OSMZONEDESCRIPTOR, - oldOsmzonedescriptor, osmzonedescriptor)); + public EList<OSMZoneDescriptor> getOsmzonedescriptor() { + if (osmzonedescriptor == null) { + osmzonedescriptor = new EObjectResolvingEList<OSMZoneDescriptor>(OSMZoneDescriptor.class, this, + OSMPackage.OSM_OBJECT__OSMZONEDESCRIPTOR); + } + return osmzonedescriptor; } /** @@ -470,13 +471,13 @@ public class OSMObjectImpl extends MinimalEObjectImpl.Container implements OSMOb return getOsmorientation(); return basicGetOsmorientation(); case OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES: - return getOsmextractedattributes(); + if (resolve) + return getOsmextractedattributes(); + return basicGetOsmextractedattributes(); case OSMPackage.OSM_OBJECT__LAST_POS_UPDATE: return getLastPosUpdate(); case OSMPackage.OSM_OBJECT__OSMZONEDESCRIPTOR: - if (resolve) - return getOsmzonedescriptor(); - return basicGetOsmzonedescriptor(); + return getOsmzonedescriptor(); } return super.eGet(featureID, resolve, coreType); } @@ -509,14 +510,14 @@ public class OSMObjectImpl extends MinimalEObjectImpl.Container implements OSMOb setOsmorientation((OSMOrientation) newValue); return; case OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES: - getOsmextractedattributes().clear(); - getOsmextractedattributes().addAll((Collection<? extends OSMExtractedAttributes>) newValue); + setOsmextractedattributes((OSMExtractedAttributes) newValue); return; case OSMPackage.OSM_OBJECT__LAST_POS_UPDATE: setLastPosUpdate((String) newValue); return; case OSMPackage.OSM_OBJECT__OSMZONEDESCRIPTOR: - setOsmzonedescriptor((OSMZoneDescriptor) newValue); + getOsmzonedescriptor().clear(); + getOsmzonedescriptor().addAll((Collection<? extends OSMZoneDescriptor>) newValue); return; } super.eSet(featureID, newValue); @@ -549,13 +550,13 @@ public class OSMObjectImpl extends MinimalEObjectImpl.Container implements OSMOb setOsmorientation((OSMOrientation) null); return; case OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES: - getOsmextractedattributes().clear(); + setOsmextractedattributes((OSMExtractedAttributes) null); return; case OSMPackage.OSM_OBJECT__LAST_POS_UPDATE: setLastPosUpdate(LAST_POS_UPDATE_EDEFAULT); return; case OSMPackage.OSM_OBJECT__OSMZONEDESCRIPTOR: - setOsmzonedescriptor((OSMZoneDescriptor) null); + getOsmzonedescriptor().clear(); return; } super.eUnset(featureID); @@ -582,12 +583,12 @@ public class OSMObjectImpl extends MinimalEObjectImpl.Container implements OSMOb case OSMPackage.OSM_OBJECT__OSMORIENTATION: return osmorientation != null; case OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES: - return osmextractedattributes != null && !osmextractedattributes.isEmpty(); + return osmextractedattributes != null; case OSMPackage.OSM_OBJECT__LAST_POS_UPDATE: return LAST_POS_UPDATE_EDEFAULT == null ? lastPosUpdate != null : !LAST_POS_UPDATE_EDEFAULT.equals(lastPosUpdate); case OSMPackage.OSM_OBJECT__OSMZONEDESCRIPTOR: - return osmzonedescriptor != null; + return osmzonedescriptor != null && !osmzonedescriptor.isEmpty(); } return super.eIsSet(featureID); } diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPackageImpl.java index 27196ff..6ff26b2 100644 --- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPackageImpl.java +++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPackageImpl.java @@ -434,6 +434,15 @@ public class OSMPackageImpl extends EPackageImpl implements OSMPackage { return (EAttribute) osmExtractedAttributesEClass.getEStructuralFeatures().get(2); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getOSMExtractedAttributes_Theta() { + return (EAttribute) osmExtractedAttributesEClass.getEStructuralFeatures().get(3); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -548,6 +557,7 @@ public class OSMPackageImpl extends EPackageImpl implements OSMPackage { createEAttribute(osmExtractedAttributesEClass, OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL); createEAttribute(osmExtractedAttributesEClass, OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS); createEAttribute(osmExtractedAttributesEClass, OSM_EXTRACTED_ATTRIBUTES__ERRORS); + createEAttribute(osmExtractedAttributesEClass, OSM_EXTRACTED_ATTRIBUTES__THETA); osmZoneDescriptorEClass = createEClass(OSM_ZONE_DESCRIPTOR); createEAttribute(osmZoneDescriptorEClass, OSM_ZONE_DESCRIPTOR__ZONE_ID); @@ -610,13 +620,13 @@ public class OSMPackageImpl extends EPackageImpl implements OSMPackage { OSMObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getOSMObject_Osmextractedattributes(), this.getOSMExtractedAttributes(), null, - "osmextractedattributes", null, 0, -1, OSMObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, + "osmextractedattributes", null, 0, 1, OSMObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getOSMObject_LastPosUpdate(), ecorePackage.getEString(), "lastPosUpdate", null, 0, 1, OSMObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getOSMObject_Osmzonedescriptor(), this.getOSMZoneDescriptor(), null, "osmzonedescriptor", null, - 0, 1, OSMObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, + 0, -1, OSMObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(osmPositionEClass, OSMPosition.class, "OSMPosition", !IS_ABSTRACT, !IS_INTERFACE, @@ -661,6 +671,9 @@ public class OSMPackageImpl extends EPackageImpl implements OSMPackage { initEAttribute(getOSMExtractedAttributes_Errors(), theIPos_DatamodelPackage.getIntArray(), "errors", null, 0, 1, OSMExtractedAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getOSMExtractedAttributes_Theta(), ecorePackage.getEFloat(), "theta", null, 0, 1, + OSMExtractedAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(osmZoneDescriptorEClass, OSMZoneDescriptor.class, "OSMZoneDescriptor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); diff --git a/src/main/java/ipos/project/MainApp.java b/src/main/java/ipos/project/MainApp.java index 1be2cea..7e0f566 100644 --- a/src/main/java/ipos/project/MainApp.java +++ b/src/main/java/ipos/project/MainApp.java @@ -39,7 +39,6 @@ public class MainApp { public static final String COMMAND_OP_EVTS = "opevts testdata"; public static final String COMMAND_SDF = "sdf testdata"; public static final String COMMAND_TOOZ_TARGET = "tooz setMonitoringTarget"; - public static final String COMMAND_OSM_TARGET = "setMonitoringTarget osm"; public static final String COMMAND_TOOZ = "tooz testdata"; public static final String COMMAND_VDA5050 = "testdata VDA5050"; public static final String COMMAND_EXIT = "exit"; @@ -68,12 +67,11 @@ public class MainApp { case COMMAND_INIT_INDFRO: initIndfro(); break; case COMMAND_INIT_SDF: initSdf(); break; case COMMAND_INIT_OP: initOp(); break; - case COMMAND_INIT_OSM: initOSM(); break; + case COMMAND_INIT_OSM: initOSM(TESTDATA_OSM_MONTARGET); break; case COMMAND_EXIT : proceed = false; break; case COMMAND_HELP: printCommands(); break; case COMMAND_INDFRO: GenericSensorValueProcessor.processTestData(TESTDATA_INDFRO); break; case COMMAND_TOOZ_TARGET: Tooz.processMonTargetTestdata(TESTDATA_TOOZ_MONTARGET); break; - case COMMAND_OSM_TARGET: OSM.processMonTargetTestdata(TESTDATA_OSM_MONTARGET); break; case COMMAND_VDA5050: VDA5050Processor.processTestData(TESTDATA_VDA5050); break; case COMMAND_TOOZ: GenericSensorValueProcessor.processTestData(TESTDATA_TOOZ); break; case COMMAND_SDF: GenericSensorValueProcessor.processTestData(TESTDATA_SDF); break; @@ -86,8 +84,8 @@ public class MainApp { } } - private static void initOSM() { - int[] intlist; + private static void initOSM(String testdataOsmMontarget) { + OSM.processTestData(testdataOsmMontarget); } private static void initIndfro() { diff --git a/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPicker.java b/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPicker.java index e93f1f3..c230ae9 100644 --- a/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPicker.java +++ b/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPicker.java @@ -97,7 +97,7 @@ public class OFBizOrderPicker { public static void processPosEvtTestData(String path_to_test_data_file){ File testDataFile = new File(path_to_test_data_file); for (String line : OtherUtility.readLines(testDataFile)) { - OFBizOrderPickerMqtt.handleJsonPosEvt(line); + OFBizOrderPickerMqtt.handleIPosMonitoringWrapper(line); } } } diff --git a/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerMqtt.java b/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerMqtt.java index c4f3d49..04186ad 100644 --- a/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerMqtt.java +++ b/src/main/java/ipos/project/iposextension/orderpicker/OFBizOrderPickerMqtt.java @@ -39,18 +39,23 @@ public class OFBizOrderPickerMqtt implements Handler { @Override public void handle(MqttMessage message) { - handleJsonPosEvt(message.toString()); + handleIPosMonitoringWrapper(message.toString()); } - public static void handleJsonPosEvt(String jsonPosEvt){ + static void handleIPosMonitoringWrapper(String jsonMsg) { try { - SimpleScene.IposPositionEvent proto_positionEvent = ProtoJsonMap.fromJson(jsonPosEvt, SimpleScene.IposPositionEvent.class); - List<IposPositionEvent> internal_iposPositionEvents = IPos2protoTransformer.transformToInternal(proto_positionEvent); - for (IposPositionEvent iposPositionEvent : internal_iposPositionEvents){ - OFBizOrderPicker.ofbizOpIposExt.handlePositionEvent(iposPositionEvent); - } + SimpleScene.IposMonitoringWrapper iPosMonitoringWrapper = ProtoJsonMap.fromJson(jsonMsg, SimpleScene.IposMonitoringWrapper.class); + iPosMonitoringWrapper.getIposPositionEventsList().stream().forEach(iposPositionEvent_proto -> handleJsonPosEvt(iposPositionEvent_proto)); } catch (InvalidProtocolBufferException e) { e.printStackTrace(); } } + + public static void handleJsonPosEvt(SimpleScene.IposPositionEvent proto_positionEvent){ + // SimpleScene.IposPositionEvent proto_positionEvent = ProtoJsonMap.fromJson(jsonPosEvt, SimpleScene.IposPositionEvent.class); + List<IposPositionEvent> internal_iposPositionEvents = IPos2protoTransformer.transformToInternal(proto_positionEvent); + for (IposPositionEvent iposPositionEvent : internal_iposPositionEvents){ + OFBizOrderPicker.ofbizOpIposExt.handlePositionEvent(iposPositionEvent); + } + } } diff --git a/src/main/java/ipos/project/iposextension/osm/OSM.java b/src/main/java/ipos/project/iposextension/osm/OSM.java index 2e5e996..8dfc82a 100644 --- a/src/main/java/ipos/project/iposextension/osm/OSM.java +++ b/src/main/java/ipos/project/iposextension/osm/OSM.java @@ -1,14 +1,20 @@ package ipos.project.iposextension.osm; +import com.google.protobuf.InvalidProtocolBufferException; +import ipos.models.VDA5050; +import ipos.project.DataModellntegration.VDA5050Processor.api.MqttRequestHandler; import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget; import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject; import ipos.project.devkit.iposext.IPosArguments; import ipos.project.devkit.utility.ExternalPubServiceImpl; import ipos.project.devkit.utility.OtherUtility; +import ipos.project.devkit.utility.ProtoJsonMap; +import org.apache.logging.log4j.LogManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.File; +import java.util.Scanner; @Component public class OSM { @@ -17,6 +23,7 @@ public class OSM { public static final String SERIALIZATIONTYPE_TOOZEXT_OUTPUT = "json"; public static final String OSM_MONREQ = "{\"monitoringRequests\": [{\"properties\": [\"%s\"], \"monitoringTaskId\": \"%s\", \"refSystemId\": \"ROOT\", \"serializationType\": \"json\"}]}"; public static final String TOPIC_OSM_ENVIRONMENT = "OSM_ENVIRONMENT"; + private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); @Autowired public OSM(ExternalPubServiceImpl mqttService){ @@ -43,4 +50,13 @@ public class OSM { IPosArguments.IPosConfigData osmConf = new OSMArgs.OSMConf(OSMExt.TOPIC_OSM_EXT, osmMonitoringTarget_internal.getProtocol()); osmExt.configureIpos(osmConf); } + + public static void processTestData(String path_to_test_data_file){ + File testDataFile = new File(path_to_test_data_file); + Scanner scanner = new Scanner(System.in); + for (String line : OtherUtility.readLines(testDataFile)) { + OSMExtInputMqtt.handleOsmExtInput(line); + } + } + } diff --git a/src/main/java/ipos/project/iposextension/osm/OSMExt.java b/src/main/java/ipos/project/iposextension/osm/OSMExt.java index 24640bc..b382267 100644 --- a/src/main/java/ipos/project/iposextension/osm/OSMExt.java +++ b/src/main/java/ipos/project/iposextension/osm/OSMExt.java @@ -14,7 +14,7 @@ import static ipos.project.iposextension.tooz.Tooz.TOOZ_MONITORINGTASKID; public class OSMExt extends IPosExtension { public static final String TOPIC_OSM_EXT = "AGVViewer_VDA5050"; - public static final String TOPIC_OSM_EXT_OUTPUT = "OSM_EXT_OUTPUT"; + public static final String TOPIC_OSM_EXT_OUTPUT = "ipos/client/position"; public static final String SERIALIZATION_TYPE_OSM_EXT = "json"; private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); diff --git a/src/main/java/ipos/project/iposextension/osm/OSMExtInputMqtt.java b/src/main/java/ipos/project/iposextension/osm/OSMExtInputMqtt.java index 0f93598..38440b1 100644 --- a/src/main/java/ipos/project/iposextension/osm/OSMExtInputMqtt.java +++ b/src/main/java/ipos/project/iposextension/osm/OSMExtInputMqtt.java @@ -27,6 +27,7 @@ public class OSMExtInputMqtt implements Handler { public static void handleOsmExtInput(String jsonMsg) { ipos.models.OSM.OSMExtInputWrapper osmInputWrapper = null; try { + LOG.info("OSM: Handling message in order to initialize OSM-application: " + jsonMsg); osmInputWrapper = ProtoJsonMap.fromJson(jsonMsg, ipos.models.OSM.OSMExtInputWrapper.class); } catch (InvalidProtocolBufferException e) { e.printStackTrace(); diff --git a/src/main/java/ipos/project/iposextension/osm/OSMExtOutputMqtt.java b/src/main/java/ipos/project/iposextension/osm/OSMExtOutputMqtt.java index f5bbfa6..ee4da3d 100644 --- a/src/main/java/ipos/project/iposextension/osm/OSMExtOutputMqtt.java +++ b/src/main/java/ipos/project/iposextension/osm/OSMExtOutputMqtt.java @@ -9,7 +9,7 @@ import ipos.project.devkit.utility.OtherUtility; import org.apache.logging.log4j.LogManager; import org.eclipse.paho.client.mqttv3.MqttMessage; -@MqttListener("") +@MqttListener("invalid_topic") public class OSMExtOutputMqtt implements Handler { private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); @@ -24,8 +24,15 @@ public class OSMExtOutputMqtt implements Handler { public static void transmitOSMObject(OSMObject osmObject, String topic, String serializationType){ OSM.OSMObject osmObject_proto = OSMTrans.osmObject_internal2proto(osmObject); + OSM.OSMOutputWrapper osmOutputWrapper_proto = wrapIntoOutputWrapper(osmObject_proto); logging_osm(topic, serializationType, osmObject_proto); - OtherUtility.publishRespectingSerializationType(topic, serializationType, osmObject_proto); + OtherUtility.publishRespectingSerializationType(topic, serializationType, osmOutputWrapper_proto); + } + + private static OSM.OSMOutputWrapper wrapIntoOutputWrapper(OSM.OSMObject osmObject_proto) { + OSM.OSMOutputWrapper.Builder osmOutputWrapper_proto = OSM.OSMOutputWrapper.newBuilder(); + osmOutputWrapper_proto.addObjects(osmObject_proto); + return osmOutputWrapper_proto.build(); } private static void logging_osm(String topic, String serializationType, OSM.OSMObject osmObject_proto) { diff --git a/src/main/java/ipos/project/iposextension/osm/OSMIPosMonitoringWrapperMqtt.java b/src/main/java/ipos/project/iposextension/osm/OSMIPosMonitoringWrapperMqtt.java index 1a15660..2b790fb 100644 --- a/src/main/java/ipos/project/iposextension/osm/OSMIPosMonitoringWrapperMqtt.java +++ b/src/main/java/ipos/project/iposextension/osm/OSMIPosMonitoringWrapperMqtt.java @@ -33,8 +33,9 @@ public class OSMIPosMonitoringWrapperMqtt implements Handler { // generierter code: grundsätzlich für jede mögliche Nachricht etwas generieren, nicht nur für IPosUWBEvent private void handleIPosMonitoringWrapper(String jsonMsg) { try { + LOG.info("OSM-app Received Message: " + jsonMsg + " on topic " + OSMExt.TOPIC_OSM_EXT); SimpleScene.IposMonitoringWrapper iPosMonitoringWrapper = ProtoJsonMap.fromJson(jsonMsg, SimpleScene.IposMonitoringWrapper.class); - iPosMonitoringWrapper.getIposMsgRcvEventList().stream().forEach(iposMsgRcvEvent -> this.handleIPosMsgRcvEvent(iposMsgRcvEvent)); + iPosMonitoringWrapper.getIposMsgRcvEventsList().stream().forEach(iposMsgRcvEvent -> this.handleIPosMsgRcvEvent(iposMsgRcvEvent)); iPosMonitoringWrapper.getIposPositionEventsList().stream().forEach(iposPositionEvent -> this.handleIPosPositionEvent(iposPositionEvent)); } catch (InvalidProtocolBufferException e) { e.printStackTrace(); @@ -43,11 +44,17 @@ public class OSMIPosMonitoringWrapperMqtt implements Handler { private void handleIPosMsgRcvEvent(SimpleScene.IposMsgRcvEvent iPosMsgRcvEvent_proto) { OSMObject osmObject_internal = OSMTrans.msgRcvEv_proto2OSMObject(iPosMsgRcvEvent_proto); + LOG.info("OSM: Translated IPosMsgRcvEvent to OSMObject: " + osmObject_internal.toString()); OSM.handleOSMObject(osmObject_internal); } private void handleIPosPositionEvent(SimpleScene.IposPositionEvent iPosPositionEvent_proto) { - OSMObject osmObject_internal = OSMTrans.posEv_proto2OSMObject(iPosPositionEvent_proto); + iPosPositionEvent_proto.getObjectsList().stream().forEach(iposObject -> handleIposObject(iposObject)); + } + + private void handleIposObject(SimpleScene.IposObject iposObject_proto) { + OSMObject osmObject_internal = OSMTrans.posEv_proto2OSMObject(iposObject_proto); + LOG.info("OSM: Translated IposObject into OSMObject: " + osmObject_internal.toString()); OSM.handleOSMObject(osmObject_internal); } diff --git a/src/main/java/ipos/project/iposextension/osm/OSMTrans.java b/src/main/java/ipos/project/iposextension/osm/OSMTrans.java index c771b1a..67e6d3a 100644 --- a/src/main/java/ipos/project/iposextension/osm/OSMTrans.java +++ b/src/main/java/ipos/project/iposextension/osm/OSMTrans.java @@ -3,13 +3,17 @@ package ipos.project.iposextension.osm; import ipos.models.OSM; import ipos.models.SimpleScene; import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitFactory; -import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMFactory; -import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget; -import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject; +import ipos.project.DataModellntegration.iPos_Datamodel.OSM.*; +import org.apache.logging.log4j.LogManager; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; public class OSMTrans { private static IPosDevKitFactory devKitFactory = IPosDevKitFactory.eINSTANCE; private static OSMFactory osmFactory = OSMFactory.eINSTANCE; + private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger(); public static OSMMonitoringTarget osmMonTarget_proto2internal(OSM.OSMMonitoringTarget osmMonitoringTarget_proto) { OSMMonitoringTarget osmMonitoringTarget_internal = osmFactory.createOSMMonitoringTarget(); @@ -18,18 +22,180 @@ public class OSMTrans { return osmMonitoringTarget_internal; } - public static OSM.OSMObject osmObject_internal2proto(OSMObject osmObject) { + public static OSM.OSMObject osmObject_internal2proto(OSMObject osmObject_internal) { OSM.OSMObject.Builder osmObject_proto = OSM.OSMObject.newBuilder(); + if(null != osmObject_internal.getId()) osmObject_proto.setId(osmObject_internal.getId()); + if(null != osmObject_internal.getSensorId()) osmObject_proto.setSensorId(osmObject_internal.getSensorId()); + if(null != osmObject_internal.getType()) osmObject_proto.setType(osmObject_internal.getType()); + if(null != osmObject_internal.getSensorType()) osmObject_proto.setSensorType(osmObject_internal.getSensorType()); + if(null != osmObject_internal.getLastPosUpdate()) osmObject_proto.setLastPosUpdate(osmObject_internal.getLastPosUpdate()); + if(null != osmObject_internal.getOsmposition()) osmObject_proto.setPosition(osmposition_internal2proto(osmObject_internal.getOsmposition())); + if(null != osmObject_internal.getOsmorientation()) osmObject_proto.setOrientation(osmorientation_internal2proto(osmObject_internal.getOsmorientation())); + if(null != osmObject_internal.getOsmzonedescriptor()) osmObject_proto.addAllZoneDescriptors(osmObject_internal.getOsmzonedescriptor().stream().map(OSMTrans::zdescr_osm2proto).collect(Collectors.toList())); + if(null != osmObject_internal.getOsmextractedattributes()) osmObject_proto.setExtractedAttributes(exAtr_internal2proto(osmObject_internal.getOsmextractedattributes())); return osmObject_proto.build(); } + private static OSM.OSMExtractedAttributes exAtr_internal2proto(OSMExtractedAttributes osmExtractedattributes_internal) { + OSM.OSMExtractedAttributes.Builder osmExtractedAttributes_proto = OSM.OSMExtractedAttributes.newBuilder(); + osmExtractedAttributes_proto.setTheta(osmExtractedattributes_internal.getTheta()); // getTheta default-value: 0.0F + osmExtractedAttributes_proto.setBatteryChargeLevel(osmExtractedattributes_internal.getBatteryChargeLevel()); // getBatteryChargeLevel default-value: 0.0F + if(null != osmExtractedattributes_internal.getErrors()) { + List<Integer> errorsAsList = Arrays.stream(osmExtractedattributes_internal.getErrors()).boxed().collect(Collectors.toList()); + osmExtractedAttributes_proto.addAllErrors(errorsAsList); + } + if (null != osmExtractedattributes_internal.getLoadedItems()) { + List<Integer> loadsAsList = Arrays.stream(osmExtractedattributes_internal.getLoadedItems()).boxed().collect(Collectors.toList()); + osmExtractedAttributes_proto.addAllLoadedItems(loadsAsList); + } + return osmExtractedAttributes_proto.build(); + } + + private static OSM.OSMZoneDescriptor zdescr_osm2proto(OSMZoneDescriptor osmZoneDescriptor_internal) { + OSM.OSMZoneDescriptor.Builder osmZoneDescriptor_proto = OSM.OSMZoneDescriptor.newBuilder(); + if( null != osmZoneDescriptor_internal.getZoneId()) osmZoneDescriptor_proto.setZoneId(osmZoneDescriptor_internal.getZoneId()); + if( null != osmZoneDescriptor_internal.getNotificationType()) osmZoneDescriptor_proto.setNotificationType(osmZoneDescriptor_internal.getNotificationType()); + return osmZoneDescriptor_proto.build(); + } + + private static OSM.OSMOrientation osmorientation_internal2proto(OSMOrientation osmOrientation_internal) { + OSM.OSMOrientation.Builder osmOrientation_proto = OSM.OSMOrientation.newBuilder(); + osmOrientation_proto.setX(osmOrientation_internal.getX()); // getX default-value: 0.0F + osmOrientation_proto.setY(osmOrientation_internal.getY()); // getY default-value: 0.0F + osmOrientation_proto.setZ(osmOrientation_internal.getZ()); // getZ default-value: 0.0F + osmOrientation_proto.setW(osmOrientation_internal.getW()); // getW default-value: 0.0F + return osmOrientation_proto.build(); + } + + private static OSM.OSMPosition osmposition_internal2proto(OSMPosition osmposition_internal) { + OSM.OSMPosition.Builder osmPosition_proto = OSM.OSMPosition.newBuilder(); + if (null != osmposition_internal.getRefSystemId()) osmPosition_proto.setRefSystemId(osmposition_internal.getRefSystemId()); + osmPosition_proto.setAccuracy(osmposition_internal.getAccuracy()); // accuracy-default value 0.0F + if (null != osmposition_internal.getOsmpoint()) osmPosition_proto.setPoint(osmpoint_internal2proto(osmposition_internal.getOsmpoint())); + return osmPosition_proto.build(); + } + + private static OSM.OSMPoint osmpoint_internal2proto(OSMPoint osmpoint_internal) { + OSM.OSMPoint.Builder osmPoint_proto = OSM.OSMPoint.newBuilder(); + osmPoint_proto.setX(osmpoint_internal.getX()); + osmPoint_proto.setY(osmpoint_internal.getY()); + osmPoint_proto.setZ(osmpoint_internal.getZ()); + return osmPoint_proto.build(); + } + public static OSMObject msgRcvEv_proto2OSMObject(SimpleScene.IposMsgRcvEvent iPosMsgRcvEvent_proto) { OSMObject osmObject_internal = osmFactory.createOSMObject(); + osmObject_internal.setId(iPosMsgRcvEvent_proto.getAgentId()); + osmObject_internal.setSensorId(iPosMsgRcvEvent_proto.getAgentId()); // Annahme: für VDA5050-artige Protokolle gilt: sensorId == agentId + osmObject_internal.setType(""); // Annahme: VDA5050-artige Protokolle schicken zwar meist Nachrichten von AGVs, geben aber den Agententyp typischerweise nicht an + osmObject_internal.setSensorType(""); // Annahme: VDA5050-artige Protokolle berechnen zwar die Position aber schicken nicht unbedingt die Information Sensortype mit + osmObject_internal.setLastPosUpdate(iPosMsgRcvEvent_proto.getLastPosUpdate()); + if (null != iPosMsgRcvEvent_proto.getLastKnownPosition()) { + OSMPosition osmPosition = position_proto2OSM(iPosMsgRcvEvent_proto.getLastKnownPosition()); + osmObject_internal.setOsmposition(osmPosition); + } + if (null != iPosMsgRcvEvent_proto.getLastKnownOrientation()) { + OSMOrientation osmOrientation = orientation_proto2OSM(iPosMsgRcvEvent_proto.getLastKnownOrientation()); + osmObject_internal.setOsmorientation(osmOrientation); + } + if (null != iPosMsgRcvEvent_proto.getLastKnownZoneDescriptorsList()) osmObject_internal.getOsmzonedescriptor().addAll(iPosMsgRcvEvent_proto.getLastKnownZoneDescriptorsList().stream().map(OSMTrans::zoneDescr_proto2OSM).collect(Collectors.toList())); + if (null != iPosMsgRcvEvent_proto.getExtractedAttributesList()) osmObject_internal.setOsmextractedattributes(exAtr_proto2OSM(iPosMsgRcvEvent_proto.getExtractedAttributesList())); return osmObject_internal; } - public static OSMObject posEv_proto2OSMObject(SimpleScene.IposPositionEvent iPosPositionEvent_proto) { + private static OSMExtractedAttributes exAtr_proto2OSM(List<SimpleScene.Attribute> extractedAttributes_proto) { + OSMExtractedAttributes osmExtractedAttributes = osmFactory.createOSMExtractedAttributes(); + for (SimpleScene.Attribute attribute : extractedAttributes_proto) { + extractProtoAttributeIntoOSMAtr(osmExtractedAttributes, attribute); + } + return osmExtractedAttributes; + } + + private static void extractProtoAttributeIntoOSMAtr(OSMExtractedAttributes osmExtractedAttributes, SimpleScene.Attribute attribute) { + try { + switch (attribute.getName()) { + case "batteryCharge": + osmExtractedAttributes.setBatteryChargeLevel(Float.parseFloat(attribute.getData())); + break; + case "theta": + osmExtractedAttributes.setTheta(Float.parseFloat(attribute.getData())); break; + case "loads": + osmExtractedAttributes.setLoadedItems(parseIntArray(attribute.getData())); break; + case "errors": + osmExtractedAttributes.setErrors(parseIntArray(attribute.getData())); break; + default: + LOG.info("Unknown extracted attribute: " + attribute.getName()); break; + } + } catch(NumberFormatException e){ + LOG.info("Warning: Extracted attribute " + attribute.getName() + " could not be parsed: " + e.getMessage()); + } + } + + private static int[] parseIntArray(String data) { + String[] stringArray = data + .replaceAll("\\[", "") + .replaceAll("]", "") + .replaceAll("\\s+","") // removing whitespace + .split(","); + int[] intArray = new int[stringArray.length]; + for (int i = 0; i < stringArray.length; i++) { + intArray[i] = Integer.parseInt(stringArray[i]); + } + return intArray; + } + + private static OSMZoneDescriptor zoneDescr_proto2OSM(SimpleScene.IposZoneDescriptor iposZoneDescriptor) { + OSMZoneDescriptor osmZoneDescriptor = osmFactory.createOSMZoneDescriptor(); + osmZoneDescriptor.setZoneId(iposZoneDescriptor.getZoneId()); + osmZoneDescriptor.setNotificationType(iposZoneDescriptor.getNotificationType()); + return osmZoneDescriptor; + } + + private static OSMOrientation orientation_proto2OSM(SimpleScene.IposSimpleOrientation lastKnownOrientation) { + OSMOrientation orientation = osmFactory.createOSMOrientation(); + orientation.setX(lastKnownOrientation.getX()); // getX-default: 0F + orientation.setY(lastKnownOrientation.getY()); + orientation.setZ(lastKnownOrientation.getZ()); + orientation.setW(lastKnownOrientation.getW()); + return orientation; + } + + private static OSMPosition position_proto2OSM(SimpleScene.IposPosition position_proto) { + OSMPosition position = osmFactory.createOSMPosition(); + position.setRefSystemId(position_proto.getRefSystemId()); + position.setAccuracy(position_proto.getAccuracy()); + position.setOsmpoint(point_proto2OSM(position_proto.getPoint())); + return position; + } + + private static OSMPoint point_proto2OSM(SimpleScene.IposPoint3D point_proto) { + OSMPoint osmPoint = osmFactory.createOSMPoint(); + osmPoint.setX(point_proto.getX()); + osmPoint.setY(point_proto.getY()); + osmPoint.setZ(point_proto.getZ()); + return osmPoint; + } + + + public static OSMObject posEv_proto2OSMObject(SimpleScene.IposObject iposObject_proto) { OSMObject osmObject_internal = osmFactory.createOSMObject(); + osmObject_internal.setId(iposObject_proto.getId()); + osmObject_internal.setSensorId(iposObject_proto.getSensorId()); + osmObject_internal.setType(iposObject_proto.getType()); + osmObject_internal.setSensorType(iposObject_proto.getSensorType()); + osmObject_internal.setLastPosUpdate(iposObject_proto.getLastPosUpdate()); + if (null != iposObject_proto.getPosition()) { + OSMPosition osmPosition = position_proto2OSM(iposObject_proto.getPosition()); + osmObject_internal.setOsmposition(osmPosition); + } + if (null != iposObject_proto.getOrientation()) { + OSMOrientation osmOrientation = orientation_proto2OSM(iposObject_proto.getOrientation()); + osmObject_internal.setOsmorientation(osmOrientation); + } + if (null != iposObject_proto.getZoneDescriptorsList()) { + osmObject_internal.getOsmzonedescriptor().addAll( + iposObject_proto.getZoneDescriptorsList().stream().map(OSMTrans::zoneDescr_proto2OSM).collect(Collectors.toList())); + } return osmObject_internal; } } diff --git a/testdata_raw_orderpicker_posEvts.txt b/testdata_raw_orderpicker_posEvts.txt index 865e787..4561fe3 100644 --- a/testdata_raw_orderpicker_posEvts.txt +++ b/testdata_raw_orderpicker_posEvts.txt @@ -1,26 +1,8 @@ -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_1", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_1", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_1", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_1", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_1", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_1", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_2", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_2", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_2", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_3", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_3", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_3", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_3", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_3", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_5", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_5", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_5", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_2", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_2", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_2", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_2", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_2", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_2", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_2", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_2", "notificationType" : "undefined"}] } ]} -{"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_2", "notificationType" : "undefined"}] } ]} \ No newline at end of file +{"iposPositionEvents" : [ {"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_1", "notificationType" : "undefined"}] } ]} ]} +{"iposPositionEvents" : [ {"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_5", "notificationType" : "undefined"}] } ]} ]} +{"iposPositionEvents" : [ {"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_4", "notificationType" : "undefined"}] } ]} ]} +{"iposPositionEvents" : [ {"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_3", "notificationType" : "undefined"}] } ]} ]} +{"iposPositionEvents" : [ {"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_5", "notificationType" : "undefined"}] } ]} ]} +{"iposPositionEvents" : [ {"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_3", "notificationType" : "undefined"}] } ]} ]} +{"iposPositionEvents" : [ {"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "box_2", "notificationType" : "undefined"}] } ]} ]} +{"iposPositionEvents" : [ {"objects" : [ { "id" : "Employee_1", "sensorId" : "UWB_1", "type" : "HUMAN", "sensorType" : "UWB", "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, "lastPosUpdate" : "2021-10-14T19:32:20+00:00", "zoneDescriptors" : [{"zoneId" : "shipmentBin_2", "notificationType" : "undefined"}] } ]} ]} \ No newline at end of file diff --git a/testdata_raw_orderpicker_posEvts_readable.txt b/testdata_raw_orderpicker_posEvts_readable.txt index c549bbe..f6bc0a7 100644 --- a/testdata_raw_orderpicker_posEvts_readable.txt +++ b/testdata_raw_orderpicker_posEvts_readable.txt @@ -1,96 +1,112 @@ -{"objects" : [ - { - "id" : "Employee_1", - "sensorId" : "UWB_1", - "type" : "HUMAN", - "sensorType" : "UWB", - "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, - "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, - "lastPosUpdate" : "2021-10-14T19:32:20+00:00", - "zoneDescriptors" : [{"zoneId" : "box_1", "notificationType" : "undefined"}] - } +{"iposPositionEvents" : [ + {"objects" : [ + { + "id" : "Employee_1", + "sensorId" : "UWB_1", + "type" : "HUMAN", + "sensorType" : "UWB", + "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, + "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, + "lastPosUpdate" : "2021-10-14T19:32:20+00:00", + "zoneDescriptors" : [{"zoneId" : "box_1", "notificationType" : "undefined"}] + } + ]} ]} -{"objects" : [ - { - "id" : "Employee_1", - "sensorId" : "UWB_1", - "type" : "HUMAN", - "sensorType" : "UWB", - "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, - "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, - "lastPosUpdate" : "2021-10-14T19:32:20+00:00", - "zoneDescriptors" : [{"zoneId" : "shipmentBin_5", "notificationType" : "undefined"}] - } +{"iposPositionEvents" : [ + {"objects" : [ + { + "id" : "Employee_1", + "sensorId" : "UWB_1", + "type" : "HUMAN", + "sensorType" : "UWB", + "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, + "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, + "lastPosUpdate" : "2021-10-14T19:32:20+00:00", + "zoneDescriptors" : [{"zoneId" : "shipmentBin_5", "notificationType" : "undefined"}] + } + ]} ]} -{"objects" : [ - { - "id" : "Employee_1", - "sensorId" : "UWB_1", - "type" : "HUMAN", - "sensorType" : "UWB", - "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, - "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, - "lastPosUpdate" : "2021-10-14T19:32:20+00:00", - "zoneDescriptors" : [{"zoneId" : "box_4", "notificationType" : "undefined"}] - } +{"iposPositionEvents" : [ + {"objects" : [ + { + "id" : "Employee_1", + "sensorId" : "UWB_1", + "type" : "HUMAN", + "sensorType" : "UWB", + "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, + "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, + "lastPosUpdate" : "2021-10-14T19:32:20+00:00", + "zoneDescriptors" : [{"zoneId" : "box_4", "notificationType" : "undefined"}] + } + ]} ]} -{"objects" : [ - { - "id" : "Employee_1", - "sensorId" : "UWB_1", - "type" : "HUMAN", - "sensorType" : "UWB", - "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, - "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, - "lastPosUpdate" : "2021-10-14T19:32:20+00:00", - "zoneDescriptors" : [{"zoneId" : "shipmentBin_3", "notificationType" : "undefined"}] - } +{"iposPositionEvents" : [ + {"objects" : [ + { + "id" : "Employee_1", + "sensorId" : "UWB_1", + "type" : "HUMAN", + "sensorType" : "UWB", + "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, + "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, + "lastPosUpdate" : "2021-10-14T19:32:20+00:00", + "zoneDescriptors" : [{"zoneId" : "shipmentBin_3", "notificationType" : "undefined"}] + } + ]} ]} -{"objects" : [ - { - "id" : "Employee_1", - "sensorId" : "UWB_1", - "type" : "HUMAN", - "sensorType" : "UWB", - "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, - "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, - "lastPosUpdate" : "2021-10-14T19:32:20+00:00", - "zoneDescriptors" : [{"zoneId" : "box_5", "notificationType" : "undefined"}] - } +{"iposPositionEvents" : [ + {"objects" : [ + { + "id" : "Employee_1", + "sensorId" : "UWB_1", + "type" : "HUMAN", + "sensorType" : "UWB", + "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, + "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, + "lastPosUpdate" : "2021-10-14T19:32:20+00:00", + "zoneDescriptors" : [{"zoneId" : "box_5", "notificationType" : "undefined"}] + } + ]} ]} -{"objects" : [ - { - "id" : "Employee_1", - "sensorId" : "UWB_1", - "type" : "HUMAN", - "sensorType" : "UWB", - "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, - "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, - "lastPosUpdate" : "2021-10-14T19:32:20+00:00", - "zoneDescriptors" : [{"zoneId" : "shipmentBin_3", "notificationType" : "undefined"}] - } +{"iposPositionEvents" : [ + {"objects" : [ + { + "id" : "Employee_1", + "sensorId" : "UWB_1", + "type" : "HUMAN", + "sensorType" : "UWB", + "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, + "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, + "lastPosUpdate" : "2021-10-14T19:32:20+00:00", + "zoneDescriptors" : [{"zoneId" : "shipmentBin_3", "notificationType" : "undefined"}] + } + ]} ]} -{"objects" : [ - { - "id" : "Employee_1", - "sensorId" : "UWB_1", - "type" : "HUMAN", - "sensorType" : "UWB", - "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, - "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, - "lastPosUpdate" : "2021-10-14T19:32:20+00:00", - "zoneDescriptors" : [{"zoneId" : "box_2", "notificationType" : "undefined"}] - } +{"iposPositionEvents" : [ + {"objects" : [ + { + "id" : "Employee_1", + "sensorId" : "UWB_1", + "type" : "HUMAN", + "sensorType" : "UWB", + "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, + "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, + "lastPosUpdate" : "2021-10-14T19:32:20+00:00", + "zoneDescriptors" : [{"zoneId" : "box_2", "notificationType" : "undefined"}] + } + ]} ]} -{"objects" : [ - { - "id" : "Employee_1", - "sensorId" : "UWB_1", - "type" : "HUMAN", - "sensorType" : "UWB", - "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, - "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, - "lastPosUpdate" : "2021-10-14T19:32:20+00:00", - "zoneDescriptors" : [{"zoneId" : "shipmentBin_2", "notificationType" : "undefined"}] - } +{"iposPositionEvents" : [ + {"objects" : [ + { + "id" : "Employee_1", + "sensorId" : "UWB_1", + "type" : "HUMAN", + "sensorType" : "UWB", + "position" : {"refSystemId": "ROOT", "point": {"x": 0,"y": 0,"z": 0.97}, "accuracy": 0.01}, + "orientation" : {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}, + "lastPosUpdate" : "2021-10-14T19:32:20+00:00", + "zoneDescriptors" : [{"zoneId" : "shipmentBin_2", "notificationType" : "undefined"}] + } + ]} ]} \ No newline at end of file -- GitLab