From f01d5b579b3be867e9cddf8277322d0a7a532618 Mon Sep 17 00:00:00 2001 From: remo Date: Mon, 11 Mar 2024 15:52:05 +0100 Subject: [PATCH 01/13] Modified Readme --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index e26e034fc..cb2d0af36 100644 --- a/README.md +++ b/README.md @@ -62,3 +62,16 @@ 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. + + +# New part + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut et tristique nibh. Aenean sagittis semper nisi quis dapibus. Proin metus felis, sollicitudin id diam ut, mattis scelerisque nibh. Mauris a nisl vel quam mattis malesuada sed vel augue. Praesent eu orci justo. Phasellus volutpat ligula sed leo lobortis, ac interdum ligula finibus. + +1. First +2. Second +3. Third + +- alma +- banan +- citrom From 8003c8920affa0cf150cf1d2af043ad45e02d387 Mon Sep 17 00:00:00 2001 From: gergopc Date: Mon, 11 Mar 2024 16:26:39 +0100 Subject: [PATCH 02/13] Emergency break added --- .../bme/mit/train/controller/TrainControllerImpl.java | 5 +++++ .../hu/bme/mit/train/interfaces/TrainController.java | 2 ++ .../java/hu/bme/mit/train/system/TrainSystemTest.java | 11 +++++++++++ 3 files changed, 18 insertions(+) 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..c7b258062 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 @@ -46,4 +46,9 @@ public void setJoystickPosition(int joystickPosition) { this.step = joystickPosition; } + @Override + public void emergencyBreak() { + this.referenceSpeed = 0; + } + } diff --git a/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainController.java b/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainController.java index c8adca066..cf594f068 100644 --- a/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainController.java +++ b/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainController.java @@ -10,4 +10,6 @@ public interface TrainController { void setJoystickPosition(int joystickPosition); + void emergencyBreak(); + } 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..1b13903b8 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,16 @@ public void OverridingJoystickPositionToNegative_SetsReferenceSpeedToZero() { Assert.assertEquals(0, controller.getReferenceSpeed()); } + @Test + public void EmergencyBreakPressed(){ + user.overrideJoystickPosition(5); + controller.followSpeed(); + Assert.assertEquals(5, controller.getReferenceSpeed()); + + controller.emergencyBreak(); + Assert.assertEquals(0, controller.getReferenceSpeed()); + + } + } From e723dca7aab6e5680d9a7264cc75da237d9abe3a Mon Sep 17 00:00:00 2001 From: gergopc Date: Mon, 11 Mar 2024 16:37:05 +0100 Subject: [PATCH 03/13] README file modified --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cb2d0af36..30129d6a6 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ The figure below illustrates this behavior using an example. 1. Later, the joystick is set to a negative position for one time unit, making the reference speed to decrease as well. -# New part +# WE ARE ON BRANCH-A Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut et tristique nibh. Aenean sagittis semper nisi quis dapibus. Proin metus felis, sollicitudin id diam ut, mattis scelerisque nibh. Mauris a nisl vel quam mattis malesuada sed vel augue. Praesent eu orci justo. Phasellus volutpat ligula sed leo lobortis, ac interdum ligula finibus. From 4f0282524590729097b1779cf75b1bb93be7cd5c Mon Sep 17 00:00:00 2001 From: gergopc Date: Mon, 11 Mar 2024 16:38:11 +0100 Subject: [PATCH 04/13] Readme fil modified (b) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cb2d0af36..0aef371bd 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ The figure below illustrates this behavior using an example. 1. Later, the joystick is set to a negative position for one time unit, making the reference speed to decrease as well. -# New part +# WE ARE ON BRANCH-B Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut et tristique nibh. Aenean sagittis semper nisi quis dapibus. Proin metus felis, sollicitudin id diam ut, mattis scelerisque nibh. Mauris a nisl vel quam mattis malesuada sed vel augue. Praesent eu orci justo. Phasellus volutpat ligula sed leo lobortis, ac interdum ligula finibus. From 1415370c796cb8f5627dda08c658a2e107b4abd1 Mon Sep 17 00:00:00 2001 From: gergopc Date: Mon, 11 Mar 2024 15:50:43 +0100 Subject: [PATCH 05/13] 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 6686487cbc3bedf719c4c2898a04477b0588b6da Mon Sep 17 00:00:00 2001 From: gergopc Date: Mon, 11 Mar 2024 16:01:26 +0100 Subject: [PATCH 06/13] =?UTF-8?q?Ford=C3=ADt=C3=A1si=20hiba?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/hu/bme/mit/train/system/TrainSystem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/train-system/src/main/java/hu/bme/mit/train/system/TrainSystem.java b/train-system/src/main/java/hu/bme/mit/train/system/TrainSystem.java index 4ef42638b..8401b0b5e 100644 --- a/train-system/src/main/java/hu/bme/mit/train/system/TrainSystem.java +++ b/train-system/src/main/java/hu/bme/mit/train/system/TrainSystem.java @@ -9,7 +9,7 @@ public class TrainSystem { - private TrainController controller = new TrainControllerImpl(); + private TrainController controller = new TrainControllerImpl() private TrainUser user = new TrainUserImpl(controller); private TrainSensor sensor = new TrainSensorImpl(controller, user); From bd4e4fe5f7ee9dccd7d5df15bb483252522b4f36 Mon Sep 17 00:00:00 2001 From: gergopc Date: Mon, 11 Mar 2024 16:02:50 +0100 Subject: [PATCH 07/13] =?UTF-8?q?Ford=C3=ADt=C3=A1si=20hiba=20Fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/hu/bme/mit/train/system/TrainSystem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/train-system/src/main/java/hu/bme/mit/train/system/TrainSystem.java b/train-system/src/main/java/hu/bme/mit/train/system/TrainSystem.java index 8401b0b5e..4ef42638b 100644 --- a/train-system/src/main/java/hu/bme/mit/train/system/TrainSystem.java +++ b/train-system/src/main/java/hu/bme/mit/train/system/TrainSystem.java @@ -9,7 +9,7 @@ public class TrainSystem { - private TrainController controller = new TrainControllerImpl() + private TrainController controller = new TrainControllerImpl(); private TrainUser user = new TrainUserImpl(controller); private TrainSensor sensor = new TrainSensorImpl(controller, user); From 520b07486f84cf239b517b486da6ea26e71cc369 Mon Sep 17 00:00:00 2001 From: gergopc Date: Mon, 11 Mar 2024 16:06:07 +0100 Subject: [PATCH 08/13] New Test case added --- .../java/hu/bme/mit/train/system/TrainSystemTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 1b13903b8..26e18b688 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,6 +50,16 @@ public void OverridingJoystickPositionToNegative_SetsReferenceSpeedToZero() { Assert.assertEquals(0, controller.getReferenceSpeed()); } + @Test + public void MaintainSpeed() { + user.overrideJoystickPosition(4); + controller.followSpeed(); + Assert.assertEquals(4, controller.getReferenceSpeed()); + user.overrideJoystickPosition(0); + controller.followSpeed(); + Assert.assertEquals(4, controller.getReferenceSpeed()); + } + @Test public void EmergencyBreakPressed(){ user.overrideJoystickPosition(5); From 81fa47d84d63e4a2a791cb6006d57f17573c24df Mon Sep 17 00:00:00 2001 From: gergopc Date: Mon, 11 Mar 2024 17:43:50 +0100 Subject: [PATCH 09/13] Tachograph added --- .../hu/bme/mit/train/interfaces/TrainSensor.java | 4 ++++ train-sensor/pom.xml | 5 +++++ .../hu/bme/mit/train/sensor/TrainSensorImpl.java | 14 ++++++++++++++ .../hu/bme/mit/train/system/TrainSystemTest.java | 7 +++++++ 4 files changed, 30 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..41bd064dc 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,8 @@ public interface TrainSensor { void overrideSpeedLimit(int speedLimit); + public void addLog(); + + public int getLogSize(); + } diff --git a/train-sensor/pom.xml b/train-sensor/pom.xml index 0b50214b9..7cc8fbcd3 100644 --- a/train-sensor/pom.xml +++ b/train-sensor/pom.xml @@ -36,5 +36,10 @@ 0.8.7 test + + com.google.guava + guava + 33.0.0-jre + \ 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 4a640d1dd..373fc0f47 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,11 +4,16 @@ import hu.bme.mit.train.interfaces.TrainSensor; import hu.bme.mit.train.interfaces.TrainUser; +import com.google.common.collect.HashBasedTable; +import com.google.common.collect.Table; +import java.time.*; + public class TrainSensorImpl implements TrainSensor { private TrainController controller; private TrainUser user; private int speedLimit = 5; + private Table tachograph = HashBasedTable.create(); public TrainSensorImpl(TrainController controller, TrainUser user) { this.controller = controller; @@ -26,4 +31,13 @@ public void overrideSpeedLimit(int speedLimit) { controller.setSpeedLimit(speedLimit); } + @Override + public void addLog(){ + this.tachograph.put(LocalDateTime.now(), user.getJoystickPosition(), controller.getReferenceSpeed()); + } + + @Override + public int getLogSize(){ + return this.tachograph.size(); + } } 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 26e18b688..daf4034fd 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 @@ -71,5 +71,12 @@ public void EmergencyBreakPressed(){ } + @Test + public void TachogrpahTest(){ + Assert.assertEquals(sensor.getLogSize(), 0); + sensor.addLog(); + Assert.assertEquals(sensor.getLogSize(), 1); + } + } From e63a412cfee906d358d2dcf9549a907133689aaf Mon Sep 17 00:00:00 2001 From: gergopc Date: Mon, 11 Mar 2024 16:45:47 +0100 Subject: [PATCH 10/13] Update maven.yml --- .github/workflows/maven.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index f7367e0d4..14c484af3 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -28,7 +28,7 @@ jobs: distribution: 'temurin' cache: maven - name: Build with Maven - run: mvn -B package --file pom.xml + run: mvn -B package --file pom.xml --no-transfer-progress # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive - name: Update dependency graph From d377f56c51ffa5b0fca9fa0d8c6a9a1283033ca4 Mon Sep 17 00:00:00 2001 From: gergopc Date: Mon, 11 Mar 2024 16:50:37 +0100 Subject: [PATCH 11/13] Update maven.yml --- .github/workflows/maven.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 14c484af3..006ff189b 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -20,6 +20,13 @@ jobs: runs-on: ubuntu-latest steps: + - name: Cache local Maven repository + uses: actions/cache@v3 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- - uses: actions/checkout@v3 - name: Set up JDK 11 uses: actions/setup-java@v3 From 48663a7876e2c84673c5719afcdb599624055404 Mon Sep 17 00:00:00 2001 From: remo Date: Mon, 25 Mar 2024 16:44:21 +0100 Subject: [PATCH 12/13] SetReferenceSpeed --- .../mit/train/controller/TrainControllerImpl.java | 14 ++++++++++++++ .../bme/mit/train/interfaces/TrainController.java | 2 ++ 2 files changed, 16 insertions(+) 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 c7b258062..2c1fcf9d2 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 @@ -2,6 +2,8 @@ import hu.bme.mit.train.interfaces.TrainController; +import java.util.concurrent.TimeUnit; + public class TrainControllerImpl implements TrainController { private int step = 0; @@ -51,4 +53,16 @@ public void emergencyBreak() { this.referenceSpeed = 0; } + @Override + public void setReferenceSpeed(){ + while(true){ + try { + followSpeed(); + TimeUnit.SECONDS.sleep(1); + } catch (Exception e) { + + } + + } + } } diff --git a/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainController.java b/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainController.java index cf594f068..42f2520d5 100644 --- a/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainController.java +++ b/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainController.java @@ -12,4 +12,6 @@ public interface TrainController { void emergencyBreak(); + void setReferenceSpeed(); + } From ca5ccda0a7eef66e91df67ac2c407ce89ee7461d Mon Sep 17 00:00:00 2001 From: remo Date: Mon, 25 Mar 2024 17:04:09 +0100 Subject: [PATCH 13/13] Added changes --- .../train/controller/TrainControllerImpl.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 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 2c1fcf9d2..e9a795c75 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 @@ -3,6 +3,7 @@ import hu.bme.mit.train.interfaces.TrainController; import java.util.concurrent.TimeUnit; +import java.lang.Thread; public class TrainControllerImpl implements TrainController { @@ -55,14 +56,18 @@ public void emergencyBreak() { @Override public void setReferenceSpeed(){ - while(true){ - try { - followSpeed(); - TimeUnit.SECONDS.sleep(1); - } catch (Exception e) { - + Thread t = new Thread(() -> { + while(true){ + try { + followSpeed(); + TimeUnit.SECONDS.sleep(1); + } catch (Exception e) { + + } + } - - } + }); + t.start(); + } }