blob: 877b496c9fe4eef435fc12c1a02acf62bc3a2623 [file] [log] [blame]
package org.eclipse.om2m.sdt.home.smarterkettle.communication;
import javax.net.ssl.SSLEngineResult.Status;
public class SmarterKettleCommunication {
public SmarterKettleStatus kettleStatus;
public SmarterKettleCommunication(String ip, int port) {
TCPConnection.setAddress(ip);
TCPConnection.setPort(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);
}
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 stopKettle(){
TCPConnection tcp = new TCPConnection();
tcp.setWaitForResponse(true);;
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);
}
public void checkDeviceInfo(){
TCPConnection tcp = new TCPConnection();
tcp.setWaitForResponse(true);
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);
}
public void sheduleTest(){
TCPConnection tcp = new TCPConnection();
tcp.setWaitForResponse(true);
byte[] request = new byte[1];
request[0] = SmarterKettleCommands.SHEDULE_TEST;
System.out.println("sent: " + "0:" + request[0] + "|");
tcp.sendTCPPacket(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();
kettleStatus.setCurrentTemperature(Byte.toUnsignedInt(statusAnswer[2]));
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();
}
}