Skip to content

Commit 624e0d5

Browse files
Merge pull request #66 from IUT-Blagnac/DevNaria
Plus que de la finalisation
2 parents 4bb2275 + 5c76f79 commit 624e0d5

File tree

5 files changed

+494
-129
lines changed

5 files changed

+494
-129
lines changed

Code/java/dependency-reduced-pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
33
<modelVersion>4.0.0</modelVersion>
4-
<groupId>sae-s2.01-2023</groupId>
5-
<artifactId>DailyBank</artifactId>
6-
<name>DailyBank App V2</name>
4+
<groupId>sae-s3.01-2024</groupId>
5+
<artifactId>SweetShops</artifactId>
6+
<name>SweetShops APP IoT</name>
77
<version>1.0</version>
88
<build>
99
<plugins>

Code/java/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@
2222
<artifactId>javafx-controls</artifactId>
2323
<version>${javafx.version}</version>
2424
</dependency>
25+
<dependency>
26+
<groupId>org.json</groupId>
27+
<artifactId>json</artifactId>
28+
<version>20230618</version>
29+
</dependency>
2530
<dependency>
2631
<groupId>org.openjfx</groupId>
2732
<artifactId>javafx-fxml</artifactId>

Code/java/src/main/java/application/tools/DataReader.java

Lines changed: 75 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package application.tools;
22

3+
import org.json.JSONObject;
4+
35
import java.io.File;
46
import java.io.IOException;
57
import java.nio.file.Files;
@@ -9,6 +11,11 @@
911
import java.util.Map;
1012

1113
public class DataReader {
14+
/**
15+
* Récupère les températures des fichiers donnés.
16+
* @param datasToFetch Liste des fichiers contenant les données.
17+
* @return Une liste de valeurs float représentant les températures.
18+
*/
1219
public static List<Float> getTemps(List<File> datasToFetch){
1320
List <Float> tempsToReturn = new ArrayList<>();
1421
for (File readData : datasToFetch) {
@@ -17,13 +24,24 @@ public static List<Float> getTemps(List<File> datasToFetch){
1724
return tempsToReturn;
1825
}
1926

27+
/**
28+
* Récupère la température d'un fichier donné.
29+
* Retourne -275 si la température n'est pas trouvée.
30+
* @param datasToFetch Le fichier contenant les données.
31+
* @return La valeur float de la température, ou -275 en cas d'erreur.
32+
*/
2033
public static float getTemps(File datasToFetch){
2134
//-275 étant inférieur au 0 absolu, c'est une valeur absurde qui sera détectable de manière automatique
2235
float tempToReturn = -275;
2336
tempToReturn = getDict(datasToFetch).get("temperature");
2437
return tempToReturn;
2538
}
2639

40+
/**
41+
* Récupère les valeurs d'humidité des fichiers donnés.
42+
* @param datasToFetch Liste des fichiers contenant les données.
43+
* @return Une liste de valeurs float représentant les humidités.
44+
*/
2745
public static List<Float> getHumidities(List<File> datasToFetch){
2846

2947
List <Float> humiditiesToReturn = new ArrayList<>();
@@ -33,12 +51,23 @@ public static List<Float> getHumidities(List<File> datasToFetch){
3351
return humiditiesToReturn;
3452
}
3553

54+
/**
55+
* Récupère la valeur d'humidité d'un fichier donné.
56+
* Retourne -1 si l'humidité n'est pas trouvée.
57+
* @param datasToFetch Le fichier contenant les données.
58+
* @return La valeur float de l'humidité, ou -1 en cas d'erreur.
59+
*/
3660
public static float getHumidities(File datasToFetch){
3761
float humidityToReturn = -1;
3862
humidityToReturn = getDict(datasToFetch).get("humidity");
3963
return humidityToReturn;
4064
}
4165

66+
/**
67+
* Récupère les niveaux de CO2 des fichiers donnés.
68+
* @param datasToFetch Liste des fichiers contenant les données.
69+
* @return Une liste de valeurs float représentant les niveaux de CO2.
70+
*/
4271
public static List<Float> getCo2(List<File> datasToFetch){
4372
List <Float> co2ToReturn = new ArrayList<>();
4473
for(File currentFile : datasToFetch){
@@ -47,20 +76,63 @@ public static List<Float> getCo2(List<File> datasToFetch){
4776
return co2ToReturn;
4877
}
4978

79+
/**
80+
* Récupère le niveau de CO2 d'un fichier donné.
81+
* Retourne -1 si le niveau de CO2 n'est pas trouvé.
82+
* @param datasToFetch Le fichier contenant les données.
83+
* @return La valeur float du CO2, ou -1 en cas d'erreur.
84+
*/
5085
public static float getCo2(File datasToFetch){
5186
float co2ToReturn = -1;
5287
co2ToReturn = getDict(datasToFetch).get("co2");
5388
return co2ToReturn;
5489
}
5590

56-
private static Map<String, Float> getDict(File datasToFetch){
91+
/**
92+
* Transforme le contenu d'un fichier en une carte (Map) de clés et de valeurs.
93+
* Les clés sont des chaînes de caractères, et les valeurs sont des nombres float.
94+
* Si une valeur ne peut pas être convertie, elle est ignorée.
95+
* @param datasToFetch Le fichier contenant les données à lire.
96+
* @return Une Map avec les données extraites du fichier.
97+
* @throws RuntimeException en cas d'erreur de lecture du fichier.
98+
*/
99+
public static Map<String, Float> getDict(File datasToFetch){
57100
Map<String, Float> dictToReturn = new HashMap<>();
58101
try {
59102
String data = Files.readString(datasToFetch.toPath());
60103
data = data.replace("{","").replace("}","").replace("'","");
61104
String[] splittedValues = data.split(", |: ");
62-
for(int i = 0; i<splittedValues.length;i+=2){
63-
dictToReturn.put(splittedValues[i], Float.parseFloat(splittedValues[i+1]));
105+
for(int i = 0; i<splittedValues.length-1;i+=2){
106+
try {
107+
dictToReturn.put(splittedValues[i], Float.parseFloat(splittedValues[i + 1]));
108+
} catch (NumberFormatException ignored) {}
109+
}
110+
} catch (IOException e) {
111+
throw new RuntimeException(e);
112+
}
113+
return dictToReturn;
114+
}
115+
116+
/**
117+
* Transforme le contenu d'un fichier JSON contenant des données SolarEdge
118+
* en une carte (Map) de clés et de valeurs imbriquées.
119+
* Les clés sont composées du chemin complet (e.g., "parent.enfant").
120+
* @param datasToFetch Le fichier JSON contenant les données SolarEdge.
121+
* @return Une Map avec les données extraites et transformées.
122+
* @throws RuntimeException en cas d'erreur de lecture du fichier.
123+
*/
124+
public static Map<String, Float> getSolarDict (File datasToFetch){
125+
Map<String, Float> dictToReturn = new HashMap<>();
126+
try {
127+
JSONObject datas = new JSONObject(Files.readString(datasToFetch.toPath()));
128+
for (String firstKey : datas.keySet()) {
129+
Object firstValue = datas.get(firstKey);
130+
if(firstValue instanceof JSONObject currentData){
131+
for(String secondKey : currentData.keySet()){
132+
Object secondValue = currentData.get(secondKey);
133+
dictToReturn.put(firstKey+"."+secondKey, Float.parseFloat(secondValue.toString()));
134+
}
135+
}
64136
}
65137
} catch (IOException e) {
66138
throw new RuntimeException(e);

0 commit comments

Comments
 (0)