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;
+ }
}