From 2e78879769a15e2a055891751b57aa16ddf99ab9 Mon Sep 17 00:00:00 2001 From: Jonathan Roemer Date: Mon, 27 Apr 2015 17:28:28 -0400 Subject: [PATCH] More adjustments to the threaded sections. They actually start threads this time. --- src/server/server.java | 21 ++++++++++++++------- src/thermostat/ThermostatDevice.java | 14 ++++++++++---- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/server/server.java b/src/server/server.java index 13b9bac..3d92233 100644 --- a/src/server/server.java +++ b/src/server/server.java @@ -32,16 +32,18 @@ public static server getInstance() { // Database object Database dataStorage; // Threaded network listener so we don't block other operations - Thread serverListenerThread; + Thread serverCurrentTempListener; + // String to hold the current temperature + String currentTempString; public server() throws Exception { // Default admin user - String adminpassword = "admin"; + String adminPassword = "admin"; String ip = "127.0.0.1"; String email = "admin@uconn.edu"; - String serialnumber = "1.1"; + String serialNumber = "1.1"; Database dataStorage = new Database(this); - dataStorage.createUser(email, adminpassword, ip, null); + dataStorage.createUser(email, adminPassword, ip, serialNumber); this.startServerListenerThreadCurrentTemp(); } @@ -85,7 +87,7 @@ public String getDevicesFromEmail(String email) { } // Sends the desired temperature on port sendDesiredTempPORT - public void sendDesiredTemp(int desiredTemperature, String thermostatIP) throws Exception { + public void sendDesiredTemp(String desiredTemperature, String thermostatIP) throws Exception { // Opens a sending port Socket sender = new Socket(thermostatIP, 7002); try { @@ -93,6 +95,7 @@ public void sendDesiredTemp(int desiredTemperature, String thermostatIP) throws // Instantiate a printwriter so we can write to the output stream PrintWriter out = new PrintWriter(sender.getOutputStream(), true); // Send out the value of desiredTemperature + int desiredTempInt = Integer.parseInt(desiredTemperature); out.println(desiredTemperature); } } finally { @@ -138,8 +141,11 @@ public void run() { } } }; + serverCurrentTempListener = new Thread(runnable); + serverCurrentTempListener.start(); } - + + /* // Threaded receiver function // Listens on 7000 and outputs the received int to console public void startServerListenerThreadSerialNumber() { @@ -158,7 +164,7 @@ public void run() { // Parses the input stream int currentTemperature = Integer.parseInt(input.readLine()); // Outputs the current temperature to the console and writes to disk - System.out.printf("The current temperature is: %d \n", currentTemperature); + System.out.printf("This Raspberry Pi's serial number is: %d \n", currentTemperature); String currentTempString = Integer.toString(currentTemperature); //this.setCurrentTempForSerialNumber(); } finally { @@ -178,6 +184,7 @@ public void run() { } }; } + */ public void datastructureLogEvent(String query) { } diff --git a/src/thermostat/ThermostatDevice.java b/src/thermostat/ThermostatDevice.java index b4f7046..f3417bb 100644 --- a/src/thermostat/ThermostatDevice.java +++ b/src/thermostat/ThermostatDevice.java @@ -23,6 +23,9 @@ public class ThermostatDevice extends ThermostatNetworking implements Deviceable List actuatorList; private Timer clock; private String serialNumber; + String desiredTempString; + // Threaded listener thread + Thread thermostatListener; public ThermostatDevice(Integer updateIntervalInSeconds){ try { @@ -97,7 +100,8 @@ public void sendCurrentTemp(String currentTemp) throws IOException { // Instantiate a printwriter so we can write to the output stream PrintWriter out = new PrintWriter(sender.getOutputStream(), true); // Send out the value of currentTemperature - out.println(currentTemp); + int currentTempInt = Integer.parseInt(currentTemp); + out.println(currentTempInt); } } finally { // Immediately close the socket when finished. @@ -132,10 +136,10 @@ public void run() { // Creates a new input stream reader BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream())); // Parses the input stream - int currentTemperature = Integer.parseInt(input.readLine()); + int desiredTemperature = Integer.parseInt(input.readLine()); // Outputs the desired temperature to the console and writes to disk - System.out.printf("The desired temperature is: %d \n", currentTemperature); - String currentTempString = Integer.toString(currentTemperature); + System.out.printf("The desired temperature is: %d \n", desiredTemperature); + desiredTempString = Integer.toString(desiredTemperature); //this.setCurrentTempForSerialNumber(); } finally { socket.close(); @@ -153,6 +157,8 @@ public void run() { } } }; + thermostatListener = new Thread(runnable); + thermostatListener.start(); } }