From e2b77e07ad4f7fd2aeef9017b617fdeb30d4d9b9 Mon Sep 17 00:00:00 2001 From: mestergy Date: Sat, 1 Apr 2023 21:34:39 +0200 Subject: [PATCH 01/14] markdown feladat uj megjegyzesek --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index e26e034fc..f6b6bd869 100644 --- a/README.md +++ b/README.md @@ -62,3 +62,15 @@ The figure below illustrates this behavior using an example. 1. As the joystick remains at a positive value, the reference speed is incremented again. 1. However, it reaches the speed limit so in the next step it is not incremented even though the joystick still has a positive value. 1. Later, the joystick is set to a negative position for one time unit, making the reference speed to decrease as well. + + +###### H6 Header + +[I am an inline style link with title](https://google.com "Google") + +piton = "Python syntax highlighting" +print piton + +*** +Asterisks +*** From be130a98ab9676ec5103f6db8ad9e760bbba8e10 Mon Sep 17 00:00:00 2001 From: mestergy Date: Sun, 2 Apr 2023 06:55:14 +0200 Subject: [PATCH 02/14] A valtozat --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f6b6bd869..7f726e392 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Train Speed Controller -This is a sample application for the verification laboratory. +A változat - This is a sample application for the verification laboratory. ## Getting started From fd49342442b00a7de4dc07bd36b1a740dadd19df Mon Sep 17 00:00:00 2001 From: mestergy Date: Sun, 2 Apr 2023 06:57:41 +0200 Subject: [PATCH 03/14] B valtozat --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f6b6bd869..def292aba 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Train Speed Controller -This is a sample application for the verification laboratory. +B valtozat - This is a sample application for the verification laboratory. ## Getting started From 7d36cbf4780e024d9a2c390233c64e212e6e64e9 Mon Sep 17 00:00:00 2001 From: mestergy Date: Sun, 2 Apr 2023 17:28:14 +0200 Subject: [PATCH 04/14] Emergency braking --- .../main/java/hu/bme/mit/train/interfaces/TrainSensor.java | 2 ++ .../main/java/hu/bme/mit/train/sensor/TrainSensorImpl.java | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainSensor.java b/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainSensor.java index 298173025..09795b4a4 100644 --- a/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainSensor.java +++ b/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainSensor.java @@ -6,4 +6,6 @@ public interface TrainSensor { void overrideSpeedLimit(int speedLimit); + void dangerDetection(boolean hazard); + } diff --git a/train-sensor/src/main/java/hu/bme/mit/train/sensor/TrainSensorImpl.java b/train-sensor/src/main/java/hu/bme/mit/train/sensor/TrainSensorImpl.java index 4a640d1dd..75e2c6304 100644 --- a/train-sensor/src/main/java/hu/bme/mit/train/sensor/TrainSensorImpl.java +++ b/train-sensor/src/main/java/hu/bme/mit/train/sensor/TrainSensorImpl.java @@ -9,6 +9,7 @@ public class TrainSensorImpl implements TrainSensor { private TrainController controller; private TrainUser user; private int speedLimit = 5; + private boolean danger = false; public TrainSensorImpl(TrainController controller, TrainUser user) { this.controller = controller; @@ -26,4 +27,10 @@ public void overrideSpeedLimit(int speedLimit) { controller.setSpeedLimit(speedLimit); } + @Override + public void dangerDetection(boolean hazard) { + if (hazard == true) + danger = true; + } + } From a7776f9b83c37012e5753c84f80072f256ea629f Mon Sep 17 00:00:00 2001 From: mestergy Date: Sun, 2 Apr 2023 18:41:30 +0200 Subject: [PATCH 05/14] #5 --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index b95e21d3d..90299511a 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,7 @@ # Train Speed Controller -<<<<<<< HEAD -A változat - This is a sample application for the verification laboratory. -======= + B valtozat - This is a sample application for the verification laboratory. ->>>>>>> branch-B ## Getting started From 99c7fa1f0ac328318c2ff800c9647239385ab54d Mon Sep 17 00:00:00 2001 From: mestergy <100647270+mestergy@users.noreply.github.com> Date: Sun, 2 Apr 2023 22:01:29 +0200 Subject: [PATCH 06/14] Create maven.yml --- .github/workflows/maven.yml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/maven.yml diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml new file mode 100644 index 000000000..f7367e0d4 --- /dev/null +++ b/.github/workflows/maven.yml @@ -0,0 +1,35 @@ +# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Java CI with Maven + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'temurin' + cache: maven + - name: Build with Maven + run: mvn -B package --file pom.xml + + # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive + - name: Update dependency graph + uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6 From d1b014b3df5afffba257f5cbbb2b2d4ba270598f Mon Sep 17 00:00:00 2001 From: mestergy Date: Sun, 2 Apr 2023 22:19:00 +0200 Subject: [PATCH 07/14] 6.10. --- .../src/main/java/hu/bme/mit/train/user/TrainUserImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/train-user/src/main/java/hu/bme/mit/train/user/TrainUserImpl.java b/train-user/src/main/java/hu/bme/mit/train/user/TrainUserImpl.java index 93d3b2e59..438cc2d26 100644 --- a/train-user/src/main/java/hu/bme/mit/train/user/TrainUserImpl.java +++ b/train-user/src/main/java/hu/bme/mit/train/user/TrainUserImpl.java @@ -6,7 +6,7 @@ public class TrainUserImpl implements TrainUser { private TrainController controller; - private int joystickPosition; + private int joystickPosition public TrainUserImpl(TrainController controller) { this.controller = controller; From e069c67c4d348d41671bdfb293bd2d6dcd3595a3 Mon Sep 17 00:00:00 2001 From: mestergy Date: Sun, 2 Apr 2023 22:20:19 +0200 Subject: [PATCH 08/14] 6.11. --- .../src/main/java/hu/bme/mit/train/user/TrainUserImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/train-user/src/main/java/hu/bme/mit/train/user/TrainUserImpl.java b/train-user/src/main/java/hu/bme/mit/train/user/TrainUserImpl.java index 438cc2d26..93d3b2e59 100644 --- a/train-user/src/main/java/hu/bme/mit/train/user/TrainUserImpl.java +++ b/train-user/src/main/java/hu/bme/mit/train/user/TrainUserImpl.java @@ -6,7 +6,7 @@ public class TrainUserImpl implements TrainUser { private TrainController controller; - private int joystickPosition + private int joystickPosition; public TrainUserImpl(TrainController controller) { this.controller = controller; From 184d467d9ce64c9d5dc98bb1e6a8084063467741 Mon Sep 17 00:00:00 2001 From: mestergy Date: Mon, 3 Apr 2023 00:02:05 +0200 Subject: [PATCH 09/14] Emergency braking fix --- train-sensor/pom.xml | 6 ++++++ .../bme/mit/train/sensor/TrainSensorImpl.java | 4 +++- .../bme/mit/train/sensor/TrainSensorTest.java | 21 ++++++++++++++++--- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/train-sensor/pom.xml b/train-sensor/pom.xml index 0b50214b9..c7dce6f34 100644 --- a/train-sensor/pom.xml +++ b/train-sensor/pom.xml @@ -36,5 +36,11 @@ 0.8.7 test + + hu.bme.mit.train + hu.bme.mit.train.controller + 0.5.0-SNAPSHOT + test + \ No newline at end of file diff --git a/train-sensor/src/main/java/hu/bme/mit/train/sensor/TrainSensorImpl.java b/train-sensor/src/main/java/hu/bme/mit/train/sensor/TrainSensorImpl.java index 75e2c6304..2fd33e069 100644 --- a/train-sensor/src/main/java/hu/bme/mit/train/sensor/TrainSensorImpl.java +++ b/train-sensor/src/main/java/hu/bme/mit/train/sensor/TrainSensorImpl.java @@ -29,8 +29,10 @@ public void overrideSpeedLimit(int speedLimit) { @Override public void dangerDetection(boolean hazard) { - if (hazard == true) + if (hazard == true) { danger = true; + overrideSpeedLimit(0); + } } } diff --git a/train-sensor/src/test/java/hu/bme/mit/train/sensor/TrainSensorTest.java b/train-sensor/src/test/java/hu/bme/mit/train/sensor/TrainSensorTest.java index ae5dee21b..aa108c875 100644 --- a/train-sensor/src/test/java/hu/bme/mit/train/sensor/TrainSensorTest.java +++ b/train-sensor/src/test/java/hu/bme/mit/train/sensor/TrainSensorTest.java @@ -1,19 +1,34 @@ package hu.bme.mit.train.sensor; +import hu.bme.mit.train.controller.TrainControllerImpl; +import hu.bme.mit.train.interfaces.TrainController; +import hu.bme.mit.train.interfaces.TrainSensor; +import hu.bme.mit.train.interfaces.TrainUser; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import static org.mockito.Mockito.*; + public class TrainSensorTest { + private TrainController controller = new TrainControllerImpl(); + private TrainUser user; + private int speedLimit = 5; + private boolean danger = false; + TrainSensor sensor = new TrainSensorImpl(controller, user); + @Before public void before() { - // TODO Add initializations + + speedLimit = 5; + danger = false; } @Test - public void ThisIsAnExampleTestStub() { - // TODO Delete this and add test cases based on the issues + public void DangerousSituation() { + danger = true; + sensor.dangerDetection(danger); + } } From a3aabd29858c0f870ec8dbe1c100da140ecde116 Mon Sep 17 00:00:00 2001 From: mestergy Date: Mon, 3 Apr 2023 00:40:12 +0200 Subject: [PATCH 10/14] testfile --- .../hu/bme/mit/train/sensor/TrainSensorImplTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 train-sensor/src/test/java/hu/bme/mit/train/sensor/TrainSensorImplTest.java diff --git a/train-sensor/src/test/java/hu/bme/mit/train/sensor/TrainSensorImplTest.java b/train-sensor/src/test/java/hu/bme/mit/train/sensor/TrainSensorImplTest.java new file mode 100644 index 000000000..5a634396c --- /dev/null +++ b/train-sensor/src/test/java/hu/bme/mit/train/sensor/TrainSensorImplTest.java @@ -0,0 +1,9 @@ +package hu.bme.mit.train.sensor; + +import junit.framework.TestCase; + +public class TrainSensorImplTest extends TestCase { + + public void testGetSpeedLimit() { + } +} \ No newline at end of file From 9dd7c53e3a205c73bcaef0805d7ee41ce6347966 Mon Sep 17 00:00:00 2001 From: mestergy Date: Mon, 3 Apr 2023 18:41:25 +0200 Subject: [PATCH 11/14] F7 --- .../bme/mit/train/interfaces/TrainSensor.java | 6 ++++++ train-sensor/pom.xml | 11 +++++++++++ .../bme/mit/train/sensor/TrainSensorImpl.java | 18 ++++++++++++++++++ .../bme/mit/train/sensor/TrainSensorTest.java | 10 ++++++++-- 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainSensor.java b/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainSensor.java index 09795b4a4..e9d4e0c42 100644 --- a/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainSensor.java +++ b/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainSensor.java @@ -1,5 +1,7 @@ package hu.bme.mit.train.interfaces; +import java.time.LocalDateTime; + public interface TrainSensor { int getSpeedLimit(); @@ -8,4 +10,8 @@ public interface TrainSensor { void dangerDetection(boolean hazard); + public void logTachograph(); + + public int getLogSize(); + } diff --git a/train-sensor/pom.xml b/train-sensor/pom.xml index c7dce6f34..30f98dc85 100644 --- a/train-sensor/pom.xml +++ b/train-sensor/pom.xml @@ -42,5 +42,16 @@ 0.5.0-SNAPSHOT test + + com.google.guava + guava + 31.0.1-jre + + + hu.bme.mit.train + hu.bme.mit.train.user + 0.5.0-SNAPSHOT + test + \ No newline at end of file diff --git a/train-sensor/src/main/java/hu/bme/mit/train/sensor/TrainSensorImpl.java b/train-sensor/src/main/java/hu/bme/mit/train/sensor/TrainSensorImpl.java index 2fd33e069..5e49bcd44 100644 --- a/train-sensor/src/main/java/hu/bme/mit/train/sensor/TrainSensorImpl.java +++ b/train-sensor/src/main/java/hu/bme/mit/train/sensor/TrainSensorImpl.java @@ -4,8 +4,17 @@ import hu.bme.mit.train.interfaces.TrainSensor; import hu.bme.mit.train.interfaces.TrainUser; +import java.time.LocalDateTime; +import java.util.Map; +import java.util.Set; + +import com.google.common.collect.HashBasedTable; +import com.google.common.collect.Table; + public class TrainSensorImpl implements TrainSensor { + Table tachograph = HashBasedTable.create(); + private TrainController controller; private TrainUser user; private int speedLimit = 5; @@ -35,4 +44,13 @@ public void dangerDetection(boolean hazard) { } } + @Override + public void logTachograph() { + tachograph.put(LocalDateTime.now(), user.getJoystickPosition(), controller.getReferenceSpeed()); + } + + public int getLogSize() { + return tachograph.size(); + } + } diff --git a/train-sensor/src/test/java/hu/bme/mit/train/sensor/TrainSensorTest.java b/train-sensor/src/test/java/hu/bme/mit/train/sensor/TrainSensorTest.java index aa108c875..8381614ed 100644 --- a/train-sensor/src/test/java/hu/bme/mit/train/sensor/TrainSensorTest.java +++ b/train-sensor/src/test/java/hu/bme/mit/train/sensor/TrainSensorTest.java @@ -4,6 +4,7 @@ import hu.bme.mit.train.interfaces.TrainController; import hu.bme.mit.train.interfaces.TrainSensor; import hu.bme.mit.train.interfaces.TrainUser; +import hu.bme.mit.train.user.TrainUserImpl; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -13,14 +14,14 @@ public class TrainSensorTest { private TrainController controller = new TrainControllerImpl(); - private TrainUser user; + private TrainUser user = new TrainUserImpl(controller); private int speedLimit = 5; private boolean danger = false; TrainSensor sensor = new TrainSensorImpl(controller, user); @Before public void before() { - + controller = new TrainControllerImpl(); speedLimit = 5; danger = false; } @@ -29,6 +30,11 @@ public void before() { public void DangerousSituation() { danger = true; sensor.dangerDetection(danger); + } + @Test + public void Test7() { + sensor.logTachograph(); + Assert.assertEquals(1, sensor.getLogSize()); } } From 989cc9d51d69dbe62823854400220e082853532f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sip=C5=91cz=20Melinda=20Emese?= Date: Mon, 24 Apr 2023 15:26:35 +0200 Subject: [PATCH 12/14] Periodic change of the referenceSpeed --- .../hu/bme/mit/train/controller/TrainControllerImpl.java | 9 ++++++++- .../java/hu/bme/mit/train/system/TrainSystemTest.java | 7 ++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/train-controller/src/main/java/hu/bme/mit/train/controller/TrainControllerImpl.java b/train-controller/src/main/java/hu/bme/mit/train/controller/TrainControllerImpl.java index 06649d278..0d2315819 100644 --- a/train-controller/src/main/java/hu/bme/mit/train/controller/TrainControllerImpl.java +++ b/train-controller/src/main/java/hu/bme/mit/train/controller/TrainControllerImpl.java @@ -1,5 +1,7 @@ package hu.bme.mit.train.controller; +import javax.crypto.SecretKeyFactory; + import hu.bme.mit.train.interfaces.TrainController; public class TrainControllerImpl implements TrainController { @@ -14,7 +16,11 @@ public void followSpeed() { referenceSpeed = 0; } else { if(referenceSpeed+step > 0) { - referenceSpeed += step; + synchronized (this) { + referenceSpeed += step; + } + setChanged(); + notifyObservers(); } else { referenceSpeed = 0; } @@ -28,6 +34,7 @@ public int getReferenceSpeed() { return referenceSpeed; } + @Override public void setSpeedLimit(int speedLimit) { this.speedLimit = speedLimit; diff --git a/train-system/src/test/java/hu/bme/mit/train/system/TrainSystemTest.java b/train-system/src/test/java/hu/bme/mit/train/system/TrainSystemTest.java index 04ae3dac0..a0c2c97e0 100644 --- a/train-system/src/test/java/hu/bme/mit/train/system/TrainSystemTest.java +++ b/train-system/src/test/java/hu/bme/mit/train/system/TrainSystemTest.java @@ -50,5 +50,10 @@ public void OverridingJoystickPositionToNegative_SetsReferenceSpeedToZero() { Assert.assertEquals(0, controller.getReferenceSpeed()); } - + @Test + public void testChange(){ + user.overrideJoystickPosition(4); + controller.followSpeed(); + Assert.assertEquals(4 controller.getReferenceSpeed()); + } } From dcfe15ef2bef509e59ace6970eeffabe55a73653 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sip=C5=91cz=20Melinda=20Emese?= Date: Mon, 24 Apr 2023 15:28:27 +0200 Subject: [PATCH 13/14] Periodic change of referenceSpeed --- .../test/java/hu/bme/mit/train/system/TrainSystemTest.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/train-system/src/test/java/hu/bme/mit/train/system/TrainSystemTest.java b/train-system/src/test/java/hu/bme/mit/train/system/TrainSystemTest.java index a0c2c97e0..459b127af 100644 --- a/train-system/src/test/java/hu/bme/mit/train/system/TrainSystemTest.java +++ b/train-system/src/test/java/hu/bme/mit/train/system/TrainSystemTest.java @@ -49,11 +49,4 @@ public void OverridingJoystickPositionToNegative_SetsReferenceSpeedToZero() { controller.followSpeed(); Assert.assertEquals(0, controller.getReferenceSpeed()); } - - @Test - public void testChange(){ - user.overrideJoystickPosition(4); - controller.followSpeed(); - Assert.assertEquals(4 controller.getReferenceSpeed()); - } } From aea6504dc0e263922fe65fa9d97de8461d2efe6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sip=C5=91cz=20Melinda=20Emese?= Date: Mon, 24 Apr 2023 15:59:39 +0200 Subject: [PATCH 14/14] pom.xml change --- pom.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pom.xml b/pom.xml index 2be9fb5f5..56877bfac 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,8 @@ UTF-8 + mestergyretelabmit3 + https://sonarcloud.io pom