From 01898132b7683e1adcd326c88a5ce29fc1ff77cf Mon Sep 17 00:00:00 2001
From: Martin Eisenmann <eisenmann@fortiss.org>
Date: Wed, 9 May 2018 15:48:25 +0200
Subject: [PATCH] First commit

---
 .../META-INF/MANIFEST.MF                      |  9 +++++-
 .../model/raspberry.ecore                     | 26 +++++++++++++++--
 .../model/raspberry.genmodel                  | 28 ++++++++++++++++---
 org.fortiss.af3.platform.raspberry/plugin.xml | 16 +++++++++++
 4 files changed, 72 insertions(+), 7 deletions(-)

diff --git a/org.fortiss.af3.platform.raspberry/META-INF/MANIFEST.MF b/org.fortiss.af3.platform.raspberry/META-INF/MANIFEST.MF
index e8655740..3287d0c5 100644
--- a/org.fortiss.af3.platform.raspberry/META-INF/MANIFEST.MF
+++ b/org.fortiss.af3.platform.raspberry/META-INF/MANIFEST.MF
@@ -11,10 +11,16 @@ Export-Package: org.fortiss.af3.platform.raspberry.model,
  org.fortiss.af3.platform.raspberry.model.brick,
  org.fortiss.af3.platform.raspberry.model.brick.impl,
  org.fortiss.af3.platform.raspberry.model.brick.util,
+ org.fortiss.af3.platform.raspberry.model.camera,
+ org.fortiss.af3.platform.raspberry.model.camera.impl,
+ org.fortiss.af3.platform.raspberry.model.camera.util,
  org.fortiss.af3.platform.raspberry.model.gamepad,
  org.fortiss.af3.platform.raspberry.model.gamepad.impl,
  org.fortiss.af3.platform.raspberry.model.gamepad.util,
  org.fortiss.af3.platform.raspberry.model.impl,
+ org.fortiss.af3.platform.raspberry.model.motorcontrol,
+ org.fortiss.af3.platform.raspberry.model.motorcontrol.impl,
+ org.fortiss.af3.platform.raspberry.model.motorcontrol.util,
  org.fortiss.af3.platform.raspberry.model.rumblepad,
  org.fortiss.af3.platform.raspberry.model.rumblepad.impl,
  org.fortiss.af3.platform.raspberry.model.rumblepad.util,
@@ -32,7 +38,8 @@ Require-Bundle: org.fortiss.af3.project;visibility:=reexport,
  org.fortiss.tooling.base;visibility:=reexport,
  org.fortiss.af3.platform;bundle-version="2.5.0";visibility:=reexport,
  org.fortiss.tooling.base.ui;bundle-version="2.11.0",
- org.fortiss.af3.generator.common
+ org.fortiss.af3.generator.common,
+ org.fortiss.af3.deployment;bundle-version="2.13.0"
 Import-Package: org.fortiss.af3.deployment.generator,
  org.fortiss.af3.platform.model
 
diff --git a/org.fortiss.af3.platform.raspberry/model/raspberry.ecore b/org.fortiss.af3.platform.raspberry/model/raspberry.ecore
index d4ea7cdd..2a877409 100644
--- a/org.fortiss.af3.platform.raspberry/model/raspberry.ecore
+++ b/org.fortiss.af3.platform.raspberry/model/raspberry.ecore
@@ -7,13 +7,19 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="ipAddress" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="coordinatorUnit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="cycleTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cameraServerAddress" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cameraServerPort" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CanBus" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//TransmissionUnit"/>
   <eClassifiers xsi:type="ecore:EClass" name="CanConnector" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Transceiver"/>
-  <eClassifiers xsi:type="ecore:EClass" name="ActuatorPWM" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Transmitter">
+  <eClassifiers xsi:type="ecore:EClass" name="ActuatorPWM" eSuperTypes="#//RaspberryPiTransmitterBase">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="channelID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ConsoleOutput" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Transmitter"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ConsoleOutput" eSuperTypes="#//RaspberryPiTransmitterBase"/>
+  <eClassifiers xsi:type="ecore:EClass" name="RaspberryPiTransmitterBase" abstract="true"
+      eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Transmitter"/>
+  <eClassifiers xsi:type="ecore:EClass" name="RaspberryPiReceiverBase" abstract="true"
+      eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Receiver"/>
   <eSubpackages name="gamepad" nsURI="http://www.fortiss.org/af3/platform/raspberry/gamepad"
       nsPrefix="org-fortiss-af3-platform-raspberry-gamepad">
     <eClassifiers xsi:type="ecore:EClass" name="GamepadReceiverBase" abstract="true"
@@ -47,6 +53,9 @@
     <eClassifiers xsi:type="ecore:EClass" name="ActuatorDigits" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Transmitter #//brick/UIDUnit">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="showHexValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
     </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="LEDButtonRActuator" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Transmitter #//brick/UIDUnit"/>
+    <eClassifiers xsi:type="ecore:EClass" name="LEDButtonGActuator" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Transmitter #//brick/UIDUnit"/>
+    <eClassifiers xsi:type="ecore:EClass" name="LEDButtonBActuator" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Transmitter #//brick/UIDUnit"/>
   </eSubpackages>
   <eSubpackages name="rumblepad" nsURI="http://www.fortiss.org/af3/platform/raspberry/rumblepad"
       nsPrefix="org-fortiss-af3-platform-raspberry-rumblepad">
@@ -77,4 +86,17 @@
     <eClassifiers xsi:type="ecore:EClass" name="RumbleMagnitudeStrong" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Transmitter"/>
     <eClassifiers xsi:type="ecore:EClass" name="RumbleMagnitudeWeak" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Transmitter"/>
   </eSubpackages>
+  <eSubpackages name="motorcontrol" nsURI="http://www.fortiss.org/af3/platform/raspberry/motorcontrol"
+      nsPrefix="org-fortiss-af3-platform-raspberry-motorcontrol">
+    <eClassifiers xsi:type="ecore:EClass" name="MotorControlInput" eSuperTypes="#//RaspberryPiReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="MotorControlOutput" eSuperTypes="#//RaspberryPiTransmitterBase"/>
+  </eSubpackages>
+  <eSubpackages name="camera" nsURI="http://www.fortiss.org/af3/platform/raspberry/camera"
+      nsPrefix="org-fortiss-af3-platform-raspberry-camera">
+    <eClassifiers xsi:type="ecore:EClass" name="CameraDistanceLeft" eSuperTypes="#//RaspberryPiReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="CameraDistanceRight" eSuperTypes="#//RaspberryPiReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="CameraYawAngle" eSuperTypes="#//RaspberryPiReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="CameraDetectionStateLeft" eSuperTypes="#//RaspberryPiReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="CameraDetectionStateRight" eSuperTypes="#//RaspberryPiReceiverBase"/>
+  </eSubpackages>
 </ecore:EPackage>
diff --git a/org.fortiss.af3.platform.raspberry/model/raspberry.genmodel b/org.fortiss.af3.platform.raspberry/model/raspberry.genmodel
index 0db19dff..5976ed64 100644
--- a/org.fortiss.af3.platform.raspberry/model/raspberry.genmodel
+++ b/org.fortiss.af3.platform.raspberry/model/raspberry.genmodel
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
-    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="(c) 2017 fortiss GmbH. GENERATED CODE: Do not edit, see Ecore metamodel instead!"
-    modelDirectory="/org.fortiss.af3.platform.raspberry/generated-src" modelPluginID="org.fortiss.af3.platform.raspberry"
-    modelName="Raspberry" importerID="org.eclipse.emf.importer.ecore" containmentProxies="true"
-    arrayAccessors="true" complianceLevel="7.0" copyrightFields="false" usedGenPackages="platform:/resource/org.fortiss.tooling.base/model/base.genmodel#//model platform:/resource/org.fortiss.af3.platform/model/platform.genmodel#//model platform:/resource/org.fortiss.tooling.kernel/model/kernel.genmodel#//model platform:/resource/org.fortiss.af3.allocation/model/allocation.genmodel#//model platform:/resource/org.fortiss.af3.component/model/component.genmodel#//model platform:/resource/org.fortiss.af3.project/model/project.genmodel#//model platform:/resource/org.fortiss.af3.expression/model/expression.genmodel#//model">
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.fortiss.af3.platform.raspberry/generated-src"
+    modelPluginID="org.fortiss.af3.platform.raspberry" modelName="Raspberry" importerID="org.eclipse.emf.importer.ecore"
+    containmentProxies="true" arrayAccessors="true" complianceLevel="7.0" copyrightFields="false"
+    usedGenPackages="platform:/resource/org.fortiss.tooling.base/model/base.genmodel#//model platform:/resource/org.fortiss.af3.platform/model/platform.genmodel#//model platform:/resource/org.fortiss.tooling.kernel/model/kernel.genmodel#//model platform:/resource/org.fortiss.af3.allocation/model/allocation.genmodel#//model platform:/resource/org.fortiss.af3.component/model/component.genmodel#//model platform:/resource/org.fortiss.af3.project/model/project.genmodel#//model platform:/resource/org.fortiss.af3.expression/model/expression.genmodel#//model">
   <foreignModel>raspberry.ecore</foreignModel>
   <genPackages prefix="RaspberryPiModel" basePackage="org.fortiss.af3.platform.raspberry"
       disposableProviderFactory="true" ecorePackage="raspberry.ecore#/">
@@ -12,6 +12,8 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute raspberry.ecore#//RaspberryPi/ipAddress"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute raspberry.ecore#//RaspberryPi/coordinatorUnit"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute raspberry.ecore#//RaspberryPi/cycleTime"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute raspberry.ecore#//RaspberryPi/cameraServerAddress"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute raspberry.ecore#//RaspberryPi/cameraServerPort"/>
     </genClasses>
     <genClasses ecoreClass="raspberry.ecore#//CanBus"/>
     <genClasses ecoreClass="raspberry.ecore#//CanConnector"/>
@@ -19,6 +21,8 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute raspberry.ecore#//ActuatorPWM/channelID"/>
     </genClasses>
     <genClasses ecoreClass="raspberry.ecore#//ConsoleOutput"/>
+    <genClasses image="false" ecoreClass="raspberry.ecore#//RaspberryPiTransmitterBase"/>
+    <genClasses image="false" ecoreClass="raspberry.ecore#//RaspberryPiReceiverBase"/>
     <nestedGenPackages prefix="Gamepad" basePackage="org.fortiss.af3.platform.raspberry.model"
         disposableProviderFactory="true" ecorePackage="raspberry.ecore#//gamepad">
       <genClasses image="false" ecoreClass="raspberry.ecore#//gamepad/GamepadReceiverBase"/>
@@ -51,6 +55,9 @@
       <genClasses ecoreClass="raspberry.ecore#//brick/ActuatorDigits">
         <genFeatures createChild="false" ecoreFeature="ecore:EAttribute raspberry.ecore#//brick/ActuatorDigits/showHexValue"/>
       </genClasses>
+      <genClasses ecoreClass="raspberry.ecore#//brick/LEDButtonRActuator"/>
+      <genClasses ecoreClass="raspberry.ecore#//brick/LEDButtonGActuator"/>
+      <genClasses ecoreClass="raspberry.ecore#//brick/LEDButtonBActuator"/>
     </nestedGenPackages>
     <nestedGenPackages prefix="Rumblepad" basePackage="org.fortiss.af3.platform.raspberry.model"
         disposableProviderFactory="true" ecorePackage="raspberry.ecore#//rumblepad">
@@ -80,5 +87,18 @@
       <genClasses ecoreClass="raspberry.ecore#//rumblepad/RumbleMagnitudeStrong"/>
       <genClasses ecoreClass="raspberry.ecore#//rumblepad/RumbleMagnitudeWeak"/>
     </nestedGenPackages>
+    <nestedGenPackages prefix="Motorcontrol" basePackage="org.fortiss.af3.platform.raspberry.model"
+        disposableProviderFactory="true" ecorePackage="raspberry.ecore#//motorcontrol">
+      <genClasses ecoreClass="raspberry.ecore#//motorcontrol/MotorControlInput"/>
+      <genClasses ecoreClass="raspberry.ecore#//motorcontrol/MotorControlOutput"/>
+    </nestedGenPackages>
+    <nestedGenPackages prefix="Camera" basePackage="org.fortiss.af3.platform.raspberry.model"
+        disposableProviderFactory="true" ecorePackage="raspberry.ecore#//camera">
+      <genClasses ecoreClass="raspberry.ecore#//camera/CameraDistanceLeft"/>
+      <genClasses ecoreClass="raspberry.ecore#//camera/CameraDistanceRight"/>
+      <genClasses ecoreClass="raspberry.ecore#//camera/CameraYawAngle"/>
+      <genClasses ecoreClass="raspberry.ecore#//camera/CameraDetectionStateLeft"/>
+      <genClasses ecoreClass="raspberry.ecore#//camera/CameraDetectionStateRight"/>
+    </nestedGenPackages>
   </genPackages>
 </genmodel:GenModel>
diff --git a/org.fortiss.af3.platform.raspberry/plugin.xml b/org.fortiss.af3.platform.raspberry/plugin.xml
index ab3724b0..62127ce5 100644
--- a/org.fortiss.af3.platform.raspberry/plugin.xml
+++ b/org.fortiss.af3.platform.raspberry/plugin.xml
@@ -34,6 +34,22 @@
             genModel="model/raspberry.genmodel"/>
    </extension>
 
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated raspberry -->
+      <package
+            uri="http://www.fortiss.org/af3/platform/raspberry/motorcontrol"
+            class="org.fortiss.af3.platform.raspberry.model.motorcontrol.MotorcontrolPackage"
+            genModel="model/raspberry.genmodel"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated raspberry -->
+      <package
+            uri="http://www.fortiss.org/af3/platform/raspberry/camera"
+            class="org.fortiss.af3.platform.raspberry.model.camera.CameraPackage"
+            genModel="model/raspberry.genmodel"/>
+   </extension>
+
    <extension point="org.eclipse.emf.ecore.generated_package">
       <!-- @generated raspberry -->
       <package
-- 
GitLab