Skip to content
Snippets Groups Projects
Commit 6d32e933 authored by Lukas Friedrichsen's avatar Lukas Friedrichsen
Browse files

update testiting pending

parent 242aa92a
No related branches found
No related tags found
No related merge requests found
Showing
with 53 additions and 69 deletions
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
...@@ -338,7 +338,7 @@ public class MainApp extends Application { ...@@ -338,7 +338,7 @@ public class MainApp extends Application {
} }
}); });
//(new Thread(new UpdateFunctionality(CONTROLLER_INSTANCE, in))).start(); (new Thread(new UpdateFunctionality(CONTROLLER_INSTANCE, in))).start();
while (connectionEstablished) { while (connectionEstablished) {
} }
...@@ -374,15 +374,15 @@ public class MainApp extends Application { ...@@ -374,15 +374,15 @@ public class MainApp extends Application {
return; return;
} }
for (Engine eng : engines){ for (Engine eng : engines){
if(eng.getMaerklinID().get()==(datagram[0]<<8+datagram[1])){ if(eng.getMaerklinID().get()==((datagram[0]&0xFF)*(1<<8)+(datagram[1]&0xFF))){
eng.setSpeed(datagram[2]<<8+datagram[3]); eng.setSpeed((datagram[2]&0xFF)*(1<<8)+(datagram[3]&0xFF));
eng.setDirection(datagram[4] == (0x01)); eng.setDirection(datagram[4] == (0x01));
if (eng.equals(engineController.getSelectedEngine())) if (eng.equals(engineController.getSelectedEngine()))
engineController.updateEngineStatus(); engineController.updateEngineStatus();
} }
} }
for (Switch sw : switches){ for (Switch sw : switches){
if(sw.getMaerklinID().get()==(datagram[0]<<8+datagram[1])){ if(sw.getMaerklinID().get()==((datagram[0]&0xFF)*(1<<8)+(datagram[1]&0xFF))){
sw.setState(datagram[4] == (byte) 0x01); sw.setState(datagram[4] == (byte) 0x01);
sw.getController().get().updateSwitchStatus(); sw.getController().get().updateSwitchStatus();
} }
......
...@@ -62,10 +62,6 @@ public class Engine { ...@@ -62,10 +62,6 @@ public class Engine {
} }
udpProtocol.changeEngineDirection(engineID, engineDirection); udpProtocol.changeEngineDirection(engineID, engineDirection);
listener.listen(); listener.listen();
/*if (engineDirection != listener.getEngineDirection()){
Exception e = new Exception("Communication Error!");
throw e;
}*/
} }
public void setEngineSpeed(int newEngineSpeed) throws Exception { public void setEngineSpeed(int newEngineSpeed) throws Exception {
...@@ -77,31 +73,16 @@ public class Engine { ...@@ -77,31 +73,16 @@ public class Engine {
throw e; throw e;
} }
udpProtocol.changeEngineSpeed(engineID, engineSpeed); udpProtocol.changeEngineSpeed(engineID, engineSpeed);
listener.listen();
/*if (engineSpeed != listener.getEngineSpeed()){
Exception e = new Exception("Communication Error!");
throw e;
}*/
} }
public void increaseEngineSpeed() throws Exception { public void increaseEngineSpeed() throws Exception {
engineSpeed = engineSpeed+50; engineSpeed = engineSpeed+50;
udpProtocol.changeEngineSpeed(engineID, engineSpeed); udpProtocol.changeEngineSpeed(engineID, engineSpeed);
listener.listen();
/*if (engineSpeed != listener.getEngineSpeed()){
Exception e = new Exception("Communication Error!");
throw e;
}*/
} }
public void decreaseEngineSpeed() throws Exception{ public void decreaseEngineSpeed() throws Exception{
engineSpeed = engineSpeed-50; engineSpeed = engineSpeed-50;
udpProtocol.changeEngineSpeed(engineID, engineSpeed); udpProtocol.changeEngineSpeed(engineID, engineSpeed);
listener.listen();
/*if (engineSpeed != listener.getEngineSpeed()){
Exception e = new Exception("Communication Error!");
throw e;
}*/
} }
public int getEngineID(){ public int getEngineID(){
......
...@@ -250,16 +250,16 @@ class HandleThread implements Runnable { ...@@ -250,16 +250,16 @@ class HandleThread implements Runnable {
break; break;
case Properties.ENGINE_SET_SPEED: case Properties.ENGINE_SET_SPEED:
for (Engine train : Engine.engines) { for (Engine train : Engine.engines) {
if (train.getEngineID() == (((data[0]&0x7f)<<8)+(data[0]>>7)*(1<<16)+(data[1]&0x7f)+(data[1]>>7)*(1<<8))) { if (train.getEngineID() == ((data[0]&0xFF)*(1<<8)+(data[1]&0xFF))) {
System.out.println("Set engine speed: "+((data[4]>>7)*(1<<8))); System.out.println("Set engine speed");
train.setEngineSpeed((((data[3]&0x7f)<<8)+(data[3]>>7)*(1<<16)+(data[4]&0x7f)+(data[4]>>7)*(1<<8))); train.setEngineSpeed((data[3]&0xFF)*(1<<8)+(data[4]&0xFF));
break; break;
} }
} }
break; break;
case Properties.ENGINE_INCREASE_SPEED: case Properties.ENGINE_INCREASE_SPEED:
for (Engine train : Engine.engines) { for (Engine train : Engine.engines) {
if (train.getEngineID() == (((data[0]&0x7f)<<8)+(data[0]>>7)*(1<<16)+(data[1]&0x7f)+(data[1]>>7)*(1<<8))) { if (train.getEngineID() == ((data[0]&0xFF)*(1<<8)+(data[1]&0xFF))) {
System.out.println("Increase engine speed"); System.out.println("Increase engine speed");
train.increaseEngineSpeed(); train.increaseEngineSpeed();
break; break;
...@@ -268,7 +268,7 @@ class HandleThread implements Runnable { ...@@ -268,7 +268,7 @@ class HandleThread implements Runnable {
break; break;
case Properties.ENGINE_DECREASE_SPEED: case Properties.ENGINE_DECREASE_SPEED:
for (Engine train : Engine.engines) { for (Engine train : Engine.engines) {
if (train.getEngineID() == (((data[0]&0x7f)<<8)+(data[0]>>7)*(1<<16)+(data[1]&0x7f)+(data[1]>>7)*(1<<8))) { if (train.getEngineID() == ((data[0]&0xFF)*(1<<8)+(data[1]&0xFF))) {
System.out.println("Decrease engine speed"); System.out.println("Decrease engine speed");
train.decreaseEngineSpeed(); train.decreaseEngineSpeed();
break; break;
...@@ -277,7 +277,7 @@ class HandleThread implements Runnable { ...@@ -277,7 +277,7 @@ class HandleThread implements Runnable {
break; break;
case Properties.ENGINE_SET_DIRECTION: case Properties.ENGINE_SET_DIRECTION:
for (Engine train : Engine.engines) { for (Engine train : Engine.engines) {
if (train.getEngineID() == (((data[0]&0x7f)<<8)+(data[0]>>7)*(1<<16)+(data[1]&0x7f)+(data[1]>>7)*(1<<8))) { if (train.getEngineID() == ((data[0]&0xFF)*(1<<8)+(data[1]&0xFF))) {
System.out.println("Set engine direction"); System.out.println("Set engine direction");
train.setEngineDirection(data[3]); train.setEngineDirection(data[3]);
break; break;
...@@ -286,7 +286,7 @@ class HandleThread implements Runnable { ...@@ -286,7 +286,7 @@ class HandleThread implements Runnable {
break; break;
case Properties.ENGINE_SWITCH_DIRECTION: case Properties.ENGINE_SWITCH_DIRECTION:
for (Engine train : Engine.engines) { for (Engine train : Engine.engines) {
if (train.getEngineID() == (((data[0]&0x7f)<<8)+(data[0]>>7)*(1<<16)+(data[1]&0x7f)+(data[1]>>7)*(1<<8))) { if (train.getEngineID() == ((data[0]&0xFF)*(1<<8)+(data[1]&0xFF))) {
System.out.println("Switch engine direction"); System.out.println("Switch engine direction");
train.setEngineDirection(3); train.setEngineDirection(3);
break; break;
...@@ -295,7 +295,7 @@ class HandleThread implements Runnable { ...@@ -295,7 +295,7 @@ class HandleThread implements Runnable {
break; break;
case Properties.SWITCH_SET_DIRECTION: case Properties.SWITCH_SET_DIRECTION:
for (Switch sw : Switch.switches) { for (Switch sw : Switch.switches) {
if (sw.getSwitchID() == (((data[0]&0x7f)<<8)+(data[0]>>7)*(1<<16)+(data[1]&0x7f)+(data[1]>>7)*(1<<8))) { if (sw.getSwitchID() == ((data[0]&0xFF)*(1<<8)+(data[1]&0xFF))) {
System.out.println("Set switch direction"); System.out.println("Set switch direction");
sw.setSwitchDirection(data[3]); sw.setSwitchDirection(data[3]);
break; break;
...@@ -304,7 +304,7 @@ class HandleThread implements Runnable { ...@@ -304,7 +304,7 @@ class HandleThread implements Runnable {
break; break;
case Properties.SWITCH_SWITCH_DIRECTION: case Properties.SWITCH_SWITCH_DIRECTION:
for (Switch sw : Switch.switches) { for (Switch sw : Switch.switches) {
if (sw.getSwitchID() == (((data[0]&0x7f)<<8)+(data[0]>>7)*(1<<16)+(data[1]&0x7f)+(data[1]>>7)*(1<<8))) { if (sw.getSwitchID() == ((data[0]&0xFF)*(1<<8)+(data[1]&0xFF))) {
System.out.println("Switch switch direction"); System.out.println("Switch switch direction");
sw.changeSwitchDirection(); sw.changeSwitchDirection();
break; break;
......
...@@ -3,7 +3,7 @@ package server; ...@@ -3,7 +3,7 @@ package server;
public class MaerklinServerApplication { public class MaerklinServerApplication {
// Defining a threshold value for when the status-update is to be executed (in milliseconds) // Defining a threshold value for when the status-update is to be executed (in milliseconds)
private final static long updateThreshold = 100; private final static long updateThreshold = 500;
public static void main(String[] args) { public static void main(String[] args) {
...@@ -21,7 +21,7 @@ public class MaerklinServerApplication { ...@@ -21,7 +21,7 @@ public class MaerklinServerApplication {
while (true){ while (true){
if (System.currentTimeMillis()-timestamp >= updateThreshold) { if (System.currentTimeMillis()-timestamp >= updateThreshold) {
//server.statusUpdate(); server.statusUpdate();
timestamp = System.currentTimeMillis(); timestamp = System.currentTimeMillis();
} }
} }
......
...@@ -50,11 +50,6 @@ public class Switch { ...@@ -50,11 +50,6 @@ public class Switch {
throw e; throw e;
} }
udpProtocol.changeSwitchDirection(switchID, switchDirection); udpProtocol.changeSwitchDirection(switchID, switchDirection);
listener.listen();
/*if (switchDirection != listener.getSwitchDirection()){
Exception e = new Exception("Communication Error!");
throw e;
}*/
} }
public void changeSwitchDirection() throws Exception { public void changeSwitchDirection() throws Exception {
......
...@@ -32,23 +32,23 @@ public class UDPListener implements Runnable{ ...@@ -32,23 +32,23 @@ public class UDPListener implements Runnable{
} }
public int getEngineSpeed(){ public int getEngineSpeed(){
return (((in[9]&0x7f)<<8)+(in[9]>>7)*65536+(in[10]&0x7f)+(in[10]>>7)*256); return ((in[9]&0xFF)*(1<<8)+(in[10]&0xFF));
} }
public int getEngineDirection(){ public int getEngineDirection(){
return ((in[9]&0x7f)+(in[9]>>7)*256); return (in[9]&0xFF);
} }
public int getSwitchDirection(){ public int getSwitchDirection(){
return ((in[9]&0x7f)+(in[9]>>7)*256); return (in[9]&0xFF);
} }
public int getAddress(){ public int getAddress(){
return (((in[7]&0x7f)<<8)+(in[7]>>7)*65536+(in[8]&0x7f)+(in[8]>>7)*256); return ((in[7]&0xFF)*(1<<8)+(in[8]&0xFF));
} }
public int getCommand(){ public int getCommand(){
return ((in[1]&0x7e)+(in[1]>>7)*256); return (in[1]&0xFF);
} }
public boolean isAnswer(){ public boolean isAnswer(){
...@@ -85,8 +85,12 @@ public class UDPListener implements Runnable{ ...@@ -85,8 +85,12 @@ public class UDPListener implements Runnable{
@Override @Override
public void run() { public void run() {
try(DatagramSocket socket = new DatagramSocket(port)){
socket.setReuseAddress(true);
while (true){ while (true){
listen(); DatagramPacket incomingData = new DatagramPacket(in, in.length);
socket.receive(incomingData);
in = incomingData.getData();
if (isAnswer()){ if (isAnswer()){
if (getCommand() == 0x08){ if (getCommand() == 0x08){
for (Engine train : Engine.engines){ for (Engine train : Engine.engines){
...@@ -118,5 +122,9 @@ public class UDPListener implements Runnable{ ...@@ -118,5 +122,9 @@ public class UDPListener implements Runnable{
} }
} }
} }
catch (Exception e) {
e.printStackTrace();
}
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment