Maybe last commit

- updated docs and improved readability
- added recordings
This commit is contained in:
Giulia
2018-09-21 18:06:05 +02:00
parent 898e25fcf3
commit 75ebc025a3
23 changed files with 59 additions and 68 deletions

View File

@@ -50,8 +50,6 @@ dependencies {
// YOUTUBE VIDEO
//compile 'org.eclipse.swt:org.eclipse.swt.win32.win32.x86_64:4.3' //Winzozz 64
//compile 'org.eclipse.swt:org.eclipse.swt.gtk.linux.x86:4.3' //Linuzuzz 32
//compile files('lib/SWT_linux32.jar')
//compile files('lib/SWT_linux64.jar')
compile files('lib/SWT_win64.jar')

View File

@@ -21,19 +21,19 @@ import static spark.Spark.post;
public class DialogFlowWebHook {
/**
* Un logger per vedere le cose piu' easy
* Un logger per ottenere messaggi sull'esecuzione del programma
*/
private static final Logger LOG = LoggerFactory.getLogger("WebHook");
/**
* Stringa che viene usata se l'azione esiste ma lancia un qualche tipo di errore
*/
public static final String ACTION_ERROR = "Purtroppo chi mi ha programmato e' un pirla, non posso fare cio' che hai chiesto";
public static final String ACTION_ERROR = "L'azione non è eseguibile";
/**
* Errore che viene mostrato all'utente se l'azione inviata non corrisponde a nessuna di quelle inserite
*/
public static final String ERROR = "Non mi hanno imparato abbastanza per fare questo";
public static final String ERROR = "Non posso eseguire nessuna azione di questo tipo";
/**
* L'eventuale path successiva all'url dichiarato nel Webhook di Dialog-Flow
@@ -70,7 +70,7 @@ public class DialogFlowWebHook {
/**
* Aggiunge un'azione ad una specifica richiesta di Dialog-Flow
* @param actionId il nome dell'azione che viene passata da Dialog-Flow
* @param action l'azione da fare (e' consigliato usare le espressioni lambda)
* @param action l'azione da fare
*/
public void addOnAction(String actionId, Action action) { this.actions.put(actionId, action); }
@@ -136,7 +136,7 @@ public class DialogFlowWebHook {
*/
public interface Action {
/**
* Fai l'azione desiderata.
* Fa l'azione desiderata.
* Se ritorna una stringa allora il testo viene cambiato. Se ritorna null non cambia il testo
*
* @param params una mappa contenente tutti i parametri impostati da dialogflow

View File

@@ -212,5 +212,4 @@ public class Fitbit {
return String.format("%02d:%02d", hour, minu);
}
// Device dev = auth.run(BASIC_URL + "devices.json", Device.class);
}

View File

@@ -21,12 +21,12 @@ public class Hue {
private static final Logger LOG = LoggerFactory.getLogger("Hue");
/**
* La luminopsita' massima a cui si puo' arrivare
* La luminosita' massima a cui si puo' arrivare
*/
private static final int MAX_BRIGHTNESS = 254;
/**
* Una mappa che ad ogni colore (in lingua ita) assegna il proprio valore in hue
* Una mappa che ad ogni colore (in italiano) assegna il proprio valore in hue
*/
private static final Map<String, Double[]> COLORS = new HashMap<>();
@@ -45,7 +45,7 @@ public class Hue {
*/
private final AtomicDouble brightness = new AtomicDouble(0);
// Riempimento della mappa con i vari colori
// Riempimento della mappa con i colori
static {
COLORS.put("giall[oae]", new Double[]{0.45, 0.45});
COLORS.put("ross[oae]", new Double[]{0.7, 0.25});
@@ -118,7 +118,7 @@ public class Hue {
public void turnOff() { on(false); }
/**
* Ritorna la liminosita' attuale delle luci controllate
* Ritorna la luminosita' attuale delle luci controllate
* @return il valore e' compreso tra 0 e 100
*/
public double getCurrentBrightness() { return brightness.doubleValue(); }
@@ -163,7 +163,7 @@ public class Hue {
public void increaseBrightness() { increaseBrightness(25); }
/**
* Dinuisce la luminosita' delle luci controllate della percentuale che viene passata
* Diminuisce la luminosita' delle luci controllate della percentuale che viene passata
* @param percentage la percentuale di diminuzione della luminosita'
*/
public void decreaseBrightness(int percentage) {
@@ -175,7 +175,7 @@ public class Hue {
}
/**
* Dinuisce la luminosita' delle luci controllate del 25%
* Diminuisce la luminosita' delle luci controllate del 25%
*/
public void decreaseBrightness() { decreaseBrightness(25); }
@@ -192,7 +192,7 @@ public class Hue {
/**
* Invia una richiesta a tutte le luci hue con l'attributo selezionato ed il suo valore<br>
* Con esso invia anche una transition:20 in modo che sia piu fluido il cambiamento se si mette true al terzo parametro
* Con esso invia anche un valore di transizione in modo che sia piu fluido il cambiamento se si mette true al terzo parametro
* @param attribute l'attributo da modificare
* @param value il valore da inserire
* @param transition se includere la transizione o meno

View File

@@ -7,7 +7,7 @@ import de.fh_zwickau.informatik.sensor.model.devices.DeviceList;
import support.ZWaySimpleCallback;
/**
* Sensore che permette di registrare vari dati dell'ambiente
* Sensore che permette di registrare vari dati dell'ambiente (noi utilizziamo solo la luminosità)
*/
public class Sensor {
@@ -35,7 +35,8 @@ public class Sensor {
*/
private DeviceList allZWaveDevices;
/**
* I device che vengono selezionati e filtrati dall'utente (ovvero quelli che verranno usati per prendere i dati)
* I device che vengono selezionati e filtrati dall'utente
* (ovvero quelli che verranno usati per prendere i dati)
*/
private DeviceList devices;

View File

@@ -1,20 +1,20 @@
package device.fitbitdata;
/**
* Calsse che serve ad avere una data collegata al dato preso dal fitbit
* Classe che serve ad avere una data collegata al dato preso dal fitbit
*/
public abstract class FitbitData {
private long millisec = 0;
/**
* Setta la data collegato al dato preso dal fitbit
* Setta la data collegata al dato preso dal fitbit
* @param millisec la data in millisecondi
*/
public void setDate(long millisec) { this.millisec = millisec; }
/**
* Ricevi la data collegata al dato richiesto dal fitbit
* @return la data in millisec
* @return la data in millisecondi
*/
public long getDate() { return this.millisec; }
}

View File

@@ -7,7 +7,7 @@ import java.util.List;
import java.util.Map;
/**
* Classe per vedere il dato del battito cardiaco
* Classe per vedere le informazioni sul battito cardiaco
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public class HeartRate extends FitbitData {

View File

@@ -11,7 +11,7 @@ import java.util.List;
import java.util.Map;
/**
* Classe per i dati del sonno dell'utente
* Classe per recuperare i dati del sonno dell'utente
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public class Sleep {

View File

@@ -48,7 +48,7 @@ public class Steps extends FitbitData {
/**
* Prendi i dati specifici dei passi
* @return una lista contenente una mappa con delle ore e minuti ad un valore del
* @return una lista contenente una mappa con delle ore e minuti ad un valore dei passi
*/
public List<Map<String, Object>> getStepsData() { return stepsData; }
}

View File

@@ -20,7 +20,7 @@ import java.util.regex.Pattern;
public class SeniorAssistant {
/**
* Un Logger per capire meglio quali pezzi vengono eseguiti e quali no.
* Un Logger per seguire l'esecuzione del programma.
*/
public static final Logger LOG = LoggerFactory.getLogger("SeniorAssistant");
@@ -93,7 +93,7 @@ public class SeniorAssistant {
/**
* Prende gli argomenti nel formato "^-(?&lt;name&gt;[a-zA-Z]+)(::)?(?&lt;argument&gt;.*)$" e li inserisce in una mappa.
* Se l'argomento non e' nel formato giusto lo ignora.
* @param args un'array di stringhe contente i vari argomenti
* @param args un array di stringhe contenente i vari argomenti
* @return una mappa con key il nome dell'argomento (la parte prima del :: e dopo il meno) e come valore il valore di esso (la parte dopo ::)
*/
private static Map<String, String> getArgsMap(String[] args) {
@@ -110,7 +110,7 @@ public class SeniorAssistant {
}
/**
* Funzione creata per gli argomenti che vengono passati in modo da evitare millemila try and catch
* Funzione creata per gli argomenti che vengono passati in modo da evitare troppi try and catch
* @param num la stringa da trasformare in numero
* @return il numero trasformato, null se fallisce
*/

View File

@@ -37,7 +37,7 @@ public class VariousThreads {
private final AtomicInteger cooldown = new AtomicInteger(0);
/**
* La variabile per far partire della musica da Youtube
* La variabile per far partire della musica
*/
private final Audio audio;
@@ -45,7 +45,7 @@ public class VariousThreads {
* Costruttore
*/
public VariousThreads() {
audio = new AudioFile(); // se si vuole solamente questo e non YT
audio = new AudioFile(); // se si vuole solamente far partire una traccia tra quelle fornite e non Youtube
// audio = System.getProperty("os.name").startsWith("Windows")? new Musich():new AudioFile();
}
@@ -131,10 +131,10 @@ public class VariousThreads {
}
/**
* Gestione delle luci in modo che cambiano la luminosita' in base ai dati ricevuti dal sensore<br>
* Gestione delle luci in modo che cambino la luminosita' in base ai dati ricevuti dal sensore<br>
* Se l'utente pero' cambia il valore delle luci di sua volonta', il processo non modifichera' le luci per almeno un'ora.
* @param lights le luci da controllare
* @param sensor i sensori da cui porendere i dati
* @param sensor i sensori da cui prendere i dati
*/
public void startHueAutoBrightness(final Hue lights, final Sensor sensor) {
final int minute = 1;
@@ -213,7 +213,7 @@ public class VariousThreads {
/**
* Controlla che ad una certa ora si siano fatti abbastanza passi, ed in caso contrario avvisa tramite un messaggio vocale.<br>
* E' possibile trasformarlo in controlla ogni X se si sono fatti dei movimenti o meno.
*
* @param database da dove vediamo se si sono fatti abbastanza passi
*/
public void startCheckSteps(final Database database) {
@@ -252,7 +252,7 @@ public class VariousThreads {
* ovvero se sono minori del minimo esso diventera' il minimo, stessa cosa con il massimo.
* @param hour l'ora corrente (valore da 0 a 23)
* @param minutes i minuti correnti (valore da 0 a 59)
* @param sensorBright la liminosita' segnata dal sensore (valore da 0 a 100)
* @param sensorBright la luminosita' segnata dal sensore (valore da 0 a 100)
* @param minBrightness la luminosita' minima che si vuole avere (valore da 0 a 100)
* @return un valore indicante quanta luminosita' si ha bisogno nell'ora indicata e con la luminosita' indicata
*/
@@ -273,7 +273,7 @@ public class VariousThreads {
}
/**
* Restuisce un thread che se fatto partire, esegue il runnable in un sub-thread alll'ora indicata ogni giorno<br>
* Restuisce un thread che se fatto partire, esegue il runnable in un sub-thread all'ora indicata ogni giorno<br>
* Il sotto thread lanciato avra' lo stesso nome, ma con un trattino e la data di lancio a seguito<br>
* Se il thread viene interrotto non fa piu' partire il runnable e si ferma
* @param runnable il runnable da lanciare

View File

@@ -24,7 +24,7 @@ import java.util.Arrays;
public class AuthFitbit {
/**
* Un logger per rendere le cose semplici in caso di casini
* Un logger per rendere più semplice il debug
*/
private static final Logger LOG = LoggerFactory.getLogger("Fitbit Auth");

View File

@@ -8,12 +8,12 @@ public class OAuth2ClientCredentials {
/**
* Il valore dell' "API Key".
*/
public static final String API_KEY = "22CSTL"; //maybe togliere le virgolette
public static final String API_KEY = "22CSTL";
/**
* Il valore dell' "API Secret"
*/
public static final String API_SECRET = "ea2452013abd35609940ce5601960a08"; //maybe togliere le virgolette
public static final String API_SECRET = "ea2452013abd35609940ce5601960a08";
/**
* La porta per il "Callback URL".

View File

@@ -6,7 +6,7 @@ package support.audio;
public interface Audio {
/**
* Fa partire una audio in base al nome di essa.<br>
* Fa partire una traccia audio in base al nome di essa.<br>
* Se un audio era gia' stato fatto partire esso viene fermato<br>
* Il nome puo' variare in base all'implementazione: nome di file o nome da cercare su internet...
* @param name la stringa per far partire la canzone
@@ -22,7 +22,7 @@ public interface Audio {
void playRandom(String name);
/**
* Ferma l'ultimo che e' stato fatto partire
* Ferma l'ultimo audio che e' stato fatto partire
*/
void stop();
}

View File

@@ -27,7 +27,7 @@ public class AudioFile implements Audio {
private AudioStream lastIn = null;
/**
* Serve per crearsi una mapp di tutte le canzoni
* Serve per crearsi una mappa di tutte le canzoni
*/
private final static Map<String, File> files = getAllFiles(PATH_AUDIO);

View File

@@ -26,7 +26,6 @@ public class Musich implements Audio {
private static final String API_URL = "https://www.googleapis.com/youtube/v3/search?";
/**
* La key necessaria per prendere i dati da youtube<br>
* Tra l'altro l'ho presa a caso... quindi boh.
*/
private static final String KEY = "AIzaSyAYcQcX9P5btBTfgdwWwETNh_7jV20cQp0";
@@ -44,11 +43,9 @@ public class Musich implements Audio {
*/
public Musich() {
/*
* Viene mandato questo errore in console, pero' boh... solo ogni tanto:
* Viene mandato questo errore in console:
* Exception "java.lang.ClassNotFoundException: com/intellij/codeInsight/editorActions/FoldingData"while constructing DataFlavor for: application/x-java-jvm-local-objectref; class=com.intellij.codeInsight.editorActions.FoldingData
* A volte ne tira tante, a volte nessuna.
* Sta' di fatto che per quanto ne so non compromette il funzionamento.
* Al massimo usare un logger che dice di ignorare questo errore nel log
*/
NativeInterface.initialize();
NativeInterface.open();
@@ -56,7 +53,7 @@ public class Musich implements Audio {
}
/**
* Serve ad avere una lista di id dei video che corrispondono alle keyword indicate nella ricerca
* Serve ad avere una lista di id dei video che corrispondono alle keywords indicate nella ricerca
* @param search la ricerca da fare su youtube
* @param maxResult quanti risultati si vuole avere
* @return una lista di id dei video che corrispondono alla ricerca
@@ -87,7 +84,7 @@ public class Musich implements Audio {
}
/**
* Serve ad avere una lista di id dei video che corrispondono alle keyword indicate nella ricerca<br>
* Serve ad avere una lista di id dei video che corrispondono alle keywords indicate nella ricerca<br>
* La lista conterra' i primi 5 id dei video trovati.
* @param search la ricerca da fare su youtube
* @return una lista di id dei video che corrispondono alla ricerca
@@ -97,8 +94,8 @@ public class Musich implements Audio {
}
/**
* Dato l'id di un video viene fatta partire un frame contenente il video richiesto<br>
* Come al solito, youtube potrebbe far partire una pubblicita'... eh beh.
* Dato l'id di un video viene fatto partire un frame contenente il video richiesto<br>
* Come al solito, youtube potrebbe far partire una pubblicita'.
* @param videoId l'id del video da far vedere
* @param seconds da quanti secondi bisogna far partire il video
*/
@@ -127,8 +124,8 @@ public class Musich implements Audio {
}
/**
* Dato l'id di un video viene fatta partire un frame contenente il video richiesto<br>
* Come al solito, youtube potrebbe far partire una pubblicita'... eh beh.
* Dato l'id di un video viene fatto partire un frame contenente il video richiesto<br>
* Come al solito, youtube potrebbe far partire una pubblicita'.
* @param videoId l'id del video da far vedere
*/
public void play(final String videoId) {
@@ -136,8 +133,8 @@ public class Musich implements Audio {
}
/**
* Serve a far partire un video a caso tra quelli che corrispondono alle keyword indicate nella ricerca<br>
* Come al solito, youtube potrebbe far partire una pubblicita'... eh beh.
* Serve a far partire un video a caso tra quelli che corrispondono alle keywords indicate nella ricerca<br>
* Come al solito, youtube potrebbe far partire una pubblicita'.
* @param search la ricerca da fare su youtube
* @param maxResult fra quanti risultati deve scegliere
*/
@@ -146,9 +143,9 @@ public class Musich implements Audio {
}
/**
* Serve a far partire un video a caso tra quelli che corrispondono alle keyword indicate nella ricerca<br>
* Serve a far partire un video a caso tra quelli che corrispondono alle keywords indicate nella ricerca<br>
* Esso scegliera' fra i primi 5 risultati<br>
* Come al solito, youtube potrebbe far partire una pubblicita'... eh beh.
* Come al solito, youtube potrebbe far partire una pubblicita'.
* @param search la ricerca da fare su youtube
*/
public void playRandom(String search) {
@@ -158,7 +155,7 @@ public class Musich implements Audio {
/**
* Ferma il video che e' in riprduzione in questo momento.<br>
* Se non ce ne sono, amen... non fa nulla.
* Se non ce ne sono non fa nulla.
*/
public void stop() {
if(currentThread != null) {

View File

@@ -31,7 +31,7 @@ public interface Database {
* Inserisce nuovi dati del paziente nel database.
* @param dateMilliSec la data che si vuole inserire in millisec
* @param heartRate il battito cardiaco
* @return vero se ha inserito o i dati esistevano gia' falso se non ce l'ha fatta
* @return vero se ha inserito o i dati esistevano gia', falso se non ce l'ha fatta
*/
boolean updateHeart(long dateMilliSec, double heartRate);
/**
@@ -64,9 +64,9 @@ public interface Database {
List<Steps> getStepDataOfLast(int days);
/**
* Prendi il Thread che automaticamente gestisce l'inserimento dei dati orari (per ora solo il battito cardiaco)<br>
* Prende il Thread che automaticamente gestisce l'inserimento dei dati orari (per ora solo il battito cardiaco)<br>
* Se per caso c'e' un fallimento riprova ad inserire i dati ogni x minuti, indicati dal terzo parametro<br>
* @param database il database in cui inserirlo
* @param database il database in cui inserire i dati
* @param fitbit la classe che contiene i dati aggiornati
* @param retryMinutes ogni quanti minuti deve riprovare ad inviare la richiesta
* @return un Thread
@@ -99,7 +99,7 @@ public interface Database {
/**
* Prendi il Thread che automaticamente gestisce l'inserimento dei dati giornalieri, esso fara' i tentativi alle 23<br>
* Se per caso c'e' un fallimento riprova ad inserire i dati ogni x minuti, indicati dal terzo parametro<br>
* @param database il database in cui inserirlo
* @param database il database in cui inserire i dati
* @param fitbit la classe che contiene i dati aggiornati
* @param retryMinutes ogni quanti minuti deve riprovare ad inviare la richiesta
* @return un Thread da far partire

View File

@@ -18,7 +18,7 @@ import java.util.List;
public class LocalDB implements Database {
/**
* Il percorso di dove trovare il database, strutturato in: &lt;interfaccia&gt;:&lt;implementazione&gt;:&lt;percorso vero e proprio&gt;
* Il percorso dove trovare il database, strutturato in: &lt;interfaccia&gt;:&lt;implementazione&gt;:&lt;percorso vero e proprio&gt;
*/
public static final String DB_LOCATION = "jdbc:sqlite:";
@@ -90,10 +90,6 @@ public class LocalDB implements Database {
public List<HeartRate> getHeartDataOfLast(int days) {
try {
int dayToSubtract = 15;
// Calendar calendar = Calendar.getInstance();
// calendar.setTimeInMillis(System.currentTimeMillis());
// calendar.add(Calendar.DATE, -dayToSubtract);
// long time = calendar.getTimeInMillis();
long time = System.currentTimeMillis() - (dayToSubtract * 24 * 60 * 1000); // meno 24 ore per 60 secondi per 100 millisec
ResultSet result = conn.createStatement().executeQuery("SELECT * FROM heart WHERE day>='" + new Timestamp(time) + "'");

View File

@@ -29,7 +29,7 @@ public class RemoteDB implements Database {
*/
public final String base_url;
/**
* L'username del nostro vecchio
* L'username dell'utente
*/
public final String username;
@@ -42,7 +42,7 @@ public class RemoteDB implements Database {
}
/**
* Costruttore che ha bisogno sia delo username che del url dper la connesione
* Costruttore che ha bisogno sia dello username che dell'url per la connesione
* @param username il nome utente assiociato per aggiornare i dati
* @param base_url l'url a cui si punta per aggiornare/leggere i dati
*/

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.