From b467dc2df8566187909b0e2fe9a680c17ea86c3c Mon Sep 17 00:00:00 2001 From: jakobaxelsson Date: Fri, 16 Jan 2015 15:44:18 +0100 Subject: [PATCH] Simulator updates with further ports --- .project | 11 +++++++++++ .../.lck | 0 simulator/configs/system1.xml | 2 +- simulator/src/main/java/fresta/pirte/PIRTE.java | 4 ++++ .../port/instances/VirtualAcceleratorRPort.java | 16 ++++++++++++++++ .../fresta/port/instances/VirtualLEDRPort.java | 3 +++ .../port/instances/VirtualSteeringRPort.java | 16 ++++++++++++++++ simulator/src/main/java/gui/CarModel.java | 13 +++++++++++++ simulator/target/maven-archiver/pom.properties | 2 +- 9 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 .project create mode 100644 simulator/Axelsson1421418945099-tcpioteclipseorg1883/.lck create mode 100644 simulator/src/main/java/fresta/port/instances/VirtualAcceleratorRPort.java create mode 100644 simulator/src/main/java/fresta/port/instances/VirtualSteeringRPort.java diff --git a/.project b/.project new file mode 100644 index 00000000..7cc853fb --- /dev/null +++ b/.project @@ -0,0 +1,11 @@ + + + moped + + + + + + + + diff --git a/simulator/Axelsson1421418945099-tcpioteclipseorg1883/.lck b/simulator/Axelsson1421418945099-tcpioteclipseorg1883/.lck new file mode 100644 index 00000000..e69de29b diff --git a/simulator/configs/system1.xml b/simulator/configs/system1.xml index 1d29c807..353bab5e 100644 --- a/simulator/configs/system1.xml +++ b/simulator/configs/system1.xml @@ -5,7 +5,7 @@ default MOPED SICS - 20UYA31581L000000 + 20JAX31581L000000 diff --git a/simulator/src/main/java/fresta/pirte/PIRTE.java b/simulator/src/main/java/fresta/pirte/PIRTE.java index e8d6c077..360c875a 100644 --- a/simulator/src/main/java/fresta/pirte/PIRTE.java +++ b/simulator/src/main/java/fresta/pirte/PIRTE.java @@ -23,6 +23,8 @@ import fresta.port.instances.VirtualPublishRPort; import fresta.port.instances.VirtualLEDRPort; import fresta.port.instances.VirtualVoltagePPort; +import fresta.port.instances.VirtualAcceleratorRPort; +import fresta.port.instances.VirtualSteeringRPort; import autosar.RTE; import sics.plugin.PlugInComponent; import sics.port.EcuVirtualPPort; @@ -56,6 +58,8 @@ public PIRTE(int id) { this.id = id; vrports.put(0, new VirtualPublishRPort(0)); + vpports.put(new Integer(3), new VirtualAcceleratorRPort(3)); + vpports.put(new Integer(4), new VirtualSteeringRPort(4)); vpports.put(new Integer(5), new VirtualFrontWheelPPort(5)); vpports.put(new Integer(6), new VirtualRearWheelPPort(6)); vpports.put(new Integer(7), new VirtualVoltagePPort(7)); diff --git a/simulator/src/main/java/fresta/port/instances/VirtualAcceleratorRPort.java b/simulator/src/main/java/fresta/port/instances/VirtualAcceleratorRPort.java new file mode 100644 index 00000000..6229afed --- /dev/null +++ b/simulator/src/main/java/fresta/port/instances/VirtualAcceleratorRPort.java @@ -0,0 +1,16 @@ +package fresta.port.instances; + +import gui.CarModel; +import sics.port.EcuVirtualRPort; + +public class VirtualAcceleratorRPort extends EcuVirtualRPort { + + public VirtualAcceleratorRPort(int id) { + super(id); + } + + @Override + public void deliver(Object data) { + CarModel.motorPower = ((int) data) / 100.0; + } +} diff --git a/simulator/src/main/java/fresta/port/instances/VirtualLEDRPort.java b/simulator/src/main/java/fresta/port/instances/VirtualLEDRPort.java index d8296d49..e1b98cb4 100644 --- a/simulator/src/main/java/fresta/port/instances/VirtualLEDRPort.java +++ b/simulator/src/main/java/fresta/port/instances/VirtualLEDRPort.java @@ -1,5 +1,6 @@ package fresta.port.instances; +import gui.CarModel; import sics.port.EcuVirtualRPort; public class VirtualLEDRPort extends EcuVirtualRPort { @@ -15,6 +16,8 @@ public void deliver(Object data) { String pin = dataStr.substring(0, barIndex); String value = dataStr.substring(barIndex+1); + CarModel.lamp[Integer.parseInt(pin)] = (value == "1"); + // Currently, this method just prints the value of the LED pin. // TODO: Show the LEDs in the graphical GUI. System.out.println("LED + " + pin + " = " + value); diff --git a/simulator/src/main/java/fresta/port/instances/VirtualSteeringRPort.java b/simulator/src/main/java/fresta/port/instances/VirtualSteeringRPort.java new file mode 100644 index 00000000..325f3bd3 --- /dev/null +++ b/simulator/src/main/java/fresta/port/instances/VirtualSteeringRPort.java @@ -0,0 +1,16 @@ +package fresta.port.instances; + +import gui.CarModel; +import sics.port.EcuVirtualRPort; + +public class VirtualSteeringRPort extends EcuVirtualRPort { + + public VirtualSteeringRPort(int id) { + super(id); + } + + @Override + public void deliver(Object data) { + CarModel.steeringAngle = ((int) data) / 100.0; + } +} \ No newline at end of file diff --git a/simulator/src/main/java/gui/CarModel.java b/simulator/src/main/java/gui/CarModel.java index 46fcb425..e93859e7 100644 --- a/simulator/src/main/java/gui/CarModel.java +++ b/simulator/src/main/java/gui/CarModel.java @@ -44,6 +44,9 @@ public class CarModel extends SimulatorModel implements PhysicalObjectModel { /** The steering angle. */ public static double steeringAngle; // Current steering angle, as -1 .. 1 of // maxSteeringAngle + + /** Lamps */ + public static boolean lamp[]; // True when lamp is on, False otherwise // Variables calculated by the simulation. /** The vehicle speed. */ @@ -77,9 +80,19 @@ public class CarModel extends SimulatorModel implements PhysicalObjectModel { // hazardLightOn public static boolean hazardLightOn; + // battery voltage + public static double voltage; + /** The limited speed. */ static double limitedSpeed; + public CarModel() { + lamp = new boolean[3]; + lamp[0] = false; + lamp[1] = false; + lamp[2] = false; + } + /* * (non-Javadoc) * diff --git a/simulator/target/maven-archiver/pom.properties b/simulator/target/maven-archiver/pom.properties index b701dfb0..1486fc3e 100644 --- a/simulator/target/maven-archiver/pom.properties +++ b/simulator/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Fri Jan 16 12:00:41 CET 2015 +#Fri Jan 16 15:33:42 CET 2015 version=1.0 groupId=se.sics.sse.fresta artifactId=simulator