Skip to content
Open
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
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,21 @@
import hu.bme.mit.train.interfaces.TrainController;

import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class TrainControllerImpl implements TrainController {

private int step = 0;
private int referenceSpeed = 0;
private int speedLimit = 0;
private ScheduledExecutorService scheduler;

public TrainControllerImpl() {
scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleAtFixedRate(new UpdateSpeedTask(), 0, 1, TimeUnit.SECONDS);
}

@Override
public void followSpeed() {
Expand Down Expand Up @@ -50,5 +59,25 @@ public void setJoystickPosition(int joystickPosition) {
@Override
public void setEmergencyBrake(boolean EmergencyBrake){referenceSpeed=0;}

class UpdateSpeedTask implements Runnable {
@Override
public void run() {
updateReferenceSpeed();
}

private void updateReferenceSpeed() {
if (step > 0) {
referenceSpeed += step;
}

else if (step < 0) {
referenceSpeed-= Math.abs(step);
}

if (referenceSpeed < 0)
{
referenceSpeed = 0;
}
}
}
}