* mqtt service cleanup
* removed unused methods
This commit is contained in:
		@@ -11,7 +11,7 @@ import java.io.IOException;
 | 
			
		||||
public class main {
 | 
			
		||||
    public static void main(String[] args) {
 | 
			
		||||
 | 
			
		||||
        Log.setLevel(Log.INFO);
 | 
			
		||||
        Log.setLevel(Log.DEBUG);
 | 
			
		||||
        Log.info("startup of WasteInformationServer");
 | 
			
		||||
 | 
			
		||||
        Log.info("mem: "+Runtime.getRuntime().totalMemory());
 | 
			
		||||
@@ -52,7 +52,7 @@ public class main {
 | 
			
		||||
        //startup mqtt service
 | 
			
		||||
        Log.message("starting mqtt service");
 | 
			
		||||
        try {
 | 
			
		||||
            MqttService m = new MqttService();
 | 
			
		||||
            MqttService m = new MqttService("mqtt.heili.eu","1883");
 | 
			
		||||
            m.startupService();
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            Log.error("An error occured in the class mqtt");
 | 
			
		||||
 
 | 
			
		||||
@@ -4,28 +4,25 @@ import com.wasteinformationserver.basicutils.Log;
 | 
			
		||||
import com.wasteinformationserver.db.JDCB;
 | 
			
		||||
import org.eclipse.paho.client.mqttv3.*;
 | 
			
		||||
 | 
			
		||||
import java.awt.event.ActionEvent;
 | 
			
		||||
import java.awt.event.ActionListener;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.sql.ResultSet;
 | 
			
		||||
import java.sql.SQLException;
 | 
			
		||||
import java.text.DateFormat;
 | 
			
		||||
import java.text.ParseException;
 | 
			
		||||
import java.text.SimpleDateFormat;
 | 
			
		||||
import java.util.Calendar;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.GregorianCalendar;
 | 
			
		||||
 | 
			
		||||
public class MqttService {
 | 
			
		||||
    MqttClient client = null;
 | 
			
		||||
 | 
			
		||||
    public MqttService() {
 | 
			
		||||
    private MqttClient client = null;
 | 
			
		||||
    private String serveruri;
 | 
			
		||||
 | 
			
		||||
    public MqttService(String serverurl, String port) {
 | 
			
		||||
        serveruri= "tcp://"+serverurl+":"+port;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void startupService() {
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            client = new MqttClient("tcp://192.168.65.15:1883", "JavaSample42");
 | 
			
		||||
            client = new MqttClient(serveruri, "JavaSample42");
 | 
			
		||||
            MqttConnectOptions connOpts = new MqttConnectOptions();
 | 
			
		||||
            connOpts.setCleanSession(true);
 | 
			
		||||
            client.connect(connOpts);
 | 
			
		||||
@@ -44,7 +41,7 @@ public class MqttService {
 | 
			
		||||
                    Log.debug("received message");
 | 
			
		||||
                    String[] split = message.split(",");
 | 
			
		||||
                    String wastetyp = getTyp(Integer.parseInt(split[2]));
 | 
			
		||||
                    getDatabasedata("SELECT pickupdates.pickupdate FROM pickupdates WHERE pickupdates.citywastezoneid=(SELECT cities.zone FROM cities WHERE cities.name='" + split[1] + "' AND cities.wastetype='" + wastetyp + "' AND cities.zone=" + split[3] + ")", wastetyp, Integer.parseInt(split[0]));
 | 
			
		||||
                    getDatabasedata("SELECT pickupdates.pickupdate FROM pickupdates WHERE pickupdates.citywastezoneid=(SELECT cities.id FROM cities WHERE cities.name='" + split[1] + "' AND cities.wastetype='" + wastetyp + "' AND cities.zone=" + split[3] + ")", wastetyp, Integer.parseInt(split[0]));
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                @Override
 | 
			
		||||
@@ -75,29 +72,40 @@ public class MqttService {
 | 
			
		||||
        ResultSet result = Database.executeQuery(message);
 | 
			
		||||
        try {
 | 
			
		||||
            result.last();
 | 
			
		||||
            if (result.getFetchSize() == 0){
 | 
			
		||||
            if (result.getRow() == 0){
 | 
			
		||||
                //if not found in db --> send zero
 | 
			
		||||
                transmitmessageAbfallart(clientidentify + "," + wastenumber + "," + 0);
 | 
			
		||||
            }
 | 
			
		||||
            result.first();
 | 
			
		||||
            while (result.next()) {
 | 
			
		||||
                String newDate = getDateDatabase(String.valueOf(result.getString("pickupdate")));
 | 
			
		||||
                String currentDate = getcurrentDate();
 | 
			
		||||
                String Datetomorrow = nexDayDate();
 | 
			
		||||
                Log.debug("not found in db");
 | 
			
		||||
                tramsmitMessage(clientidentify + "," + wastenumber + "," + 0);
 | 
			
		||||
            }else{
 | 
			
		||||
                Log.debug(result.getString("pickupdate"));
 | 
			
		||||
 | 
			
		||||
                if (currentDate.equals(newDate) || currentDate.equals(Datetomorrow)) {
 | 
			
		||||
                    transmitmessageAbfallart(clientidentify + "," + wastenumber + "," + 1);
 | 
			
		||||
                } else {
 | 
			
		||||
                    transmitmessageAbfallart(clientidentify + "," + wastenumber + "," + 0);
 | 
			
		||||
                }
 | 
			
		||||
                result.first();
 | 
			
		||||
                do {
 | 
			
		||||
                    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
 | 
			
		||||
                    long timestamp = formatter.parse(result.getString("pickupdate")).getTime();
 | 
			
		||||
                    long timestampnow = formatter.parse(formatter.format(new Date())).getTime(); // todo more fancy
 | 
			
		||||
                    Log.debug("timestamp is :" + timestamp);
 | 
			
		||||
 | 
			
		||||
                    if(timestamp == timestampnow|| timestamp == timestampnow +86400000){
 | 
			
		||||
                        // valid time
 | 
			
		||||
                        tramsmitMessage(clientidentify + "," + wastenumber + "," + 1);
 | 
			
		||||
                        Log.debug("valid time");
 | 
			
		||||
                        return;
 | 
			
		||||
                    }else{
 | 
			
		||||
 | 
			
		||||
                    }
 | 
			
		||||
                }while(result.next());
 | 
			
		||||
                tramsmitMessage(clientidentify + "," + wastenumber + "," + 0); //transmit zero if not returned before
 | 
			
		||||
            }
 | 
			
		||||
        } catch (SQLException e) {
 | 
			
		||||
            Log.error("No data from database");
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        } catch (ParseException e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    private void transmitmessageAbfallart(String temp)  {
 | 
			
		||||
    private void tramsmitMessage(String temp)  {
 | 
			
		||||
        Log.debug("sending message >>>"+temp);
 | 
			
		||||
        MqttMessage message = new MqttMessage(temp.getBytes());
 | 
			
		||||
        message.setQos(2);
 | 
			
		||||
@@ -108,21 +116,6 @@ public class MqttService {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private String nexDayDate() {
 | 
			
		||||
        // TODO: 10.01.20 doesnt work 
 | 
			
		||||
        final DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
 | 
			
		||||
        Date currentDate = new Date();
 | 
			
		||||
 | 
			
		||||
        Calendar c = Calendar.getInstance();
 | 
			
		||||
        c.setTime(currentDate);
 | 
			
		||||
        c.add(Calendar.DATE, 1);
 | 
			
		||||
        Date currentDatePlusOne = c.getTime();
 | 
			
		||||
 | 
			
		||||
        String temp = dateFormat.format(currentDatePlusOne);
 | 
			
		||||
        String split[] = temp.split("/");
 | 
			
		||||
        return split[2] + "." + split[1] + "." + split[0];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private String getTyp(int number) {
 | 
			
		||||
        if (number == 1) {
 | 
			
		||||
            return "Plastic";
 | 
			
		||||
@@ -149,20 +142,4 @@ public class MqttService {
 | 
			
		||||
        }
 | 
			
		||||
        return number;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private String getDateDatabase(String temptime) {
 | 
			
		||||
        String[] parts = temptime.split("-");
 | 
			
		||||
        String tempyear = parts[0];
 | 
			
		||||
        String[] yearsplit = tempyear.split("0");
 | 
			
		||||
        String tempyearnew = yearsplit[1];
 | 
			
		||||
        return parts[2] + "." + parts[1] + "." + tempyearnew;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private String getcurrentDate() {
 | 
			
		||||
        GregorianCalendar now = new GregorianCalendar();
 | 
			
		||||
        DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.LONG);
 | 
			
		||||
        String date = df.format(now.getTime());
 | 
			
		||||
        String[] partstwo = date.split(",");
 | 
			
		||||
        return partstwo[0];
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -53,7 +53,7 @@ public class MainPage implements HttpHandler {
 | 
			
		||||
            Log.warning("wrong page sending 404");
 | 
			
		||||
            sendPage("/404Error.html", t);
 | 
			
		||||
        } else if (fs == null) {
 | 
			
		||||
            Log.warning("requested resource doesnt exist");
 | 
			
		||||
            Log.warning("requested resource doesnt exist --> "+path);
 | 
			
		||||
        } else {
 | 
			
		||||
            // Object exists and is a file: accept with response code 200.
 | 
			
		||||
            String mime = "text/html";
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user