Skip to content
Snippets Groups Projects
Commit e81a2977 authored by FrankR's avatar FrankR
Browse files

- NFC-Funktionalität

   - Einlesen über GenericSensorValueProcessor
   - Positionsberechnung über PositionCalculation
   - Test mit testdata_raw.txt (siehe auch: MainApp.java)
- Änderungen Datenmodell
parent ef94e22f
No related branches found
No related tags found
No related merge requests found
Showing
with 356 additions and 187 deletions
......@@ -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="5e294dee-965d-4b3c-986d-efa88a70016f">
<ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_Et4wgAQNEey-kNQ7esRa_g" name="iPos_Datamodel" repPath="#_Es-xkAQNEey-kNQ7esRa_g" changeId="5b2f622f-9f0c-4135-98e3-711f7012d86c">
<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>
......@@ -275,9 +275,9 @@
<children xmi:type="notation:Node" xmi:id="__k3HcAWcEey-kNQ7esRa_g" type="2003" element="__kvLoAWcEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="__k3HcwWcEey-kNQ7esRa_g" type="5007"/>
<children xmi:type="notation:Node" xmi:id="__k3ugAWcEey-kNQ7esRa_g" type="7004">
<children xmi:type="notation:Node" xmi:id="_9wiGQAWgEey-kNQ7esRa_g" type="3010" element="_9wYVQAWgEey-kNQ7esRa_g">
<styles xmi:type="notation:FontStyle" xmi:id="_9wiGQQWgEey-kNQ7esRa_g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_9wiGQgWgEey-kNQ7esRa_g"/>
<children xmi:type="notation:Node" xmi:id="_4ZsUUCeVEeydzb6PKf1sDQ" type="3010" element="_4ZOaQCeVEeydzb6PKf1sDQ">
<styles xmi:type="notation:FontStyle" xmi:id="_4ZsUUSeVEeydzb6PKf1sDQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_4ZsUUieVEeydzb6PKf1sDQ"/>
</children>
<styles xmi:type="notation:SortingStyle" xmi:id="__k3ugQWcEey-kNQ7esRa_g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="__k3uggWcEey-kNQ7esRa_g"/>
......@@ -335,24 +335,31 @@
<children xmi:type="notation:Node" xmi:id="_NxDRoAWjEey-kNQ7esRa_g" type="2003" element="_Nw8j8AWjEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_NxDRowWjEey-kNQ7esRa_g" type="5007"/>
<children xmi:type="notation:Node" xmi:id="_NxDRpAWjEey-kNQ7esRa_g" type="7004">
<children xmi:type="notation:Node" xmi:id="_5-5BcCeeEeydzb6PKf1sDQ" type="3010" element="_5-c8kCeeEeydzb6PKf1sDQ">
<styles xmi:type="notation:FontStyle" xmi:id="_5-5BcSeeEeydzb6PKf1sDQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_5-5BcieeEeydzb6PKf1sDQ"/>
</children>
<styles xmi:type="notation:SortingStyle" xmi:id="_NxDRpQWjEey-kNQ7esRa_g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_NxDRpgWjEey-kNQ7esRa_g"/>
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_NxDRoQWjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_NxDRogWjEey-kNQ7esRa_g" x="1404" y="-12" width="120" height="100"/>
</children>
<children xmi:type="notation:Node" xmi:id="_Sn_ycAWjEey-kNQ7esRa_g" type="2003" element="_Sn32oAWjEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_SoAZgAWjEey-kNQ7esRa_g" type="5007"/>
<children xmi:type="notation:Node" xmi:id="_SoAZgQWjEey-kNQ7esRa_g" type="7004">
<styles xmi:type="notation:SortingStyle" xmi:id="_SoAZggWjEey-kNQ7esRa_g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_SoAZgwWjEey-kNQ7esRa_g"/>
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_Sn_ycQWjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sn_ycgWjEey-kNQ7esRa_g" x="1350" y="144" width="120" height="100"/>
</children>
<children xmi:type="notation:Node" xmi:id="_YPBsYAWjEey-kNQ7esRa_g" type="2003" element="_YO6XoAWjEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_YPBsYwWjEey-kNQ7esRa_g" type="5007"/>
<children xmi:type="notation:Node" xmi:id="_YPBsZAWjEey-kNQ7esRa_g" type="7004">
<children xmi:type="notation:Node" xmi:id="_ZINmUCdREey8t_kDLBrwCg" type="3010" element="_ZHyIgCdREey8t_kDLBrwCg">
<styles xmi:type="notation:FontStyle" xmi:id="_ZINmUSdREey8t_kDLBrwCg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_ZIONYCdREey8t_kDLBrwCg"/>
</children>
<children xmi:type="notation:Node" xmi:id="_dZcK8CdREey8t_kDLBrwCg" type="3010" element="_dZJ3ECdREey8t_kDLBrwCg">
<styles xmi:type="notation:FontStyle" xmi:id="_dZcK8SdREey8t_kDLBrwCg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_dZcK8idREey8t_kDLBrwCg"/>
</children>
<children xmi:type="notation:Node" xmi:id="_g0umECdREey8t_kDLBrwCg" type="3010" element="_g0c5QCdREey8t_kDLBrwCg">
<styles xmi:type="notation:FontStyle" xmi:id="_g0umESdREey8t_kDLBrwCg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_g0umEidREey8t_kDLBrwCg"/>
</children>
<styles xmi:type="notation:SortingStyle" xmi:id="_YPBsZQWjEey-kNQ7esRa_g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_YPBsZgWjEey-kNQ7esRa_g"/>
</children>
......@@ -370,11 +377,15 @@
<styles xmi:type="notation:FontStyle" xmi:id="_qBsbcQcREey-kNQ7esRa_g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_qBsbcgcREey-kNQ7esRa_g"/>
</children>
<children xmi:type="notation:Node" xmi:id="_9OAo0CeeEeydzb6PKf1sDQ" type="3010" element="_9NuU8CeeEeydzb6PKf1sDQ">
<styles xmi:type="notation:FontStyle" xmi:id="_9OAo0SeeEeydzb6PKf1sDQ" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_9OAo0ieeEeydzb6PKf1sDQ"/>
</children>
<styles xmi:type="notation:SortingStyle" xmi:id="_s0mpQQWjEey-kNQ7esRa_g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_s0mpQgWjEey-kNQ7esRa_g"/>
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_s0mCMQWjEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_s0mCMgWjEey-kNQ7esRa_g" x="1035" y="-18" width="120" height="100"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_s0mCMgWjEey-kNQ7esRa_g" x="1035" y="-24" width="132" height="106"/>
</children>
<children xmi:type="notation:Node" xmi:id="_lCMqkAZsEey-kNQ7esRa_g" type="2003" element="_lBuJcAZsEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_lCN4sAZsEey-kNQ7esRa_g" type="5007"/>
......@@ -393,15 +404,6 @@
<styles xmi:type="notation:ShapeStyle" xmi:id="_lCNRoAZsEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_lCNRoQZsEey-kNQ7esRa_g" x="1542" y="714" width="120" height="100"/>
</children>
<children xmi:type="notation:Node" xmi:id="_ovs3EAZsEey-kNQ7esRa_g" type="2003" element="_ovifAAZsEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_ovs3EwZsEey-kNQ7esRa_g" type="5007"/>
<children xmi:type="notation:Node" xmi:id="_ovs3FAZsEey-kNQ7esRa_g" type="7004">
<styles xmi:type="notation:SortingStyle" xmi:id="_ovs3FQZsEey-kNQ7esRa_g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_ovs3FgZsEey-kNQ7esRa_g"/>
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_ovs3EQZsEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_ovs3EgZsEey-kNQ7esRa_g" x="2328" y="-174" width="120" height="100"/>
</children>
<children xmi:type="notation:Node" xmi:id="_uNQr8AZsEey-kNQ7esRa_g" type="2003" element="_uNHiAAZsEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_uNRTAAZsEey-kNQ7esRa_g" type="5007"/>
<children xmi:type="notation:Node" xmi:id="_uNRTAQZsEey-kNQ7esRa_g" type="7004">
......@@ -1013,22 +1015,6 @@
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PAtYIAWiEey-kNQ7esRa_g" id="(0.6101694915254238,0.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PAtYIQWiEey-kNQ7esRa_g" id="(0.6068965517241379,1.0)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_cCGVYAWjEey-kNQ7esRa_g" type="4001" element="_cB2dzAWjEey-kNQ7esRa_g" source="_NxDRoAWjEey-kNQ7esRa_g" target="_Sn_ycAWjEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_cCGVZAWjEey-kNQ7esRa_g" type="6001">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_cCG8cAWjEey-kNQ7esRa_g" x="3" y="-10"/>
</children>
<children xmi:type="notation:Node" xmi:id="_cCG8cQWjEey-kNQ7esRa_g" type="6002">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_cCG8cgWjEey-kNQ7esRa_g" y="10"/>
</children>
<children xmi:type="notation:Node" xmi:id="_cCG8cwWjEey-kNQ7esRa_g" type="6003">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_cCG8dAWjEey-kNQ7esRa_g" x="-37" y="-15"/>
</children>
<styles xmi:type="notation:ConnectorStyle" xmi:id="_cCGVYQWjEey-kNQ7esRa_g" routing="Rectilinear"/>
<styles xmi:type="notation:FontStyle" xmi:id="_cCGVYgWjEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cCGVYwWjEey-kNQ7esRa_g" points="[0, 0, 49, -58]$[0, 14, 49, -44]$[-49, 14, 0, -44]$[-49, 58, 0, 0]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cCG8dQWjEey-kNQ7esRa_g" id="(0.5,1.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cCG8dgWjEey-kNQ7esRa_g" id="(0.5423728813559322,0.0)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_cxxe0AWjEey-kNQ7esRa_g" type="4001" element="_cxcusAWjEey-kNQ7esRa_g" source="_NxDRoAWjEey-kNQ7esRa_g" target="_YPBsYAWjEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_cxyF4AWjEey-kNQ7esRa_g" type="6001">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_cxyF4QWjEey-kNQ7esRa_g" x="-21" y="-10"/>
......@@ -1077,22 +1063,6 @@
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_izFhCgWjEey-kNQ7esRa_g" id="(0.3724137931034483,0.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_izFhCwWjEey-kNQ7esRa_g" id="(0.5,0.5)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_T8AZIAaBEey-kNQ7esRa_g" type="4001" element="_T72oPgaBEey-kNQ7esRa_g" source="_ovs3EAZsEey-kNQ7esRa_g" target="__k3HcAWcEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_T8AZJAaBEey-kNQ7esRa_g" type="6001">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_T8AZJQaBEey-kNQ7esRa_g" x="253" y="-10"/>
</children>
<children xmi:type="notation:Node" xmi:id="_T8AZJgaBEey-kNQ7esRa_g" type="6002">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_T8AZJwaBEey-kNQ7esRa_g" x="607" y="10"/>
</children>
<children xmi:type="notation:Node" xmi:id="_T8AZKAaBEey-kNQ7esRa_g" type="6003">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_T8AZKQaBEey-kNQ7esRa_g" x="76" y="10"/>
</children>
<styles xmi:type="notation:ConnectorStyle" xmi:id="_T8AZIQaBEey-kNQ7esRa_g" routing="Rectilinear"/>
<styles xmi:type="notation:FontStyle" xmi:id="_T8AZIgaBEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_T8AZIwaBEey-kNQ7esRa_g" points="[0, 6, 722, 6]$[-722, 6, 0, 6]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T8BAMAaBEey-kNQ7esRa_g" id="(0.0,0.10204081632653061)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T8BAMQaBEey-kNQ7esRa_g" id="(1.0,0.16326530612244897)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_0ITFAAaCEey-kNQ7esRa_g" type="4001" element="_0IAKIgaCEey-kNQ7esRa_g" source="_nuczcAaCEey-kNQ7esRa_g" target="_IONsYAZtEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_0ITFBAaCEey-kNQ7esRa_g" type="6001">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_0ITFBQaCEey-kNQ7esRa_g" x="-50" y="2"/>
......@@ -1170,7 +1140,7 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_WT7CkQcMEey-kNQ7esRa_g" routing="Tree"/>
<styles xmi:type="notation:FontStyle" xmi:id="_WT7CkgcMEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WT7CkwcMEey-kNQ7esRa_g" points="[0, 0, -342, 161]$[342, -161, 0, 0]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WT7CmgcMEey-kNQ7esRa_g" id="(0.559322033898305,0.0)"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WT7CmgcMEey-kNQ7esRa_g" id="(0.5076923076923077,0.057692307692307696)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WT7CmwcMEey-kNQ7esRa_g" id="(0.5,0.5)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_9YKTIAcMEey-kNQ7esRa_g" type="4001" element="_9X2xLAcMEey-kNQ7esRa_g" source="_zBjrsAcMEey-kNQ7esRa_g" target="_DsJToAWiEey-kNQ7esRa_g">
......@@ -1203,7 +1173,7 @@
<styles xmi:type="notation:FontStyle" xmi:id="_Prz0MgcOEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Prz0MwcOEey-kNQ7esRa_g" points="[0, 0, -54, 11]$[54, -11, 0, 0]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Prz0OgcOEey-kNQ7esRa_g" id="(0.5,0.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Prz0OwcOEey-kNQ7esRa_g" id="(0.5,0.5)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Prz0OwcOEey-kNQ7esRa_g" id="(0.45384615384615384,0.5288461538461539)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_QKsvoAcOEey-kNQ7esRa_g" type="4001" element="_QKU8MAcOEey-kNQ7esRa_g" source="_K7QPQAcOEey-kNQ7esRa_g" target="_s0mCMAWjEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_QKsvpAcOEey-kNQ7esRa_g" type="6001">
......@@ -1219,7 +1189,7 @@
<styles xmi:type="notation:FontStyle" xmi:id="_QKsvogcOEey-kNQ7esRa_g" fontName="Segoe UI" fontHeight="8"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QKsvowcOEey-kNQ7esRa_g" points="[0, 0, 18, 103]$[-18, -103, 0, 0]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QKsvqgcOEey-kNQ7esRa_g" id="(0.4406779661016949,0.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QKsvqwcOEey-kNQ7esRa_g" id="(0.5,0.5)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QKsvqwcOEey-kNQ7esRa_g" id="(0.45384615384615384,0.5288461538461539)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_aEfQgAcUEey-kNQ7esRa_g" type="4001" element="_aEKgcgcUEey-kNQ7esRa_g" source="_VKA6kAcUEey-kNQ7esRa_g" target="_s0mCMAWjEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_aEfQhAcUEey-kNQ7esRa_g" type="6001">
......@@ -1235,7 +1205,7 @@
<styles xmi:type="notation:FontStyle" xmi:id="_aEfQggcUEey-kNQ7esRa_g" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aEfQgwcUEey-kNQ7esRa_g" points="[0, 0, 135, 258]$[-135, -258, 0, 0]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aEf3kAcUEey-kNQ7esRa_g" id="(0.5,0.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aEf3kQcUEey-kNQ7esRa_g" id="(0.5,0.5)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aEf3kQcUEey-kNQ7esRa_g" id="(0.45384615384615384,0.5288461538461539)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_HJJjsAcbEey-kNQ7esRa_g" type="4001" element="_HI0zogcbEey-kNQ7esRa_g" source="_pEG-0AaCEey-kNQ7esRa_g" target="_IONsYAZtEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_HJKKwAcbEey-kNQ7esRa_g" type="6001">
......@@ -1284,22 +1254,6 @@
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oMShkwcoEey-kNQ7esRa_g" points="[59, 41, -229, 48]$[229, 41, -59, 48]"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oMTIoQcoEey-kNQ7esRa_g" id="(0.5,0.0)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_RDIQ0AcsEey-kNQ7esRa_g" type="4001" element="_RCvPUgcsEey-kNQ7esRa_g" source="_Ml8T0AcsEey-kNQ7esRa_g" target="_fodekAQjEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_RDIQ1AcsEey-kNQ7esRa_g" type="6001">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_RDIQ1QcsEey-kNQ7esRa_g" y="-10"/>
</children>
<children xmi:type="notation:Node" xmi:id="_RDIQ1gcsEey-kNQ7esRa_g" type="6002">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_RDIQ1wcsEey-kNQ7esRa_g" y="10"/>
</children>
<children xmi:type="notation:Node" xmi:id="_RDIQ2AcsEey-kNQ7esRa_g" type="6003">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_RDIQ2QcsEey-kNQ7esRa_g" y="10"/>
</children>
<styles xmi:type="notation:ConnectorStyle" xmi:id="_RDIQ0QcsEey-kNQ7esRa_g" routing="Rectilinear"/>
<styles xmi:type="notation:FontStyle" xmi:id="_RDIQ0gcsEey-kNQ7esRa_g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RDIQ0wcsEey-kNQ7esRa_g" points="[0, 0, -119, 0]$[119, 0, 0, 0]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RDI34AcsEey-kNQ7esRa_g" id="(1.0,0.1326530612244898)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RDI34QcsEey-kNQ7esRa_g" id="(0.0,0.030612244897959183)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_JkaXUAc-Eey-kNQ7esRa_g" type="4001" element="_JkOxSgc-Eey-kNQ7esRa_g" source="_IONsYAZtEey-kNQ7esRa_g" target="_D9ZrgAc-Eey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_JkaXVAc-Eey-kNQ7esRa_g" type="6001">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_JkaXVQc-Eey-kNQ7esRa_g" x="7" y="-9"/>
......@@ -1460,6 +1414,38 @@
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G-S6cBxXEeyPOIo-WqURQQ" id="(0.7372881355932204,0.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G-S6cRxXEeyPOIo-WqURQQ" id="(0.0,0.12244897959183673)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_TlgywCdREey8t_kDLBrwCg" type="4001" element="_cB2dzAWjEey-kNQ7esRa_g" source="_NxDRoAWjEey-kNQ7esRa_g" target="_YB0RsATxEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_TlmSUCdREey8t_kDLBrwCg" type="6001">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_TlmSUSdREey8t_kDLBrwCg" x="-132" y="-10"/>
</children>
<children xmi:type="notation:Node" xmi:id="_Tlm5YCdREey8t_kDLBrwCg" type="6002">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tlm5YSdREey8t_kDLBrwCg" x="-2" y="10"/>
</children>
<children xmi:type="notation:Node" xmi:id="_TlngcCdREey8t_kDLBrwCg" type="6003">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_TlngcSdREey8t_kDLBrwCg" y="128"/>
</children>
<styles xmi:type="notation:ConnectorStyle" xmi:id="_TlgywSdREey8t_kDLBrwCg" routing="Rectilinear"/>
<styles xmi:type="notation:FontStyle" xmi:id="_TlgywidREey8t_kDLBrwCg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TlgywydREey8t_kDLBrwCg" points="[0, 0, 195, -297]$[0, 14, 195, -283]$[-71, 14, 124, -283]$[-71, 346, 124, 49]$[-157, 346, 38, 49]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TlrK0CdREey8t_kDLBrwCg" id="(0.5,1.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TlrK0SdREey8t_kDLBrwCg" id="(0.6779661016949152,0.04672897196261682)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_BMxgQCemEeyTddajI1jY8w" type="4001" element="_RCvPUgcsEey-kNQ7esRa_g" source="_Ml8T0AcsEey-kNQ7esRa_g" target="_beL2gAQjEey-kNQ7esRa_g">
<children xmi:type="notation:Node" xmi:id="_BM41ACemEeyTddajI1jY8w" type="6001">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_BM41ASemEeyTddajI1jY8w" y="-10"/>
</children>
<children xmi:type="notation:Node" xmi:id="_BM6DICemEeyTddajI1jY8w" type="6002">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_BM6DISemEeyTddajI1jY8w" y="10"/>
</children>
<children xmi:type="notation:Node" xmi:id="_BNmmsCemEeyTddajI1jY8w" type="6003">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_BNmmsSemEeyTddajI1jY8w" y="10"/>
</children>
<styles xmi:type="notation:ConnectorStyle" xmi:id="_BMxgQSemEeyTddajI1jY8w" routing="Rectilinear"/>
<styles xmi:type="notation:FontStyle" xmi:id="_BMxgQiemEeyTddajI1jY8w" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BMxgQyemEeyTddajI1jY8w" points="[0, 0, -124, 84]$[60, 0, -64, 84]$[60, -85, -64, -1]$[119, -85, -5, -1]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BNpqACemEeyTddajI1jY8w" id="(1.0,0.1326530612244898)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BNpqASemEeyTddajI1jY8w" id="(0.0423728813559322,0.826530612244898)"/>
</edges>
</data>
</ownedAnnotationEntries>
<ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_EwhNwAQNEey-kNQ7esRa_g" source="DANNOTATION_CUSTOMIZATION_KEY">
......@@ -1562,7 +1548,7 @@
<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="_beGW8AQjEey-kNQ7esRa_g" name="Placing" tooltipText="" outgoingEdges="_OlBg0AQlEey-kNQ7esRa_g _S3W4sAQlEey-kNQ7esRa_g" incomingEdges="_t9fiEwQxEey-kNQ7esRa_g _92h2_gccEey-kNQ7esRa_g _Q-uURhuHEeyPOIo-WqURQQ _G94qwBxXEeyPOIo-WqURQQ" width="12" height="10">
<ownedDiagramElements xmi:type="diagram:DNodeList" uid="_beGW8AQjEey-kNQ7esRa_g" name="Placing" tooltipText="" outgoingEdges="_OlBg0AQlEey-kNQ7esRa_g _S3W4sAQlEey-kNQ7esRa_g" incomingEdges="_t9fiEwQxEey-kNQ7esRa_g _92h2_gccEey-kNQ7esRa_g _Q-uURhuHEeyPOIo-WqURQQ _G94qwBxXEeyPOIo-WqURQQ _RCvPUgcsEey-kNQ7esRa_g" width="12" height="10">
<target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Placing"/>
<semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Placing"/>
<arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
......@@ -1573,7 +1559,7 @@
</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']"/>
</ownedDiagramElements>
<ownedDiagramElements xmi:type="diagram:DNodeList" uid="_foX_AAQjEey-kNQ7esRa_g" name="Position" tooltipText="" outgoingEdges="_X6rBlgQlEey-kNQ7esRa_g _r-z1gBrzEeyPOIo-WqURQQ _t3gckhrzEeyPOIo-WqURQQ" incomingEdges="_OlBg0AQlEey-kNQ7esRa_g _RCvPUgcsEey-kNQ7esRa_g" width="12" height="10">
<ownedDiagramElements xmi:type="diagram:DNodeList" uid="_foX_AAQjEey-kNQ7esRa_g" name="Position" tooltipText="" outgoingEdges="_X6rBlgQlEey-kNQ7esRa_g _r-z1gBrzEeyPOIo-WqURQQ _t3gckhrzEeyPOIo-WqURQQ" incomingEdges="_OlBg0AQlEey-kNQ7esRa_g" width="12" height="10">
<target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Position"/>
<semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Position"/>
<arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
......@@ -1920,7 +1906,7 @@
</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="_YBru0ATxEey-kNQ7esRa_g" name="Quaternion" tooltipText="" outgoingEdges="_eXVOvgcoEey-kNQ7esRa_g" width="12" height="10">
<ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YBru0ATxEey-kNQ7esRa_g" name="Quaternion" tooltipText="" outgoingEdges="_eXVOvgcoEey-kNQ7esRa_g" incomingEdges="_cB2dzAWjEey-kNQ7esRa_g" width="12" height="10">
<target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Quaternion"/>
<semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Quaternion"/>
<arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
......@@ -2029,21 +2015,20 @@
</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%20ESupertypes']"/>
</ownedDiagramElements>
<ownedDiagramElements xmi:type="diagram:DNodeList" uid="__kvLoAWcEey-kNQ7esRa_g" name="Rawdata" tooltipText="" incomingEdges="_iSeHXgWjEey-kNQ7esRa_g _iy-MfAWjEey-kNQ7esRa_g _T72oPgaBEey-kNQ7esRa_g _WTwDiAcMEey-kNQ7esRa_g" width="12" height="10">
<target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Rawdata"/>
<semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Rawdata"/>
<ownedDiagramElements xmi:type="diagram:DNodeList" uid="__kvLoAWcEey-kNQ7esRa_g" name="RawdataEvent" tooltipText="" incomingEdges="_iSeHXgWjEey-kNQ7esRa_g _iy-MfAWjEey-kNQ7esRa_g _WTwDiAcMEey-kNQ7esRa_g" width="12" height="10">
<target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//RawdataEvent"/>
<semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//RawdataEvent"/>
<arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
<arrangeConstraints>KEEP_SIZE</arrangeConstraints>
<arrangeConstraints>KEEP_RATIO</arrangeConstraints>
<ownedStyle xmi:type="diagram:FlatContainerStyle" uid="__rmE0wWgEey-kNQ7esRa_g" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
<labelFormat>italic</labelFormat>
<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']/@conditionnalStyles.1/@style"/>
<ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_6Oi9IyeVEeydzb6PKf1sDQ" 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="_9wYVQAWgEey-kNQ7esRa_g" name="sensorId : EString" tooltipText="">
<target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Rawdata/sensorId"/>
<semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Rawdata/sensorId"/>
<ownedStyle xmi:type="diagram:BundledImage" uid="__rnS5wWgEey-kNQ7esRa_g" labelAlignment="LEFT">
<ownedElements xmi:type="diagram:DNodeListElement" uid="_4ZOaQCeVEeydzb6PKf1sDQ" name="timeStamp : String" tooltipText="">
<target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//RawdataEvent/timeStamp"/>
<semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//RawdataEvent/timeStamp"/>
<ownedStyle xmi:type="diagram:BundledImage" uid="_6OnOkyeVEeydzb6PKf1sDQ" 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']"/>
......@@ -2152,21 +2137,18 @@
<arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
<arrangeConstraints>KEEP_SIZE</arrangeConstraints>
<arrangeConstraints>KEEP_RATIO</arrangeConstraints>
<ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Nw8j8QWjEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
<ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_76gZlieeEeydzb6PKf1sDQ" 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']"/>
</ownedDiagramElements>
<ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Sn32oAWjEey-kNQ7esRa_g" name="AngularRate" tooltipText="" incomingEdges="_cB2dzAWjEey-kNQ7esRa_g" width="12" height="10">
<target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//AngularRate"/>
<semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//AngularRate"/>
<arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
<arrangeConstraints>KEEP_SIZE</arrangeConstraints>
<arrangeConstraints>KEEP_RATIO</arrangeConstraints>
<ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Sn32oQWjEey-kNQ7esRa_g" 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"/>
<ownedElements xmi:type="diagram:DNodeListElement" uid="_5-c8kCeeEeydzb6PKf1sDQ" name="sensorId : String" tooltipText="">
<target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IMU/sensorId"/>
<semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//IMU/sensorId"/>
<ownedStyle xmi:type="diagram:BundledImage" uid="_76kD8ieeEeydzb6PKf1sDQ" 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:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
<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="_YO6XoAWjEey-kNQ7esRa_g" name="Acceleration" tooltipText="" incomingEdges="_cxcusAWjEey-kNQ7esRa_g" width="12" height="10">
<target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Acceleration"/>
......@@ -2174,19 +2156,46 @@
<arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
<arrangeConstraints>KEEP_SIZE</arrangeConstraints>
<arrangeConstraints>KEEP_RATIO</arrangeConstraints>
<ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_YO6-sAWjEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
<ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_hliX-ydREey8t_kDLBrwCg" 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="_ZHyIgCdREey8t_kDLBrwCg" name="x : Float = 0.0" tooltipText="">
<target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Acceleration/x"/>
<semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Acceleration/x"/>
<ownedStyle xmi:type="diagram:BundledImage" uid="_adqWUSdREey8t_kDLBrwCg" 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="_dZJ3ECdREey8t_kDLBrwCg" name="y : Float = 0.0" tooltipText="">
<target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Acceleration/y"/>
<semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Acceleration/y"/>
<ownedStyle xmi:type="diagram:BundledImage" uid="_fTxwtydREey8t_kDLBrwCg" 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="_g0c5QCdREey8t_kDLBrwCg" name="z : Float = 0.0" tooltipText="">
<target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Acceleration/z"/>
<semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Acceleration/z"/>
<ownedStyle xmi:type="diagram:BundledImage" uid="_hlk0NSdREey8t_kDLBrwCg" 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="_cB2dzAWjEey-kNQ7esRa_g" name="[1..1] angularrate" sourceNode="_Nw8j8AWjEey-kNQ7esRa_g" targetNode="_Sn32oAWjEey-kNQ7esRa_g">
<ownedDiagramElements xmi:type="diagram:DEdge" uid="_cB2dzAWjEey-kNQ7esRa_g" name="[1..1] angularrate" sourceNode="_Nw8j8AWjEey-kNQ7esRa_g" targetNode="_YBru0ATxEey-kNQ7esRa_g">
<target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IMU/angularrate"/>
<semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//IMU/angularrate"/>
<ownedStyle xmi:type="diagram:EdgeStyle" uid="_eks1GwWjEey-kNQ7esRa_g" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
<centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_eks1HQWjEey-kNQ7esRa_g" showIcon="false">
<customFeatures>labelSize</customFeatures>
<labelFormat>bold</labelFormat>
</centerLabelStyle>
<endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_eks1HAWjEey-kNQ7esRa_g" labelSize="6" showIcon="false" labelColor="39,76,114"/>
<endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_eks1HAWjEey-kNQ7esRa_g" 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>
......@@ -2204,12 +2213,12 @@
<ownedDiagramElements xmi:type="diagram:DEdge" uid="_iSeHXgWjEey-kNQ7esRa_g" sourceNode="_Nw8j8AWjEey-kNQ7esRa_g" targetNode="__kvLoAWcEey-kNQ7esRa_g">
<target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IMU"/>
<semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//IMU"/>
<ownedStyle xmi:type="diagram:EdgeStyle" uid="_iSeHXwWjEey-kNQ7esRa_g" targetArrow="InputClosedArrow" routingStyle="tree">
<ownedStyle xmi:type="diagram:EdgeStyle" uid="_76tN7CeeEeydzb6PKf1sDQ" targetArrow="InputClosedArrow" routingStyle="tree">
<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%20ESupertypes']/@style"/>
<beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_iSeHYAWjEey-kNQ7esRa_g" showIcon="false">
<beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_76tN7SeeEeydzb6PKf1sDQ" showIcon="false">
<labelFormat>italic</labelFormat>
</beginLabelStyle>
<centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_iSeHYQWjEey-kNQ7esRa_g" showIcon="false"/>
<centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_76tN7ieeEeydzb6PKf1sDQ" showIcon="false"/>
</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%20ESupertypes']"/>
</ownedDiagramElements>
......@@ -2231,7 +2240,7 @@
<arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
<arrangeConstraints>KEEP_SIZE</arrangeConstraints>
<arrangeConstraints>KEEP_RATIO</arrangeConstraints>
<ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_E4I5hQcSEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
<ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_-ag4MSeeEeydzb6PKf1sDQ" 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']"/>
......@@ -2251,6 +2260,14 @@
</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="_9NuU8CeeEeydzb6PKf1sDQ" name="sensorId : String" tooltipText="">
<target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Beacon/sensorId"/>
<semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Beacon/sensorId"/>
<ownedStyle xmi:type="diagram:BundledImage" uid="_-ajUdieeEeydzb6PKf1sDQ" 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="_lBuJcAZsEey-kNQ7esRa_g" name="PositionEvent" tooltipText="" outgoingEdges="_92h2_gccEey-kNQ7esRa_g" width="12" height="10">
<target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//PositionEvent"/>
......@@ -2279,17 +2296,6 @@
<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="_ovifAAZsEey-kNQ7esRa_g" name="RawdataEvent" tooltipText="" outgoingEdges="_T72oPgaBEey-kNQ7esRa_g" width="12" height="10">
<target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//RawdataEvent"/>
<semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//RawdataEvent"/>
<arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
<arrangeConstraints>KEEP_SIZE</arrangeConstraints>
<arrangeConstraints>KEEP_RATIO</arrangeConstraints>
<ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_ovjGEAZsEey-kNQ7esRa_g" 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']"/>
</ownedDiagramElements>
<ownedDiagramElements xmi:type="diagram:DNodeList" uid="_uNHiAAZsEey-kNQ7esRa_g" name="TrackingRequest" tooltipText="" width="12" height="10">
<target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//TrackingRequest"/>
<semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//TrackingRequest"/>
......@@ -2482,17 +2488,6 @@
</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']"/>
</ownedDiagramElements>
<ownedDiagramElements xmi:type="diagram:DEdge" uid="_T72oPgaBEey-kNQ7esRa_g" name="[1..*] rawdata" sourceNode="_ovifAAZsEey-kNQ7esRa_g" targetNode="__kvLoAWcEey-kNQ7esRa_g">
<target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//RawdataEvent/rawdata"/>
<semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//RawdataEvent/rawdata"/>
<ownedStyle xmi:type="diagram:EdgeStyle" uid="_XIKMRgaBEey-kNQ7esRa_g" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
<centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_XIKMSAaBEey-kNQ7esRa_g" showIcon="false">
<labelFormat>bold</labelFormat>
</centerLabelStyle>
<endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_XIKMRwaBEey-kNQ7esRa_g" labelSize="6" showIcon="false" labelColor="39,76,114"/>
</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="_nuR0UAaCEey-kNQ7esRa_g" name="MonitoringTask" tooltipText="" outgoingEdges="_0IAKIgaCEey-kNQ7esRa_g" width="12" height="10">
<target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//MonitoringTask"/>
<semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//MonitoringTask"/>
......@@ -2591,12 +2586,12 @@
<ownedDiagramElements xmi:type="diagram:DEdge" uid="_WTwDiAcMEey-kNQ7esRa_g" sourceNode="_s0dfUAWjEey-kNQ7esRa_g" targetNode="__kvLoAWcEey-kNQ7esRa_g">
<target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Beacon"/>
<semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Beacon"/>
<ownedStyle xmi:type="diagram:EdgeStyle" uid="_E4UfrAcSEey-kNQ7esRa_g" targetArrow="InputClosedArrow" routingStyle="tree">
<ownedStyle xmi:type="diagram:EdgeStyle" uid="_-apbOieeEeydzb6PKf1sDQ" targetArrow="InputClosedArrow" routingStyle="tree">
<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%20ESupertypes']/@style"/>
<beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_E4UfrQcSEey-kNQ7esRa_g" showIcon="false">
<beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_-apbOyeeEeydzb6PKf1sDQ" showIcon="false">
<labelFormat>italic</labelFormat>
</beginLabelStyle>
<centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_E4UfrgcSEey-kNQ7esRa_g" showIcon="false"/>
<centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_-apbPCeeEeydzb6PKf1sDQ" showIcon="false"/>
</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%20ESupertypes']"/>
</ownedDiagramElements>
......@@ -2637,14 +2632,14 @@
<arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
<arrangeConstraints>KEEP_SIZE</arrangeConstraints>
<arrangeConstraints>KEEP_RATIO</arrangeConstraints>
<ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_I-N60QcOEey-kNQ7esRa_g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
<ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_d_Ac5iejEeyTddajI1jY8w" 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="_10SAEAcOEey-kNQ7esRa_g" name="rss : EMap" tooltipText="">
<target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Bluetooth/rss"/>
<semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//Bluetooth/rss"/>
<ownedStyle xmi:type="diagram:BundledImage" uid="_D-2hAQcSEey-kNQ7esRa_g" labelAlignment="LEFT">
<ownedStyle xmi:type="diagram:BundledImage" uid="_d_K08iejEeyTddajI1jY8w" 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']"/>
......@@ -2664,12 +2659,12 @@
<ownedDiagramElements xmi:type="diagram:DEdge" uid="_PraypgcOEey-kNQ7esRa_g" sourceNode="_I-N60AcOEey-kNQ7esRa_g" targetNode="_s0dfUAWjEey-kNQ7esRa_g">
<target xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Bluetooth"/>
<semanticElements xmi:type="ecore:EClass" href="iPos_Datamodel.ecore#//Bluetooth"/>
<ownedStyle xmi:type="diagram:EdgeStyle" uid="_PraypwcOEey-kNQ7esRa_g" targetArrow="InputClosedArrow" routingStyle="tree">
<ownedStyle xmi:type="diagram:EdgeStyle" uid="_d_dI0CejEeyTddajI1jY8w" targetArrow="InputClosedArrow" routingStyle="tree">
<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%20ESupertypes']/@style"/>
<beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_PrayqAcOEey-kNQ7esRa_g" showIcon="false">
<beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_d_dI0SejEeyTddajI1jY8w" showIcon="false">
<labelFormat>italic</labelFormat>
</beginLabelStyle>
<centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_PrayqQcOEey-kNQ7esRa_g" showIcon="false"/>
<centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_d_dI0iejEeyTddajI1jY8w" showIcon="false"/>
</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%20ESupertypes']"/>
</ownedDiagramElements>
......@@ -2799,14 +2794,17 @@
<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="_RCvPUgcsEey-kNQ7esRa_g" name="[1..1] position" sourceNode="_Mlx7wAcsEey-kNQ7esRa_g" targetNode="_foX_AAQjEey-kNQ7esRa_g">
<target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//POI/position"/>
<semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//POI/position"/>
<ownedDiagramElements xmi:type="diagram:DEdge" uid="_RCvPUgcsEey-kNQ7esRa_g" name="[1..1] placing" sourceNode="_Mlx7wAcsEey-kNQ7esRa_g" targetNode="_beGW8AQjEey-kNQ7esRa_g">
<target xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//POI/placing"/>
<semanticElements xmi:type="ecore:EReference" href="iPos_Datamodel.ecore#//POI/placing"/>
<ownedStyle xmi:type="diagram:EdgeStyle" uid="_R838QwcsEey-kNQ7esRa_g" description="_oD68EAQwEey-kNQ7esRa_g" routingStyle="manhattan" strokeColor="0,0,0">
<centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_R838RQcsEey-kNQ7esRa_g" showIcon="false">
<customFeatures>labelSize</customFeatures>
<labelFormat>bold</labelFormat>
</centerLabelStyle>
<endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_R838RAcsEey-kNQ7esRa_g" labelSize="6" showIcon="false" labelColor="39,76,114"/>
<endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_R838RAcsEey-kNQ7esRa_g" 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>
......
......@@ -78,10 +78,10 @@
defaultValueLiteral="0.0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Point"/>
<eClassifiers xsi:type="ecore:EClass" name="Rawdata" abstract="true">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="sensorId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eClassifiers xsi:type="ecore:EClass" name="RawdataEvent">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="timeStamp" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Proximity" eSuperTypes="#//Rawdata">
<eClassifiers xsi:type="ecore:EClass" name="Proximity" eSuperTypes="#//RawdataEvent">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="tagId" 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="scannerId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
......@@ -93,19 +93,23 @@
<eStructuralFeatures xsi:type="ecore:EAttribute" name="tagData" transient="true">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eTypeArguments eClassifier="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IMU" eSuperTypes="#//Rawdata">
<eClassifiers xsi:type="ecore:EClass" name="IMU" eSuperTypes="#//RawdataEvent">
<eStructuralFeatures xsi:type="ecore:EReference" name="angularrate" lowerBound="1"
eType="#//AngularRate"/>
eType="#//Quaternion"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="acceleration" lowerBound="1"
eType="#//Acceleration"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="sensorId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Acceleration">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Float"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Float"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="z" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Float"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AngularRate"/>
<eClassifiers xsi:type="ecore:EClass" name="Acceleration"/>
<eClassifiers xsi:type="ecore:EClass" name="Beacon" eSuperTypes="#//Rawdata">
<eClassifiers xsi:type="ecore:EClass" name="Beacon" eSuperTypes="#//RawdataEvent">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="distances" transient="true">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
......@@ -113,6 +117,7 @@
</eGenericType>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="type" 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/2003/XMLType#//String"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PositionEvent">
<eStructuralFeatures xsi:type="ecore:EReference" name="placing" lowerBound="1"
......@@ -121,10 +126,6 @@
transient="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="lObjectId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RawdataEvent">
<eStructuralFeatures xsi:type="ecore:EReference" name="rawdata" lowerBound="1"
upperBound="-1" eType="#//Rawdata"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TrackingRequest"/>
<eClassifiers xsi:type="ecore:EClass" name="MonitoringRequest">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="frameId" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
......@@ -184,7 +185,7 @@
<eStructuralFeatures xsi:type="ecore:EAttribute" name="data" transient="true">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eTypeArguments eClassifier="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eStructuralFeatures>
</eClassifiers>
......@@ -192,7 +193,7 @@
<eStructuralFeatures xsi:type="ecore:EAttribute" name="rss" transient="true">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//IntObject"/>
</eGenericType>
</eStructuralFeatures>
</eClassifiers>
......@@ -202,13 +203,13 @@
<eStructuralFeatures xsi:type="ecore:EAttribute" name="data" transient="true">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eTypeArguments eClassifier="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
<eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eGenericType>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="POI">
<eStructuralFeatures xsi:type="ecore:EReference" name="position" lowerBound="1"
eType="#//Position"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="placing" lowerBound="1"
eType="#//Placing"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="data" transient="true">
<eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
......
......@@ -83,8 +83,8 @@
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Gaussian/confidenceInterval"/>
</genClasses>
<genClasses ecoreClass="iPos_Datamodel.ecore#//Point"/>
<genClasses ecoreClass="iPos_Datamodel.ecore#//Rawdata">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Rawdata/sensorId"/>
<genClasses ecoreClass="iPos_Datamodel.ecore#//RawdataEvent">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//RawdataEvent/timeStamp"/>
</genClasses>
<genClasses ecoreClass="iPos_Datamodel.ecore#//Proximity">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Proximity/tagId"/>
......@@ -100,21 +100,23 @@
<genClasses ecoreClass="iPos_Datamodel.ecore#//IMU">
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//IMU/angularrate"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//IMU/acceleration"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//IMU/sensorId"/>
</genClasses>
<genClasses ecoreClass="iPos_Datamodel.ecore#//Acceleration">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Acceleration/x"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Acceleration/y"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Acceleration/z"/>
</genClasses>
<genClasses ecoreClass="iPos_Datamodel.ecore#//AngularRate"/>
<genClasses ecoreClass="iPos_Datamodel.ecore#//Acceleration"/>
<genClasses ecoreClass="iPos_Datamodel.ecore#//Beacon">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Beacon/distances"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Beacon/type"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//Beacon/sensorId"/>
</genClasses>
<genClasses ecoreClass="iPos_Datamodel.ecore#//PositionEvent">
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//PositionEvent/placing"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//PositionEvent/timeStamp"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//PositionEvent/lObjectId"/>
</genClasses>
<genClasses ecoreClass="iPos_Datamodel.ecore#//RawdataEvent">
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//RawdataEvent/rawdata"/>
</genClasses>
<genClasses ecoreClass="iPos_Datamodel.ecore#//TrackingRequest"/>
<genClasses ecoreClass="iPos_Datamodel.ecore#//MonitoringRequest">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//MonitoringRequest/frameId"/>
......@@ -164,7 +166,7 @@
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//OtherBeacon/data"/>
</genClasses>
<genClasses ecoreClass="iPos_Datamodel.ecore#//POI">
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//POI/position"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//POI/placing"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//POI/description"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//POI/data"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//POI/id"/>
......
{"frames": [{"id": "cobot1_door_zone", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 2.0,"y": 0.0,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 4.0, "y": 4.0, "z":6.0}]}, {"id": "cobot1_window_zone", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 2.0,"y": 4.0,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 2.0, "y": 2.0, "z":6.0}]} ]}
{"frames": [{"id": "cobot1_door_zone", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 2.0,"y": 0.0,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 4.0, "y": 4.0, "z":6.0}]}, {"id": "cobot1_window_zone", "space": [{"position": {"refSystemId": "ROOT", "point": {"x": 2.0,"y": 4.0,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "x": 4.0, "y": 4.0, "z":6.0}]} ]}
{"refSystems": [{"id": "ROOT"}, {"id": "CETI_ROOT", "position": {"refSystemId": "ROOT", "point": {"x": 3.05,"y": 2.08,"z": 0.0}, "accuracy": 1.0}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0}}]}
{"objectConfigs": [{"agentId": "Employee1", "sensorId": "UWB_1", "agentType": "HUMAN", "sensorType": "UWB"}, {"agentId": "Employee2", "sensorId": "UWB_2", "agentType": "HUMAN", "sensorType": "UWB"}]}
{"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} }, {"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} } ]}
{"objectConfigs": [{"agentId": "Employee1", "sensorId": "UWB_1", "agentType": "HUMAN", "sensorType": "UWB"}, {"agentId": "Employee2", "sensorId": "UWB_2", "agentType": "HUMAN", "sensorType": "UWB"}, {"agentId": "Turtlebot", "sensorId": "98:CD:AC:26:2D:18", "agentType": "ROBOT", "sensorType": "RFID_SCANNER"}]}
{"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": 1.0}, "orientation": {"x": 0.0,"y": 0.0,"z": 0.0, "w": 0.0} }]}
{"monitoringRequests": [{"frameId": "cobot1_door_zone", "monitoringTaskId": "Human_at_Door_Side"}, {"frameId": "cobot1_window_zone", "monitoringTaskId": "Human_at_Window_Side"}]}
\ No newline at end of file
......@@ -34,7 +34,7 @@ public class SimpleSceneIntegration {
public static void init(String path_to_init_data_file){
Administration.initialize(); // clears WorldModel
File initFile = new File("./init_Industrierobotik.txt");
File initFile = new File(path_to_init_data_file);
try {
for (String line : readLines(initFile)) {
SimpleScene.IposConfigWrapper iposConfigWrapper = ProtoJsonMap.fromJson(line, SimpleScene.IposConfigWrapper.class);
......@@ -87,12 +87,12 @@ public class SimpleSceneIntegration {
MqttMessage mqttMessage = mqttService.createMqttMsg(posEvent_proto, 0, false);
// publishes protobuf over MQTT
// mqttService.publish(monitoringTaskId, mqttMessage);
// LOG.info("publishing protobuf mqttMessage. JSON-representation:" + ProtoJsonMap.toJson(posEvent_proto) + " on topic: " + monitoringTaskId);
mqttService.publish(monitoringTaskId, mqttMessage);
LOG.info("publishing protobuf mqttMessage. JSON-representation:" + ProtoJsonMap.toJson(posEvent_proto) + " on topic: " + monitoringTaskId);
// publishes JSON over MQTT
mqttService.publish(monitoringTaskId, ProtoJsonMap.toJson(posEvent_proto), 0, false);
LOG.info("publishing JSON mqttMessage:" + ProtoJsonMap.toJson(posEvent_proto) + " on topic: " + monitoringTaskId);
// mqttService.publish(monitoringTaskId, ProtoJsonMap.toJson(posEvent_proto), 0, false);
// LOG.info("publishing JSON mqttMessage:" + ProtoJsonMap.toJson(posEvent_proto) + " on topic: " + monitoringTaskId);
}else{
LOG.warn("Warning: SimpleScene: Received empty PositionEvent");
......
......@@ -185,7 +185,7 @@ public class SimpleSceneTransformer {
poi.setId(poi_proto.getId());
poi.setDescription(poi_proto.getDescription());
poi.setData(poi_proto.getDataMap());
poi.setPosition(position_SScene2Internal(poi_proto.getPosition()));
poi.setPlacing(placing_SScene2Internal(poi_proto.getPosition(), poi_proto.getOrientation()));
return poi;
}
}
......@@ -62,6 +62,8 @@ public class DataServices {
for (Agent agent_loaded : wma.getAllAgents()){
if (agent_loaded.getId().equals(agent_input.getId())){
Agent agent_merged = mergeAgents(agent_loaded, agent_input);
// TODO: careful: What about those LObjects that point on the currently existing agent-object?
wma.removeAgent(agent_loaded.getId());
wma.addAgent(agent_merged);
}
......@@ -118,9 +120,9 @@ public class DataServices {
wma.addPoi(poi_input);
}
public static POI createPOI(Position position, String description, Map<String, String> data){
public static POI createPOI(Placing placing, String description, Map<String, String> data){
POI poi = modelFactory.createPOI();
poi.setPosition(position);
poi.setPlacing(placing);
poi.setDescription(description);
poi.setData(data);
return poi;
......@@ -202,4 +204,13 @@ public class DataServices {
quaternion.setW(w);
return quaternion;
}
public static POI getPoiByIdOrNull(String poiId) {
for (POI poi : wma.getAllPois()){
if(poi.getId().equals(poiId)){
return poi;
}
}
return null;
}
}
package ipos.project.Functionality;
import ipos.project.DataModellntegration.iPos_Datamodel.*;
import org.apache.logging.log4j.LogManager;
public class PositionCalculation {
private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
private static IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE;
public static PositionEvent calcPositionFromNfcOrNull(NFC nfcRawDataEvent) {
if (isMobileScanner(nfcRawDataEvent)){
return createPosEvent(nfcRawDataEvent.getScannerId(), nfcRawDataEvent.getTagId(), nfcRawDataEvent.getTimeStamp());
}
if(isMobileTag(nfcRawDataEvent)){
return createPosEvent(nfcRawDataEvent.getTagId(), nfcRawDataEvent.getScannerId(), nfcRawDataEvent.getTimeStamp());
}
LOG.warn("NFC-RawdataEvent could not be processed, as the provided scanner " +
"and/or tag-id could not be associated to an registered object and/or " +
"an registered poi");
return null;
}
private static PositionEvent createPosEvent(String lObjectId, String poiId, String timeStamp) {
PositionEvent positionEvent = modelFactory.createPositionEvent();
positionEvent.setLObjectId(lObjectId);
positionEvent.setTimeStamp(timeStamp);
positionEvent.setPlacing(DataServices.getPoiByIdOrNull(poiId).getPlacing());
return positionEvent;
}
private static boolean isMobileScanner(NFC nfcRawDataEvent) {
Boolean scannerIsMobile = DataServices.getLObjectByIdOrNull(nfcRawDataEvent.getScannerId()) != null;
Boolean tagIsFixed = DataServices.getPoiByIdOrNull(nfcRawDataEvent.getTagId()) != null;
return scannerIsMobile && tagIsFixed;
}
private static boolean isMobileTag(NFC nfcRawDataEvent) {
Boolean tagIsMobile = DataServices.getLObjectByIdOrNull(nfcRawDataEvent.getTagId()) != null;
Boolean scannerIsFixed = DataServices.getPoiByIdOrNull(nfcRawDataEvent.getScannerId()) != null;
return tagIsMobile && scannerIsFixed;
}
}
......@@ -2,6 +2,7 @@ package ipos.project;
import ipos.project.DataModellntegration.SimpleSceneIntegration.SimpleSceneIntegration;
import ipos.project.Functionality.eventfilter.TestEventFilter;
import ipos.project.SensorValueIntegration.GenericSensorValueProcessor;
import ipos.project.UseCaseController.Administration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
......@@ -17,11 +18,13 @@ import java.text.ParseException;
public class MainApp {
public static final String INDUSTRIEROBOTIK_FILE = "./init_Industrierobotik.txt";
public static final String SENSORDATENFUSION_FILE = "./init_Sensordatenfusion.txt";
public static final String TESTRAWDATA_FILE = "./testdata_raw.txt";
public static void main(String[] args) throws ParseException {
SpringApplication.run(MainApp.class, args);
// SimpleSceneIntegration.init();
SimpleSceneIntegration.init(INDUSTRIEROBOTIK_FILE);
//SimpleSceneIntegration.init(SENSORDATENFUSION_FILE);
GenericSensorValueProcessor.processTestData(TESTRAWDATA_FILE);
}
}
package ipos.project.SensorValueIntegration;
import com.google.protobuf.InvalidProtocolBufferException;
import ipos.models.GenericSensor;
import ipos.models.SimpleScene;
import ipos.models.SimpleScene.IposPosition;
import ipos.project.DataModellntegration.SimpleSceneIntegration.api.MqttRequestHandler;
import ipos.project.DataModellntegration.SimpleSceneIntegration.service.impl.ExternalPubServiceImpl;
import ipos.project.SensorValueIntegration.api.MqttPositionHandler;
import ipos.project.UseCaseController.Administration;
import ipos.project.mapper.ProtoJsonMap;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@Component
public class GenericSensorValueProcessor {
private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
......@@ -24,4 +37,31 @@ public class GenericSensorValueProcessor {
this.mqttService.publish("test51/subscribe/positions", jsonPos, 0, false);
}
}
public static void processTestData(String path_to_test_data_file){
File testDataFile = new File(path_to_test_data_file);
try {
for (String line : readLines(testDataFile)) {
GenericSensor.SensorEventWrapper sensorEventWrapper = ProtoJsonMap.fromJson(line, GenericSensor.SensorEventWrapper.class);
MqttPositionHandler.handleSensorEventWrapper(sensorEventWrapper);
}
}catch (InvalidProtocolBufferException e) {
LOG.error("Error trying to read JSON into protobuf-objects: ");
e.printStackTrace();
}
}
private static List<String> readLines(File initFile) {
List<String> lines = new ArrayList<>();
try(BufferedReader br = new BufferedReader(new FileReader(initFile))) { // br is automatically closed at the end of try-scope
for (String line; (line = br.readLine()) != null; ){
lines.add(line);
}
} catch (IOException e) {
LOG.error("Error while reading the text file: ");
e.printStackTrace();
}
return lines;
}
}
......@@ -4,9 +4,12 @@ import com.google.protobuf.ProtocolStringList;
import ipos.models.GenericSensor;
import ipos.models.SimpleScene;
import ipos.project.DataModellntegration.iPos_Datamodel.*;
import org.eclipse.emf.ecore.EObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class GenericSensorTransformer {
......@@ -93,6 +96,25 @@ public class GenericSensorTransformer {
return quaternion;
}
public static NFC nfc_GSensor2Internal(GenericSensor.NFCRawDataEvent proto_nfcRawdataEvent) {
NFC internal_nfcRawdataEvent = modelFactory.createNFC();
internal_nfcRawdataEvent.setTimeStamp(proto_nfcRawdataEvent.getTimestamp());
internal_nfcRawdataEvent.setTagId(proto_nfcRawdataEvent.getTagId());
internal_nfcRawdataEvent.setScannerId(proto_nfcRawdataEvent.getScannerId());
internal_nfcRawdataEvent.setType(proto_nfcRawdataEvent.getType());
internal_nfcRawdataEvent.setTagData(convertToStringToObjectMap(proto_nfcRawdataEvent.getTagDataMap()));
return internal_nfcRawdataEvent;
}
private static Map<String, Object> convertToStringToObjectMap(Map<String, String> inputMap) {
Map<String,Object> outputMap =new HashMap<String,Object>();
for (Map.Entry<String, String> entry : inputMap.entrySet()) {
if(entry.getValue() != null){
outputMap.put(entry.getKey(), (Object) entry.getValue());
}
}
return outputMap;
}
}
package ipos.project.SensorValueIntegration.api;
import com.google.protobuf.InvalidProtocolBufferException;
import ipos.models.GenericSensor;
import ipos.models.GenericSensor.SensorPositionEvent;
import ipos.models.SimpleScene;
import ipos.models.SimpleScene.IposPosition;
import ipos.models.GenericSensor.SensorEventWrapper;
import ipos.project.DataModellntegration.SimpleSceneIntegration.service.impl.ExternalPubServiceImpl;
import ipos.project.DataModellntegration.iPos_Datamodel.NFC;
import ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent;
import ipos.project.SensorValueIntegration.Service.GenericSensorTransformer;
import ipos.project.UseCaseController.PositionMonitoring;
......@@ -16,9 +19,11 @@ import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import java.util.List;
// subscribe to the topic
@MqttListener("usertopic/SensorPositionEvent")
@MqttListener("usertopic/SensorEventWrapper")
public class MqttPositionHandler implements Handler {
private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
......@@ -35,18 +40,42 @@ public class MqttPositionHandler implements Handler {
// method that handle new message from the topic
public void handle(MqttMessage message) {
try {
SensorPositionEvent protoSensPosEvent = ProtoJsonMap.fromJson(message.toString(), SensorPositionEvent.class);
//IposPosition pos = IposPosition.parseFrom(message.toString().getBytes());
assert protoSensPosEvent != null;
PositionEvent positionEvent = GenericSensorTransformer.posEvent_GSensor2Internal(protoSensPosEvent);
SensorEventWrapper protoSensEventWrapper = ProtoJsonMap.fromJson(message.toString(), GenericSensor.SensorEventWrapper.class);
handleSensorEventWrapper(protoSensEventWrapper);
} catch (InvalidProtocolBufferException e) {
LOG.error("Invalid mqtt message:", e);
}
}
public static void handleSensorEventWrapper(GenericSensor.SensorEventWrapper iposSensorEventWrapper) {
LOG.info("IposSensorEventWrapper received: \n"
+ iposSensorEventWrapper.toString());
// Annahme: iposSensorEventWrapper enthält für leere Felder leere Listen und nicht null
processPositionEvents(iposSensorEventWrapper.getSensorPositionEventList());
processNFCRawdataEvents(iposSensorEventWrapper.getNfcRawDataEventList());
// this.jmsTemplate.convertAndSend("/request123", monReqInternal); // submit request to the internal broker
}
private static void processNFCRawdataEvents(List<GenericSensor.NFCRawDataEvent> nfcRawDataEventList) {
for (GenericSensor.NFCRawDataEvent proto_nfcRawdataEvent : nfcRawDataEventList){
NFC internal_nfcRawDataEvent = GenericSensorTransformer.nfc_GSensor2Internal(proto_nfcRawdataEvent);
PositionMonitoring.receiveMessage(internal_nfcRawDataEvent);
}
}
private static void processPositionEvents(List<SensorPositionEvent> sensorPositionEventList) {
// assert sensorPositionEventList != null;
for (GenericSensor.SensorPositionEvent proto_sensPosEvent : sensorPositionEventList){
PositionEvent positionEvent = GenericSensorTransformer.posEvent_GSensor2Internal(proto_sensPosEvent);
LOG.info("SensorValueIntegration: Transformed Protobuf-SensorPositionEvent into Internal-PositionEvent: " + positionEvent.toString() + ", " + positionEvent.getPlacing().getPosition().getPoint().toString() + ", " + positionEvent.getPlacing().getOrientation().toString());
// ggf. anstatt JMS einfach den PositionMonitoringController per Funktionsaufruf aufrufen
// vorübergehend: anstatt JMS einfach den PositionMonitoringController per Funktionsaufruf aufrufen
PositionMonitoring.receiveMessage(positionEvent);
// this.jmsTemplate.convertAndSend("/PositionEvent", protoSensPosEvent); // submit position to the internal broker
//TODO: fix message converter for the internal broker
} catch (InvalidProtocolBufferException e) {
LOG.error("Invalid mqtt message:", e);
}
}
}
......@@ -3,6 +3,7 @@ package ipos.project.UseCaseController;
import ipos.project.DataModellntegration.SimpleSceneIntegration.SimpleSceneIntegration;
import ipos.project.DataModellntegration.iPos_Datamodel.*;
import ipos.project.Functionality.DataServices;
import ipos.project.Functionality.PositionCalculation;
import ipos.project.Functionality.eventfilter.eventFilter;
import ipos.project.Functionality.eventfilter.readConfig;
import org.apache.logging.log4j.LogManager;
......@@ -21,7 +22,7 @@ public class PositionMonitoring {
private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
private static List<eventFilter> eventFilters = new ArrayList<eventFilter>();
private static Map<String, List<String>> zonePopulation = new HashMap<String, List<String>>();
private static Map<String, List<String>> zonePopulation = new HashMap<String, List<String>>(); // maps zone-ids to list of ids of those lObjects that are currently located within that zone.
private static IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE;
public static final String EXIT_NOTIFICATION_TYPE = "ExitNotification";
......@@ -34,6 +35,23 @@ public class PositionMonitoring {
public PositionMonitoring(){}
public static void receiveMessage(NFC nfcRawDataEvent) {
PositionEvent positionEvent = PositionCalculation.calcPositionFromNfcOrNull(nfcRawDataEvent);
if (positionEvent != null) {
updateLocalizableObject(positionEvent);
receiveMessage(positionEvent);
}
}
private static void updateLocalizableObject(PositionEvent positionEvent) {
LocalizableObject lObject = DataServices.getLObjectByIdOrNull(positionEvent.getLObjectId());
// TODO: caution: all changes to the data model should be performed using DataServices.
// Directly changing this object just works for the current simple case that we only have the object-representation of the world model
// in general it has to be made sure that both, all links from this object and to this object keep intact
lObject.setCurrentPlacing(positionEvent.getPlacing());
}
private MonitoringRequest createMonitoringRequest(String frameId, String monitoringTaskId) {
MonitoringRequest monReq = modelFactory.createMonitoringRequest();
monReq.setFrameId(frameId);
......
{"nfcRawDataEvent" : [ {"timestamp" : "2021-09-14T10:51:20+00:00", "tagId": "83221710", "type": "RFID", "scannerId": "98:CD:AC:26:2D:18"} ] }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment