package kr.ac.kaist.resl.lilliput.util;
import java.util.GregorianCalendar;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import org.json.JSONException;
import org.json.JSONObject;
import org.ws4d.coap.connection.BasicCoapChannelManager;
public class SpaceEventThread extends Thread
{
public int period;
public String EPCLocation;
public String server_address;
public int port;
public SpaceEventThread(String EPCLocation, String server_address, int port , int period ){
this.period = period;
this.EPCLocation = EPCLocation;
this.server_address = server_address;
this.port = port;
}
public void run()
{
try {
while(true)
{
Thread.sleep(period*1000);
BasicCoapClient coapClient = new BasicCoapClient();
coapClient.channelManager = BasicCoapChannelManager.getInstance();
coapClient.runTestClient(server_address,port);
while(true)
{
if( coapClient.sensors == null )
{
Thread.sleep(100);
}
else
{
break;
}
}
System.out.println(coapClient.sensors);
String sensors = coapClient.sensors;
coapClient.sensors = null;
sensors = sensors.substring(1, sensors.length()-1);
String[] sensorArr = sensors.split(",");
//thl
if( sensorArr.length == 3)
{
DatatypeFactory dataFactory = DatatypeFactory.newInstance();
XMLGregorianCalendar now = dataFactory.newXMLGregorianCalendar(new GregorianCalendar());
JSONObject sensorJson = new JSONObject();
sensorJson.put("Temp", sensorArr[0]);
sensorJson.put("Humid", sensorArr[1]);
sensorJson.put("Light", sensorArr[2]);
sensorJson.put("EventTime", now.toString());
System.out.println(sensorJson);
SaveSpaceEvent savingSpaceEvent = new SaveSpaceEvent(EPCLocation, sensorJson);
savingSpaceEvent.save();
}
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DatatypeConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}