sdt.home.smarterkettle: code cleanup

Signed-off-by: BOLLE Sebastien <sebastien.bolle@orange.com>
Signed-off-by: Cyrille Bareau <cyrille.bareau@orange.com>
diff --git a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/Activator.java b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/Activator.java
index a9f9fc6..bd0d0a1 100644
--- a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/Activator.java
+++ b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/Activator.java
@@ -8,26 +8,16 @@
 package org.eclipse.om2m.sdt.home.smarterkettle;

 

 import java.util.Dictionary;

-import java.util.Hashtable;

-

-import javax.naming.Context;

-import javax.net.ssl.SSLException;

 

 import org.eclipse.om2m.sdt.Domain;

 import org.eclipse.om2m.sdt.exceptions.AccessException;

 import org.eclipse.om2m.sdt.exceptions.ActionException;

 import org.eclipse.om2m.sdt.exceptions.DataPointException;

 import org.eclipse.om2m.sdt.home.HomeDomain;

-import org.eclipse.om2m.sdt.home.driver.Logger;

-import org.eclipse.om2m.sdt.home.types.TasteStrength;

-import org.omg.CORBA.SystemException;

 import org.osgi.framework.BundleActivator;

 import org.osgi.framework.BundleContext;

-import org.osgi.framework.Constants;

-import org.osgi.framework.ServiceRegistration;

 import org.osgi.service.cm.ConfigurationException;

 import org.osgi.service.cm.ManagedService;

-import org.osgi.service.log.LogService;

 

 public class Activator implements ManagedService, BundleActivator {

 	

diff --git a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/SmarterKettle.java b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/SmarterKettle.java
index 79e531e..351dca6 100644
--- a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/SmarterKettle.java
+++ b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/SmarterKettle.java
@@ -24,20 +24,16 @@
 import org.eclipse.om2m.sdt.home.modules.Temperature;

 import org.eclipse.om2m.sdt.home.smarterkettle.communication.SmarterKettleCommunication;

 import org.eclipse.om2m.sdt.home.types.DatapointType;

-import org.eclipse.om2m.sdt.home.types.DeviceType;

+import org.eclipse.om2m.sdt.home.types.ModuleType;

 import org.eclipse.om2m.sdt.home.types.TasteStrength;

 import org.osgi.framework.BundleContext;

 import org.osgi.framework.ServiceRegistration;

 

-public class SmarterKettle extends Kettle{

+public class SmarterKettle extends Kettle {

 	

-	

+	@SuppressWarnings("rawtypes")

 	private List<ServiceRegistration> registrations;

 	private Domain domain; 

-	private String serial = "SmarterKettle";

-	private String IP;

-	private int port;

-	

 	

 	private SmarterKettleCommunication smarterKettle;

 	

@@ -46,99 +42,59 @@
 	private TasteStrength strength;

 	private IntegerDataPoint status;

 	

-	

 

 	public SmarterKettle(String id, Domain domain, String ip , int port) {

-		

 		super(id, id, domain);

 		this.domain = domain;

-		this.serial = id;

-		this.IP = ip;

-		this.port = port;

-		

 		smarterKettle = new SmarterKettleCommunication(ip, port);

-		

-		System.out.println("TUTAJ HALO: " + DeviceType.deviceKettle);

-		

-		

 		addBinarySwitch();

 		addFaultDetection();

 		addTemperature();

-		

 		setDeviceManufacturer("Smarter");

 		setDeviceName("SmarterKettle 2.0");

-	

-		

-		

-		

 	}

 	

-	

 	public void register(BundleContext context) {

 		registrations = Utils.register(this, context);

 	}

 	

-	

-	

 //*********************BinarySwitch*********************	

 	

-	private void addBinarySwitch(){

-		

-		

-

-		BinarySwitch binarySwitch = new BinarySwitch("BinarySwitch" + getId(), domain, new BooleanDataPoint(DatapointType.powerState){

-

+	private void addBinarySwitch() {

+		BinarySwitch binarySwitch = new BinarySwitch("BinarySwitch" + getId(), 

+				domain, new BooleanDataPoint(DatapointType.powerState) {

 			@Override

 			protected Boolean doGetValue() throws DataPointException {

-				return smarterKettle.kettleStatus.isBoiling();

+				return smarterKettle.getStatus().isBoiling();

 			}

-			

 			@Override

-			protected void doSetValue(Boolean v)throws DataPointException{

-				if(!smarterKettle.kettleStatus.isBoiling()){

-					smarterKettle.startKettle(smarterKettle.kettleStatus.getTargetTemperature());

-					System.out.println("Włączanie");

-				}

-					

-				else{

+			protected void doSetValue(Boolean v)throws DataPointException {

+				if (smarterKettle.getStatus().isBoiling()) {

 					smarterKettle.stopKettle();	

-					System.out.println("Wyłączanie");

+				} else {

+					smarterKettle.startKettle(smarterKettle.getStatus().getTargetTemperature());

 				}

-									

 			}			

 		});

 		

-		binarySwitch.setToggle(new Toggle("toggle"){

-

+		binarySwitch.setToggle(new Toggle("toggle") {

 			@Override

 			protected void doToggle() throws ActionException {

-				

 				smarterKettle.checkStatus();

-				

-				System.out.println("Uruchomiony toggle");

-				if(!smarterKettle.kettleStatus.isBoiling()){

-					smarterKettle.startKettle();

-					System.out.println("Włączanie");

-				}

-					

-				else{

+				if (smarterKettle.getStatus().isBoiling()) {

 					smarterKettle.stopKettle();	

-					System.out.println("Wyłączanie");

+				} else {

+					smarterKettle.startKettle();

 				}

-								

 			}			

 		});

-		

-		

 		addModule(binarySwitch);

 	}

-//*********************BinarySwitch*********************

 	

 //***************Fault Detection Module*****************

 

-	

 	private void addFaultDetection() {

-		FaultDetection faultDetection = new FaultDetection("FaultDetection_" + getId(), domain,

+		FaultDetection faultDetection = new FaultDetection(ModuleType.faultDetection + getId(), domain,

 				new BooleanDataPoint(DatapointType.status) {

 			@Override

 			public Boolean doGetValue() throws DataPointException {

@@ -146,107 +102,66 @@
 				return smarterKettle.getFaultDetection(); 

 			}

 		});

-		

 		faultDetection.setCode(new IntegerDataPoint(DatapointType.code) {

-			

 			@Override

 			protected Integer doGetValue() throws DataPointException {

 				return smarterKettle.getCode();

 			}	

 		});

-		

 		faultDetection.setDescription(new StringDataPoint(DatapointType.description) {

-			

 			@Override

 			protected String doGetValue() throws DataPointException {

 				return smarterKettle.getDescription();

 			}

 		});

-		

-		

-		

 		addModule(faultDetection);

 	}

 	

-	

-//***************Fault Detection Module*****************

-	

 //*****************Temperature Module*******************

 	

-	

 	private void addTemperature(){

-		System.out.println("Dodawanie modułu temperatury...");

-		Temperature temperature = new Temperature("Temperature_" + getId(), domain, new FloatDataPoint(DatapointType.currentTemperature) {

-			

+		Temperature temperature = new Temperature("Temperature_" + getId(), domain, 

+				new FloatDataPoint(DatapointType.currentTemperature) {

 			@Override

 			protected Float doGetValue() throws DataPointException {

-				return (float) smarterKettle.kettleStatus.getCurrentTemperature();

+				return (float) smarterKettle.getStatus().getCurrentTemperature();

 			}

-			

-			

-			

 		});

-		

 		temperature.setTargetTemperature(new FloatDataPoint(DatapointType.targetTemperature) {

-			

 			@Override

 			protected Float doGetValue() throws DataPointException {

-				return (float)smarterKettle.kettleStatus.getTargetTemperature();

+				return (float)smarterKettle.getStatus().getTargetTemperature();

 			}

-			

 			@Override

 			protected void doSetValue(Float b) throws DataPointException {

-				

-				smarterKettle.kettleStatus.setTargetTemperature(Math.round(b));

+				smarterKettle.getStatus().setTargetTemperature(Math.round(b));

 			}

-					

-			

 		});

-		

 		temperature.setUnit(new StringDataPoint(DatapointType.unit) {

-			

 			@Override

 			protected String doGetValue() throws DataPointException {

 				return null;

 			}

 		});

-		

 		temperature.setMinValue(new FloatDataPoint(DatapointType.minValue) {

-			

 			@Override

 			protected Float doGetValue() throws DataPointException {

-				return (float)smarterKettle.kettleStatus.getMinTemperature();

+				return (float)smarterKettle.getStatus().getMinTemperature();

 			}

-			

-			

 		});

-		

 		temperature.setMaxValue(new FloatDataPoint(DatapointType.maxValue) {

-			

 			@Override

 			protected Float doGetValue() throws DataPointException {

-				return (float)smarterKettle.kettleStatus.getMaxTemperature();

+				return (float)smarterKettle.getStatus().getMaxTemperature();

 			}

 		});

-		

 		temperature.setStepValue(new FloatDataPoint(DatapointType.stepValue) {

-			

 			@Override

 			protected Float doGetValue() throws DataPointException {

-				return (float)smarterKettle.kettleStatus.getStepTemperature();

+				return (float)smarterKettle.getStatus().getStepTemperature();

 			}

 		});

-		

-		

-		

 		addModule(temperature);

 	}

-	

-//*****************Temperature Module*******************

-

 

 }

-

-	

-	

-

diff --git a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleCommands.java b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleCommands.java
index d91bdd5..603b6be 100644
--- a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleCommands.java
+++ b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleCommands.java
@@ -7,16 +7,11 @@
  *******************************************************************************/

 package org.eclipse.om2m.sdt.home.smarterkettle.communication;

 

-public class SmarterKettleCommands {

+public interface SmarterKettleCommands {

 	

-	public static final byte START_KETTLE = 21; //START KETTLE

-	public static final byte STOP_KETTLE = 22; //STOP KETTLE

-	public static final byte SHEDULE_TEST = 65;

+	byte START_KETTLE = 21; //START KETTLE

+	byte STOP_KETTLE = 22; //STOP KETTLE

+	byte SHEDULE_TEST = 65;

+	byte END_OF_MESSAGE = 126; //ENDING MESSAGE

 	

-	public static final byte END_OF_MESSAGE = 126; //ENDING MESSAGE

-	

-	

-	

-	

-

 }

diff --git a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleCommunication.java b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleCommunication.java
index 77d46a8..cf8b4f8 100644
--- a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleCommunication.java
+++ b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleCommunication.java
@@ -7,161 +7,85 @@
  *******************************************************************************/

 package org.eclipse.om2m.sdt.home.smarterkettle.communication;

 

-import javax.net.ssl.SSLEngineResult.Status;

-

 public class SmarterKettleCommunication {

 	

-	

-	public SmarterKettleStatus kettleStatus;

+	private SmarterKettleStatus kettleStatus;

+	private String ip;

+	private int port;

 	

 	public SmarterKettleCommunication(String ip, int port) {

-		TCPConnection.setAddress(ip);

-		TCPConnection.setPort(port);

-		

+		this.ip = ip;

+		this.port = port;

 		kettleStatus = new SmarterKettleStatus();

 	}

 

 

 	public void startKettle(int temperature){

-		TCPConnection tcp = new TCPConnection();

-		tcp.setWaitForResponse(true);;

-		

 		byte[] request = new byte[4];

-		

 		request[0] = SmarterKettleCommands.START_KETTLE;

 		request[1] = (byte)temperature;

 		request[2] = (byte)0;

 		request[3] = SmarterKettleCommands.END_OF_MESSAGE;

-		

-		System.out.println("sent: " + "0:" + request[0] + "| 1: " + request[1] + "| 2: " + request[2] + "| 3: " + request[3] + "|");

-		

-		tcp.sendTCPPacket(request);	

-		

-		

-		

+		send(request);

 	}

 	

-	public void startKettle(){

-		TCPConnection tcp = new TCPConnection();

-		tcp.setWaitForResponse(true);;

-		

-		byte[] request = new byte[4];

-		

-		int temperature = kettleStatus.getTargetTemperature();

-		

-		request[0] = SmarterKettleCommands.START_KETTLE;

-		request[1] = (byte)temperature;

-		request[2] = (byte)0;

-		request[3] = SmarterKettleCommands.END_OF_MESSAGE;

-		

-		System.out.println("sent: " + "0:" + request[0] + "| 1: " + request[1] + "| 2: " + request[2] + "| 3: " + request[3] + "|");

-		

-		tcp.sendTCPPacket(request);	

-		

-		

-		

+	public void startKettle() {

+		startKettle(kettleStatus.getTargetTemperature());

 	}

 	

-	public void stopKettle(){

-		TCPConnection tcp = new TCPConnection();

-		tcp.setWaitForResponse(true);;

-		

+	public void stopKettle() {

 		byte[] request = new byte[2];

-		

 		request[0] = SmarterKettleCommands.STOP_KETTLE;

 		request[1] = SmarterKettleCommands.END_OF_MESSAGE;

-		

-		

-		System.out.println("sent: " + "0:" + request[0] + "| 1: " + request[1] + "|");

-		tcp.sendTCPPacket(request);

-		

-		

-			

+		send(request);

 	}

 	

-	public void checkDeviceInfo(){

-		TCPConnection tcp = new TCPConnection();

-		tcp.setWaitForResponse(true);

-		

+	public void checkDeviceInfo() {

 		byte[] request = new byte[1];

 		//request[0] = SmarterKettleCommands.CHECK_STATUS;

 		request[0] = SmarterKettleCommands.END_OF_MESSAGE;

-		

-		System.out.println("sent: " + "0:" + request[0] + "|");

-		

-		tcp.sendTCPPacket(request);

-		

-		

+		send(request);

 	}

 	

-	public void sheduleTest(){

-		TCPConnection tcp = new TCPConnection();

-		tcp.setWaitForResponse(true);

-		

+	public void sheduleTest() {

 		byte[] request = new byte[1];

 		request[0] = SmarterKettleCommands.SHEDULE_TEST;

-		System.out.println("sent: " + "0:" + request[0] + "|");

-		tcp.sendTCPPacket(request);

+		send(request);

 	}

 	

-	

-	

-	

-	public void checkStatus(){//Water level and current temperature are available only when kettle isPlugged.

-		TCPConnection tcp = new TCPConnection();

-		byte[] statusAnswer = new byte[7];

-		statusAnswer = tcp.checkStatus();	

+	public void checkStatus() {

+		//Water level and current temperature are available only when kettle isPlugged.

+		TCPConnection tcp = new TCPConnection(ip, port);

+		byte[] statusAnswer = tcp.checkStatus();	

 		

 		kettleStatus.setCurrentTemperature(Byte.toUnsignedInt(statusAnswer[2]));

+		kettleStatus.setBoiling(statusAnswer[1] != 0);

+		kettleStatus.setPlugged(statusAnswer[3] == 8);

 		kettleStatus.setWaterLevel(Byte.toUnsignedInt(statusAnswer[4]));	

-		

-		

-		

-		

-		if(statusAnswer[1] == 0)

-			kettleStatus.setBoiling(false);

-		else 

-			kettleStatus.setBoiling(true);

-		

-		if(statusAnswer[3] == (int)8)

-			kettleStatus.setPlugged(true);

-		else

-			kettleStatus.setPlugged(false);

-		

-		kettleStatus.setWaterLevel(Byte.toUnsignedInt(statusAnswer[4]));

 		kettleStatus.setWaterLevelEnum(Byte.toUnsignedInt(statusAnswer[4]));

-		

-		

-		System.out.println("STATUS -------- Czy gotuje: " + kettleStatus.isBoiling());

-		System.out.println("Czy stoi na podstawie: " + kettleStatus.isPlugged());

-		System.out.println("Ile wody: " + kettleStatus.getWaterLevel());

-		System.out.println("Aktualna temperatura: " + kettleStatus.getCurrentTemperature());

-		System.out.println("Ile wody nazwa: " + kettleStatus.getWaterLevelName());

-		

-		

-		

-		

-		

-		

-		

-		

-		

-		

 	}

 

-

 	public Boolean getFaultDetection() {

 		return kettleStatus.getFaultDetection();

 	}

 

-

 	public Integer getCode() {

 		return kettleStatus.getCode();

 	}

 

-

 	public String getDescription() {

 		return kettleStatus.getDescription();

 	}

+	

+	public SmarterKettleStatus getStatus() {

+		return kettleStatus;

+	}

 

+	private void send(byte[] request) {

+		TCPConnection tcp = new TCPConnection(ip, port);

+		tcp.setWaitForResponse(true);

+		System.out.println("send: 0:" + request[0] + "| 1: " + request[1] + "| 2: " + request[2] + "| 3: " + request[3] + "|");

+		tcp.sendTCPPacket(request);	

+	}

+	

 }

diff --git a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleMain.java b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleMain.java
index a85477f..0e396f1 100644
--- a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleMain.java
+++ b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleMain.java
@@ -7,7 +7,6 @@
  *******************************************************************************/

 package org.eclipse.om2m.sdt.home.smarterkettle.communication;

 

-

 import java.util.Scanner;

 

 public class SmarterKettleMain {

@@ -15,55 +14,30 @@
 	public static void main(String[] args) throws InterruptedException {

 		

 		System.out.println("Smart Kettle 2.0");

-		System.out.println("1 - wlacz, 2 - wylacz, 3- checkStatus");

+		System.out.println("1 - start, 2 - stop, 3- checkStatus");

 		

-		

-		TCPConnection.setAddress("10.0.1.27");

-		TCPConnection.setPort(2081);

-		

-		while(true){

+		while (true) {

 			SmarterKettleCommunication kettle = new SmarterKettleCommunication("10.0.1.27", 2081);

-			

-			int action = 100;

-			

-			

 			Scanner input = new Scanner(System.in);

 			String inputString = input.nextLine();

-			action = Integer.parseInt(inputString);

+			int action = Integer.parseInt(inputString);

 			

-			switch(action){

+			switch (action) {

 			case 1:

 				System.out.println("Temperatura: ");

-				int temperature = 100;

 				inputString = input.nextLine();

-				temperature = Integer.parseInt(inputString);

+				int temperature = Integer.parseInt(inputString);

 				kettle.startKettle(temperature);

-				action = 100;

 				break;

 			case 2: 

 				kettle.stopKettle();

-				action = 100;

 				break;

 			case 3:

 				kettle.checkStatus();

-				action = 100;

 				break;

-			

-			

-				

-				

 			}

+			input.close();

 		}

-

-		

-		

-		

-

-

-		

 	}

-		

-	

-

 

 }

diff --git a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleStatus.java b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleStatus.java
index e740952..0626211 100644
--- a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleStatus.java
+++ b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/SmarterKettleStatus.java
@@ -16,10 +16,15 @@
 	

 	public final SmarterKettleStatusDescriptor BOILING_IN_PROGRESS = new SmarterKettleStatusDescriptor(1,  "Boiling in progress");

 	

+	private enum WaterLevels {

+		EMPTY, LOW, HALF, QUARTER, FULL;

+	}

 

 	private int currentTemperature = 0;

 	private  int waterLevel = 0;

 

+	private WaterLevels waterLevelName = WaterLevels.EMPTY;

+

 	private boolean isPlugged = false;

 	private boolean isBoiling = false;

 	private boolean isEmpty = false;

@@ -29,8 +34,8 @@
 	private int maxTemperature = 100;

 	private int stepTemperature = 1;

 	

-	public int getCode(){

-		if(!isPlugged)

+	public int getCode() {

+		if (!isPlugged)

 			return UNPLUGGED.getCode();

 		else if (isEmpty) 

 			return WATER_ERROR.getCode();

@@ -38,28 +43,20 @@
 			return NO_FAULT.getCode();

 	}

 	

-	public String getDescription(){

-		if(!isPlugged)

+	public String getDescription() {

+		if (!isPlugged)

 			return UNPLUGGED.getDescription();

 		else if (isEmpty) 

 			return WATER_ERROR.getDescription();

 		else 

 			return NO_FAULT.getDescription();

 	}

-	

-	

 

-	public enum waterLevels {

-		EMPTY, LOW, HALF, QUARTER, FULL;

-	}

-

-	private waterLevels waterLevelName = waterLevels.EMPTY;

-

-	public waterLevels getWaterLevelName() {

+	public WaterLevels getWaterLevelName() {

 		return waterLevelName;

 	}

 

-	public void setWaterLevelName(waterLevels waterLevelName) {

+	public void setWaterLevelName(WaterLevels waterLevelName) {

 		this.waterLevelName = waterLevelName;

 	}

 

@@ -79,17 +76,17 @@
 		this.waterLevel = waterLevel;

 	}

 

-	public  void setWaterLevelEnum(int waterLevel) {

-		if (waterLevel >= 190)

-			waterLevelName = waterLevels.FULL;

-		else if (waterLevel < 190 && waterLevel >= 120)

-			waterLevelName = waterLevels.QUARTER;

-		else if (waterLevel < 120 && waterLevel >= 80)

-			waterLevelName = waterLevels.HALF;

-		else if (waterLevel < 80 && waterLevel >= 20)

-			waterLevelName = waterLevels.LOW;

+	public  void setWaterLevelEnum(int level) {

+		if (level >= 190)

+			waterLevelName = WaterLevels.FULL;

+		else if (level < 190 && level >= 120)

+			waterLevelName = WaterLevels.QUARTER;

+		else if (level < 120 && level >= 80)

+			waterLevelName = WaterLevels.HALF;

+		else if (level < 80 && level >= 20)

+			waterLevelName = WaterLevels.LOW;

 		else

-			waterLevelName = waterLevels.EMPTY;

+			waterLevelName = WaterLevels.EMPTY;

 	}

 

 	public  boolean isPlugged() {

@@ -108,15 +105,8 @@
 		this.isBoiling = isBoiling;

 	}

 	

-	

-	

-	public boolean getFaultDetection(){

-		if(!isPlugged)

-			return false;

-		else if(isEmpty)

-			return false;

-		else

-			return true;

+	public boolean getFaultDetection() {

+		return isPlugged && ! isEmpty;

 	}

 

 	public boolean isEmpty() {

diff --git a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/TCPConnection.java b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/TCPConnection.java
index 17718fa..69a0d0e 100644
--- a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/TCPConnection.java
+++ b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.smarterkettle/src/main/java/org/eclipse/om2m/sdt/home/smarterkettle/communication/TCPConnection.java
@@ -14,49 +14,36 @@
 import java.net.Socket;

 import java.net.UnknownHostException;

 

-

 public class TCPConnection {

-	

-	private static String address = "";

 

-	private static int port = 2081;

-

-	private Socket socket;

-

+	private String address = "";

+	private int port = 2081;

 	private boolean waitForResponse = true;  // should be set true if ACK or Status expected

 	

-	/*public TCPConnection(String address, int port){

-		

-		this.address = address;

+	public TCPConnection(String ip, int port) {

+		this.address = ip;

 		this.port = port;

-		

-	}*/

-	

-

-	public void sendTCPPacket(byte[] bytes2send){

-		sendTCPPacket(bytes2send, this.address, this.port);

-		

 	}

-	

-	

-	public void sendTCPPacket(byte[] bytes2send, String address, int port){

+

+	public void sendTCPPacket(byte[] bytes2send) {

+		sendTCPPacket(bytes2send, address, port);

+	}

+

+	public void sendTCPPacket(byte[] bytes2send, String address, int port) {

 		try {

-			socket = new Socket(address, port);

-			

+			Socket socket = new Socket(address, port);

 			sendBytes(bytes2send, socket);

-			

-			if(!waitForResponse ){

+

+			if (! waitForResponse) {

 				socket.close();

-			}else{

+			} else {

 				/*if(bytes2send[0] == SmarterCoffeeCommands.HEADER_START){

-					

+

 				}

 				else{*/

-					readBytes();

-				//}

+				readBytes(socket);

 				//socket.close();

 			}

-			

 		} catch (UnknownHostException e) {

 			// TODO Auto-generated catch block

 			e.printStackTrace();

@@ -66,131 +53,92 @@
 		}

 	}

 

-

-

-public void sendBytes(byte[] bytes2send, Socket socket) throws IOException {

-    sendBytes(bytes2send, 0, bytes2send.length, socket);

-}

-

-public void sendBytes(byte[] bytes2send, int start, int len, Socket socket) throws IOException {

-    if (len < 0)

-        throw new IllegalArgumentException("Negative length not allowed");

-    if (start < 0 || start >= bytes2send.length)

-        throw new IndexOutOfBoundsException("Out of bounds: " + start);

-

-    if(socket != null){

-    	OutputStream out = socket.getOutputStream(); 

-    	DataOutputStream dos = new DataOutputStream(out);

-

-    	//dos.writeInt(len);

-    	if (len > 0) {

-    		dos.write(bytes2send, start, len);

-    	}

-    	

-    	//dos.close();

-    	//out.close();

-    }

-    

-}

-

-public byte[] readBytes() throws IOException {

-	boolean statusMsg = false;

-	 byte[] buffer = new byte[1024];

-	    int charsRead = 0;

-	    if(socket!= null){

-	    	InputStream in = this.socket.getInputStream();

-	    	

-	    	

-	    	while(!statusMsg){

-	    		int k = 0;

-	    		int iterator = 0;

-	    		while ((charsRead = in.read(buffer)) != -1)

-	    			

-	    		

-	    

-	    

-	    		{	

-	    			

-	    			iterator++;

-	    			

-	    			if(charsRead == 3) break;  //ACK received

-	    			if(charsRead > 3) statusMsg = true; //Status received

-	    		

-	    				for(int i = 0; i < charsRead; i++){

-	    					if(i == 2)

-	    						System.out.print( "Temp ( " + i + ")" +": " + Byte.toUnsignedInt(buffer[i]) + " | ");

-	    					else

-	    						System.out.print( i +": " + Byte.toUnsignedInt(buffer[i]) + " | ");	        

-	    				}

-	    				System.out.println(" ");

-	    		

-	    			if(buffer[charsRead-1] == SmarterKettleCommands.END_OF_MESSAGE) break; 

-	    		   

-	    			

-	    		

-	    		}

-	    		

-	    	}

-	    		in.close();

-	    }

-	    byte[] data = new byte[charsRead];

-	    System.arraycopy(buffer, 0, data, 0, charsRead);

-	    	 

-    return data;

-}

-

-public byte[] checkStatus(){

-	

-	byte[] result = new byte[7];

-	

-	try {

-		socket = new Socket(address, port);

-		result = readBytes();

-		return result;

-		//socket.close();

-		

-	} catch (UnknownHostException e) {

-

-		e.printStackTrace();

-	} catch (IOException e) {

-

-		e.printStackTrace();

+	private void sendBytes(byte[] bytes2send, Socket socket) throws IOException {

+		sendBytes(bytes2send, 0, bytes2send.length, socket);

 	}

-	

-	return result;

-	

-	

-}

 

+	private void sendBytes(byte[] bytes2send, int start, int len, Socket socket) throws IOException {

+		if (len < 0)

+			throw new IllegalArgumentException("Negative length not allowed");

+		if (start < 0 || start >= bytes2send.length)

+			throw new IndexOutOfBoundsException("Out of bounds: " + start);

 

-public static String getAddress() {

-	return address;

-}

+		if (socket != null) {

+			OutputStream out = socket.getOutputStream(); 

+			DataOutputStream dos = new DataOutputStream(out);

+			//dos.writeInt(len);

+			if (len > 0) {

+				dos.write(bytes2send, start, len);

+			}

+			//dos.close();

+			//out.close();

+		}

+	}

 

+	private byte[] readBytes(Socket socket) throws IOException {

+		boolean statusMsg = false;

+		byte[] buffer = new byte[1024];

+		int charsRead = 0;

+		if (socket != null) {

+			InputStream in = socket.getInputStream();

+			while (!statusMsg) {

+				int iterator = 0;

+				while ((charsRead = in.read(buffer)) != -1) {	

+					iterator++;

+					if (charsRead == 3) break;  //ACK received

+					if (charsRead > 3) statusMsg = true; //Status received

+//					for (int i = 0; i < charsRead; i++) {

+//						if (i == 2)

+//							System.out.print( "Temp ( " + i + ")" +": " + Byte.toUnsignedInt(buffer[i]) + " | ");

+//						else

+//							System.out.print( i +": " + Byte.toUnsignedInt(buffer[i]) + " | ");	        

+//					}

+					if (buffer[charsRead-1] == SmarterKettleCommands.END_OF_MESSAGE) 

+						break; 

+				}

+			}

+			in.close();

+		}

+		byte[] data = new byte[charsRead];

+		System.arraycopy(buffer, 0, data, 0, charsRead);

+		return data;

+	}

 

-public static void setAddress(String address) {

-	TCPConnection.address = address;

-}

+	public byte[] checkStatus() {

+		try {

+			Socket socket = new Socket(address, port);

+			return readBytes(socket);

+			//socket.close();

+		} catch (UnknownHostException e) {

+			e.printStackTrace();

+		} catch (IOException e) {

+			e.printStackTrace();

+		}

+		return new byte[7];

+	}

 

+	public String getAddress() {

+		return address;

+	}

 

-public boolean isWaitForResponse() {

-	return waitForResponse;

-}

+	public void setAddress(String address) {

+		this.address = address;

+	}

 

+	public boolean isWaitForResponse() {

+		return waitForResponse;

+	}

 

-public void setWaitForResponse(boolean waitForResponse) {

-	this.waitForResponse = waitForResponse;

-}

+	public void setWaitForResponse(boolean waitForResponse) {

+		this.waitForResponse = waitForResponse;

+	}

 

-public static int getPort() {

-	return port;

-}

+	public int getPort() {

+		return port;

+	}

 

-

-public static void setPort(int port) {

-	TCPConnection.port = port;

-}

-

-

+	public void setPort(int port) {

+		this.port = port;

+	}

 

 }