Skip to content
Snippets Groups Projects
Commit ac4691c9 authored by A C's avatar A C
Browse files

luci

parent f4303a06
No related branches found
No related tags found
No related merge requests found
{ {"lamp1":"OUT5",
"lamp1":"OUT5",
"lamp2":"OUT6", "lamp2":"OUT6",
"att1":"IN6", "att1":"IN6",
"att2":"IN7", "att2":"IN7",
......
...@@ -23,6 +23,7 @@ public class Automa { ...@@ -23,6 +23,7 @@ public class Automa {
setCollaterals(stato,false); setCollaterals(stato,false);
} }
private synchronized void setCollaterals(int stato,boolean write) { private synchronized void setCollaterals(int stato,boolean write) {
switch (stato) { switch (stato) {
case 0: { case 0: {
...@@ -39,8 +40,9 @@ public class Automa { ...@@ -39,8 +40,9 @@ public class Automa {
} }
unreadStatus = true; unreadStatus = true;
// notifyAll(); // notifyAll();
/*
if(write) if(write)
writeStatoOnDatabase(); writeStatoOnDatabase();*/
} }
......
package utility; package code;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.BufferedWriter; import java.io.BufferedWriter;
......
package code; package code;
import java.util.Date; import java.util.Date;
import java.util.Iterator;
import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
public class Luci { public class Luci {
...@@ -28,18 +31,19 @@ public class Luci { ...@@ -28,18 +31,19 @@ public class Luci {
private String mqttDomain; private String mqttDomain;
private String mqttSubdomain; private String mqttSubdomain;
private static String mqttTree; private static String mqttTree;
public static final String RES_FOLDER = "../res/"; public static final String RES_FOLDER = "../res/";
public static final String CONF_FOLDER = RES_FOLDER+"CONF/"; public static final String CONF_FOLDER = RES_FOLDER+"CONF/";
private final String FILE_CONF = CONF_FOLDER+"conf.json";//"./CONF/conf.json"; private final static String FILE_CONF = CONF_FOLDER+"conf.json";//"./CONF/conf.json";
private final String FILE_ZONA = CONF_FOLDER+"zona.json";//"./CONF/zona.json" //private final static String FILE_ZONA = CONF_FOLDER+"zona.json";//"./CONF/zona.json"
private final static String FILE_ZONA = "CONF/zona.json";//"./CONF/zona.json"
public MqttClient mqttClient; public MqttClient mqttClient;
public Luci(ArrayList<Automa> automa) throws JSONException, IOException, MqttException { public Luci() throws JSONException, IOException, MqttException {
this.Luci = automa;
JSONObject config = new JSONObject(Helper.leggiFile(FILE_CONF)); JSONObject config = new JSONObject(Helper.leggiFile(FILE_CONF));
brokerUrl = config.getString("protocol") + "://" + config.getString("broker") + ":" + config.getInt("port"); brokerUrl = config.getString("protocol") + "://" + config.getString("broker") + ":" + config.getInt("port");
...@@ -49,13 +53,13 @@ public class Luci { ...@@ -49,13 +53,13 @@ public class Luci {
topicsSub = new ArrayList<String>(); topicsSub = new ArrayList<String>();
topicsSub.add("to/all"); //mandare la mia descrizione json topicsSub.add("to/all"); //mandare la mia descrizione json
topicsSub.add(getMqttTree("rpc/","scenari")); //mandare lo stato attuale topicsSub.add(getMqttTree("rpc/","luci")); //mandare lo stato attuale
// inutile aggiungere i topic, perche subbo gia' tutto gpio/# // inutile aggiungere i topic, perche subbo gia' tutto gpio/#
config = new JSONObject(Helper.leggiFile(FILE_ZONA)); config = new JSONObject(Helper.leggiFile(FILE_ZONA));
learnTrigger = config.getString("learn-trigger"); //learnTrigger = config.getString("learn-trigger");
// topicsSub.add("from/"+Scenari.getMqttTree()+"gpio/" + learnTrigger); // Sottoscrivo i messaggi che notificano il cambiamento di stato dell'interruttore // topicsSub.add("from/"+Scenari.getMqttTree()+"gpio/" + learnTrigger); // Sottoscrivo i messaggi che notificano il cambiamento di stato dell'interruttore
attivaScenari = config.getString("attiva-scenari"); //attivaScenari = config.getString("attiva-scenari");
// topicsSub.add("from/"+Scenari.getMqttTree()+"gpio/"+attivaScenari); // topicsSub.add("from/"+Scenari.getMqttTree()+"gpio/"+attivaScenari);
...@@ -63,14 +67,18 @@ public class Luci { ...@@ -63,14 +67,18 @@ public class Luci {
// topicsSub.add("from/"+Scenari.getMqttTree()+"gpio/" + interruttoreOutputSuono); // Sottoscrivo i messaggi che notificano il cambiamento di stato dell'interruttore // topicsSub.add("from/"+Scenari.getMqttTree()+"gpio/" + interruttoreOutputSuono); // Sottoscrivo i messaggi che notificano il cambiamento di stato dell'interruttore
// topicsSub.add("to/"+Scenari.getMqttTree()+"scenari/learn"); // topicsSub.add("to/"+Scenari.getMqttTree()+"scenari/learn");
topicsSub.add(getMqttTree("from/","gpio/#")); topicsSub.add(getMqttTree("from/","gpio/#"));
topicsSub.add(getMqttTree("to/","scenari"));//{"evento":0,"nome":nome_scenario} per attivare/disattivare uno scenario; risposta su from/tree/scenari/attiva con {"nome":nome_scenario} topicsSub.add(getMqttTree("to/","luci/#"));//{"evento":0,"nome":nome_scenario} per attivare/disattivare uno scenario; risposta su from/tree/scenari/attiva con {"nome":nome_scenario}
topicsSub.add(getMqttTree("to/","scenari/salva"));//per rinominare lo scenario piu recente //topicsSub.add(getMqttTree("to/","luci/salva"));//per rinominare lo scenario piu recente
this.mqttClient = new MqttClient(brokerUrl, clientId, new MemoryPersistence()); this.mqttClient = new MqttClient(brokerUrl, clientId, new MemoryPersistence());
//memory persistence serve per non avere errori in console //memory persistence serve per non avere errori in console
// https://github.com/eclipse/paho.mqtt.java/issues/794 // https://github.com/eclipse/paho.mqtt.java/issues/794
} }
private void makeMqttTree() { private void makeMqttTree() {
if(mqttTree != null) if(mqttTree != null)
return; return;
...@@ -87,7 +95,7 @@ public class Luci { ...@@ -87,7 +95,7 @@ public class Luci {
// while(true) { // while(true) {
// try { // try {
startSystem(); startSystemo();
// } // }
// catch(Exception e) { // catch(Exception e) {
// // DA FARE: // // DA FARE:
...@@ -101,23 +109,45 @@ public class Luci { ...@@ -101,23 +109,45 @@ public class Luci {
} }
private static void startSystem() throws JSONException, IOException, MqttException { private static void startSystemo() throws JSONException, IOException, MqttException {
// MyQueue<Integer> codaVal = new MyQueue<Integer>(); // MyQueue<Integer> codaVal = new MyQueue<Integer>();
// MyQueue<Pair> codaMsg = ; // MyQueue<Pair> codaMsg = ;
JSONObject config = new JSONObject(Helper.leggiFile(FILE_ZONA));
System.out.println(config);
//conto quante lampadine
Iterator<String> keys = config.keys();
int countI=0;
int countO=0;
while(keys.hasNext()) {
String key = keys.next();
if (config.get(key) instanceof String) {
System.out.println(config.get(key));
if(config.get(key).toString().contains("OUT")) countO++;
if(config.get(key).toString().contains("IN")) countI++;
}
}
System.out.println(countI);
System.out.println(countO);
ArrayList<Automa> automa = new ArrayList<Automa>(); ArrayList<Automa> automa = new ArrayList<Automa>();
Luci luci = new Luci(automa); //Luci luci = new Luci(automa);
// Publisher publisher = new Publisher(new MyQueue<Pair>(), scenari); // Publisher publisher = new Publisher(new MyQueue<Pair>(), scenari);
// Esecutore esec = new Esecutore(publisher, codaVal, automa, antifurto.interruttoreOutputSuono); // Esecutore esec = new Esecutore(publisher, codaVal, automa, antifurto.interruttoreOutputSuono);
Esecutore esec = new Esecutore(/*publisher,*/automa,scenari); //Esecutore esec = new Esecutore(/*publisher,*/automa,scenari);
// Timer timer = new Timer(30000,-5,esec,automa); // Timer timer = new Timer(30000,-5,esec,automa);
luci.startClient(esec/*,publisher*/);//, publisher); //luci.startClient(esec/*,publisher*/);//, publisher);
// publisher.start(); // publisher.start();
esec.start(); //esec.start();
// timer.start(); // timer.start();
} }
/*
private int setAutomi() throws JSONException, IOException { private int setAutomi() throws JSONException, IOException {
jsonObject = new JSONObject(Helper.leggiFile(DATABASE_PATH)); jsonObject = new JSONObject(Helper.leggiFile(DATABASE_PATH));
setCollaterals(this.jsonObject.getInt("stato-attuale")); setCollaterals(this.jsonObject.getInt("stato-attuale"));
...@@ -142,7 +172,7 @@ public class Luci { ...@@ -142,7 +172,7 @@ public class Luci {
if(write) if(write)
writeStatoOnDatabase(); writeStatoOnDatabase();
} }
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment