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(); } } }