|
|
|
@ -16,6 +16,7 @@ class ActivityInfo {
|
|
|
|
|
int bpmMax = 0;
|
|
|
|
|
int bpmMin = 300;
|
|
|
|
|
int bpmAvg = 0;
|
|
|
|
|
bool bpmNotZero = false;
|
|
|
|
|
// ----------- Denivelé ------------ //
|
|
|
|
|
double denivelePositif = 0.0;
|
|
|
|
|
double deniveleNegatif = 0.0;
|
|
|
|
@ -23,19 +24,22 @@ class ActivityInfo {
|
|
|
|
|
double altitudeMax = 0.0;
|
|
|
|
|
double altitudeMin = 30000.0;
|
|
|
|
|
double altitudeAvg = 0.0;
|
|
|
|
|
bool altitudeNotZero = false;
|
|
|
|
|
// ----------- Température --------- //
|
|
|
|
|
int temperatureMax = 0;
|
|
|
|
|
int temperatureMin = 3000;
|
|
|
|
|
int temperatureAvg = 0;
|
|
|
|
|
bool temperatureNotZero = false;
|
|
|
|
|
// ----------- Vitesse ------------- //
|
|
|
|
|
double vitesseMax = 0.0;
|
|
|
|
|
double vitesseMin = 999999.0;
|
|
|
|
|
double vitesseAvg = 0.0;
|
|
|
|
|
bool vitesseNotZero = false;
|
|
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------- //
|
|
|
|
|
|
|
|
|
|
// -- Fonction pour lire le csv et remplir la classe -- //
|
|
|
|
|
ActivityInfo getData(List<List<String>> csv) {
|
|
|
|
|
ActivityInfo getDataWalking(List<List<String>> csv) {
|
|
|
|
|
// - Entete - //
|
|
|
|
|
Map<String, int> enteteCSV = getEntete(csv.first);
|
|
|
|
|
// ------------- Var tmp ---------- //
|
|
|
|
@ -63,6 +67,7 @@ class ActivityInfo {
|
|
|
|
|
int.parse(csv[i][enteteCSV["Value_${managerFile.fielBPM}"]!]);
|
|
|
|
|
bpmSomme += value;
|
|
|
|
|
bpmNb += 1;
|
|
|
|
|
bpmNotZero = true;
|
|
|
|
|
if (value > bpmMax) {
|
|
|
|
|
bpmMax = value;
|
|
|
|
|
}
|
|
|
|
@ -91,6 +96,7 @@ class ActivityInfo {
|
|
|
|
|
}
|
|
|
|
|
altitudeSomme += value;
|
|
|
|
|
alititudeNb += 1;
|
|
|
|
|
altitudeNotZero = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ------------------------ Température ----------------------- //
|
|
|
|
@ -100,6 +106,7 @@ class ActivityInfo {
|
|
|
|
|
csv[i][enteteCSV["Value_${managerFile.fieldTemperature}"]!]);
|
|
|
|
|
temperatureSomme += value;
|
|
|
|
|
temperatureNb += 1;
|
|
|
|
|
temperatureNotZero = true;
|
|
|
|
|
if (value > temperatureMax) {
|
|
|
|
|
temperatureMax = value;
|
|
|
|
|
}
|
|
|
|
@ -114,6 +121,7 @@ class ActivityInfo {
|
|
|
|
|
double.parse(csv[i][enteteCSV["Value_${managerFile.fieldSpeed}"]!]);
|
|
|
|
|
vitesseSomme += value;
|
|
|
|
|
vitesseNb += 1;
|
|
|
|
|
vitesseNotZero = true;
|
|
|
|
|
if (value > vitesseMax) {
|
|
|
|
|
vitesseMax = value;
|
|
|
|
|
}
|
|
|
|
@ -124,13 +132,168 @@ class ActivityInfo {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -- BPM -- //
|
|
|
|
|
bpmAvg = bpmSomme ~/ bpmNb;
|
|
|
|
|
if (bpmNotZero) {
|
|
|
|
|
bpmAvg = bpmSomme ~/ bpmNb;
|
|
|
|
|
}
|
|
|
|
|
// -- Atitude -- //
|
|
|
|
|
if (altitudeNotZero) {
|
|
|
|
|
altitudeAvg = altitudeSomme / alititudeNb;
|
|
|
|
|
}
|
|
|
|
|
// -- Température -- //
|
|
|
|
|
if (temperatureNotZero) {
|
|
|
|
|
temperatureAvg = temperatureSomme ~/ temperatureNb;
|
|
|
|
|
}
|
|
|
|
|
// -- Vitesse -- //
|
|
|
|
|
if (vitesseNotZero) {
|
|
|
|
|
vitesseAvg = vitesseSomme / vitesseNb;
|
|
|
|
|
}
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -- Fonction pour lire le csv et remplir la classe -- //
|
|
|
|
|
ActivityInfo getDataCycling(List<List<String>> csv) {
|
|
|
|
|
// - Entete - //
|
|
|
|
|
Map<String, int> enteteCSV = getEntete(csv.first);
|
|
|
|
|
// ------------- Var tmp ---------- //
|
|
|
|
|
// -- BPM -- //
|
|
|
|
|
int bpmSomme = 0;
|
|
|
|
|
int bpmNb = 0;
|
|
|
|
|
// -- Denivelé -- //
|
|
|
|
|
double lastDenivele = 0.0;
|
|
|
|
|
// -- Altitude -- //
|
|
|
|
|
double altitudeSomme = 0;
|
|
|
|
|
int alititudeNb = 0;
|
|
|
|
|
// -- Température -- //
|
|
|
|
|
int temperatureSomme = 0;
|
|
|
|
|
int temperatureNb = 0;
|
|
|
|
|
// -- Vitesse -- //
|
|
|
|
|
double vitesseSomme = 0.0;
|
|
|
|
|
int vitesseNb = 0;
|
|
|
|
|
|
|
|
|
|
// --- Boucle -- //
|
|
|
|
|
for (int i = 1; i < csv.length; i++) {
|
|
|
|
|
//
|
|
|
|
|
// ---------------------- BPM ---------------------- //
|
|
|
|
|
if (!isNull(enteteCSV["Value_${managerFile.fielBPM}"]!, csv[i])) {
|
|
|
|
|
int value =
|
|
|
|
|
int.parse(csv[i][enteteCSV["Value_${managerFile.fielBPM}"]!]);
|
|
|
|
|
bpmSomme += value;
|
|
|
|
|
bpmNb += 1;
|
|
|
|
|
bpmNotZero = true;
|
|
|
|
|
if (value > bpmMax) {
|
|
|
|
|
bpmMax = value;
|
|
|
|
|
}
|
|
|
|
|
if (value < bpmMin) {
|
|
|
|
|
bpmMin = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// ------------------ Denivele et Altitude --------------- //
|
|
|
|
|
if (!isNull(enteteCSV["Value_${managerFile.fieldAltitude}"]!, csv[i])) {
|
|
|
|
|
double value = double.parse(
|
|
|
|
|
csv[i][enteteCSV["Value_${managerFile.fieldAltitude}"]!]);
|
|
|
|
|
// -- Denivelé -- //
|
|
|
|
|
if (value > lastDenivele) {
|
|
|
|
|
denivelePositif += value - lastDenivele;
|
|
|
|
|
} else {
|
|
|
|
|
deniveleNegatif += (value - lastDenivele) * -1;
|
|
|
|
|
}
|
|
|
|
|
lastDenivele = value;
|
|
|
|
|
// -- Altitude -- //
|
|
|
|
|
if (value > altitudeMax) {
|
|
|
|
|
altitudeMax = value;
|
|
|
|
|
}
|
|
|
|
|
if (value < altitudeMin) {
|
|
|
|
|
altitudeMin = value;
|
|
|
|
|
}
|
|
|
|
|
altitudeSomme += value;
|
|
|
|
|
alititudeNb += 1;
|
|
|
|
|
altitudeNotZero = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ------------------------ Température ----------------------- //
|
|
|
|
|
if (!isNull(
|
|
|
|
|
enteteCSV["Value_${managerFile.fieldTemperature}"]!, csv[i])) {
|
|
|
|
|
int value = int.parse(
|
|
|
|
|
csv[i][enteteCSV["Value_${managerFile.fieldTemperature}"]!]);
|
|
|
|
|
temperatureSomme += value;
|
|
|
|
|
temperatureNb += 1;
|
|
|
|
|
vitesseNotZero = true;
|
|
|
|
|
if (value > temperatureMax) {
|
|
|
|
|
temperatureMax = value;
|
|
|
|
|
}
|
|
|
|
|
if (value < temperatureMin) {
|
|
|
|
|
temperatureMin = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ------------------------ Vitesse -----------------------------//
|
|
|
|
|
if (!isNull(enteteCSV["Value_${managerFile.fieldSpeed}"]!, csv[i])) {
|
|
|
|
|
double value =
|
|
|
|
|
double.parse(csv[i][enteteCSV["Value_${managerFile.fieldSpeed}"]!]);
|
|
|
|
|
vitesseSomme += value;
|
|
|
|
|
vitesseNb += 1;
|
|
|
|
|
vitesseNotZero = true;
|
|
|
|
|
if (value > vitesseMax) {
|
|
|
|
|
vitesseMax = value;
|
|
|
|
|
}
|
|
|
|
|
if (value < vitesseMin) {
|
|
|
|
|
vitesseMin = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -- BPM -- //
|
|
|
|
|
if (bpmNotZero) {
|
|
|
|
|
bpmAvg = bpmSomme ~/ bpmNb;
|
|
|
|
|
}
|
|
|
|
|
// -- Atitude -- //
|
|
|
|
|
altitudeAvg = altitudeSomme / alititudeNb;
|
|
|
|
|
if (altitudeNotZero) {
|
|
|
|
|
altitudeAvg = altitudeSomme / alititudeNb;
|
|
|
|
|
}
|
|
|
|
|
// -- Température -- //
|
|
|
|
|
temperatureAvg = temperatureSomme ~/ temperatureNb;
|
|
|
|
|
if (temperatureNotZero) {
|
|
|
|
|
temperatureAvg = temperatureSomme ~/ temperatureNb;
|
|
|
|
|
}
|
|
|
|
|
// -- Vitesse -- //
|
|
|
|
|
vitesseAvg = vitesseSomme / vitesseNb;
|
|
|
|
|
if (vitesseNotZero) {
|
|
|
|
|
vitesseAvg = vitesseSomme / vitesseNb;
|
|
|
|
|
}
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -- Fonction pour lire le csv et remplir la classe -- //
|
|
|
|
|
ActivityInfo getDataGeneric(List<List<String>> csv) {
|
|
|
|
|
// - Entete - //
|
|
|
|
|
Map<String, int> enteteCSV = getEntete(csv.first);
|
|
|
|
|
// ------------- Var tmp ---------- //
|
|
|
|
|
// -- BPM -- //
|
|
|
|
|
int bpmSomme = 0;
|
|
|
|
|
int bpmNb = 0;
|
|
|
|
|
bool bpmNotZero = false;
|
|
|
|
|
// --- Boucle -- //
|
|
|
|
|
for (int i = 1; i < csv.length; i++) {
|
|
|
|
|
//
|
|
|
|
|
// ---------------------- BPM ---------------------- //
|
|
|
|
|
if (!isNull(enteteCSV["Value_${managerFile.fielBPM}"]!, csv[i])) {
|
|
|
|
|
int value =
|
|
|
|
|
int.parse(csv[i][enteteCSV["Value_${managerFile.fielBPM}"]!]);
|
|
|
|
|
bpmSomme += value;
|
|
|
|
|
bpmNb += 1;
|
|
|
|
|
bpmNotZero = true;
|
|
|
|
|
if (value > bpmMax) {
|
|
|
|
|
bpmMax = value;
|
|
|
|
|
}
|
|
|
|
|
if (value < bpmMin) {
|
|
|
|
|
bpmMin = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -- BPM -- //
|
|
|
|
|
if (bpmNotZero) {
|
|
|
|
|
bpmAvg = bpmSomme ~/ bpmNb;
|
|
|
|
|
}
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|