diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitPackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitPackageImpl.java
index 457676a868e78f4cd8a07817a6583172b7aedf18..df27f615cca95648ae5c9ea7e51a49d98cea41a3 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitPackageImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPosDevKit/impl/IPosDevKitPackageImpl.java
@@ -31,6 +31,8 @@ import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
 
 import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl;
 
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl;
 import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage;
 import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl;
 import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
@@ -264,6 +266,9 @@ public class IPosDevKitPackageImpl extends EPackageImpl implements IPosDevKitPac
 		VDA5050PackageImpl theVDA5050Package = (VDA5050PackageImpl) (registeredPackage instanceof VDA5050PackageImpl
 				? registeredPackage
 				: VDA5050Package.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OSMPackage.eNS_URI);
+		OSMPackageImpl theOSMPackage = (OSMPackageImpl) (registeredPackage instanceof OSMPackageImpl ? registeredPackage
+				: OSMPackage.eINSTANCE);
 
 		// Create package meta-data objects
 		theIPosDevKitPackage.createPackageContents();
@@ -271,6 +276,7 @@ public class IPosDevKitPackageImpl extends EPackageImpl implements IPosDevKitPac
 		theOFBizPackage.createPackageContents();
 		theToozPackage.createPackageContents();
 		theVDA5050Package.createPackageContents();
+		theOSMPackage.createPackageContents();
 
 		// Initialize created meta-data
 		theIPosDevKitPackage.initializePackageContents();
@@ -278,6 +284,7 @@ public class IPosDevKitPackageImpl extends EPackageImpl implements IPosDevKitPac
 		theOFBizPackage.initializePackageContents();
 		theToozPackage.initializePackageContents();
 		theVDA5050Package.initializePackageContents();
+		theOSMPackage.initializePackageContents();
 
 		// Mark meta-data to indicate it can't be changed
 		theIPosDevKitPackage.freeze();
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelPackage.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelPackage.java
index 6610f029e1b7eb1982b634291ae94460bd8230e1..e25b6fcdada8adc5dcf7452101c0c58ac01a091c 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelPackage.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/IPos_DatamodelPackage.java
@@ -2368,6 +2368,15 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	int LIST_OF_STRING_MAPS = 46;
 
+	/**
+	 * The meta object id for the '<em>Int Array</em>' data type.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getIntArray()
+	 * @generated
+	 */
+	int INT_ARRAY = 47;
+
 	/**
 	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.Agent <em>Agent</em>}'.
 	 * <!-- begin-user-doc -->
@@ -3852,6 +3861,16 @@ public interface IPos_DatamodelPackage extends EPackage {
 	 */
 	EDataType getListOfStringMaps();
 
+	/**
+	 * Returns the meta object for data type '<em>Int Array</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>Int Array</em>'.
+	 * @model instanceClass="int[]"
+	 * @generated
+	 */
+	EDataType getIntArray();
+
 	/**
 	 * Returns the factory that creates the instances of the model.
 	 * <!-- begin-user-doc -->
@@ -5083,6 +5102,15 @@ public interface IPos_DatamodelPackage extends EPackage {
 		 */
 		EDataType LIST_OF_STRING_MAPS = eINSTANCE.getListOfStringMaps();
 
+		/**
+		 * The meta object literal for the '<em>Int Array</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl#getIntArray()
+		 * @generated
+		 */
+		EDataType INT_ARRAY = eINSTANCE.getIntArray();
+
 	}
 
 } //IPos_DatamodelPackage
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/OFBizPackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/OFBizPackageImpl.java
index 09b30892462c6e36526c90cca0dc85f3877cdc24..ab4a32c33d916d8919959949a8b9a21c9cbc4650 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/OFBizPackageImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OFBiz/impl/OFBizPackageImpl.java
@@ -16,6 +16,8 @@ import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistBin;
 import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistItem;
 import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.PicklistRole;
 
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl;
 import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage;
 import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl;
 import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
@@ -143,6 +145,9 @@ public class OFBizPackageImpl extends EPackageImpl implements OFBizPackage {
 		VDA5050PackageImpl theVDA5050Package = (VDA5050PackageImpl) (registeredPackage instanceof VDA5050PackageImpl
 				? registeredPackage
 				: VDA5050Package.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OSMPackage.eNS_URI);
+		OSMPackageImpl theOSMPackage = (OSMPackageImpl) (registeredPackage instanceof OSMPackageImpl ? registeredPackage
+				: OSMPackage.eINSTANCE);
 
 		// Create package meta-data objects
 		theOFBizPackage.createPackageContents();
@@ -150,6 +155,7 @@ public class OFBizPackageImpl extends EPackageImpl implements OFBizPackage {
 		theIPosDevKitPackage.createPackageContents();
 		theToozPackage.createPackageContents();
 		theVDA5050Package.createPackageContents();
+		theOSMPackage.createPackageContents();
 
 		// Initialize created meta-data
 		theOFBizPackage.initializePackageContents();
@@ -157,6 +163,7 @@ public class OFBizPackageImpl extends EPackageImpl implements OFBizPackage {
 		theIPosDevKitPackage.initializePackageContents();
 		theToozPackage.initializePackageContents();
 		theVDA5050Package.initializePackageContents();
+		theOSMPackage.initializePackageContents();
 
 		// Mark meta-data to indicate it can't be changed
 		theOFBizPackage.freeze();
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
new file mode 100644
index 0000000000000000000000000000000000000000..9c42cb0c6fd35ed9004866f50e09201c7df27412
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMExtractedAttributes.java
@@ -0,0 +1,92 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Extracted Attributes</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <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>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMExtractedAttributes()
+ * @model
+ * @generated
+ */
+public interface OSMExtractedAttributes extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Battery Charge Level</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Battery Charge Level</em>' attribute.
+	 * @see #setBatteryChargeLevel(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMExtractedAttributes_BatteryChargeLevel()
+	 * @model
+	 * @generated
+	 */
+	float getBatteryChargeLevel();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getBatteryChargeLevel <em>Battery Charge Level</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Battery Charge Level</em>' attribute.
+	 * @see #getBatteryChargeLevel()
+	 * @generated
+	 */
+	void setBatteryChargeLevel(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Loaded Items</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Loaded Items</em>' attribute.
+	 * @see #setLoadedItems(int[])
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMExtractedAttributes_LoadedItems()
+	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.IntArray"
+	 * @generated
+	 */
+	int[] getLoadedItems();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getLoadedItems <em>Loaded Items</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Loaded Items</em>' attribute.
+	 * @see #getLoadedItems()
+	 * @generated
+	 */
+	void setLoadedItems(int[] value);
+
+	/**
+	 * Returns the value of the '<em><b>Errors</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Errors</em>' attribute.
+	 * @see #setErrors(int[])
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMExtractedAttributes_Errors()
+	 * @model dataType="ipos.project.DataModellntegration.iPos_Datamodel.IntArray"
+	 * @generated
+	 */
+	int[] getErrors();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getErrors <em>Errors</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Errors</em>' attribute.
+	 * @see #getErrors()
+	 * @generated
+	 */
+	void setErrors(int[] value);
+
+} // OSMExtractedAttributes
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..3f8c7c97e3d6f90931e9cd356ef413a82056290b
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMFactory.java
@@ -0,0 +1,96 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage
+ * @generated
+ */
+public interface OSMFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	OSMFactory eINSTANCE = ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Object</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Object</em>'.
+	 * @generated
+	 */
+	OSMObject createOSMObject();
+
+	/**
+	 * Returns a new object of class '<em>Position</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Position</em>'.
+	 * @generated
+	 */
+	OSMPosition createOSMPosition();
+
+	/**
+	 * Returns a new object of class '<em>Point</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Point</em>'.
+	 * @generated
+	 */
+	OSMPoint createOSMPoint();
+
+	/**
+	 * Returns a new object of class '<em>Orientation</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Orientation</em>'.
+	 * @generated
+	 */
+	OSMOrientation createOSMOrientation();
+
+	/**
+	 * Returns a new object of class '<em>Extracted Attributes</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Extracted Attributes</em>'.
+	 * @generated
+	 */
+	OSMExtractedAttributes createOSMExtractedAttributes();
+
+	/**
+	 * Returns a new object of class '<em>Zone Descriptor</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Zone Descriptor</em>'.
+	 * @generated
+	 */
+	OSMZoneDescriptor createOSMZoneDescriptor();
+
+	/**
+	 * Returns a new object of class '<em>Monitoring Target</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Monitoring Target</em>'.
+	 * @generated
+	 */
+	OSMMonitoringTarget createOSMMonitoringTarget();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	OSMPackage getOSMPackage();
+
+} //OSMFactory
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMMonitoringTarget.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMMonitoringTarget.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a15f73ef9fe1b79944dcf2fe5d0bf0d7addfaa6
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMMonitoringTarget.java
@@ -0,0 +1,69 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Monitoring Target</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getMonitoringTaskId <em>Monitoring Task Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getProtocol <em>Protocol</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMMonitoringTarget()
+ * @model
+ * @generated
+ */
+public interface OSMMonitoringTarget extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Monitoring Task Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Monitoring Task Id</em>' attribute.
+	 * @see #setMonitoringTaskId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMMonitoringTarget_MonitoringTaskId()
+	 * @model
+	 * @generated
+	 */
+	String getMonitoringTaskId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getMonitoringTaskId <em>Monitoring Task Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Monitoring Task Id</em>' attribute.
+	 * @see #getMonitoringTaskId()
+	 * @generated
+	 */
+	void setMonitoringTaskId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Protocol</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Protocol</em>' attribute.
+	 * @see #setProtocol(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMMonitoringTarget_Protocol()
+	 * @model
+	 * @generated
+	 */
+	String getProtocol();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getProtocol <em>Protocol</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Protocol</em>' attribute.
+	 * @see #getProtocol()
+	 * @generated
+	 */
+	void setProtocol(String value);
+
+} // OSMMonitoringTarget
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
new file mode 100644
index 0000000000000000000000000000000000000000..9d4dfbceee5cd602bb8eeb79aadd210593c5e348
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMObject.java
@@ -0,0 +1,222 @@
+/**
+ */
+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/OSMOrientation.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMOrientation.java
new file mode 100644
index 0000000000000000000000000000000000000000..e47fb1230aefafc10746c90f4e939516f9866332
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMOrientation.java
@@ -0,0 +1,115 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Orientation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getX <em>X</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getY <em>Y</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getZ <em>Z</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getW <em>W</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMOrientation()
+ * @model
+ * @generated
+ */
+public interface OSMOrientation extends EObject {
+	/**
+	 * Returns the value of the '<em><b>X</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>X</em>' attribute.
+	 * @see #setX(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMOrientation_X()
+	 * @model
+	 * @generated
+	 */
+	float getX();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getX <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>X</em>' attribute.
+	 * @see #getX()
+	 * @generated
+	 */
+	void setX(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Y</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Y</em>' attribute.
+	 * @see #setY(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMOrientation_Y()
+	 * @model
+	 * @generated
+	 */
+	float getY();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getY <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Y</em>' attribute.
+	 * @see #getY()
+	 * @generated
+	 */
+	void setY(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Z</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Z</em>' attribute.
+	 * @see #setZ(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMOrientation_Z()
+	 * @model
+	 * @generated
+	 */
+	float getZ();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getZ <em>Z</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Z</em>' attribute.
+	 * @see #getZ()
+	 * @generated
+	 */
+	void setZ(float value);
+
+	/**
+	 * Returns the value of the '<em><b>W</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>W</em>' attribute.
+	 * @see #setW(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMOrientation_W()
+	 * @model
+	 * @generated
+	 */
+	float getW();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getW <em>W</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>W</em>' attribute.
+	 * @see #getW()
+	 * @generated
+	 */
+	void setW(float value);
+
+} // OSMOrientation
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
new file mode 100644
index 0000000000000000000000000000000000000000..516b4bd16dac4dc5ad0d0a0980f02af34624fee6
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPackage.java
@@ -0,0 +1,1149 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each operation of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface OSMPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "OSM";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "osm";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "osm";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	OSMPackage eINSTANCE = ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl <em>Object</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMObject()
+	 * @generated
+	 */
+	int OSM_OBJECT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__SENSOR_ID = 1;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__TYPE = 2;
+
+	/**
+	 * The feature id for the '<em><b>Sensor Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__SENSOR_TYPE = 3;
+
+	/**
+	 * The feature id for the '<em><b>Osmposition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__OSMPOSITION = 4;
+
+	/**
+	 * The feature id for the '<em><b>Osmorientation</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__OSMORIENTATION = 5;
+
+	/**
+	 * The feature id for the '<em><b>Osmextractedattributes</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__OSMEXTRACTEDATTRIBUTES = 6;
+
+	/**
+	 * The feature id for the '<em><b>Last Pos Update</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__LAST_POS_UPDATE = 7;
+
+	/**
+	 * The feature id for the '<em><b>Osmzonedescriptor</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT__OSMZONEDESCRIPTOR = 8;
+
+	/**
+	 * The number of structural features of the '<em>Object</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT_FEATURE_COUNT = 9;
+
+	/**
+	 * The number of operations of the '<em>Object</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_OBJECT_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPositionImpl <em>Position</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPositionImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMPosition()
+	 * @generated
+	 */
+	int OSM_POSITION = 1;
+
+	/**
+	 * The feature id for the '<em><b>Ref System Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POSITION__REF_SYSTEM_ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Accuracy</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POSITION__ACCURACY = 1;
+
+	/**
+	 * The feature id for the '<em><b>Osmpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POSITION__OSMPOINT = 2;
+
+	/**
+	 * The number of structural features of the '<em>Position</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POSITION_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>Position</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POSITION_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPointImpl <em>Point</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPointImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMPoint()
+	 * @generated
+	 */
+	int OSM_POINT = 2;
+
+	/**
+	 * The feature id for the '<em><b>X</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POINT__X = 0;
+
+	/**
+	 * The feature id for the '<em><b>Y</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POINT__Y = 1;
+
+	/**
+	 * The feature id for the '<em><b>Z</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POINT__Z = 2;
+
+	/**
+	 * The number of structural features of the '<em>Point</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POINT_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>Point</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_POINT_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl <em>Orientation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMOrientation()
+	 * @generated
+	 */
+	int OSM_ORIENTATION = 3;
+
+	/**
+	 * The feature id for the '<em><b>X</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ORIENTATION__X = 0;
+
+	/**
+	 * The feature id for the '<em><b>Y</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ORIENTATION__Y = 1;
+
+	/**
+	 * The feature id for the '<em><b>Z</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ORIENTATION__Z = 2;
+
+	/**
+	 * The feature id for the '<em><b>W</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ORIENTATION__W = 3;
+
+	/**
+	 * The number of structural features of the '<em>Orientation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ORIENTATION_FEATURE_COUNT = 4;
+
+	/**
+	 * The number of operations of the '<em>Orientation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ORIENTATION_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl <em>Extracted Attributes</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMExtractedAttributes()
+	 * @generated
+	 */
+	int OSM_EXTRACTED_ATTRIBUTES = 4;
+
+	/**
+	 * The feature id for the '<em><b>Battery Charge Level</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL = 0;
+
+	/**
+	 * The feature id for the '<em><b>Loaded Items</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS = 1;
+
+	/**
+	 * The feature id for the '<em><b>Errors</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_EXTRACTED_ATTRIBUTES__ERRORS = 2;
+
+	/**
+	 * The number of structural features of the '<em>Extracted Attributes</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_EXTRACTED_ATTRIBUTES_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>Extracted Attributes</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_EXTRACTED_ATTRIBUTES_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMZoneDescriptorImpl <em>Zone Descriptor</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMZoneDescriptorImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMZoneDescriptor()
+	 * @generated
+	 */
+	int OSM_ZONE_DESCRIPTOR = 5;
+
+	/**
+	 * The feature id for the '<em><b>Zone Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ZONE_DESCRIPTOR__ZONE_ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Notification Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE = 1;
+
+	/**
+	 * The number of structural features of the '<em>Zone Descriptor</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ZONE_DESCRIPTOR_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Zone Descriptor</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_ZONE_DESCRIPTOR_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMMonitoringTargetImpl <em>Monitoring Target</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMMonitoringTargetImpl
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMMonitoringTarget()
+	 * @generated
+	 */
+	int OSM_MONITORING_TARGET = 6;
+
+	/**
+	 * The feature id for the '<em><b>Monitoring Task Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_MONITORING_TARGET__MONITORING_TASK_ID = 0;
+
+	/**
+	 * The feature id for the '<em><b>Protocol</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_MONITORING_TARGET__PROTOCOL = 1;
+
+	/**
+	 * The number of structural features of the '<em>Monitoring Target</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_MONITORING_TARGET_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Monitoring Target</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OSM_MONITORING_TARGET_OPERATION_COUNT = 0;
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject <em>Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Object</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject
+	 * @generated
+	 */
+	EClass getOSMObject();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getId <em>Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getId()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EAttribute getOSMObject_Id();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorId <em>Sensor Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sensor Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorId()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EAttribute getOSMObject_SensorId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getType()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EAttribute getOSMObject_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorType <em>Sensor Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sensor Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getSensorType()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EAttribute getOSMObject_SensorType();
+
+	/**
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmposition <em>Osmposition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Osmposition</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmposition()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EReference getOSMObject_Osmposition();
+
+	/**
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmorientation <em>Osmorientation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Osmorientation</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmorientation()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EReference getOSMObject_Osmorientation();
+
+	/**
+	 * Returns the meta object for the reference list '{@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>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmextractedattributes()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EReference getOSMObject_Osmextractedattributes();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getLastPosUpdate <em>Last Pos Update</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Last Pos Update</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getLastPosUpdate()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EAttribute getOSMObject_LastPosUpdate();
+
+	/**
+	 * Returns the meta object for the reference '{@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>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject#getOsmzonedescriptor()
+	 * @see #getOSMObject()
+	 * @generated
+	 */
+	EReference getOSMObject_Osmzonedescriptor();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition <em>Position</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Position</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition
+	 * @generated
+	 */
+	EClass getOSMPosition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getRefSystemId <em>Ref System Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Ref System Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getRefSystemId()
+	 * @see #getOSMPosition()
+	 * @generated
+	 */
+	EAttribute getOSMPosition_RefSystemId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getAccuracy <em>Accuracy</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Accuracy</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getAccuracy()
+	 * @see #getOSMPosition()
+	 * @generated
+	 */
+	EAttribute getOSMPosition_Accuracy();
+
+	/**
+	 * Returns the meta object for the reference '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getOsmpoint <em>Osmpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Osmpoint</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getOsmpoint()
+	 * @see #getOSMPosition()
+	 * @generated
+	 */
+	EReference getOSMPosition_Osmpoint();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint <em>Point</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Point</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint
+	 * @generated
+	 */
+	EClass getOSMPoint();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getX <em>X</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>X</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getX()
+	 * @see #getOSMPoint()
+	 * @generated
+	 */
+	EAttribute getOSMPoint_X();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getY <em>Y</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Y</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getY()
+	 * @see #getOSMPoint()
+	 * @generated
+	 */
+	EAttribute getOSMPoint_Y();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getZ <em>Z</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Z</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getZ()
+	 * @see #getOSMPoint()
+	 * @generated
+	 */
+	EAttribute getOSMPoint_Z();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation <em>Orientation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Orientation</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation
+	 * @generated
+	 */
+	EClass getOSMOrientation();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getX <em>X</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>X</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getX()
+	 * @see #getOSMOrientation()
+	 * @generated
+	 */
+	EAttribute getOSMOrientation_X();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getY <em>Y</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Y</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getY()
+	 * @see #getOSMOrientation()
+	 * @generated
+	 */
+	EAttribute getOSMOrientation_Y();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getZ <em>Z</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Z</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getZ()
+	 * @see #getOSMOrientation()
+	 * @generated
+	 */
+	EAttribute getOSMOrientation_Z();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getW <em>W</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>W</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation#getW()
+	 * @see #getOSMOrientation()
+	 * @generated
+	 */
+	EAttribute getOSMOrientation_W();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes <em>Extracted Attributes</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Extracted Attributes</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes
+	 * @generated
+	 */
+	EClass getOSMExtractedAttributes();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getBatteryChargeLevel <em>Battery Charge Level</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Battery Charge Level</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getBatteryChargeLevel()
+	 * @see #getOSMExtractedAttributes()
+	 * @generated
+	 */
+	EAttribute getOSMExtractedAttributes_BatteryChargeLevel();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getLoadedItems <em>Loaded Items</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Loaded Items</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getLoadedItems()
+	 * @see #getOSMExtractedAttributes()
+	 * @generated
+	 */
+	EAttribute getOSMExtractedAttributes_LoadedItems();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getErrors <em>Errors</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Errors</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes#getErrors()
+	 * @see #getOSMExtractedAttributes()
+	 * @generated
+	 */
+	EAttribute getOSMExtractedAttributes_Errors();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor <em>Zone Descriptor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Zone Descriptor</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor
+	 * @generated
+	 */
+	EClass getOSMZoneDescriptor();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getZoneId <em>Zone Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Zone Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getZoneId()
+	 * @see #getOSMZoneDescriptor()
+	 * @generated
+	 */
+	EAttribute getOSMZoneDescriptor_ZoneId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getNotificationType <em>Notification Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Notification Type</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getNotificationType()
+	 * @see #getOSMZoneDescriptor()
+	 * @generated
+	 */
+	EAttribute getOSMZoneDescriptor_NotificationType();
+
+	/**
+	 * Returns the meta object for class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget <em>Monitoring Target</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Monitoring Target</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget
+	 * @generated
+	 */
+	EClass getOSMMonitoringTarget();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getMonitoringTaskId <em>Monitoring Task Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Monitoring Task Id</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getMonitoringTaskId()
+	 * @see #getOSMMonitoringTarget()
+	 * @generated
+	 */
+	EAttribute getOSMMonitoringTarget_MonitoringTaskId();
+
+	/**
+	 * Returns the meta object for the attribute '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getProtocol <em>Protocol</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Protocol</em>'.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget#getProtocol()
+	 * @see #getOSMMonitoringTarget()
+	 * @generated
+	 */
+	EAttribute getOSMMonitoringTarget_Protocol();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	OSMFactory getOSMFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each operation of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl <em>Object</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMObject()
+		 * @generated
+		 */
+		EClass OSM_OBJECT = eINSTANCE.getOSMObject();
+
+		/**
+		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_OBJECT__ID = eINSTANCE.getOSMObject_Id();
+
+		/**
+		 * The meta object literal for the '<em><b>Sensor Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_OBJECT__SENSOR_ID = eINSTANCE.getOSMObject_SensorId();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_OBJECT__TYPE = eINSTANCE.getOSMObject_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Sensor Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_OBJECT__SENSOR_TYPE = eINSTANCE.getOSMObject_SensorType();
+
+		/**
+		 * The meta object literal for the '<em><b>Osmposition</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference OSM_OBJECT__OSMPOSITION = eINSTANCE.getOSMObject_Osmposition();
+
+		/**
+		 * The meta object literal for the '<em><b>Osmorientation</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference OSM_OBJECT__OSMORIENTATION = eINSTANCE.getOSMObject_Osmorientation();
+
+		/**
+		 * The meta object literal for the '<em><b>Osmextractedattributes</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference OSM_OBJECT__OSMEXTRACTEDATTRIBUTES = eINSTANCE.getOSMObject_Osmextractedattributes();
+
+		/**
+		 * The meta object literal for the '<em><b>Last Pos Update</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_OBJECT__LAST_POS_UPDATE = eINSTANCE.getOSMObject_LastPosUpdate();
+
+		/**
+		 * The meta object literal for the '<em><b>Osmzonedescriptor</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference OSM_OBJECT__OSMZONEDESCRIPTOR = eINSTANCE.getOSMObject_Osmzonedescriptor();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPositionImpl <em>Position</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPositionImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMPosition()
+		 * @generated
+		 */
+		EClass OSM_POSITION = eINSTANCE.getOSMPosition();
+
+		/**
+		 * The meta object literal for the '<em><b>Ref System Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_POSITION__REF_SYSTEM_ID = eINSTANCE.getOSMPosition_RefSystemId();
+
+		/**
+		 * The meta object literal for the '<em><b>Accuracy</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_POSITION__ACCURACY = eINSTANCE.getOSMPosition_Accuracy();
+
+		/**
+		 * The meta object literal for the '<em><b>Osmpoint</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference OSM_POSITION__OSMPOINT = eINSTANCE.getOSMPosition_Osmpoint();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPointImpl <em>Point</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPointImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMPoint()
+		 * @generated
+		 */
+		EClass OSM_POINT = eINSTANCE.getOSMPoint();
+
+		/**
+		 * The meta object literal for the '<em><b>X</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_POINT__X = eINSTANCE.getOSMPoint_X();
+
+		/**
+		 * The meta object literal for the '<em><b>Y</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_POINT__Y = eINSTANCE.getOSMPoint_Y();
+
+		/**
+		 * The meta object literal for the '<em><b>Z</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_POINT__Z = eINSTANCE.getOSMPoint_Z();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl <em>Orientation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMOrientation()
+		 * @generated
+		 */
+		EClass OSM_ORIENTATION = eINSTANCE.getOSMOrientation();
+
+		/**
+		 * The meta object literal for the '<em><b>X</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_ORIENTATION__X = eINSTANCE.getOSMOrientation_X();
+
+		/**
+		 * The meta object literal for the '<em><b>Y</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_ORIENTATION__Y = eINSTANCE.getOSMOrientation_Y();
+
+		/**
+		 * The meta object literal for the '<em><b>Z</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_ORIENTATION__Z = eINSTANCE.getOSMOrientation_Z();
+
+		/**
+		 * The meta object literal for the '<em><b>W</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_ORIENTATION__W = eINSTANCE.getOSMOrientation_W();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl <em>Extracted Attributes</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMExtractedAttributesImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMExtractedAttributes()
+		 * @generated
+		 */
+		EClass OSM_EXTRACTED_ATTRIBUTES = eINSTANCE.getOSMExtractedAttributes();
+
+		/**
+		 * The meta object literal for the '<em><b>Battery Charge Level</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL = eINSTANCE
+				.getOSMExtractedAttributes_BatteryChargeLevel();
+
+		/**
+		 * The meta object literal for the '<em><b>Loaded Items</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS = eINSTANCE.getOSMExtractedAttributes_LoadedItems();
+
+		/**
+		 * The meta object literal for the '<em><b>Errors</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_EXTRACTED_ATTRIBUTES__ERRORS = eINSTANCE.getOSMExtractedAttributes_Errors();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMZoneDescriptorImpl <em>Zone Descriptor</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMZoneDescriptorImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMZoneDescriptor()
+		 * @generated
+		 */
+		EClass OSM_ZONE_DESCRIPTOR = eINSTANCE.getOSMZoneDescriptor();
+
+		/**
+		 * The meta object literal for the '<em><b>Zone Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_ZONE_DESCRIPTOR__ZONE_ID = eINSTANCE.getOSMZoneDescriptor_ZoneId();
+
+		/**
+		 * The meta object literal for the '<em><b>Notification Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE = eINSTANCE.getOSMZoneDescriptor_NotificationType();
+
+		/**
+		 * The meta object literal for the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMMonitoringTargetImpl <em>Monitoring Target</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMMonitoringTargetImpl
+		 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl#getOSMMonitoringTarget()
+		 * @generated
+		 */
+		EClass OSM_MONITORING_TARGET = eINSTANCE.getOSMMonitoringTarget();
+
+		/**
+		 * The meta object literal for the '<em><b>Monitoring Task Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_MONITORING_TARGET__MONITORING_TASK_ID = eINSTANCE.getOSMMonitoringTarget_MonitoringTaskId();
+
+		/**
+		 * The meta object literal for the '<em><b>Protocol</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OSM_MONITORING_TARGET__PROTOCOL = eINSTANCE.getOSMMonitoringTarget_Protocol();
+
+	}
+
+} //OSMPackage
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPoint.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPoint.java
new file mode 100644
index 0000000000000000000000000000000000000000..6613f90cbbbe1c2c5840f70bd659744cd3257c70
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPoint.java
@@ -0,0 +1,92 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Point</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getX <em>X</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getY <em>Y</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getZ <em>Z</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPoint()
+ * @model
+ * @generated
+ */
+public interface OSMPoint extends EObject {
+	/**
+	 * Returns the value of the '<em><b>X</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>X</em>' attribute.
+	 * @see #setX(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPoint_X()
+	 * @model
+	 * @generated
+	 */
+	float getX();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getX <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>X</em>' attribute.
+	 * @see #getX()
+	 * @generated
+	 */
+	void setX(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Y</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Y</em>' attribute.
+	 * @see #setY(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPoint_Y()
+	 * @model
+	 * @generated
+	 */
+	float getY();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getY <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Y</em>' attribute.
+	 * @see #getY()
+	 * @generated
+	 */
+	void setY(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Z</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Z</em>' attribute.
+	 * @see #setZ(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPoint_Z()
+	 * @model
+	 * @generated
+	 */
+	float getZ();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint#getZ <em>Z</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Z</em>' attribute.
+	 * @see #getZ()
+	 * @generated
+	 */
+	void setZ(float value);
+
+} // OSMPoint
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPosition.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPosition.java
new file mode 100644
index 0000000000000000000000000000000000000000..44164cbdd3f572835b204de2f0669fa7bf98a289
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMPosition.java
@@ -0,0 +1,92 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Position</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getRefSystemId <em>Ref System Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getAccuracy <em>Accuracy</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getOsmpoint <em>Osmpoint</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPosition()
+ * @model
+ * @generated
+ */
+public interface OSMPosition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Ref System Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Ref System Id</em>' attribute.
+	 * @see #setRefSystemId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPosition_RefSystemId()
+	 * @model
+	 * @generated
+	 */
+	String getRefSystemId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getRefSystemId <em>Ref System Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Ref System Id</em>' attribute.
+	 * @see #getRefSystemId()
+	 * @generated
+	 */
+	void setRefSystemId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Accuracy</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Accuracy</em>' attribute.
+	 * @see #setAccuracy(float)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPosition_Accuracy()
+	 * @model
+	 * @generated
+	 */
+	float getAccuracy();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getAccuracy <em>Accuracy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Accuracy</em>' attribute.
+	 * @see #getAccuracy()
+	 * @generated
+	 */
+	void setAccuracy(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Osmpoint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Osmpoint</em>' reference.
+	 * @see #setOsmpoint(OSMPoint)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMPosition_Osmpoint()
+	 * @model
+	 * @generated
+	 */
+	OSMPoint getOsmpoint();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition#getOsmpoint <em>Osmpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Osmpoint</em>' reference.
+	 * @see #getOsmpoint()
+	 * @generated
+	 */
+	void setOsmpoint(OSMPoint value);
+
+} // OSMPosition
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMZoneDescriptor.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMZoneDescriptor.java
new file mode 100644
index 0000000000000000000000000000000000000000..0f210c3202db33debb45a857f78559e8eb4be12b
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/OSMZoneDescriptor.java
@@ -0,0 +1,69 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Zone Descriptor</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getZoneId <em>Zone Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getNotificationType <em>Notification Type</em>}</li>
+ * </ul>
+ *
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMZoneDescriptor()
+ * @model
+ * @generated
+ */
+public interface OSMZoneDescriptor extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Zone Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Zone Id</em>' attribute.
+	 * @see #setZoneId(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMZoneDescriptor_ZoneId()
+	 * @model
+	 * @generated
+	 */
+	String getZoneId();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getZoneId <em>Zone Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Zone Id</em>' attribute.
+	 * @see #getZoneId()
+	 * @generated
+	 */
+	void setZoneId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Notification Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Notification Type</em>' attribute.
+	 * @see #setNotificationType(String)
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#getOSMZoneDescriptor_NotificationType()
+	 * @model
+	 * @generated
+	 */
+	String getNotificationType();
+
+	/**
+	 * Sets the value of the '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor#getNotificationType <em>Notification Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Notification Type</em>' attribute.
+	 * @see #getNotificationType()
+	 * @generated
+	 */
+	void setNotificationType(String value);
+
+} // OSMZoneDescriptor
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
new file mode 100644
index 0000000000000000000000000000000000000000..8e64cf45a56aa425939e20fbc6298ba81f96492b
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMExtractedAttributesImpl.java
@@ -0,0 +1,276 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Extracted Attributes</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <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>
+ * </ul>
+ *
+ * @generated
+ */
+public class OSMExtractedAttributesImpl extends MinimalEObjectImpl.Container implements OSMExtractedAttributes {
+	/**
+	 * The default value of the '{@link #getBatteryChargeLevel() <em>Battery Charge Level</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBatteryChargeLevel()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float BATTERY_CHARGE_LEVEL_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getBatteryChargeLevel() <em>Battery Charge Level</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBatteryChargeLevel()
+	 * @generated
+	 * @ordered
+	 */
+	protected float batteryChargeLevel = BATTERY_CHARGE_LEVEL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLoadedItems() <em>Loaded Items</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLoadedItems()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int[] LOADED_ITEMS_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLoadedItems() <em>Loaded Items</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLoadedItems()
+	 * @generated
+	 * @ordered
+	 */
+	protected int[] loadedItems = LOADED_ITEMS_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getErrors() <em>Errors</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrors()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int[] ERRORS_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getErrors() <em>Errors</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getErrors()
+	 * @generated
+	 * @ordered
+	 */
+	protected int[] errors = ERRORS_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMExtractedAttributesImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OSMPackage.Literals.OSM_EXTRACTED_ATTRIBUTES;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getBatteryChargeLevel() {
+		return batteryChargeLevel;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBatteryChargeLevel(float newBatteryChargeLevel) {
+		float oldBatteryChargeLevel = batteryChargeLevel;
+		batteryChargeLevel = newBatteryChargeLevel;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					OSMPackage.OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL, oldBatteryChargeLevel,
+					batteryChargeLevel));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int[] getLoadedItems() {
+		return loadedItems;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLoadedItems(int[] newLoadedItems) {
+		int[] oldLoadedItems = loadedItems;
+		loadedItems = newLoadedItems;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS,
+					oldLoadedItems, loadedItems));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int[] getErrors() {
+		return errors;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setErrors(int[] newErrors) {
+		int[] oldErrors = errors;
+		errors = newErrors;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_EXTRACTED_ATTRIBUTES__ERRORS,
+					oldErrors, errors));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL:
+			return getBatteryChargeLevel();
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS:
+			return getLoadedItems();
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__ERRORS:
+			return getErrors();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL:
+			setBatteryChargeLevel((Float) newValue);
+			return;
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS:
+			setLoadedItems((int[]) newValue);
+			return;
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__ERRORS:
+			setErrors((int[]) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL:
+			setBatteryChargeLevel(BATTERY_CHARGE_LEVEL_EDEFAULT);
+			return;
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS:
+			setLoadedItems(LOADED_ITEMS_EDEFAULT);
+			return;
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__ERRORS:
+			setErrors(ERRORS_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL:
+			return batteryChargeLevel != BATTERY_CHARGE_LEVEL_EDEFAULT;
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS:
+			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);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (batteryChargeLevel: ");
+		result.append(batteryChargeLevel);
+		result.append(", loadedItems: ");
+		result.append(loadedItems);
+		result.append(", errors: ");
+		result.append(errors);
+		result.append(')');
+		return result.toString();
+	}
+
+} //OSMExtractedAttributesImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMFactoryImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMFactoryImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..e249f328fc4d57cd986a292660202d2518f94785
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMFactoryImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OSMFactoryImpl extends EFactoryImpl implements OSMFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static OSMFactory init() {
+		try {
+			OSMFactory theOSMFactory = (OSMFactory) EPackage.Registry.INSTANCE.getEFactory(OSMPackage.eNS_URI);
+			if (theOSMFactory != null) {
+				return theOSMFactory;
+			}
+		} catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new OSMFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case OSMPackage.OSM_OBJECT:
+			return createOSMObject();
+		case OSMPackage.OSM_POSITION:
+			return createOSMPosition();
+		case OSMPackage.OSM_POINT:
+			return createOSMPoint();
+		case OSMPackage.OSM_ORIENTATION:
+			return createOSMOrientation();
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES:
+			return createOSMExtractedAttributes();
+		case OSMPackage.OSM_ZONE_DESCRIPTOR:
+			return createOSMZoneDescriptor();
+		case OSMPackage.OSM_MONITORING_TARGET:
+			return createOSMMonitoringTarget();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMObject createOSMObject() {
+		OSMObjectImpl osmObject = new OSMObjectImpl();
+		return osmObject;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMPosition createOSMPosition() {
+		OSMPositionImpl osmPosition = new OSMPositionImpl();
+		return osmPosition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMPoint createOSMPoint() {
+		OSMPointImpl osmPoint = new OSMPointImpl();
+		return osmPoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMOrientation createOSMOrientation() {
+		OSMOrientationImpl osmOrientation = new OSMOrientationImpl();
+		return osmOrientation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMExtractedAttributes createOSMExtractedAttributes() {
+		OSMExtractedAttributesImpl osmExtractedAttributes = new OSMExtractedAttributesImpl();
+		return osmExtractedAttributes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMZoneDescriptor createOSMZoneDescriptor() {
+		OSMZoneDescriptorImpl osmZoneDescriptor = new OSMZoneDescriptorImpl();
+		return osmZoneDescriptor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMMonitoringTarget createOSMMonitoringTarget() {
+		OSMMonitoringTargetImpl osmMonitoringTarget = new OSMMonitoringTargetImpl();
+		return osmMonitoringTarget;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMPackage getOSMPackage() {
+		return (OSMPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static OSMPackage getPackage() {
+		return OSMPackage.eINSTANCE;
+	}
+
+} //OSMFactoryImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMMonitoringTargetImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMMonitoringTargetImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..6b102aa3730d3412c2cc08628010546d101039a1
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMMonitoringTargetImpl.java
@@ -0,0 +1,221 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Monitoring Target</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMMonitoringTargetImpl#getMonitoringTaskId <em>Monitoring Task Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMMonitoringTargetImpl#getProtocol <em>Protocol</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OSMMonitoringTargetImpl extends MinimalEObjectImpl.Container implements OSMMonitoringTarget {
+	/**
+	 * The default value of the '{@link #getMonitoringTaskId() <em>Monitoring Task Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMonitoringTaskId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String MONITORING_TASK_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getMonitoringTaskId() <em>Monitoring Task Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMonitoringTaskId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String monitoringTaskId = MONITORING_TASK_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getProtocol() <em>Protocol</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProtocol()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROTOCOL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getProtocol() <em>Protocol</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProtocol()
+	 * @generated
+	 * @ordered
+	 */
+	protected String protocol = PROTOCOL_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMMonitoringTargetImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OSMPackage.Literals.OSM_MONITORING_TARGET;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getMonitoringTaskId() {
+		return monitoringTaskId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMonitoringTaskId(String newMonitoringTaskId) {
+		String oldMonitoringTaskId = monitoringTaskId;
+		monitoringTaskId = newMonitoringTaskId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_MONITORING_TARGET__MONITORING_TASK_ID,
+					oldMonitoringTaskId, monitoringTaskId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getProtocol() {
+		return protocol;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setProtocol(String newProtocol) {
+		String oldProtocol = protocol;
+		protocol = newProtocol;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_MONITORING_TARGET__PROTOCOL,
+					oldProtocol, protocol));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OSMPackage.OSM_MONITORING_TARGET__MONITORING_TASK_ID:
+			return getMonitoringTaskId();
+		case OSMPackage.OSM_MONITORING_TARGET__PROTOCOL:
+			return getProtocol();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OSMPackage.OSM_MONITORING_TARGET__MONITORING_TASK_ID:
+			setMonitoringTaskId((String) newValue);
+			return;
+		case OSMPackage.OSM_MONITORING_TARGET__PROTOCOL:
+			setProtocol((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_MONITORING_TARGET__MONITORING_TASK_ID:
+			setMonitoringTaskId(MONITORING_TASK_ID_EDEFAULT);
+			return;
+		case OSMPackage.OSM_MONITORING_TARGET__PROTOCOL:
+			setProtocol(PROTOCOL_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_MONITORING_TARGET__MONITORING_TASK_ID:
+			return MONITORING_TASK_ID_EDEFAULT == null ? monitoringTaskId != null
+					: !MONITORING_TASK_ID_EDEFAULT.equals(monitoringTaskId);
+		case OSMPackage.OSM_MONITORING_TARGET__PROTOCOL:
+			return PROTOCOL_EDEFAULT == null ? protocol != null : !PROTOCOL_EDEFAULT.equals(protocol);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (monitoringTaskId: ");
+		result.append(monitoringTaskId);
+		result.append(", protocol: ");
+		result.append(protocol);
+		result.append(')');
+		return result.toString();
+	}
+
+} //OSMMonitoringTargetImpl
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
new file mode 100644
index 0000000000000000000000000000000000000000..c89b3521b266735c3ae6bb6e73be9dcf1fe5854b
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMObjectImpl.java
@@ -0,0 +1,620 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Object</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getId <em>Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getSensorId <em>Sensor Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getType <em>Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getSensorType <em>Sensor Type</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getOsmposition <em>Osmposition</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getOsmorientation <em>Osmorientation</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getOsmextractedattributes <em>Osmextractedattributes</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getLastPosUpdate <em>Last Pos Update</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMObjectImpl#getOsmzonedescriptor <em>Osmzonedescriptor</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OSMObjectImpl extends MinimalEObjectImpl.Container implements OSMObject {
+	/**
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSensorId() <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SENSOR_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSensorId() <em>Sensor Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String sensorId = SENSOR_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String type = TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSensorType() <em>Sensor Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SENSOR_TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSensorType() <em>Sensor Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSensorType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String sensorType = SENSOR_TYPE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getOsmposition() <em>Osmposition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOsmposition()
+	 * @generated
+	 * @ordered
+	 */
+	protected OSMPosition osmposition;
+
+	/**
+	 * The cached value of the '{@link #getOsmorientation() <em>Osmorientation</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOsmorientation()
+	 * @generated
+	 * @ordered
+	 */
+	protected OSMOrientation osmorientation;
+
+	/**
+	 * The cached value of the '{@link #getOsmextractedattributes() <em>Osmextractedattributes</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOsmextractedattributes()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<OSMExtractedAttributes> osmextractedattributes;
+
+	/**
+	 * The default value of the '{@link #getLastPosUpdate() <em>Last Pos Update</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLastPosUpdate()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LAST_POS_UPDATE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLastPosUpdate() <em>Last Pos Update</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLastPosUpdate()
+	 * @generated
+	 * @ordered
+	 */
+	protected String lastPosUpdate = LAST_POS_UPDATE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getOsmzonedescriptor() <em>Osmzonedescriptor</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOsmzonedescriptor()
+	 * @generated
+	 * @ordered
+	 */
+	protected OSMZoneDescriptor osmzonedescriptor;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMObjectImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OSMPackage.Literals.OSM_OBJECT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setId(String newId) {
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSensorId() {
+		return sensorId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSensorId(String newSensorId) {
+		String oldSensorId = sensorId;
+		sensorId = newSensorId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__SENSOR_ID, oldSensorId,
+					sensorId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setType(String newType) {
+		String oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSensorType() {
+		return sensorType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSensorType(String newSensorType) {
+		String oldSensorType = sensorType;
+		sensorType = newSensorType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__SENSOR_TYPE, oldSensorType,
+					sensorType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMPosition getOsmposition() {
+		if (osmposition != null && osmposition.eIsProxy()) {
+			InternalEObject oldOsmposition = (InternalEObject) osmposition;
+			osmposition = (OSMPosition) eResolveProxy(oldOsmposition);
+			if (osmposition != oldOsmposition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, OSMPackage.OSM_OBJECT__OSMPOSITION,
+							oldOsmposition, osmposition));
+			}
+		}
+		return osmposition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMPosition basicGetOsmposition() {
+		return osmposition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOsmposition(OSMPosition newOsmposition) {
+		OSMPosition oldOsmposition = osmposition;
+		osmposition = newOsmposition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__OSMPOSITION, oldOsmposition,
+					osmposition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMOrientation getOsmorientation() {
+		if (osmorientation != null && osmorientation.eIsProxy()) {
+			InternalEObject oldOsmorientation = (InternalEObject) osmorientation;
+			osmorientation = (OSMOrientation) eResolveProxy(oldOsmorientation);
+			if (osmorientation != oldOsmorientation) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, OSMPackage.OSM_OBJECT__OSMORIENTATION,
+							oldOsmorientation, osmorientation));
+			}
+		}
+		return osmorientation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMOrientation basicGetOsmorientation() {
+		return osmorientation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOsmorientation(OSMOrientation newOsmorientation) {
+		OSMOrientation oldOsmorientation = osmorientation;
+		osmorientation = newOsmorientation;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_OBJECT__OSMORIENTATION,
+					oldOsmorientation, osmorientation));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<OSMExtractedAttributes> getOsmextractedattributes() {
+		if (osmextractedattributes == null) {
+			osmextractedattributes = new EObjectResolvingEList<OSMExtractedAttributes>(OSMExtractedAttributes.class,
+					this, OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES);
+		}
+		return osmextractedattributes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLastPosUpdate() {
+		return lastPosUpdate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	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));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- 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;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMZoneDescriptor basicGetOsmzonedescriptor() {
+		return osmzonedescriptor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- 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));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OSMPackage.OSM_OBJECT__ID:
+			return getId();
+		case OSMPackage.OSM_OBJECT__SENSOR_ID:
+			return getSensorId();
+		case OSMPackage.OSM_OBJECT__TYPE:
+			return getType();
+		case OSMPackage.OSM_OBJECT__SENSOR_TYPE:
+			return getSensorType();
+		case OSMPackage.OSM_OBJECT__OSMPOSITION:
+			if (resolve)
+				return getOsmposition();
+			return basicGetOsmposition();
+		case OSMPackage.OSM_OBJECT__OSMORIENTATION:
+			if (resolve)
+				return getOsmorientation();
+			return basicGetOsmorientation();
+		case OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES:
+			return getOsmextractedattributes();
+		case OSMPackage.OSM_OBJECT__LAST_POS_UPDATE:
+			return getLastPosUpdate();
+		case OSMPackage.OSM_OBJECT__OSMZONEDESCRIPTOR:
+			if (resolve)
+				return getOsmzonedescriptor();
+			return basicGetOsmzonedescriptor();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OSMPackage.OSM_OBJECT__ID:
+			setId((String) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__SENSOR_ID:
+			setSensorId((String) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__TYPE:
+			setType((String) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__SENSOR_TYPE:
+			setSensorType((String) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMPOSITION:
+			setOsmposition((OSMPosition) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMORIENTATION:
+			setOsmorientation((OSMOrientation) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES:
+			getOsmextractedattributes().clear();
+			getOsmextractedattributes().addAll((Collection<? extends OSMExtractedAttributes>) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__LAST_POS_UPDATE:
+			setLastPosUpdate((String) newValue);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMZONEDESCRIPTOR:
+			setOsmzonedescriptor((OSMZoneDescriptor) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_OBJECT__ID:
+			setId(ID_EDEFAULT);
+			return;
+		case OSMPackage.OSM_OBJECT__SENSOR_ID:
+			setSensorId(SENSOR_ID_EDEFAULT);
+			return;
+		case OSMPackage.OSM_OBJECT__TYPE:
+			setType(TYPE_EDEFAULT);
+			return;
+		case OSMPackage.OSM_OBJECT__SENSOR_TYPE:
+			setSensorType(SENSOR_TYPE_EDEFAULT);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMPOSITION:
+			setOsmposition((OSMPosition) null);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMORIENTATION:
+			setOsmorientation((OSMOrientation) null);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES:
+			getOsmextractedattributes().clear();
+			return;
+		case OSMPackage.OSM_OBJECT__LAST_POS_UPDATE:
+			setLastPosUpdate(LAST_POS_UPDATE_EDEFAULT);
+			return;
+		case OSMPackage.OSM_OBJECT__OSMZONEDESCRIPTOR:
+			setOsmzonedescriptor((OSMZoneDescriptor) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_OBJECT__ID:
+			return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+		case OSMPackage.OSM_OBJECT__SENSOR_ID:
+			return SENSOR_ID_EDEFAULT == null ? sensorId != null : !SENSOR_ID_EDEFAULT.equals(sensorId);
+		case OSMPackage.OSM_OBJECT__TYPE:
+			return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+		case OSMPackage.OSM_OBJECT__SENSOR_TYPE:
+			return SENSOR_TYPE_EDEFAULT == null ? sensorType != null : !SENSOR_TYPE_EDEFAULT.equals(sensorType);
+		case OSMPackage.OSM_OBJECT__OSMPOSITION:
+			return osmposition != null;
+		case OSMPackage.OSM_OBJECT__OSMORIENTATION:
+			return osmorientation != null;
+		case OSMPackage.OSM_OBJECT__OSMEXTRACTEDATTRIBUTES:
+			return osmextractedattributes != null && !osmextractedattributes.isEmpty();
+		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 super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (id: ");
+		result.append(id);
+		result.append(", sensorId: ");
+		result.append(sensorId);
+		result.append(", type: ");
+		result.append(type);
+		result.append(", sensorType: ");
+		result.append(sensorType);
+		result.append(", lastPosUpdate: ");
+		result.append(lastPosUpdate);
+		result.append(')');
+		return result.toString();
+	}
+
+} //OSMObjectImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMOrientationImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMOrientationImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..13dfd0b54c2d30371322b4dc91bd61466eafe136
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMOrientationImpl.java
@@ -0,0 +1,326 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Orientation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl#getX <em>X</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl#getY <em>Y</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl#getZ <em>Z</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMOrientationImpl#getW <em>W</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OSMOrientationImpl extends MinimalEObjectImpl.Container implements OSMOrientation {
+	/**
+	 * The default value of the '{@link #getX() <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float X_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getX() <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected float x = X_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getY() <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getY()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float Y_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getY() <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getY()
+	 * @generated
+	 * @ordered
+	 */
+	protected float y = Y_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getZ() <em>Z</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZ()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float Z_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getZ() <em>Z</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZ()
+	 * @generated
+	 * @ordered
+	 */
+	protected float z = Z_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getW() <em>W</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getW()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float W_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getW() <em>W</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getW()
+	 * @generated
+	 * @ordered
+	 */
+	protected float w = W_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMOrientationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OSMPackage.Literals.OSM_ORIENTATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getX() {
+		return x;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setX(float newX) {
+		float oldX = x;
+		x = newX;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_ORIENTATION__X, oldX, x));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getY() {
+		return y;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setY(float newY) {
+		float oldY = y;
+		y = newY;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_ORIENTATION__Y, oldY, y));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getZ() {
+		return z;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setZ(float newZ) {
+		float oldZ = z;
+		z = newZ;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_ORIENTATION__Z, oldZ, z));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getW() {
+		return w;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setW(float newW) {
+		float oldW = w;
+		w = newW;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_ORIENTATION__W, oldW, w));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OSMPackage.OSM_ORIENTATION__X:
+			return getX();
+		case OSMPackage.OSM_ORIENTATION__Y:
+			return getY();
+		case OSMPackage.OSM_ORIENTATION__Z:
+			return getZ();
+		case OSMPackage.OSM_ORIENTATION__W:
+			return getW();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OSMPackage.OSM_ORIENTATION__X:
+			setX((Float) newValue);
+			return;
+		case OSMPackage.OSM_ORIENTATION__Y:
+			setY((Float) newValue);
+			return;
+		case OSMPackage.OSM_ORIENTATION__Z:
+			setZ((Float) newValue);
+			return;
+		case OSMPackage.OSM_ORIENTATION__W:
+			setW((Float) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_ORIENTATION__X:
+			setX(X_EDEFAULT);
+			return;
+		case OSMPackage.OSM_ORIENTATION__Y:
+			setY(Y_EDEFAULT);
+			return;
+		case OSMPackage.OSM_ORIENTATION__Z:
+			setZ(Z_EDEFAULT);
+			return;
+		case OSMPackage.OSM_ORIENTATION__W:
+			setW(W_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_ORIENTATION__X:
+			return x != X_EDEFAULT;
+		case OSMPackage.OSM_ORIENTATION__Y:
+			return y != Y_EDEFAULT;
+		case OSMPackage.OSM_ORIENTATION__Z:
+			return z != Z_EDEFAULT;
+		case OSMPackage.OSM_ORIENTATION__W:
+			return w != W_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (x: ");
+		result.append(x);
+		result.append(", y: ");
+		result.append(y);
+		result.append(", z: ");
+		result.append(z);
+		result.append(", w: ");
+		result.append(w);
+		result.append(')');
+		return result.toString();
+	}
+
+} //OSMOrientationImpl
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
new file mode 100644
index 0000000000000000000000000000000000000000..27196ff6dcc5dccf20675d0c34998027e3296de9
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPackageImpl.java
@@ -0,0 +1,684 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosDevKitPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.impl.IPosDevKitPackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes;
+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.OSMOrientation;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.VDA5050Package;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.VDA5050.impl.VDA5050PackageImpl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.impl.IPos_DatamodelPackageImpl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OSMPackageImpl extends EPackageImpl implements OSMPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass osmObjectEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass osmPositionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass osmPointEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass osmOrientationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass osmExtractedAttributesEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass osmZoneDescriptorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass osmMonitoringTargetEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private OSMPackageImpl() {
+		super(eNS_URI, OSMFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>This method is used to initialize {@link OSMPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static OSMPackage init() {
+		if (isInited)
+			return (OSMPackage) EPackage.Registry.INSTANCE.getEPackage(OSMPackage.eNS_URI);
+
+		// Obtain or create and register package
+		Object registeredOSMPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		OSMPackageImpl theOSMPackage = registeredOSMPackage instanceof OSMPackageImpl
+				? (OSMPackageImpl) registeredOSMPackage
+				: new OSMPackageImpl();
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(IPos_DatamodelPackage.eNS_URI);
+		IPos_DatamodelPackageImpl theIPos_DatamodelPackage = (IPos_DatamodelPackageImpl) (registeredPackage instanceof IPos_DatamodelPackageImpl
+				? registeredPackage
+				: IPos_DatamodelPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OFBizPackage.eNS_URI);
+		OFBizPackageImpl theOFBizPackage = (OFBizPackageImpl) (registeredPackage instanceof OFBizPackageImpl
+				? registeredPackage
+				: OFBizPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(IPosDevKitPackage.eNS_URI);
+		IPosDevKitPackageImpl theIPosDevKitPackage = (IPosDevKitPackageImpl) (registeredPackage instanceof IPosDevKitPackageImpl
+				? registeredPackage
+				: IPosDevKitPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ToozPackage.eNS_URI);
+		ToozPackageImpl theToozPackage = (ToozPackageImpl) (registeredPackage instanceof ToozPackageImpl
+				? registeredPackage
+				: ToozPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(VDA5050Package.eNS_URI);
+		VDA5050PackageImpl theVDA5050Package = (VDA5050PackageImpl) (registeredPackage instanceof VDA5050PackageImpl
+				? registeredPackage
+				: VDA5050Package.eINSTANCE);
+
+		// Create package meta-data objects
+		theOSMPackage.createPackageContents();
+		theIPos_DatamodelPackage.createPackageContents();
+		theOFBizPackage.createPackageContents();
+		theIPosDevKitPackage.createPackageContents();
+		theToozPackage.createPackageContents();
+		theVDA5050Package.createPackageContents();
+
+		// Initialize created meta-data
+		theOSMPackage.initializePackageContents();
+		theIPos_DatamodelPackage.initializePackageContents();
+		theOFBizPackage.initializePackageContents();
+		theIPosDevKitPackage.initializePackageContents();
+		theToozPackage.initializePackageContents();
+		theVDA5050Package.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theOSMPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(OSMPackage.eNS_URI, theOSMPackage);
+		return theOSMPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOSMObject() {
+		return osmObjectEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMObject_Id() {
+		return (EAttribute) osmObjectEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMObject_SensorId() {
+		return (EAttribute) osmObjectEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMObject_Type() {
+		return (EAttribute) osmObjectEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMObject_SensorType() {
+		return (EAttribute) osmObjectEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getOSMObject_Osmposition() {
+		return (EReference) osmObjectEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getOSMObject_Osmorientation() {
+		return (EReference) osmObjectEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getOSMObject_Osmextractedattributes() {
+		return (EReference) osmObjectEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMObject_LastPosUpdate() {
+		return (EAttribute) osmObjectEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getOSMObject_Osmzonedescriptor() {
+		return (EReference) osmObjectEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOSMPosition() {
+		return osmPositionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMPosition_RefSystemId() {
+		return (EAttribute) osmPositionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMPosition_Accuracy() {
+		return (EAttribute) osmPositionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getOSMPosition_Osmpoint() {
+		return (EReference) osmPositionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOSMPoint() {
+		return osmPointEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMPoint_X() {
+		return (EAttribute) osmPointEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMPoint_Y() {
+		return (EAttribute) osmPointEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMPoint_Z() {
+		return (EAttribute) osmPointEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOSMOrientation() {
+		return osmOrientationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMOrientation_X() {
+		return (EAttribute) osmOrientationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMOrientation_Y() {
+		return (EAttribute) osmOrientationEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMOrientation_Z() {
+		return (EAttribute) osmOrientationEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMOrientation_W() {
+		return (EAttribute) osmOrientationEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOSMExtractedAttributes() {
+		return osmExtractedAttributesEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMExtractedAttributes_BatteryChargeLevel() {
+		return (EAttribute) osmExtractedAttributesEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMExtractedAttributes_LoadedItems() {
+		return (EAttribute) osmExtractedAttributesEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMExtractedAttributes_Errors() {
+		return (EAttribute) osmExtractedAttributesEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOSMZoneDescriptor() {
+		return osmZoneDescriptorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMZoneDescriptor_ZoneId() {
+		return (EAttribute) osmZoneDescriptorEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMZoneDescriptor_NotificationType() {
+		return (EAttribute) osmZoneDescriptorEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOSMMonitoringTarget() {
+		return osmMonitoringTargetEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMMonitoringTarget_MonitoringTaskId() {
+		return (EAttribute) osmMonitoringTargetEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOSMMonitoringTarget_Protocol() {
+		return (EAttribute) osmMonitoringTargetEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMFactory getOSMFactory() {
+		return (OSMFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated)
+			return;
+		isCreated = true;
+
+		// Create classes and their features
+		osmObjectEClass = createEClass(OSM_OBJECT);
+		createEAttribute(osmObjectEClass, OSM_OBJECT__ID);
+		createEAttribute(osmObjectEClass, OSM_OBJECT__SENSOR_ID);
+		createEAttribute(osmObjectEClass, OSM_OBJECT__TYPE);
+		createEAttribute(osmObjectEClass, OSM_OBJECT__SENSOR_TYPE);
+		createEReference(osmObjectEClass, OSM_OBJECT__OSMPOSITION);
+		createEReference(osmObjectEClass, OSM_OBJECT__OSMORIENTATION);
+		createEReference(osmObjectEClass, OSM_OBJECT__OSMEXTRACTEDATTRIBUTES);
+		createEAttribute(osmObjectEClass, OSM_OBJECT__LAST_POS_UPDATE);
+		createEReference(osmObjectEClass, OSM_OBJECT__OSMZONEDESCRIPTOR);
+
+		osmPositionEClass = createEClass(OSM_POSITION);
+		createEAttribute(osmPositionEClass, OSM_POSITION__REF_SYSTEM_ID);
+		createEAttribute(osmPositionEClass, OSM_POSITION__ACCURACY);
+		createEReference(osmPositionEClass, OSM_POSITION__OSMPOINT);
+
+		osmPointEClass = createEClass(OSM_POINT);
+		createEAttribute(osmPointEClass, OSM_POINT__X);
+		createEAttribute(osmPointEClass, OSM_POINT__Y);
+		createEAttribute(osmPointEClass, OSM_POINT__Z);
+
+		osmOrientationEClass = createEClass(OSM_ORIENTATION);
+		createEAttribute(osmOrientationEClass, OSM_ORIENTATION__X);
+		createEAttribute(osmOrientationEClass, OSM_ORIENTATION__Y);
+		createEAttribute(osmOrientationEClass, OSM_ORIENTATION__Z);
+		createEAttribute(osmOrientationEClass, OSM_ORIENTATION__W);
+
+		osmExtractedAttributesEClass = createEClass(OSM_EXTRACTED_ATTRIBUTES);
+		createEAttribute(osmExtractedAttributesEClass, OSM_EXTRACTED_ATTRIBUTES__BATTERY_CHARGE_LEVEL);
+		createEAttribute(osmExtractedAttributesEClass, OSM_EXTRACTED_ATTRIBUTES__LOADED_ITEMS);
+		createEAttribute(osmExtractedAttributesEClass, OSM_EXTRACTED_ATTRIBUTES__ERRORS);
+
+		osmZoneDescriptorEClass = createEClass(OSM_ZONE_DESCRIPTOR);
+		createEAttribute(osmZoneDescriptorEClass, OSM_ZONE_DESCRIPTOR__ZONE_ID);
+		createEAttribute(osmZoneDescriptorEClass, OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE);
+
+		osmMonitoringTargetEClass = createEClass(OSM_MONITORING_TARGET);
+		createEAttribute(osmMonitoringTargetEClass, OSM_MONITORING_TARGET__MONITORING_TASK_ID);
+		createEAttribute(osmMonitoringTargetEClass, OSM_MONITORING_TARGET__PROTOCOL);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized)
+			return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		IPos_DatamodelPackage theIPos_DatamodelPackage = (IPos_DatamodelPackage) EPackage.Registry.INSTANCE
+				.getEPackage(IPos_DatamodelPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(osmObjectEClass, OSMObject.class, "OSMObject", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getOSMObject_Id(), ecorePackage.getEString(), "id", null, 0, 1, OSMObject.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMObject_SensorId(), ecorePackage.getEString(), "sensorId", null, 0, 1, OSMObject.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMObject_Type(), ecorePackage.getEString(), "type", null, 0, 1, OSMObject.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMObject_SensorType(), ecorePackage.getEString(), "sensorType", null, 0, 1, OSMObject.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getOSMObject_Osmposition(), this.getOSMPosition(), null, "osmposition", null, 0, 1,
+				OSMObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getOSMObject_Osmorientation(), this.getOSMOrientation(), null, "osmorientation", null, 0, 1,
+				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,
+				!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,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(osmPositionEClass, OSMPosition.class, "OSMPosition", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getOSMPosition_RefSystemId(), ecorePackage.getEString(), "refSystemId", null, 0, 1,
+				OSMPosition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMPosition_Accuracy(), ecorePackage.getEFloat(), "accuracy", null, 0, 1, OSMPosition.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getOSMPosition_Osmpoint(), this.getOSMPoint(), null, "osmpoint", null, 0, 1, OSMPosition.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(osmPointEClass, OSMPoint.class, "OSMPoint", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getOSMPoint_X(), ecorePackage.getEFloat(), "x", null, 0, 1, OSMPoint.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMPoint_Y(), ecorePackage.getEFloat(), "y", null, 0, 1, OSMPoint.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMPoint_Z(), ecorePackage.getEFloat(), "z", null, 0, 1, OSMPoint.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(osmOrientationEClass, OSMOrientation.class, "OSMOrientation", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getOSMOrientation_X(), ecorePackage.getEFloat(), "x", null, 0, 1, OSMOrientation.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMOrientation_Y(), ecorePackage.getEFloat(), "y", null, 0, 1, OSMOrientation.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMOrientation_Z(), ecorePackage.getEFloat(), "z", null, 0, 1, OSMOrientation.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMOrientation_W(), ecorePackage.getEFloat(), "w", null, 0, 1, OSMOrientation.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(osmExtractedAttributesEClass, OSMExtractedAttributes.class, "OSMExtractedAttributes", !IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getOSMExtractedAttributes_BatteryChargeLevel(), ecorePackage.getEFloat(), "batteryChargeLevel",
+				null, 0, 1, OSMExtractedAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+				!IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMExtractedAttributes_LoadedItems(), theIPos_DatamodelPackage.getIntArray(), "loadedItems",
+				null, 0, 1, OSMExtractedAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+				!IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		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);
+
+		initEClass(osmZoneDescriptorEClass, OSMZoneDescriptor.class, "OSMZoneDescriptor", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getOSMZoneDescriptor_ZoneId(), ecorePackage.getEString(), "zoneId", null, 0, 1,
+				OSMZoneDescriptor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMZoneDescriptor_NotificationType(), ecorePackage.getEString(), "notificationType", null, 0,
+				1, OSMZoneDescriptor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(osmMonitoringTargetEClass, OSMMonitoringTarget.class, "OSMMonitoringTarget", !IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getOSMMonitoringTarget_MonitoringTaskId(), ecorePackage.getEString(), "monitoringTaskId", null,
+				0, 1, OSMMonitoringTarget.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getOSMMonitoringTarget_Protocol(), ecorePackage.getEString(), "protocol", null, 0, 1,
+				OSMMonitoringTarget.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+				IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+	}
+
+} //OSMPackageImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPointImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPointImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..95333bc3182b0c5366fed90ca5654400b6690813
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPointImpl.java
@@ -0,0 +1,272 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Point</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPointImpl#getX <em>X</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPointImpl#getY <em>Y</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPointImpl#getZ <em>Z</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OSMPointImpl extends MinimalEObjectImpl.Container implements OSMPoint {
+	/**
+	 * The default value of the '{@link #getX() <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float X_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getX() <em>X</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getX()
+	 * @generated
+	 * @ordered
+	 */
+	protected float x = X_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getY() <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getY()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float Y_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getY() <em>Y</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getY()
+	 * @generated
+	 * @ordered
+	 */
+	protected float y = Y_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getZ() <em>Z</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZ()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float Z_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getZ() <em>Z</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZ()
+	 * @generated
+	 * @ordered
+	 */
+	protected float z = Z_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMPointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OSMPackage.Literals.OSM_POINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getX() {
+		return x;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setX(float newX) {
+		float oldX = x;
+		x = newX;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_POINT__X, oldX, x));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getY() {
+		return y;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setY(float newY) {
+		float oldY = y;
+		y = newY;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_POINT__Y, oldY, y));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getZ() {
+		return z;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setZ(float newZ) {
+		float oldZ = z;
+		z = newZ;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_POINT__Z, oldZ, z));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OSMPackage.OSM_POINT__X:
+			return getX();
+		case OSMPackage.OSM_POINT__Y:
+			return getY();
+		case OSMPackage.OSM_POINT__Z:
+			return getZ();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OSMPackage.OSM_POINT__X:
+			setX((Float) newValue);
+			return;
+		case OSMPackage.OSM_POINT__Y:
+			setY((Float) newValue);
+			return;
+		case OSMPackage.OSM_POINT__Z:
+			setZ((Float) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_POINT__X:
+			setX(X_EDEFAULT);
+			return;
+		case OSMPackage.OSM_POINT__Y:
+			setY(Y_EDEFAULT);
+			return;
+		case OSMPackage.OSM_POINT__Z:
+			setZ(Z_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_POINT__X:
+			return x != X_EDEFAULT;
+		case OSMPackage.OSM_POINT__Y:
+			return y != Y_EDEFAULT;
+		case OSMPackage.OSM_POINT__Z:
+			return z != Z_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (x: ");
+		result.append(x);
+		result.append(", y: ");
+		result.append(y);
+		result.append(", z: ");
+		result.append(z);
+		result.append(')');
+		return result.toString();
+	}
+
+} //OSMPointImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPositionImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPositionImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..5521ed37093ec4819d8766ec4974813305d487a9
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMPositionImpl.java
@@ -0,0 +1,285 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Position</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPositionImpl#getRefSystemId <em>Ref System Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPositionImpl#getAccuracy <em>Accuracy</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPositionImpl#getOsmpoint <em>Osmpoint</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OSMPositionImpl extends MinimalEObjectImpl.Container implements OSMPosition {
+	/**
+	 * The default value of the '{@link #getRefSystemId() <em>Ref System Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRefSystemId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String REF_SYSTEM_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getRefSystemId() <em>Ref System Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRefSystemId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String refSystemId = REF_SYSTEM_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getAccuracy() <em>Accuracy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAccuracy()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float ACCURACY_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getAccuracy() <em>Accuracy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAccuracy()
+	 * @generated
+	 * @ordered
+	 */
+	protected float accuracy = ACCURACY_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getOsmpoint() <em>Osmpoint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOsmpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected OSMPoint osmpoint;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMPositionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OSMPackage.Literals.OSM_POSITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getRefSystemId() {
+		return refSystemId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRefSystemId(String newRefSystemId) {
+		String oldRefSystemId = refSystemId;
+		refSystemId = newRefSystemId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_POSITION__REF_SYSTEM_ID,
+					oldRefSystemId, refSystemId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getAccuracy() {
+		return accuracy;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAccuracy(float newAccuracy) {
+		float oldAccuracy = accuracy;
+		accuracy = newAccuracy;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_POSITION__ACCURACY, oldAccuracy,
+					accuracy));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMPoint getOsmpoint() {
+		if (osmpoint != null && osmpoint.eIsProxy()) {
+			InternalEObject oldOsmpoint = (InternalEObject) osmpoint;
+			osmpoint = (OSMPoint) eResolveProxy(oldOsmpoint);
+			if (osmpoint != oldOsmpoint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, OSMPackage.OSM_POSITION__OSMPOINT,
+							oldOsmpoint, osmpoint));
+			}
+		}
+		return osmpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMPoint basicGetOsmpoint() {
+		return osmpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOsmpoint(OSMPoint newOsmpoint) {
+		OSMPoint oldOsmpoint = osmpoint;
+		osmpoint = newOsmpoint;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_POSITION__OSMPOINT, oldOsmpoint,
+					osmpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OSMPackage.OSM_POSITION__REF_SYSTEM_ID:
+			return getRefSystemId();
+		case OSMPackage.OSM_POSITION__ACCURACY:
+			return getAccuracy();
+		case OSMPackage.OSM_POSITION__OSMPOINT:
+			if (resolve)
+				return getOsmpoint();
+			return basicGetOsmpoint();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OSMPackage.OSM_POSITION__REF_SYSTEM_ID:
+			setRefSystemId((String) newValue);
+			return;
+		case OSMPackage.OSM_POSITION__ACCURACY:
+			setAccuracy((Float) newValue);
+			return;
+		case OSMPackage.OSM_POSITION__OSMPOINT:
+			setOsmpoint((OSMPoint) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_POSITION__REF_SYSTEM_ID:
+			setRefSystemId(REF_SYSTEM_ID_EDEFAULT);
+			return;
+		case OSMPackage.OSM_POSITION__ACCURACY:
+			setAccuracy(ACCURACY_EDEFAULT);
+			return;
+		case OSMPackage.OSM_POSITION__OSMPOINT:
+			setOsmpoint((OSMPoint) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_POSITION__REF_SYSTEM_ID:
+			return REF_SYSTEM_ID_EDEFAULT == null ? refSystemId != null : !REF_SYSTEM_ID_EDEFAULT.equals(refSystemId);
+		case OSMPackage.OSM_POSITION__ACCURACY:
+			return accuracy != ACCURACY_EDEFAULT;
+		case OSMPackage.OSM_POSITION__OSMPOINT:
+			return osmpoint != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (refSystemId: ");
+		result.append(refSystemId);
+		result.append(", accuracy: ");
+		result.append(accuracy);
+		result.append(')');
+		return result.toString();
+	}
+
+} //OSMPositionImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMZoneDescriptorImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMZoneDescriptorImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..dd272e6ab66bd9d0f064eb2123f31a8886939ac2
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/impl/OSMZoneDescriptorImpl.java
@@ -0,0 +1,221 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Zone Descriptor</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMZoneDescriptorImpl#getZoneId <em>Zone Id</em>}</li>
+ *   <li>{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMZoneDescriptorImpl#getNotificationType <em>Notification Type</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OSMZoneDescriptorImpl extends MinimalEObjectImpl.Container implements OSMZoneDescriptor {
+	/**
+	 * The default value of the '{@link #getZoneId() <em>Zone Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZoneId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ZONE_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getZoneId() <em>Zone Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getZoneId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String zoneId = ZONE_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getNotificationType() <em>Notification Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNotificationType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NOTIFICATION_TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getNotificationType() <em>Notification Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNotificationType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String notificationType = NOTIFICATION_TYPE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMZoneDescriptorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OSMPackage.Literals.OSM_ZONE_DESCRIPTOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getZoneId() {
+		return zoneId;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setZoneId(String newZoneId) {
+		String oldZoneId = zoneId;
+		zoneId = newZoneId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_ZONE_DESCRIPTOR__ZONE_ID, oldZoneId,
+					zoneId));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getNotificationType() {
+		return notificationType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNotificationType(String newNotificationType) {
+		String oldNotificationType = notificationType;
+		notificationType = newNotificationType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OSMPackage.OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE,
+					oldNotificationType, notificationType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__ZONE_ID:
+			return getZoneId();
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE:
+			return getNotificationType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__ZONE_ID:
+			setZoneId((String) newValue);
+			return;
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE:
+			setNotificationType((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__ZONE_ID:
+			setZoneId(ZONE_ID_EDEFAULT);
+			return;
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE:
+			setNotificationType(NOTIFICATION_TYPE_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__ZONE_ID:
+			return ZONE_ID_EDEFAULT == null ? zoneId != null : !ZONE_ID_EDEFAULT.equals(zoneId);
+		case OSMPackage.OSM_ZONE_DESCRIPTOR__NOTIFICATION_TYPE:
+			return NOTIFICATION_TYPE_EDEFAULT == null ? notificationType != null
+					: !NOTIFICATION_TYPE_EDEFAULT.equals(notificationType);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (zoneId: ");
+		result.append(zoneId);
+		result.append(", notificationType: ");
+		result.append(notificationType);
+		result.append(')');
+		return result.toString();
+	}
+
+} //OSMZoneDescriptorImpl
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/util/OSMAdapterFactory.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/util/OSMAdapterFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..53bb46ee8029476e87ba47f9b334045c43a27a70
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/util/OSMAdapterFactory.java
@@ -0,0 +1,233 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.util;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage
+ * @generated
+ */
+public class OSMAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static OSMPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = OSMPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject) object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OSMSwitch<Adapter> modelSwitch = new OSMSwitch<Adapter>() {
+		@Override
+		public Adapter caseOSMObject(OSMObject object) {
+			return createOSMObjectAdapter();
+		}
+
+		@Override
+		public Adapter caseOSMPosition(OSMPosition object) {
+			return createOSMPositionAdapter();
+		}
+
+		@Override
+		public Adapter caseOSMPoint(OSMPoint object) {
+			return createOSMPointAdapter();
+		}
+
+		@Override
+		public Adapter caseOSMOrientation(OSMOrientation object) {
+			return createOSMOrientationAdapter();
+		}
+
+		@Override
+		public Adapter caseOSMExtractedAttributes(OSMExtractedAttributes object) {
+			return createOSMExtractedAttributesAdapter();
+		}
+
+		@Override
+		public Adapter caseOSMZoneDescriptor(OSMZoneDescriptor object) {
+			return createOSMZoneDescriptorAdapter();
+		}
+
+		@Override
+		public Adapter caseOSMMonitoringTarget(OSMMonitoringTarget object) {
+			return createOSMMonitoringTargetAdapter();
+		}
+
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject) target);
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject <em>Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject
+	 * @generated
+	 */
+	public Adapter createOSMObjectAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition <em>Position</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPosition
+	 * @generated
+	 */
+	public Adapter createOSMPositionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint <em>Point</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPoint
+	 * @generated
+	 */
+	public Adapter createOSMPointAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation <em>Orientation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMOrientation
+	 * @generated
+	 */
+	public Adapter createOSMOrientationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes <em>Extracted Attributes</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMExtractedAttributes
+	 * @generated
+	 */
+	public Adapter createOSMExtractedAttributesAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor <em>Zone Descriptor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMZoneDescriptor
+	 * @generated
+	 */
+	public Adapter createOSMZoneDescriptorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget <em>Monitoring Target</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget
+	 * @generated
+	 */
+	public Adapter createOSMMonitoringTargetAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //OSMAdapterFactory
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/util/OSMSwitch.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/util/OSMSwitch.java
new file mode 100644
index 0000000000000000000000000000000000000000..e58ce5eee2f654ea7e18750a54d986ea53313047
--- /dev/null
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/OSM/util/OSMSwitch.java
@@ -0,0 +1,244 @@
+/**
+ */
+package ipos.project.DataModellntegration.iPos_Datamodel.OSM.util;
+
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage
+ * @generated
+ */
+public class OSMSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static OSMPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OSMSwitch() {
+		if (modelPackage == null) {
+			modelPackage = OSMPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+		case OSMPackage.OSM_OBJECT: {
+			OSMObject osmObject = (OSMObject) theEObject;
+			T result = caseOSMObject(osmObject);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OSMPackage.OSM_POSITION: {
+			OSMPosition osmPosition = (OSMPosition) theEObject;
+			T result = caseOSMPosition(osmPosition);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OSMPackage.OSM_POINT: {
+			OSMPoint osmPoint = (OSMPoint) theEObject;
+			T result = caseOSMPoint(osmPoint);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OSMPackage.OSM_ORIENTATION: {
+			OSMOrientation osmOrientation = (OSMOrientation) theEObject;
+			T result = caseOSMOrientation(osmOrientation);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OSMPackage.OSM_EXTRACTED_ATTRIBUTES: {
+			OSMExtractedAttributes osmExtractedAttributes = (OSMExtractedAttributes) theEObject;
+			T result = caseOSMExtractedAttributes(osmExtractedAttributes);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OSMPackage.OSM_ZONE_DESCRIPTOR: {
+			OSMZoneDescriptor osmZoneDescriptor = (OSMZoneDescriptor) theEObject;
+			T result = caseOSMZoneDescriptor(osmZoneDescriptor);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case OSMPackage.OSM_MONITORING_TARGET: {
+			OSMMonitoringTarget osmMonitoringTarget = (OSMMonitoringTarget) theEObject;
+			T result = caseOSMMonitoringTarget(osmMonitoringTarget);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Object</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Object</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOSMObject(OSMObject object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Position</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Position</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOSMPosition(OSMPosition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Point</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Point</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOSMPoint(OSMPoint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Orientation</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Orientation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOSMOrientation(OSMOrientation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Extracted Attributes</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Extracted Attributes</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOSMExtractedAttributes(OSMExtractedAttributes object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Zone Descriptor</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Zone Descriptor</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOSMZoneDescriptor(OSMZoneDescriptor object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Monitoring Target</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Monitoring Target</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOSMMonitoringTarget(OSMMonitoringTarget object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //OSMSwitch
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/ToozPackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/ToozPackageImpl.java
index 2b559fee1de68451eb83f261922ee1761c10a932..ea2bed7cffc2a1b77ddb502230b60f98c0fde590 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/ToozPackageImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/Tooz/impl/ToozPackageImpl.java
@@ -12,6 +12,8 @@ import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
 
 import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl;
 
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl;
 import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.DistantEntity;
 import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.MonitoringTarget;
 import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozFactory;
@@ -121,6 +123,9 @@ public class ToozPackageImpl extends EPackageImpl implements ToozPackage {
 		VDA5050PackageImpl theVDA5050Package = (VDA5050PackageImpl) (registeredPackage instanceof VDA5050PackageImpl
 				? registeredPackage
 				: VDA5050Package.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OSMPackage.eNS_URI);
+		OSMPackageImpl theOSMPackage = (OSMPackageImpl) (registeredPackage instanceof OSMPackageImpl ? registeredPackage
+				: OSMPackage.eINSTANCE);
 
 		// Create package meta-data objects
 		theToozPackage.createPackageContents();
@@ -128,6 +133,7 @@ public class ToozPackageImpl extends EPackageImpl implements ToozPackage {
 		theOFBizPackage.createPackageContents();
 		theIPosDevKitPackage.createPackageContents();
 		theVDA5050Package.createPackageContents();
+		theOSMPackage.createPackageContents();
 
 		// Initialize created meta-data
 		theToozPackage.initializePackageContents();
@@ -135,6 +141,7 @@ public class ToozPackageImpl extends EPackageImpl implements ToozPackage {
 		theOFBizPackage.initializePackageContents();
 		theIPosDevKitPackage.initializePackageContents();
 		theVDA5050Package.initializePackageContents();
+		theOSMPackage.initializePackageContents();
 
 		// Mark meta-data to indicate it can't be changed
 		theToozPackage.freeze();
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050PackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050PackageImpl.java
index 09f7cf34c13cbe2d4722c49a2d042459bf832eb4..eaeb19f8c4d0e6713c9cc0ba84ba7577d5f0a618 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050PackageImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/VDA5050/impl/VDA5050PackageImpl.java
@@ -12,6 +12,8 @@ import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
 
 import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl;
 
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl;
 import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.ToozPackage;
 
 import ipos.project.DataModellntegration.iPos_Datamodel.Tooz.impl.ToozPackageImpl;
@@ -137,6 +139,9 @@ public class VDA5050PackageImpl extends EPackageImpl implements VDA5050Package {
 		ToozPackageImpl theToozPackage = (ToozPackageImpl) (registeredPackage instanceof ToozPackageImpl
 				? registeredPackage
 				: ToozPackage.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OSMPackage.eNS_URI);
+		OSMPackageImpl theOSMPackage = (OSMPackageImpl) (registeredPackage instanceof OSMPackageImpl ? registeredPackage
+				: OSMPackage.eINSTANCE);
 
 		// Create package meta-data objects
 		theVDA5050Package.createPackageContents();
@@ -144,6 +149,7 @@ public class VDA5050PackageImpl extends EPackageImpl implements VDA5050Package {
 		theOFBizPackage.createPackageContents();
 		theIPosDevKitPackage.createPackageContents();
 		theToozPackage.createPackageContents();
+		theOSMPackage.createPackageContents();
 
 		// Initialize created meta-data
 		theVDA5050Package.initializePackageContents();
@@ -151,6 +157,7 @@ public class VDA5050PackageImpl extends EPackageImpl implements VDA5050Package {
 		theOFBizPackage.initializePackageContents();
 		theIPosDevKitPackage.initializePackageContents();
 		theToozPackage.initializePackageContents();
+		theOSMPackage.initializePackageContents();
 
 		// Mark meta-data to indicate it can't be changed
 		theVDA5050Package.freeze();
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelFactoryImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelFactoryImpl.java
index 98c86bfcdbaef8c702884e8e427f8f04e590b05b..9813f0d08fa8b7cdd6e960ede6b33415657b3477 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelFactoryImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelFactoryImpl.java
@@ -169,6 +169,8 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 			return createByteArrayFromString(eDataType, initialValue);
 		case IPos_DatamodelPackage.LIST_OF_STRING_MAPS:
 			return createListOfStringMapsFromString(eDataType, initialValue);
+		case IPos_DatamodelPackage.INT_ARRAY:
+			return createIntArrayFromString(eDataType, initialValue);
 		default:
 			throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
 		}
@@ -196,6 +198,8 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 			return convertByteArrayToString(eDataType, instanceValue);
 		case IPos_DatamodelPackage.LIST_OF_STRING_MAPS:
 			return convertListOfStringMapsToString(eDataType, instanceValue);
+		case IPos_DatamodelPackage.INT_ARRAY:
+			return convertIntArrayToString(eDataType, instanceValue);
 		default:
 			throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
 		}
@@ -733,6 +737,24 @@ public class IPos_DatamodelFactoryImpl extends EFactoryImpl implements IPos_Data
 		return super.convertToString(instanceValue);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int[] createIntArrayFromString(EDataType eDataType, String initialValue) {
+		return (int[]) super.createFromString(initialValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertIntArrayToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(instanceValue);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelPackageImpl.java b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelPackageImpl.java
index 349ce94fb7479079b681fc797b5132e6d6b092c6..a6473c7b9202d8178ab748edfd6e14bb45b3cfd0 100644
--- a/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelPackageImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/iPos_Datamodel/impl/IPos_DatamodelPackageImpl.java
@@ -29,6 +29,8 @@ import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.OFBizPackage;
 
 import ipos.project.DataModellntegration.iPos_Datamodel.OFBiz.impl.OFBizPackageImpl;
 
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMPackage;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.impl.OSMPackageImpl;
 import ipos.project.DataModellntegration.iPos_Datamodel.Orientation;
 import ipos.project.DataModellntegration.iPos_Datamodel.OtherBeacon;
 import ipos.project.DataModellntegration.iPos_Datamodel.OtherProx;
@@ -405,6 +407,13 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 	 */
 	private EDataType listOfStringMapsEDataType = null;
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EDataType intArrayEDataType = null;
+
 	/**
 	 * Creates an instance of the model <b>Package</b>, registered with
 	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
@@ -475,6 +484,9 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		VDA5050PackageImpl theVDA5050Package = (VDA5050PackageImpl) (registeredPackage instanceof VDA5050PackageImpl
 				? registeredPackage
 				: VDA5050Package.eINSTANCE);
+		registeredPackage = EPackage.Registry.INSTANCE.getEPackage(OSMPackage.eNS_URI);
+		OSMPackageImpl theOSMPackage = (OSMPackageImpl) (registeredPackage instanceof OSMPackageImpl ? registeredPackage
+				: OSMPackage.eINSTANCE);
 
 		// Create package meta-data objects
 		theIPos_DatamodelPackage.createPackageContents();
@@ -482,6 +494,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		theIPosDevKitPackage.createPackageContents();
 		theToozPackage.createPackageContents();
 		theVDA5050Package.createPackageContents();
+		theOSMPackage.createPackageContents();
 
 		// Initialize created meta-data
 		theIPos_DatamodelPackage.initializePackageContents();
@@ -489,6 +502,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		theIPosDevKitPackage.initializePackageContents();
 		theToozPackage.initializePackageContents();
 		theVDA5050Package.initializePackageContents();
+		theOSMPackage.initializePackageContents();
 
 		// Mark meta-data to indicate it can't be changed
 		theIPos_DatamodelPackage.freeze();
@@ -1749,6 +1763,15 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		return listOfStringMapsEDataType;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getIntArray() {
+		return intArrayEDataType;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1958,6 +1981,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		floatArrayEDataType = createEDataType(FLOAT_ARRAY);
 		byteArrayEDataType = createEDataType(BYTE_ARRAY);
 		listOfStringMapsEDataType = createEDataType(LIST_OF_STRING_MAPS);
+		intArrayEDataType = createEDataType(INT_ARRAY);
 	}
 
 	/**
@@ -1991,6 +2015,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		ToozPackage theToozPackage = (ToozPackage) EPackage.Registry.INSTANCE.getEPackage(ToozPackage.eNS_URI);
 		VDA5050Package theVDA5050Package = (VDA5050Package) EPackage.Registry.INSTANCE
 				.getEPackage(VDA5050Package.eNS_URI);
+		OSMPackage theOSMPackage = (OSMPackage) EPackage.Registry.INSTANCE.getEPackage(OSMPackage.eNS_URI);
 		XMLTypePackage theXMLTypePackage = (XMLTypePackage) EPackage.Registry.INSTANCE
 				.getEPackage(XMLTypePackage.eNS_URI);
 
@@ -1999,6 +2024,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		getESubpackages().add(theIPosDevKitPackage);
 		getESubpackages().add(theToozPackage);
 		getESubpackages().add(theVDA5050Package);
+		getESubpackages().add(theOSMPackage);
 
 		// Create type parameters
 
@@ -2439,6 +2465,7 @@ public class IPos_DatamodelPackageImpl extends EPackageImpl implements IPos_Data
 		initEDataType(listOfStringMapsEDataType, LinkedList.class, "ListOfStringMaps", IS_SERIALIZABLE,
 				!IS_GENERATED_INSTANCE_CLASS,
 				"java.util.LinkedList<java.util.HashMap<java.lang.String, java.lang.String>>");
+		initEDataType(intArrayEDataType, int[].class, "IntArray", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
 
 		// Create resource
 		createResource(eNS_URI);
diff --git a/src/main/java/ipos/project/MainApp.java b/src/main/java/ipos/project/MainApp.java
index 4faf86d45c136393d2826afa37c38cabdd234220..1be2ceaf9d7f97febd2075139f98c4c35d1f0be8 100644
--- a/src/main/java/ipos/project/MainApp.java
+++ b/src/main/java/ipos/project/MainApp.java
@@ -4,6 +4,7 @@ import ipos.project.DataModellntegration.SimpleSceneIntegration.SimpleSceneInteg
 import ipos.project.DataModellntegration.VDA5050Processor.VDA5050Processor;
 import ipos.project.SensorValueIntegration.GenericSensorValueProcessor;
 import ipos.project.iposextension.orderpicker.OFBizOrderPicker;
+import ipos.project.iposextension.osm.OSM;
 import ipos.project.iposextension.tooz.Tooz;
 import org.apache.logging.log4j.LogManager;
 import org.springframework.boot.SpringApplication;
@@ -31,12 +32,14 @@ public class MainApp {
     public static final String TESTDATA_SDF = "testdata_raw_sdf.txt";
     public static final String TESTDATA_TOOZ = "testdata_raw_tooz.txt";
     public static final String TESTDATA_TOOZ_MONTARGET = "testdata_raw_tooz_init.txt";
+    public static final String TESTDATA_OSM_MONTARGET = "testdata_raw_osm_init.txt";
     public static final String TESTDATA_VDA5050 = "testdata_raw_vda5050.txt";
     public static final String COMMAND_INDFRO = "indfro testdata"; // Industrierobotik_Frontend
     public static final String COMMAND_OP = "oppl testdata";
     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";
@@ -45,6 +48,7 @@ public class MainApp {
     public static final String COMMAND_INIT_INDFRO = "init indfro";
     public static final String COMMAND_INIT_SDF = "init sdf";
     public static final String COMMAND_INIT_OP = "init op";
+    public static final String COMMAND_INIT_OSM = "init osm";
     public static final String COMMAND_READY_FOR_NEXT_LINE = "next line";
     public static final String UNKNOWN_COMMAND = "SHELL: Unknown command";
     private static boolean proceed = true;
@@ -64,10 +68,12 @@ 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_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;
@@ -80,6 +86,10 @@ public class MainApp {
         }
     }
 
+    private static void initOSM() {
+        int[] intlist;
+    }
+
     private static void initIndfro() {
         ipos.project.SensorValueIntegration.api.MqttPositionHandler.setInitialized(false);
         SimpleSceneIntegration.init(INDUSTRIEROBOTIK_FILE);
diff --git a/src/main/java/ipos/project/iposextension/osm/OSM.java b/src/main/java/ipos/project/iposextension/osm/OSM.java
new file mode 100644
index 0000000000000000000000000000000000000000..2e5e996e1b7532335caed5e7433fdd0992d40c81
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/osm/OSM.java
@@ -0,0 +1,46 @@
+package ipos.project.iposextension.osm;
+
+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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+
+@Component
+public class OSM {
+
+    public static final String TOPIC_TOOZEXT_OUTPUT = "SmartGlassesBackend";
+    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";
+
+    @Autowired
+    public OSM(ExternalPubServiceImpl mqttService){
+        osmExt.setMqttService(mqttService);
+        OSMIPosMonitoringWrapperMqtt.setMqttService(mqttService);
+        OSMExtInputMqtt.setMqttService(mqttService);
+        OSMExtOutputMqtt.setMqttService(mqttService);
+    }
+
+    static private OSMExt osmExt = new OSMExt();
+
+    public static void handleOSMObject(OSMObject osmObject) {
+        osmExt.handleOSMObject(osmObject);
+    }
+
+    public static void processMonTargetTestdata(String path_to_monTarget_file) {
+        File monTargetFile = new File(path_to_monTarget_file);
+        for (String line : OtherUtility.readLines(monTargetFile)) {
+            OSMExtInputMqtt.handleOsmExtInput(line);
+        }
+    }
+
+    public static void handleOSMMonitoringTarget(OSMMonitoringTarget osmMonitoringTarget_internal) {
+        IPosArguments.IPosConfigData osmConf = new OSMArgs.OSMConf(OSMExt.TOPIC_OSM_EXT, osmMonitoringTarget_internal.getProtocol());
+        osmExt.configureIpos(osmConf);
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/osm/OSMArgs.java b/src/main/java/ipos/project/iposextension/osm/OSMArgs.java
new file mode 100644
index 0000000000000000000000000000000000000000..5b0ae94df89f0dcb4f5012938986fea326ff7783
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/osm/OSMArgs.java
@@ -0,0 +1,27 @@
+package ipos.project.iposextension.osm;
+
+import ipos.project.devkit.iposext.IPosArguments;
+
+public class OSMArgs {
+
+    public static class OSMConf implements IPosArguments.IPosConfigData {
+
+        String monitoringTaskId;
+
+        public String getProtocol() {
+            return protocol;
+        }
+
+        String protocol;
+        public String getMonitoringTaskId() {
+            return monitoringTaskId;
+        }
+
+        public OSMConf(String monitoringTaskId, String protocol) {
+            this.monitoringTaskId = monitoringTaskId;
+            this.protocol = protocol;
+        }
+
+    }
+
+}
diff --git a/src/main/java/ipos/project/iposextension/osm/OSMExt.java b/src/main/java/ipos/project/iposextension/osm/OSMExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..24640bc39e9f7f83747dfdf4e1b43005404df6c8
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/osm/OSMExt.java
@@ -0,0 +1,52 @@
+package ipos.project.iposextension.osm;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.models.SimpleScene;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IPosRawdataEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.IPosDevKit.IposPositionEvent;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject;
+import ipos.project.devkit.iposext.IPosArguments;
+import ipos.project.devkit.iposext.IPosExtension;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
+
+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 SERIALIZATION_TYPE_OSM_EXT = "json";
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    @Override
+    public void handlePositionEvent(IposPositionEvent posEvent) {}
+
+    @Override
+    public void handlePositionEvent(IposPositionEvent posEvent, IPosArguments.HandlePosEventConf posEventConf) {}
+
+    @Override
+    public void handleRawdataEvent(IPosRawdataEvent iPosRawdataEvent) {}
+
+    public void handleOSMObject(OSMObject osmObject){
+        OSMExtOutputMqtt.transmitOSMObject(osmObject, TOPIC_OSM_EXT_OUTPUT, SERIALIZATION_TYPE_OSM_EXT);
+    }
+
+    @Override
+    public SimpleScene.IposConfigWrapper prepareConfigWrapper(IPosArguments.IPosConfigData iposConfigData) {
+        OSMArgs.OSMConf osmConf = (OSMArgs.OSMConf) iposConfigData;
+        String osmMonitoringTarget = osmConf.getMonitoringTaskId();
+        String osmProtocol = osmConf.getProtocol();
+        return createConfigWrapperFromOSMMonitoringTarget(osmMonitoringTarget, osmProtocol);
+    }
+
+    private SimpleScene.IposConfigWrapper createConfigWrapperFromOSMMonitoringTarget(String monitoringTaskId, String protocol) {
+        String monitoringRequest = String.format(OSM.OSM_MONREQ, protocol, monitoringTaskId);
+        try {
+            return ProtoJsonMap.fromJson(monitoringRequest, SimpleScene.IposConfigWrapper.class);
+        } catch (InvalidProtocolBufferException e) {
+            LOG.info("Warning: IPos-IPS could not be configured properly, as there was a MonitoringTarget that no ConfigWrapper could be created from.");
+            return null;
+        }
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/osm/OSMExtInputMqtt.java b/src/main/java/ipos/project/iposextension/osm/OSMExtInputMqtt.java
new file mode 100644
index 0000000000000000000000000000000000000000..0f93598bc86170ddfb08d995818fc3b59ea1bcc7
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/osm/OSMExtInputMqtt.java
@@ -0,0 +1,41 @@
+package ipos.project.iposextension.osm;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMMonitoringTarget;
+import ipos.project.config.mqtt.Handler;
+import ipos.project.config.mqtt.MqttListener;
+import ipos.project.devkit.utility.ExternalPubServiceImpl;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
+@MqttListener(OSM.TOPIC_OSM_ENVIRONMENT)
+public class OSMExtInputMqtt implements Handler {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    private static ExternalPubServiceImpl mqttService;
+    public static void setMqttService(ExternalPubServiceImpl mqttService) {
+        OSMExtInputMqtt.mqttService = mqttService;
+    }
+
+  @Override
+    public void handle(MqttMessage message) {
+        handleOsmExtInput(message.toString());
+    }
+
+    public static void handleOsmExtInput(String jsonMsg) {
+        ipos.models.OSM.OSMExtInputWrapper osmInputWrapper = null;
+        try {
+            osmInputWrapper = ProtoJsonMap.fromJson(jsonMsg, ipos.models.OSM.OSMExtInputWrapper.class);
+        } catch (InvalidProtocolBufferException e) {
+            e.printStackTrace();
+        }
+        osmInputWrapper.getMonitoringTargetsList().forEach(osmMonitoringTarget -> handleOsmMonitoringTarget(osmMonitoringTarget));
+    }
+
+    private static void handleOsmMonitoringTarget(ipos.models.OSM.OSMMonitoringTarget monitoringTarget_proto) {
+        OSMMonitoringTarget osmMonitoringTarget_internal = OSMTrans.osmMonTarget_proto2internal(monitoringTarget_proto);
+        OSM.handleOSMMonitoringTarget(osmMonitoringTarget_internal);
+    }
+}
diff --git a/src/main/java/ipos/project/iposextension/osm/OSMExtOutputMqtt.java b/src/main/java/ipos/project/iposextension/osm/OSMExtOutputMqtt.java
new file mode 100644
index 0000000000000000000000000000000000000000..f5bbfa61938f007094e2438beed6a10e1e2ebcd5
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/osm/OSMExtOutputMqtt.java
@@ -0,0 +1,36 @@
+package ipos.project.iposextension.osm;
+
+import ipos.models.OSM;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject;
+import ipos.project.config.mqtt.Handler;
+import ipos.project.config.mqtt.MqttListener;
+import ipos.project.devkit.utility.ExternalPubServiceImpl;
+import ipos.project.devkit.utility.OtherUtility;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
+@MqttListener("")
+public class OSMExtOutputMqtt implements Handler {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    private static ExternalPubServiceImpl mqttService;
+    public static void setMqttService(ExternalPubServiceImpl mqttService) {
+        OSMExtOutputMqtt.mqttService = mqttService;
+    }
+
+   @Override
+    public void handle(MqttMessage message) {}
+
+    public static void transmitOSMObject(OSMObject osmObject, String topic, String serializationType){
+        OSM.OSMObject osmObject_proto = OSMTrans.osmObject_internal2proto(osmObject);
+        logging_osm(topic, serializationType, osmObject_proto);
+        OtherUtility.publishRespectingSerializationType(topic, serializationType, osmObject_proto);
+    }
+
+    private static void logging_osm(String topic, String serializationType, OSM.OSMObject osmObject_proto) {
+        LOG.info("OSM: Publishing " + osmObject_proto.getClass().getName() + " on topic " + topic + " with serialization type " + serializationType);
+        LOG.info("OSM: ");
+    }
+
+}
diff --git a/src/main/java/ipos/project/iposextension/osm/OSMIPosMonitoringWrapperMqtt.java b/src/main/java/ipos/project/iposextension/osm/OSMIPosMonitoringWrapperMqtt.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a15660c8500915864e6c6a3248d0dabef357fb2
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/osm/OSMIPosMonitoringWrapperMqtt.java
@@ -0,0 +1,54 @@
+package ipos.project.iposextension.osm;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import ipos.models.SimpleScene;
+import ipos.project.DataModellntegration.iPos_Datamodel.OSM.OSMObject;
+import ipos.project.config.mqtt.Handler;
+import ipos.project.config.mqtt.MqttListener;
+import ipos.project.devkit.utility.ExternalPubServiceImpl;
+import ipos.project.devkit.utility.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
+@MqttListener(OSMExt.TOPIC_OSM_EXT)
+public class OSMIPosMonitoringWrapperMqtt implements Handler {
+
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
+
+    private static ExternalPubServiceImpl mqttService;
+    public static void setMqttService(ExternalPubServiceImpl mqttService) {
+        OSMIPosMonitoringWrapperMqtt.mqttService = mqttService;
+    }
+
+    // für den generierten code ggf. noch eine höhere Wrapper-Ebene vorsehen: IPosInputWrapper (enthält sowohl PositionWrapper, als auch RawdataWrapper)
+    // für den generierten code auch vorsehen: eigene XMqtt-Klasse für jeden Wrapper generieren der empfangen werden können soll.
+    // Also eine Klasse für den IPosInputWrapper und eine andere Klasse für den IPosToozExtInputWrapper. Für die Wrapper-Abbildung in EMF ggf. mit Packages arbeiten
+    // Es gibt Wrapper die nur ausgehende Nachrichten beinhalten (z.B. bei der tooz-Anwendung: ToozExtOutputWrapper), man muss beim Generieren festlegen können ob
+    // die Wrapper-Nachrichten überhaupt empfangen werden sollen
+    @Override
+    public void handle(MqttMessage message) {
+        handleIPosMonitoringWrapper(message.toString());
+    }
+
+    // generierter code: grundsätzlich für jede mögliche Nachricht etwas generieren, nicht nur für IPosUWBEvent
+    private void handleIPosMonitoringWrapper(String jsonMsg) {
+        try {
+            SimpleScene.IposMonitoringWrapper iPosMonitoringWrapper = ProtoJsonMap.fromJson(jsonMsg, SimpleScene.IposMonitoringWrapper.class);
+            iPosMonitoringWrapper.getIposMsgRcvEventList().stream().forEach(iposMsgRcvEvent -> this.handleIPosMsgRcvEvent(iposMsgRcvEvent));
+            iPosMonitoringWrapper.getIposPositionEventsList().stream().forEach(iposPositionEvent -> this.handleIPosPositionEvent(iposPositionEvent));
+        } catch (InvalidProtocolBufferException e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void handleIPosMsgRcvEvent(SimpleScene.IposMsgRcvEvent iPosMsgRcvEvent_proto) {
+        OSMObject osmObject_internal = OSMTrans.msgRcvEv_proto2OSMObject(iPosMsgRcvEvent_proto);
+        OSM.handleOSMObject(osmObject_internal);
+    }
+
+    private void handleIPosPositionEvent(SimpleScene.IposPositionEvent iPosPositionEvent_proto) {
+        OSMObject osmObject_internal = OSMTrans.posEv_proto2OSMObject(iPosPositionEvent_proto);
+        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
new file mode 100644
index 0000000000000000000000000000000000000000..c771b1a725491ebbcd1421a1e602976eb712e8f8
--- /dev/null
+++ b/src/main/java/ipos/project/iposextension/osm/OSMTrans.java
@@ -0,0 +1,35 @@
+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;
+
+public class OSMTrans {
+    private static IPosDevKitFactory devKitFactory = IPosDevKitFactory.eINSTANCE;
+    private static OSMFactory osmFactory = OSMFactory.eINSTANCE;
+
+    public static OSMMonitoringTarget osmMonTarget_proto2internal(OSM.OSMMonitoringTarget osmMonitoringTarget_proto) {
+        OSMMonitoringTarget osmMonitoringTarget_internal = osmFactory.createOSMMonitoringTarget();
+        osmMonitoringTarget_internal.setMonitoringTaskId(osmMonitoringTarget_proto.getMonitorintTaskId());
+        osmMonitoringTarget_internal.setProtocol(osmMonitoringTarget_proto.getProtocol());
+        return osmMonitoringTarget_internal;
+    }
+
+   public static OSM.OSMObject osmObject_internal2proto(OSMObject osmObject) {
+       OSM.OSMObject.Builder osmObject_proto = OSM.OSMObject.newBuilder();
+       return osmObject_proto.build();
+   }
+
+    public static OSMObject msgRcvEv_proto2OSMObject(SimpleScene.IposMsgRcvEvent iPosMsgRcvEvent_proto) {
+        OSMObject osmObject_internal = osmFactory.createOSMObject();
+        return osmObject_internal;
+    }
+
+    public static OSMObject posEv_proto2OSMObject(SimpleScene.IposPositionEvent iPosPositionEvent_proto) {
+        OSMObject osmObject_internal = osmFactory.createOSMObject();
+        return osmObject_internal;
+    }
+}