Skip to content
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
7 changes: 7 additions & 0 deletions nbproject/project.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
annotation.processing.enabled=true
annotation.processing.enabled.in.editor=false
annotation.processing.processors.list=
annotation.processing.run.all.processors=true
application.title=MyGame
application.vendor=MyCompany
assets.jar.name=assets.jar
Expand Down Expand Up @@ -35,6 +39,8 @@ javac.classpath=\
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
javac.processorpath=\
${javac.classpath}
javac.source=1.5
javac.target=1.5
javac.test.classpath=\
Expand All @@ -60,6 +66,7 @@ jnlp.signed=false
main.class=org.nhl.containing.simulator.Main
meta.inf.dir=${src.dir}/META-INF
manifest.file=MANIFEST.MF
mkdist.disabled=false
platform.active=default_platform
run.classpath=\
${javac.classpath}:\
Expand Down
164 changes: 164 additions & 0 deletions src/main/java/org/nhl/containing/controller/Communication.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
package org.nhl.containing.controller;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
/*
* Commands;
*
* OK + [OBJECT] + [OBJECTID] + /OK
*
*/

/**
* @author TRJMM Used to communicate with the Backend system
*/
public class Communication {

private enum Status {

LISTEN, SENDING, INITIALIZE, DISPOSE
};
private Status status;
private Socket client;
private InputStream inFromServer;
private DataOutputStream out;
private final int PORT = 6666;
private final String serverName = "localhost";
private Thread operation;
private String commando = "";

public Communication() {
status = Status.INITIALIZE;
}

public String getCommando() {
return commando;
}

/**
* Starts the client
*/
public void startClient() {
try {

System.out.println("Connecting to " + serverName
+ " on port " + PORT);
client = new Socket(serverName, PORT);
System.out.println(" Just connected to "
+ client.getRemoteSocketAddress());
} catch (IOException e) {
}
sleep(1000);
}

/**
* Listens for input from the backend system
*/
public void listen() {
try {
if (client == null) {
client = new Socket(serverName, PORT);
sleep(100);
}
System.out.println("Listening to "
+ client.getRemoteSocketAddress() + "...");
inFromServer = client.getInputStream();
DataInputStream input =
new DataInputStream(inFromServer);
commando = input.readUTF();
if (commando.equals("")) {
input.reset();
commando = "";
} else {
System.out.println("Recieved string " + commando + " from backend system!");
}
} catch (IOException e) {
}
}

/**
* Sends a message to the backend system
*
* @param message The message
*/
public void sendMessage(String message) {
status = Status.SENDING;

try {
if (client == null) {
client = new Socket(serverName, PORT);
sleep(100);
}
System.out.println("Trying to send message " + message + " to the Backend system!");
out = new DataOutputStream(client.getOutputStream());
out.writeUTF(message);
System.out.println("Sent message " + message + " to the Backend system!");

} catch (Exception e) {
}
status = Status.LISTEN;
}

/**
* Stops the client and stops this thread
*/
public void stopClient() {
try {
client.close();
status = Status.DISPOSE;
} catch (Exception e) {
}
}

/**
* This method will be called once and loops until the thread stops.
*/
public void Start() {
operation = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
switch (status) {
case INITIALIZE:
startClient();
status = Status.LISTEN;
break;
case LISTEN:
listen();
status = Status.LISTEN;
break;
case SENDING:
sleep(100);
status = Status.SENDING;
break;
case DISPOSE:
operation.stop();
break;
}

} catch (Throwable e) {
}
}
}
});
operation.setName("Simulation Communicator");
operation.start();
}

/**
* Sleep this thread we are working with for x milliseconds
*
* @param milliseconds How long are we waiting in milliseconds?
*/
public void sleep(int milliseconds) {
try {
operation.currentThread().sleep(milliseconds); //1000 milliseconds is one second.
} catch (InterruptedException ex) {
operation.currentThread().interrupt();
}
}
}
15 changes: 9 additions & 6 deletions src/main/java/org/nhl/containing/controller/Container.java
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
package org.nhl.containing.controller;

import java.util.Date;

/**
* Data model for a container.
*
*
* @author Ruben Bakker
*/
public class Container {
private int arrivalDate; // Probably change to DateTime format.

private Date arrivalDate;
private String arrivalTransportType; // Method of transport through which the container was delivered.
private String arrivalCompany;
private String owner;
private int departureDate; // Probably change to DateTime format.
private Date departureDate;
private String departureTransportType; // Method of transport through which the container must be dispatched.
private String departureCompany;
private float weight; // Weight in kilogrammes.
private String contents; // What's in the container?
public Container(int arrivalDate, String arrivalTransportType, String arrivalCompany, String owner,
int departureDate, String departureTransportType, String departureCompany, float weight, String contents) {

public Container(Date arrivalDate, String arrivalTransportType, String arrivalCompany, String owner,
Date departureDate, String departureTransportType, String departureCompany, float weight, String contents) {
this.arrivalDate = arrivalDate;
this.arrivalTransportType = arrivalTransportType;
this.arrivalCompany = arrivalCompany;
Expand Down
13 changes: 10 additions & 3 deletions src/main/java/org/nhl/containing/controller/Controller.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,18 @@

/**
* Central logic controller.
*
* @author Ruben Bakker
*
* @author TRJMM
*/
public class Controller {

private Communication client;

public Controller() {

client = new Communication();
}

public void Start() {
client.Start();
}
}
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
package org.nhl.containing.simulator;
package org.nhl.containing.controller;

import com.jme3.app.SimpleApplication;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.renderer.RenderManager;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Box;

/**
* test
* @author normenhansen
*
*
* @author TRJMM
*/
public class Main extends SimpleApplication {

public static void main(String[] args) {
Main app = new Main();
app.start();
//Main app = new Main();
//app.start();
Controller controller = new Controller();
controller.Start();
}

@Override
Expand Down