diff --git a/org.fortiss.af3.platform.raspberry.ui/trunk/plugin.xml b/org.fortiss.af3.platform.raspberry.ui/trunk/plugin.xml index ad58509fe517bb860cc97184bb5483f78b07de61..e1589e6fe24da1f23c0da786ae2091f7cea4d728 100644 --- a/org.fortiss.af3.platform.raspberry.ui/trunk/plugin.xml +++ b/org.fortiss.af3.platform.raspberry.ui/trunk/plugin.xml @@ -53,6 +53,9 @@ </modelElementClass> <modelElementClass modelElementClass="org.fortiss.af3.platform.raspberry.model.gamepad.GamepadReceiverBase"> + </modelElementClass> + <modelElementClass + modelElementClass="org.fortiss.af3.platform.raspberry.model.brick.UIDUnit"> </modelElementClass> </editPartFactory> </extension> @@ -136,6 +139,33 @@ modelElementClass="org.fortiss.af3.platform.raspberry.model.gamepad.Right_StickY_Position"> </modelElementClass> </modelElementHandler> + <modelElementHandler + handler="org.fortiss.af3.platform.raspberry.ui.handler.BrickletHandler"> + <modelElementClass + modelElementClass="org.fortiss.af3.platform.raspberry.model.brick.UltraSonicSensor"> + </modelElementClass> + <modelElementClass + modelElementClass="org.fortiss.af3.platform.raspberry.model.brick.LaserRangeSensor"> + </modelElementClass> + <modelElementClass + modelElementClass="org.fortiss.af3.platform.raspberry.model.brick.AccelerationXSensor"> + </modelElementClass> + <modelElementClass + modelElementClass="org.fortiss.af3.platform.raspberry.model.brick.AccelerationYSensor"> + </modelElementClass> + <modelElementClass + modelElementClass="org.fortiss.af3.platform.raspberry.model.brick.AccelerationZSensor"> + </modelElementClass> + <modelElementClass + modelElementClass="org.fortiss.af3.platform.raspberry.model.brick.AngularVelocityXSensor"> + </modelElementClass> + <modelElementClass + modelElementClass="org.fortiss.af3.platform.raspberry.model.brick.AngularVelocityYSensor"> + </modelElementClass> + <modelElementClass + modelElementClass="org.fortiss.af3.platform.raspberry.model.brick.AngularVelocityZSensor"> + </modelElementClass> + </modelElementHandler> </extension> <extension point="org.eclipse.ui.views.properties.tabbed.propertySections"> diff --git a/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/editpart/EditPartFactory.java b/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/editpart/EditPartFactory.java index 4646b8749a472a39550e4721546e027893448b87..24a0eda75bfe43d2bed7ffbb7a50486b2ba3f1db 100644 --- a/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/editpart/EditPartFactory.java +++ b/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/editpart/EditPartFactory.java @@ -24,6 +24,7 @@ import org.fortiss.af3.platform.raspberry.model.ActuatorPWM; import org.fortiss.af3.platform.raspberry.model.CanBus; import org.fortiss.af3.platform.raspberry.model.CanConnector; import org.fortiss.af3.platform.raspberry.model.RaspberryPi; +import org.fortiss.af3.platform.raspberry.model.brick.UIDUnit; import org.fortiss.af3.platform.raspberry.model.gamepad.GamepadReceiverBase; import org.fortiss.af3.platform.ui.DefaultStyle; import org.fortiss.af3.platform.ui.editpart.generic.ExecutionUnitEditPart; @@ -60,7 +61,7 @@ public class EditPartFactory implements IEditPartFactory { } else if(model instanceof CanBus) { return new TransmissionUnitDefaultEditPart((CanBus)model); } else if(model instanceof CanConnector || model instanceof ActuatorPWM || - model instanceof GamepadReceiverBase) { + model instanceof GamepadReceiverBase || model instanceof UIDUnit) { return new StickyPlatformConnectorUnitEditPart((PlatformConnectorUnit)model); } return null; diff --git a/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/handler/BrickletHandler.java b/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/handler/BrickletHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..486b777b6ab8164132bef73c684a13c2fb78d16d --- /dev/null +++ b/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/handler/BrickletHandler.java @@ -0,0 +1,40 @@ +/*--------------------------------------------------------------------------+ +$Id$ +| | +| Copyright 2011 ForTISS GmbH | +| | +| Licensed under the Apache License, Version 2.0 (the "License"); | +| you may not use this file except in compliance with the License. | +| You may obtain a copy of the License at | +| | +| http://www.apache.org/licenses/LICENSE-2.0 | +| | +| Unless required by applicable law or agreed to in writing, software | +| distributed under the License is distributed on an "AS IS" BASIS, | +| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | +| See the License for the specific language governing permissions and | +| limitations under the License. | ++--------------------------------------------------------------------------*/ +package org.fortiss.af3.platform.raspberry.ui.handler; + +import static org.fortiss.af3.platform.raspberry.ui.AF3PlatformRaspberryUIActivator.getImageDescriptor; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.fortiss.af3.platform.raspberry.model.brick.UIDUnit; +import org.fortiss.tooling.kernel.ui.extension.base.NamedCommentedModelElementHandlerBase; + +/** + * Handler for {@link UIDUnit}s. + * + * @author hoelzl + * @author $Author$ + * @version $Rev$ + * @ConQAT.Rating GREEN Hash: D80CF94CBBADB4627AAEDA1F34ABF0A5 + */ +public class BrickletHandler extends NamedCommentedModelElementHandlerBase<UIDUnit> { + /** {@inheritDoc} */ + @Override + public ImageDescriptor getIconImageDescriptor() { + return getImageDescriptor("icons/unknown.png"); + } +} diff --git a/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/prototype/ProtoypeProvider.java b/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/prototype/ProtoypeProvider.java index def32a99b41ce4f02c405774ee7f3fa6533047a6..e3488ad5459c5316a1c21b52ecd2cf6b027eff3c 100644 --- a/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/prototype/ProtoypeProvider.java +++ b/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/prototype/ProtoypeProvider.java @@ -28,6 +28,14 @@ import org.fortiss.af3.platform.raspberry.model.ActuatorPWM; import org.fortiss.af3.platform.raspberry.model.CanBus; import org.fortiss.af3.platform.raspberry.model.CanConnector; import org.fortiss.af3.platform.raspberry.model.RaspberryPi; +import org.fortiss.af3.platform.raspberry.model.brick.AccelerationXSensor; +import org.fortiss.af3.platform.raspberry.model.brick.AccelerationYSensor; +import org.fortiss.af3.platform.raspberry.model.brick.AccelerationZSensor; +import org.fortiss.af3.platform.raspberry.model.brick.AngularVelocityXSensor; +import org.fortiss.af3.platform.raspberry.model.brick.AngularVelocityYSensor; +import org.fortiss.af3.platform.raspberry.model.brick.AngularVelocityZSensor; +import org.fortiss.af3.platform.raspberry.model.brick.LaserRangeSensor; +import org.fortiss.af3.platform.raspberry.model.brick.UltraSonicSensor; import org.fortiss.af3.platform.raspberry.model.gamepad.Button1; import org.fortiss.af3.platform.raspberry.model.gamepad.Button2; import org.fortiss.af3.platform.raspberry.model.gamepad.Button3; @@ -57,6 +65,8 @@ public class ProtoypeProvider extends PrototypeProviderBase { protected final static String CATEGORY_NAME = "RaspberryPI Platform"; /** Category for gamepad elements. */ protected final static String GAMEPAD = "Gamepad"; + /** Category for brick elements. */ + protected final static String BRICK = "Bricklets"; /** {@inheritDoc} */ @Override @@ -65,6 +75,7 @@ public class ProtoypeProvider extends PrototypeProviderBase { registerPrimaryPrototype("RaspberryPi", pi, CATEGORY_NAME); PrototypeCategory prototypeCategory = registerPrototypeCategory(CATEGORY_NAME); registerPrototypeCategory(prototypeCategory, GAMEPAD); + registerPrototypeCategory(prototypeCategory, BRICK); CanBus bus = RaspberryModelElementFactory.createCanBus(); setNodeBounds(bus, @@ -140,5 +151,45 @@ public class ProtoypeProvider extends PrototypeProviderBase { setNodePosition(Right_StickY, 0, 0); setConnectorPosition(Right_StickY, 0, 0); registerPrototype(Right_StickY.getName(), Right_StickY, GAMEPAD); + + UltraSonicSensor uss = RaspberryModelElementFactory.createUltraSonicSensor(); + setNodePosition(uss, 0, 0); + setConnectorPosition(uss, 0, 0); + registerPrototype(uss.getName(), uss, BRICK); + + LaserRangeSensor lsr = RaspberryModelElementFactory.createLaserRangeSensor(); + setNodePosition(lsr, 0, 0); + setConnectorPosition(lsr, 0, 0); + registerPrototype(lsr.getName(), lsr, BRICK); + + AccelerationXSensor accX = RaspberryModelElementFactory.createAccelerationXSensor(); + setNodePosition(accX, 0, 0); + setConnectorPosition(accX, 0, 0); + registerPrototype(accX.getName(), accX, BRICK); + + AccelerationYSensor accY = RaspberryModelElementFactory.createAccelerationYSensor(); + setNodePosition(accY, 0, 0); + setConnectorPosition(accY, 0, 0); + registerPrototype(accY.getName(), accY, BRICK); + + AccelerationZSensor accZ = RaspberryModelElementFactory.createAccelerationZSensor(); + setNodePosition(accZ, 0, 0); + setConnectorPosition(accZ, 0, 0); + registerPrototype(accZ.getName(), accZ, BRICK); + + AngularVelocityXSensor avX = RaspberryModelElementFactory.createAngularVelocityXSensor(); + setNodePosition(avX, 0, 0); + setConnectorPosition(avX, 0, 0); + registerPrototype(avX.getName(), avX, BRICK); + + AngularVelocityYSensor avY = RaspberryModelElementFactory.createAngularVelocityYSensor(); + setNodePosition(avY, 0, 0); + setConnectorPosition(avY, 0, 0); + registerPrototype(avY.getName(), avY, BRICK); + + AngularVelocityZSensor avZ = RaspberryModelElementFactory.createAngularVelocityZSensor(); + setNodePosition(avZ, 0, 0); + setConnectorPosition(avZ, 0, 0); + registerPrototype(avZ.getName(), avZ, BRICK); } } diff --git a/org.fortiss.af3.platform.raspberry/trunk/META-INF/MANIFEST.MF b/org.fortiss.af3.platform.raspberry/trunk/META-INF/MANIFEST.MF index 9f97ce07e6905a508c7f9d989757ac3123fb35d1..857b6c71324f66b9ff9b62e16d0ff510e79a3b66 100644 --- a/org.fortiss.af3.platform.raspberry/trunk/META-INF/MANIFEST.MF +++ b/org.fortiss.af3.platform.raspberry/trunk/META-INF/MANIFEST.MF @@ -7,9 +7,15 @@ Bundle-ClassPath: . Bundle-Vendor: fortiss GmbH Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Export-Package: - org.fortiss.af3.platform.raspberry.model, +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.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.util, org.fortiss.af3.platform.raspberry.util Bundle-ActivationPolicy: lazy Bundle-Activator: org.fortiss.af3.platform.raspberry.AF3PlatformRaspberryActivator @@ -18,7 +24,7 @@ Require-Bundle: org.fortiss.af3.project, org.eclipse.core.runtime, org.eclipse.emf.ecore;visibility:=reexport, org.fortiss.tooling.base;visibility:=reexport, - org.fortiss.af3.platform;bundle-version="2.5.0";visibility:=reexport, + org.fortiss.af3.platform;visibility:=reexport;bundle-version="2.5.0", org.fortiss.tooling.base.ui;bundle-version="2.11.0", org.fortiss.af3.generator.common Import-Package: org.fortiss.af3.deployment.generator, diff --git a/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.ecore b/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.ecore index 44a3fbbb4c8fb21e6976a035df705d37a5dca681..57ac13db00116da2ce7d4ca5c2c5a70296797d0e 100644 --- a/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.ecore +++ b/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.ecore @@ -2,25 +2,25 @@ <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http://www.fortiss.org/af3/platform/raspberry" nsPrefix="org-fortiss-af3-platform-raspberry"> - <eClassifiers xsi:type="ecore:EClass" name="RaspberryPi" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//ExecutionUnit"> + <eClassifiers xsi:type="ecore:EClass" name="RaspberryPi" eSuperTypes="../../org.fortiss.af3.platform/model/platform.ecore#//ExecutionUnit"> <eStructuralFeatures xsi:type="ecore:EAttribute" name="canCoordinationID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> <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"/> </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="CanBus" eSuperTypes="../../org.fortiss.af3.platform/model/platform.ecore#//TransmissionUnit"/> + <eClassifiers xsi:type="ecore:EClass" name="CanConnector" eSuperTypes="../../org.fortiss.af3.platform/model/platform.ecore#//Transceiver"/> + <eClassifiers xsi:type="ecore:EClass" name="ActuatorPWM" eSuperTypes="../../org.fortiss.af3.platform/model/platform.ecore#//Transmitter"> <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="ActuatorDigits" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Transmitter"> + <eClassifiers xsi:type="ecore:EClass" name="ActuatorDigits" eSuperTypes="../../org.fortiss.af3.platform/model/platform.ecore#//Transmitter"> <eStructuralFeatures xsi:type="ecore:EAttribute" name="showHexValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueBrickletID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> </eClassifiers> <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" - eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Receiver"/> + eSuperTypes="../../org.fortiss.af3.platform/model/platform.ecore#//Receiver"/> <eClassifiers xsi:type="ecore:EClass" name="Button1" eSuperTypes="#//gamepad/GamepadReceiverBase"/> <eClassifiers xsi:type="ecore:EClass" name="Button2" eSuperTypes="#//gamepad/GamepadReceiverBase"/> <eClassifiers xsi:type="ecore:EClass" name="Button3" eSuperTypes="#//gamepad/GamepadReceiverBase"/> @@ -34,4 +34,18 @@ <eClassifiers xsi:type="ecore:EClass" name="Right_StickX_Position" eSuperTypes="#//gamepad/GamepadReceiverBase"/> <eClassifiers xsi:type="ecore:EClass" name="Right_StickY_Position" eSuperTypes="#//gamepad/GamepadReceiverBase"/> </eSubpackages> + <eSubpackages name="brick" nsURI="http://www.fortiss.org/af3/platform/raspberry/brick" + nsPrefix="org-fortiss-af3-platform-raspberry"> + <eClassifiers xsi:type="ecore:EClass" name="UIDUnit" abstract="true" eSuperTypes="../../org.fortiss.tooling.kernel/model/kernel.ecore#//INamedCommentedElement"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueBrickletID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="UltraSonicSensor" eSuperTypes="../../org.fortiss.af3.platform/model/platform.ecore#//Receiver #//brick/UIDUnit"/> + <eClassifiers xsi:type="ecore:EClass" name="LaserRangeSensor" eSuperTypes="../../org.fortiss.af3.platform/model/platform.ecore#//Receiver #//brick/UIDUnit"/> + <eClassifiers xsi:type="ecore:EClass" name="AccelerationXSensor" eSuperTypes="../../org.fortiss.af3.platform/model/platform.ecore#//Receiver #//brick/UIDUnit"/> + <eClassifiers xsi:type="ecore:EClass" name="AccelerationYSensor" eSuperTypes="../../org.fortiss.af3.platform/model/platform.ecore#//Receiver #//brick/UIDUnit"/> + <eClassifiers xsi:type="ecore:EClass" name="AccelerationZSensor" eSuperTypes="../../org.fortiss.af3.platform/model/platform.ecore#//Receiver #//brick/UIDUnit"/> + <eClassifiers xsi:type="ecore:EClass" name="AngularVelocityXSensor" eSuperTypes="../../org.fortiss.af3.platform/model/platform.ecore#//Receiver #//brick/UIDUnit"/> + <eClassifiers xsi:type="ecore:EClass" name="AngularVelocityYSensor" eSuperTypes="../../org.fortiss.af3.platform/model/platform.ecore#//Receiver #//brick/UIDUnit"/> + <eClassifiers xsi:type="ecore:EClass" name="AngularVelocityZSensor" eSuperTypes="../../org.fortiss.af3.platform/model/platform.ecore#//Receiver #//brick/UIDUnit"/> + </eSubpackages> </ecore:EPackage> diff --git a/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.genmodel b/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.genmodel index df5f346bffd6f846d3637cc96d92a59c499a0edc..72acf71783029259a1b5a201a19b429f45b06f00 100644 --- a/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.genmodel +++ b/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.genmodel @@ -38,5 +38,19 @@ <genClasses ecoreClass="raspberry.ecore#//gamepad/Right_StickX_Position"/> <genClasses ecoreClass="raspberry.ecore#//gamepad/Right_StickY_Position"/> </nestedGenPackages> + <nestedGenPackages prefix="Brick" basePackage="org.fortiss.af3.platform.raspberry.model" + disposableProviderFactory="true" ecorePackage="raspberry.ecore#//brick"> + <genClasses image="false" ecoreClass="raspberry.ecore#//brick/UIDUnit"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute raspberry.ecore#//brick/UIDUnit/uniqueBrickletID"/> + </genClasses> + <genClasses ecoreClass="raspberry.ecore#//brick/UltraSonicSensor"/> + <genClasses ecoreClass="raspberry.ecore#//brick/LaserRangeSensor"/> + <genClasses ecoreClass="raspberry.ecore#//brick/AccelerationXSensor"/> + <genClasses ecoreClass="raspberry.ecore#//brick/AccelerationYSensor"/> + <genClasses ecoreClass="raspberry.ecore#//brick/AccelerationZSensor"/> + <genClasses ecoreClass="raspberry.ecore#//brick/AngularVelocityXSensor"/> + <genClasses ecoreClass="raspberry.ecore#//brick/AngularVelocityYSensor"/> + <genClasses ecoreClass="raspberry.ecore#//brick/AngularVelocityZSensor"/> + </nestedGenPackages> </genPackages> </genmodel:GenModel> diff --git a/org.fortiss.af3.platform.raspberry/trunk/plugin.xml b/org.fortiss.af3.platform.raspberry/trunk/plugin.xml index 8ac1231bbc870190b03a506426d5ff5283c61f9f..bc4e1ce24df668ba3c4ebca15975b91b839ab1e7 100644 --- a/org.fortiss.af3.platform.raspberry/trunk/plugin.xml +++ b/org.fortiss.af3.platform.raspberry/trunk/plugin.xml @@ -26,6 +26,14 @@ genModel="model/raspberry.genmodel"/> </extension> + <extension point="org.eclipse.emf.ecore.generated_package"> + <!-- @generated raspberry --> + <package + uri="http://www.fortiss.org/af3/platform/raspberry/brick" + class="org.fortiss.af3.platform.raspberry.model.brick.BrickPackage" + genModel="model/raspberry.genmodel"/> + </extension> + <extension point="org.fortiss.tooling.kernel.modelElementCompositor"> <modelElementCompositor diff --git a/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/compose/RaspberryPiCompositor.java b/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/compose/RaspberryPiCompositor.java index 3fd109ea6aecbadae1f74a6e2c9811c091da4b2a..a29cc1c53da25ad6dfeb32648602f16a00c52aef 100644 --- a/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/compose/RaspberryPiCompositor.java +++ b/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/compose/RaspberryPiCompositor.java @@ -25,6 +25,14 @@ import org.fortiss.af3.platform.model.IPlatformArchitectureElement; import org.fortiss.af3.platform.raspberry.model.ActuatorPWM; import org.fortiss.af3.platform.raspberry.model.CanConnector; import org.fortiss.af3.platform.raspberry.model.RaspberryPi; +import org.fortiss.af3.platform.raspberry.model.brick.AccelerationXSensor; +import org.fortiss.af3.platform.raspberry.model.brick.AccelerationYSensor; +import org.fortiss.af3.platform.raspberry.model.brick.AccelerationZSensor; +import org.fortiss.af3.platform.raspberry.model.brick.AngularVelocityXSensor; +import org.fortiss.af3.platform.raspberry.model.brick.AngularVelocityYSensor; +import org.fortiss.af3.platform.raspberry.model.brick.AngularVelocityZSensor; +import org.fortiss.af3.platform.raspberry.model.brick.LaserRangeSensor; +import org.fortiss.af3.platform.raspberry.model.brick.UltraSonicSensor; import org.fortiss.af3.platform.raspberry.model.gamepad.Button1; import org.fortiss.af3.platform.raspberry.model.gamepad.Button2; import org.fortiss.af3.platform.raspberry.model.gamepad.Button3; @@ -72,7 +80,11 @@ public class RaspberryPiCompositor extends Button2.class, Button3.class, Button4.class, ButtonL1.class, ButtonL2.class, ButtonR1.class, ButtonR2.class, Left_StickX_Position.class, Left_StickY_Position.class, Right_StickX_Position.class, - Right_StickY_Position.class); + Right_StickY_Position.class, UltraSonicSensor.class, + LaserRangeSensor.class, AccelerationXSensor.class, + AccelerationYSensor.class, AccelerationZSensor.class, + AngularVelocityXSensor.class, AngularVelocityYSensor.class, + AngularVelocityZSensor.class); if(container != null) { final boolean instanceOfAny = isInstanceOfAny(container, RaspberryPi.class); return instanceOfAny && instanceOfAny2; diff --git a/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/util/RaspberryModelElementFactory.java b/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/util/RaspberryModelElementFactory.java index f2364e535ed7292f21d54cbe23d7fba321838e71..0371ab9a5fcaba0c25af961c3dc922c3e10a731a 100644 --- a/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/util/RaspberryModelElementFactory.java +++ b/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/util/RaspberryModelElementFactory.java @@ -24,6 +24,15 @@ import org.fortiss.af3.platform.raspberry.model.CanBus; import org.fortiss.af3.platform.raspberry.model.CanConnector; import org.fortiss.af3.platform.raspberry.model.RaspberryPi; import org.fortiss.af3.platform.raspberry.model.RaspberryPiModelFactory; +import org.fortiss.af3.platform.raspberry.model.brick.AccelerationXSensor; +import org.fortiss.af3.platform.raspberry.model.brick.AccelerationYSensor; +import org.fortiss.af3.platform.raspberry.model.brick.AccelerationZSensor; +import org.fortiss.af3.platform.raspberry.model.brick.AngularVelocityXSensor; +import org.fortiss.af3.platform.raspberry.model.brick.AngularVelocityYSensor; +import org.fortiss.af3.platform.raspberry.model.brick.AngularVelocityZSensor; +import org.fortiss.af3.platform.raspberry.model.brick.BrickFactory; +import org.fortiss.af3.platform.raspberry.model.brick.LaserRangeSensor; +import org.fortiss.af3.platform.raspberry.model.brick.UltraSonicSensor; import org.fortiss.af3.platform.raspberry.model.gamepad.Button1; import org.fortiss.af3.platform.raspberry.model.gamepad.Button2; import org.fortiss.af3.platform.raspberry.model.gamepad.Button3; @@ -180,4 +189,68 @@ public class RaspberryModelElementFactory { createConnectorLayout(button); return button; } + + /** Creates a {@link UltraSonicSensor}. */ + public static UltraSonicSensor createUltraSonicSensor() { + UltraSonicSensor sensor = BrickFactory.eINSTANCE.createUltraSonicSensor(); + sensor.setName("UltraSonicSensor"); + createConnectorLayout(sensor); + return sensor; + } + + /** Creates a {@link LaserRangeSensor}. */ + public static LaserRangeSensor createLaserRangeSensor() { + LaserRangeSensor sensor = BrickFactory.eINSTANCE.createLaserRangeSensor(); + sensor.setName("LaserRangeSensor"); + createConnectorLayout(sensor); + return sensor; + } + + /** Creates a {@link AccelerationXSensor}. */ + public static AccelerationXSensor createAccelerationXSensor() { + AccelerationXSensor sensor = BrickFactory.eINSTANCE.createAccelerationXSensor(); + sensor.setName("AccelerationSensorX"); + createConnectorLayout(sensor); + return sensor; + } + + /** Creates a {@link AccelerationYSensor}. */ + public static AccelerationYSensor createAccelerationYSensor() { + AccelerationYSensor sensor = BrickFactory.eINSTANCE.createAccelerationYSensor(); + sensor.setName("AccelerationSensorY"); + createConnectorLayout(sensor); + return sensor; + } + + /** Creates a {@link AccelerationZSensor}. */ + public static AccelerationZSensor createAccelerationZSensor() { + AccelerationZSensor sensor = BrickFactory.eINSTANCE.createAccelerationZSensor(); + sensor.setName("AccelerationSensorZ"); + createConnectorLayout(sensor); + return sensor; + } + + /** Creates a {@link AngularVelocityXSensor}. */ + public static AngularVelocityXSensor createAngularVelocityXSensor() { + AngularVelocityXSensor sensor = BrickFactory.eINSTANCE.createAngularVelocityXSensor(); + sensor.setName("AngularVelocitySensorX"); + createConnectorLayout(sensor); + return sensor; + } + + /** Creates a {@link AngularVelocityYSensor}. */ + public static AngularVelocityYSensor createAngularVelocityYSensor() { + AngularVelocityYSensor sensor = BrickFactory.eINSTANCE.createAngularVelocityYSensor(); + sensor.setName("AngularVelocitySensorY"); + createConnectorLayout(sensor); + return sensor; + } + + /** Creates a {@link AngularVelocityZSensor}. */ + public static AngularVelocityZSensor createAngularVelocityZSensor() { + AngularVelocityZSensor sensor = BrickFactory.eINSTANCE.createAngularVelocityZSensor(); + sensor.setName("AngularVelocitySensorZ"); + createConnectorLayout(sensor); + return sensor; + } }