Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Follow speed update implementation #325

Open
wants to merge 18 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
@@ -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
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,11 @@ 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.

### Additional contrubiton information

This part is the place for additional information to other contributors
1. You need to put code snippets like this: `mvn complie`
2. You have to keep the markdown conventions: [https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)

# Now you know everything to make same changes in the repository for your taste
1 change: 1 addition & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
<module>train-sensor</module>
<module>train-system</module>
<module>train-user</module>
<module>train-tahograf</module>
</modules>

<dependencies>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,31 @@
package hu.bme.mit.train.controller;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

import hu.bme.mit.train.interfaces.TrainController;

public class TrainControllerImpl implements TrainController {

private int step = 0;
private int referenceSpeed = 0;
private int speedLimit = 0;
private final ExecutorService executorService;
private final Runnable followSpeedUpdate;

public TrainControllerImpl(){
followSpeedUpdate = () -> {
try {
TimeUnit.MILLISECONDS.sleep(300);
followSpeed();
} catch (InterruptedException e) {
e.printStackTrace();
}
};
executorService = Executors.newSingleThreadExecutor();
executorService.execute(followSpeedUpdate);
}

@Override
public void followSpeed() {
Expand All @@ -32,7 +51,6 @@ public int getReferenceSpeed() {
public void setSpeedLimit(int speedLimit) {
this.speedLimit = speedLimit;
enforceSpeedLimit();

}

private void enforceSpeedLimit() {
Expand All @@ -43,7 +61,7 @@ private void enforceSpeedLimit() {

@Override
public void setJoystickPosition(int joystickPosition) {
this.step = joystickPosition;
this.step = joystickPosition;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
hu/bme/mit/train/controller/TrainControllerImpl.class
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/home/cloud/Documents/base/train-controller/src/main/java/hu/bme/mit/train/controller/TrainControllerImpl.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
hu/bme/mit/train/interfaces/TrainController.class
hu/bme/mit/train/interfaces/TrainSensor.class
hu/bme/mit/train/interfaces/TrainUser.class
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/home/cloud/Documents/base/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainSensor.java
/home/cloud/Documents/base/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainUser.java
/home/cloud/Documents/base/train-interfaces/src/main/java/hu/bme/mit/train/interfaces/TrainController.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,8 @@
import static org.mockito.Mockito.*;

public class TrainSensorTest {

@Before
public void before() {
// TODO Add initializations
}

@Test
public void ThisIsAnExampleTestStub() {
// TODO Delete this and add test cases based on the issues
public void TestSmokes() {
Assert.assertEquals(5,5);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
hu/bme/mit/train/sensor/TrainSensorImpl.class
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/home/cloud/Documents/base/train-sensor/src/main/java/hu/bme/mit/train/sensor/TrainSensorImpl.java
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
hu/bme/mit/train/sensor/TrainSensorTest.class
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/home/cloud/Documents/base/train-sensor/src/test/java/hu/bme/mit/train/sensor/TrainSensorTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8" ?>
<testsuite tests="1" failures="0" name="hu.bme.mit.train.sensor.TrainSensorTest" time="0.001" errors="0" skipped="0">
<properties>
<property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
<property name="java.vm.version" value="11.0.18+10-post-Ubuntu-0ubuntu118.04.1"/>
<property name="sun.boot.library.path" value="/usr/lib/jvm/java-11-openjdk-amd64/lib"/>
<property name="maven.multiModuleProjectDirectory" value="/home/cloud/Documents/base"/>
<property name="java.vm.vendor" value="Ubuntu"/>
<property name="java.vendor.url" value="https://ubuntu.com/"/>
<property name="guice.disable.misplaced.annotation.check" value="true"/>
<property name="path.separator" value=":"/>
<property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
<property name="sun.os.patch.level" value="unknown"/>
<property name="user.country" value="US"/>
<property name="sun.java.launcher" value="SUN_STANDARD"/>
<property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
<property name="user.dir" value="/home/cloud/Documents/base"/>
<property name="java.vm.compressedOopsMode" value="32-bit"/>
<property name="java.runtime.version" value="11.0.18+10-post-Ubuntu-0ubuntu118.04.1"/>
<property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"/>
<property name="os.arch" value="amd64"/>
<property name="java.io.tmpdir" value="/tmp"/>
<property name="line.separator" value="
"/>
<property name="java.vm.specification.vendor" value="Oracle Corporation"/>
<property name="os.name" value="Linux"/>
<property name="classworlds.conf" value="/usr/share/maven/bin/m2.conf"/>
<property name="sun.jnu.encoding" value="UTF-8"/>
<property name="java.library.path" value="/usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib"/>
<property name="maven.conf" value="/usr/share/maven/conf"/>
<property name="jdk.debug" value="release"/>
<property name="java.class.version" value="55.0"/>
<property name="java.specification.name" value="Java Platform API Specification"/>
<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
<property name="os.version" value="4.15.0-206-generic"/>
<property name="library.jansi.path" value="/usr/share/maven/lib/jansi-native"/>
<property name="user.home" value="/home/cloud"/>
<property name="user.timezone" value="Europe/Budapest"/>
<property name="java.awt.printerjob" value="sun.print.PSPrinterJob"/>
<property name="file.encoding" value="UTF-8"/>
<property name="java.specification.version" value="11"/>
<property name="user.name" value="cloud"/>
<property name="java.class.path" value="/usr/share/maven/boot/plexus-classworlds-2.x.jar"/>
<property name="java.vm.specification.version" value="11"/>
<property name="sun.arch.data.model" value="64"/>
<property name="sun.java.command" value="org.codehaus.plexus.classworlds.launcher.Launcher test"/>
<property name="java.home" value="/usr/lib/jvm/java-11-openjdk-amd64"/>
<property name="user.language" value="en"/>
<property name="java.specification.vendor" value="Oracle Corporation"/>
<property name="awt.toolkit" value="sun.awt.X11.XToolkit"/>
<property name="java.vm.info" value="mixed mode, sharing"/>
<property name="java.version" value="11.0.18"/>
<property name="securerandom.source" value="file:/dev/./urandom"/>
<property name="java.vendor" value="Ubuntu"/>
<property name="maven.home" value="/usr/share/maven"/>
<property name="file.separator" value="/"/>
<property name="java.version.date" value="2023-01-17"/>
<property name="java.vendor.url.bug" value="https://bugs.launchpad.net/ubuntu/+source/openjdk-lts"/>
<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
<property name="sun.cpu.endian" value="little"/>
<property name="sun.cpu.isalist" value=""/>
</properties>
<testcase classname="hu.bme.mit.train.sensor.TrainSensorTest" name="TestSmokes" time="0.001"/>
</testsuite>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-------------------------------------------------------------------------------
Test set: hu.bme.mit.train.sensor.TrainSensorTest
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.133 sec
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
hu/bme/mit/train/system/TrainSystem.class
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/home/cloud/Documents/base/train-system/src/main/java/hu/bme/mit/train/system/TrainSystem.java
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
hu/bme/mit/train/system/TrainSystemTest.class
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/home/cloud/Documents/base/train-system/src/test/java/hu/bme/mit/train/system/TrainSystemTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8" ?>
<testsuite tests="2" failures="0" name="hu.bme.mit.train.system.TrainSystemTest" time="0.002" errors="0" skipped="0">
<properties>
<property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
<property name="java.vm.version" value="11.0.18+10-post-Ubuntu-0ubuntu118.04.1"/>
<property name="sun.boot.library.path" value="/usr/lib/jvm/java-11-openjdk-amd64/lib"/>
<property name="maven.multiModuleProjectDirectory" value="/home/cloud/Documents/base"/>
<property name="java.vm.vendor" value="Ubuntu"/>
<property name="java.vendor.url" value="https://ubuntu.com/"/>
<property name="path.separator" value=":"/>
<property name="guice.disable.misplaced.annotation.check" value="true"/>
<property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
<property name="user.country" value="US"/>
<property name="sun.java.launcher" value="SUN_STANDARD"/>
<property name="sun.os.patch.level" value="unknown"/>
<property name="user.dir" value="/home/cloud/Documents/base"/>
<property name="java.vm.compressedOopsMode" value="32-bit"/>
<property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
<property name="java.runtime.version" value="11.0.18+10-post-Ubuntu-0ubuntu118.04.1"/>
<property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"/>
<property name="os.arch" value="amd64"/>
<property name="java.io.tmpdir" value="/tmp"/>
<property name="line.separator" value="
"/>
<property name="java.vm.specification.vendor" value="Oracle Corporation"/>
<property name="os.name" value="Linux"/>
<property name="classworlds.conf" value="/usr/share/maven/bin/m2.conf"/>
<property name="sun.jnu.encoding" value="UTF-8"/>
<property name="java.library.path" value="/usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib"/>
<property name="maven.conf" value="/usr/share/maven/conf"/>
<property name="jdk.debug" value="release"/>
<property name="java.class.version" value="55.0"/>
<property name="java.specification.name" value="Java Platform API Specification"/>
<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
<property name="os.version" value="4.15.0-206-generic"/>
<property name="library.jansi.path" value="/usr/share/maven/lib/jansi-native"/>
<property name="user.home" value="/home/cloud"/>
<property name="user.timezone" value="Europe/Budapest"/>
<property name="java.awt.printerjob" value="sun.print.PSPrinterJob"/>
<property name="file.encoding" value="UTF-8"/>
<property name="java.specification.version" value="11"/>
<property name="user.name" value="cloud"/>
<property name="java.class.path" value="/usr/share/maven/boot/plexus-classworlds-2.x.jar"/>
<property name="java.vm.specification.version" value="11"/>
<property name="sun.arch.data.model" value="64"/>
<property name="sun.java.command" value="org.codehaus.plexus.classworlds.launcher.Launcher test"/>
<property name="java.home" value="/usr/lib/jvm/java-11-openjdk-amd64"/>
<property name="user.language" value="en"/>
<property name="java.specification.vendor" value="Oracle Corporation"/>
<property name="awt.toolkit" value="sun.awt.X11.XToolkit"/>
<property name="java.vm.info" value="mixed mode, sharing"/>
<property name="java.version" value="11.0.18"/>
<property name="securerandom.source" value="file:/dev/./urandom"/>
<property name="java.vendor" value="Ubuntu"/>
<property name="maven.home" value="/usr/share/maven"/>
<property name="file.separator" value="/"/>
<property name="java.version.date" value="2023-01-17"/>
<property name="java.vendor.url.bug" value="https://bugs.launchpad.net/ubuntu/+source/openjdk-lts"/>
<property name="sun.cpu.endian" value="little"/>
<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
<property name="sun.cpu.isalist" value=""/>
</properties>
<testcase classname="hu.bme.mit.train.system.TrainSystemTest" name="OverridingJoystickPositionToNegative_SetsReferenceSpeedToZero" time="0.002"/>
<testcase classname="hu.bme.mit.train.system.TrainSystemTest" name="OverridingJoystickPosition_IncreasesReferenceSpeed" time="0"/>
</testsuite>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-------------------------------------------------------------------------------
Test set: hu.bme.mit.train.system.TrainSystemTest
-------------------------------------------------------------------------------
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.158 sec
1 change: 1 addition & 0 deletions train-tahograf/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build/
7 changes: 7 additions & 0 deletions train-tahograf/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
dependencies {
compile project(':train-interfaces')
compile project(':train-user')

compile group: 'junit', name: 'junit', version: '4.12'
compile 'org.mockito:mockito-core:2.7.16'
}
44 changes: 44 additions & 0 deletions train-tahograf/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>hu.bme.mit.train</groupId>
<artifactId>hu.bme.mit.train.tahograf</artifactId>

<parent>
<artifactId>hu.bme.mit.train</artifactId>
<groupId>hu.bme.mit.train</groupId>
<version>0.5.0-SNAPSHOT</version>
</parent>

<dependencies>
<dependency>
<groupId>hu.bme.mit.train</groupId>
<artifactId>hu.bme.mit.train.interfaces</artifactId>
<version>0.5.0-SNAPSHOT</version>
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.4.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.1-jre</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package hu.bme.mit.train.tahograf;

import hu.bme.mit.train.interfaces.TrainController;
import java.time.LocalDate;
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;


public class TrainTahografImpl{
private TrainController trainController;
private TrainUser trainUser;
private Table<LocalDate, Integer, Integer> tahoGrafTable;

public TrainTahografImpl() {
tahoGrafTable = HashBasedTable.create();
}

public Table getTable(){
return tahoGrafTable;
}
public void sampleData() {
tahoGrafTable.put(LocalDate.now(),
trainUser.getJoystickPosition(),
trainController.getReferenceSpeed());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package hu.bme.mit.train.tahograf;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Table;
import static org.mockito.Mockito.*;

public class TrainTahografTest {
TrainTahografImpl imp;
@Before
public void before() {
imp = new TrainTahografImpl();
}
@Test
public void TestSmokes() {
Assert.assertNotNull(imp.getTable());
}
}
Loading