moved classes to more appropriate package
This commit is contained in:
parent
7418e84b42
commit
a186cf4149
@ -1,7 +0,0 @@
|
|||||||
package gui;
|
|
||||||
|
|
||||||
public enum Direction {
|
|
||||||
NONE,
|
|
||||||
UP,
|
|
||||||
DOWN,
|
|
||||||
}
|
|
@ -1,71 +0,0 @@
|
|||||||
package gui;
|
|
||||||
public class Elevator {
|
|
||||||
private int currentFloor = 0;
|
|
||||||
private boolean betweenFloors = false; /* Between currentFloor and the one above it. */
|
|
||||||
private Direction direction = Direction.NONE;
|
|
||||||
private boolean stoppingNextFloor = false;
|
|
||||||
private boolean emergency = false;
|
|
||||||
|
|
||||||
public Elevator(int currentFloor) {
|
|
||||||
this.currentFloor = currentFloor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void goUp() {
|
|
||||||
if (emergency) return;
|
|
||||||
stoppingNextFloor = false;
|
|
||||||
direction = Direction.UP;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void goDown() {
|
|
||||||
if (emergency) return;
|
|
||||||
stoppingNextFloor = false;
|
|
||||||
direction = Direction.DOWN;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void stopElevator() {
|
|
||||||
direction = Direction.NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void stopNextFloor() {
|
|
||||||
stoppingNextFloor = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void emergencyStop() {
|
|
||||||
emergency = true;
|
|
||||||
direction = Direction.NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void cancelEmergency() {
|
|
||||||
emergency = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void move() {
|
|
||||||
if (emergency) return;
|
|
||||||
switch (direction) {
|
|
||||||
case DOWN:
|
|
||||||
/* Go halfway below. */
|
|
||||||
if (!betweenFloors) currentFloor--;
|
|
||||||
betweenFloors = !betweenFloors;
|
|
||||||
break;
|
|
||||||
case UP:
|
|
||||||
/* Go halfway above. */
|
|
||||||
if (betweenFloors) currentFloor++;
|
|
||||||
betweenFloors = !betweenFloors;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getCurrentFloor() {
|
|
||||||
return currentFloor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean getBetweenFloors() {
|
|
||||||
return betweenFloors;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Direction getDirection() {
|
|
||||||
return direction;
|
|
||||||
}
|
|
||||||
}
|
|
127
src/simulation/Elevator.java
Normal file
127
src/simulation/Elevator.java
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
package simulation;
|
||||||
|
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
|
||||||
|
import commandSystem.Direction;
|
||||||
|
import commandSystem.ElevatorListener;
|
||||||
|
|
||||||
|
|
||||||
|
public class Elevator {
|
||||||
|
static final int PRECISION = 10;
|
||||||
|
private double floorHeight;
|
||||||
|
private double step;
|
||||||
|
private double height;
|
||||||
|
// private int currentFloor = 0;
|
||||||
|
// private boolean betweenFloors = false; /* Between currentFloor and the one above it. */
|
||||||
|
private Direction direction = Direction.NONE;
|
||||||
|
private boolean stoppingNextFloor = false;
|
||||||
|
private boolean emergency = false;
|
||||||
|
private ElevatorListener listener;
|
||||||
|
|
||||||
|
public Elevator(int currentFloor, int nbFloors) {
|
||||||
|
height = (double) currentFloor / nbFloors;
|
||||||
|
floorHeight = 1. / nbFloors;
|
||||||
|
step = floorHeight / PRECISION;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setActionListener(ElevatorListener listener) {
|
||||||
|
this.listener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void goUp() {
|
||||||
|
if (emergency) return;
|
||||||
|
stoppingNextFloor = false;
|
||||||
|
direction = Direction.UP;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void goDown() {
|
||||||
|
if (emergency) return;
|
||||||
|
stoppingNextFloor = false;
|
||||||
|
direction = Direction.DOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void stopElevator() {
|
||||||
|
direction = Direction.NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void stopNextFloor() {
|
||||||
|
stoppingNextFloor = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void emergencyStop() {
|
||||||
|
emergency = true;
|
||||||
|
direction = Direction.NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void cancelEmergency() {
|
||||||
|
emergency = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void update() {
|
||||||
|
if (emergency) return;
|
||||||
|
int prevFloor = (int) Math.floor(height / floorHeight);
|
||||||
|
switch (direction) {
|
||||||
|
case DOWN:
|
||||||
|
height -= step;
|
||||||
|
|
||||||
|
/* Bottom reached. */
|
||||||
|
if (height < step) {
|
||||||
|
height = 0;
|
||||||
|
direction = Direction.NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Passed a floor, invoke the listener. */
|
||||||
|
if (Math.floor(height / floorHeight) < prevFloor && listener != null) {
|
||||||
|
listener.floorChange(Direction.UP);
|
||||||
|
}
|
||||||
|
// /* Go halfway below. */
|
||||||
|
// if (!betweenFloors) currentFloor--;
|
||||||
|
// betweenFloors = !betweenFloors;
|
||||||
|
break;
|
||||||
|
case UP:
|
||||||
|
height += step;
|
||||||
|
|
||||||
|
/* Top reached. */
|
||||||
|
if (height > 1-step) {
|
||||||
|
height = 1;
|
||||||
|
direction = Direction.NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Passed a floor, invoke the listener. */
|
||||||
|
if (Math.floor(height / floorHeight) < prevFloor && listener != null) {
|
||||||
|
listener.floorChange(Direction.DOWN);
|
||||||
|
}
|
||||||
|
// /* Go halfway above. */
|
||||||
|
// if (betweenFloors) currentFloor++;
|
||||||
|
// betweenFloors = !betweenFloors;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// public int getCurrentFloor() {
|
||||||
|
// return currentFloor;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// public boolean getBetweenFloors() {
|
||||||
|
// return betweenFloors;
|
||||||
|
// }
|
||||||
|
|
||||||
|
public Direction getDirection() {
|
||||||
|
return direction;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getStoppingNextFloor() {
|
||||||
|
return stoppingNextFloor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getHeight() {
|
||||||
|
return height;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getEmergency() {
|
||||||
|
return emergency;
|
||||||
|
}
|
||||||
|
}
|
63
src/simulation/Simulation.java
Normal file
63
src/simulation/Simulation.java
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
package simulation;
|
||||||
|
|
||||||
|
import Requests.CallFromElevatorRequest;
|
||||||
|
import Requests.CallFromFloorRequest;
|
||||||
|
|
||||||
|
import commandSystem.EventQueue;
|
||||||
|
import commandSystem.Direction;
|
||||||
|
import commandSystem.ElevatorListener;
|
||||||
|
import simulation.Elevator;
|
||||||
|
|
||||||
|
|
||||||
|
public class Simulation implements ElevatorListener {
|
||||||
|
private boolean running = false;
|
||||||
|
private int currentFloor = 0;
|
||||||
|
private EventQueue queue;
|
||||||
|
private Elevator elevator;
|
||||||
|
|
||||||
|
public Simulation(Elevator elevator) {
|
||||||
|
this.elevator = elevator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void elevatorCall(int floor) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void floorCall(int floor, Direction direction) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void floorChange(Direction d) {
|
||||||
|
switch (d) {
|
||||||
|
case UP:
|
||||||
|
currentFloor++;
|
||||||
|
break;
|
||||||
|
case DOWN:
|
||||||
|
currentFloor--;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// iter();
|
||||||
|
}
|
||||||
|
|
||||||
|
// public void iter() {
|
||||||
|
// int nextDestination = queue.getNextInstruction();
|
||||||
|
// int currentFloor = 0;
|
||||||
|
// //System.out.println("next dest = " + nextDestination);
|
||||||
|
// if (!running) {
|
||||||
|
// if (nextDestination > 0) { /* We have a destination to go to. */
|
||||||
|
// running = true;
|
||||||
|
// elevator.goDown();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// if (elevator.currentFloor == nextDestination) {
|
||||||
|
// queue.removeInstruction(elevator.currentFloor, elevator.direction);
|
||||||
|
// running = false;
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// elevator.direction = elevator.currentFloor < nextDestination ? Direction.UP : Direction.DOWN;
|
||||||
|
// elevator.currentFloor += elevator.direction == Direction.UP ? 1 : -1;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// System.out.println("elevator floor " + elevator.currentFloor + " direction " +
|
||||||
|
// (elevator.direction == Direction.UP? "up" : "down") + " running: " + running);
|
||||||
|
// }
|
||||||
|
}
|
Reference in New Issue
Block a user