Enzo 2 years ago
parent 6027af0e18
commit 6fbde68b73

@ -285,7 +285,11 @@ class RequestApi implements IDataStrategy {
@override @override
Future<Tuple2> getModeleAI(String token, String category) async { Future<Tuple2> getModeleAI(String token, String category) async {
try { try {
final response = await http.post(Uri.parse('$urlApi/user/IA/$category')); final response = await http.post(Uri.parse('$urlApi/user/ai/$category'),
headers: <String, String>{'Authorization': token});
print(response.statusCode);
print(response.body);
if (response.statusCode == 200) { if (response.statusCode == 200) {
Map<String, dynamic> json = jsonDecode(response.body); Map<String, dynamic> json = jsonDecode(response.body);

@ -21,8 +21,14 @@ class HomeViewUtil {
List<FlSpot> bpmSecondes2 = List.from(bpmSecondes); List<FlSpot> bpmSecondes2 = List.from(bpmSecondes);
return DataHomeView(normaliserPremierElement(bpmSecondes), normaliserPremierElement(normaliserDeuxiemeElement(bpmSecondes2)), print('DEBUG');
normaliserPremierElement(normaliserDeuxiemeElement(vitesseSecondes)), normaliserPremierElement(altitudeSeconde)); print(bpmSecondes.length);
return DataHomeView(
normaliserPremierElement(bpmSecondes),
normaliserPremierElement(normaliserDeuxiemeElement(bpmSecondes2)),
normaliserPremierElement(normaliserDeuxiemeElement(vitesseSecondes)),
normaliserPremierElement(altitudeSeconde));
} }
List<FlSpot> normaliserDeuxiemeElement(List<FlSpot> liste) { List<FlSpot> normaliserDeuxiemeElement(List<FlSpot> liste) {
@ -41,21 +47,21 @@ class HomeViewUtil {
} }
return liste; return liste;
} }
List<FlSpot> normaliserPremierElement(List<FlSpot> liste) { List<FlSpot> normaliserPremierElement(List<FlSpot> liste) {
// Trouver le plus grand élément dans le premier élément de chaque FlSpot // Trouver le plus grand élément dans le premier élément de chaque FlSpot
double maxElement = 0.0; double maxElement = 0.0;
for (var spot in liste) { for (var spot in liste) {
if (spot.x > maxElement) { if (spot.x > maxElement) {
maxElement = spot.x; maxElement = spot.x;
}
} }
// Calculer le facteur de normalisation
double normalisationFactor = maxElement != 0.0 ? 100 / maxElement : 1.0;
// Mettre à jour tous les premiers éléments de la liste
for (int i = 0; i < liste.length; i++) {
liste[i] = FlSpot(liste[i].x * normalisationFactor, liste[i].y);
}
return liste;
} }
// Calculer le facteur de normalisation
double normalisationFactor = maxElement != 0.0 ? 100 / maxElement : 1.0;
// Mettre à jour tous les premiers éléments de la liste
for (int i = 0; i < liste.length; i++) {
liste[i] = FlSpot(liste[i].x * normalisationFactor, liste[i].y);
}
return liste;
}
} }

@ -5,7 +5,6 @@ import 'package:smartfit_app_mobile/modele/activity_saver.dart';
import 'package:smartfit_app_mobile/modele/helper.dart'; import 'package:smartfit_app_mobile/modele/helper.dart';
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'dart:typed_data';
import 'package:csv/csv.dart'; import 'package:csv/csv.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -91,6 +90,9 @@ class ListActivityUtile {
String csvString = const ListToCsvConverter().convert(resultData.item2); String csvString = const ListToCsvConverter().convert(resultData.item2);
Uint8List byteCSV = Uint8List.fromList(utf8.encode(csvString)); Uint8List byteCSV = Uint8List.fromList(utf8.encode(csvString));
File x = await File("${await _managerFile.localPath}\\what")
.writeAsString(csvString);
Tuple2<bool, String> result = await api.uploadFileByte( Tuple2<bool, String> result = await api.uploadFileByte(
token, token,
byteCSV, byteCSV,

@ -29,6 +29,7 @@ class _MobileHomeView extends State<MobileHomeView> {
context.watch<User>().managerSelectedActivity; context.watch<User>().managerSelectedActivity;
data = HomeViewUtil().initData(context); data = HomeViewUtil().initData(context);
// -- BPM -- // // -- BPM -- //
data.maxBPM = data.maxBPM =
managerSelectedActivity.activitySelected.first.activityInfo.bpmMax; managerSelectedActivity.activitySelected.first.activityInfo.bpmMax;
@ -36,7 +37,6 @@ class _MobileHomeView extends State<MobileHomeView> {
managerSelectedActivity.activitySelected.first.activityInfo.bpmMin; managerSelectedActivity.activitySelected.first.activityInfo.bpmMin;
int avgBpm = int avgBpm =
managerSelectedActivity.activitySelected.first.activityInfo.bpmAvg; managerSelectedActivity.activitySelected.first.activityInfo.bpmAvg;
// -- Altitude -- // // -- Altitude -- //
double minAltitude = double minAltitude =
managerSelectedActivity.activitySelected.first.activityInfo.altitudeMin; managerSelectedActivity.activitySelected.first.activityInfo.altitudeMin;
@ -48,12 +48,12 @@ class _MobileHomeView extends State<MobileHomeView> {
double maxSpeed = managerSelectedActivity.getMaxSpeedAllActivitySelected(); double maxSpeed = managerSelectedActivity.getMaxSpeedAllActivitySelected();
double avgSpeed = managerSelectedActivity.getAvgSpeedAllActivitySelected(); double avgSpeed = managerSelectedActivity.getAvgSpeedAllActivitySelected();
double minSpeed = managerSelectedActivity.getMinSpeedAllActivitySelected(); double minSpeed = managerSelectedActivity.getMinSpeedAllActivitySelected();
data.maxSpeed = maxSpeed; data.maxSpeed = maxSpeed;
data.time = context data.time = context
.watch<User>() .watch<User>()
.managerSelectedActivity .managerSelectedActivity
.getTimeAllActivitySelected(); .getTimeAllActivitySelected();
return Scaffold( return Scaffold(
backgroundColor: TColor.white, backgroundColor: TColor.white,
body: SingleChildScrollView( body: SingleChildScrollView(

@ -50,21 +50,23 @@ class _PredictionState extends State<Prediction> {
void prediction() async { void prediction() async {
InfoMessage tmp = InfoMessage(); InfoMessage tmp = InfoMessage();
setState(() {
print("lol"); /*
lastWorkoutArr[0]["Value"] = "null"; if (selectedCategory != _managerFile.marche ||
}); selectedCategory != _managerFile.velo) return;*/
print("Start");
Tuple2<bool, ActivityInfo> resultat = Tuple2<bool, ActivityInfo> resultat =
await Provider.of<User>(context, listen: false) await Provider.of<User>(context, listen: false)
.predictActivity(DateTime.now(), selectedCategory, tmp); .predictActivity(DateTime.now(), selectedCategory, tmp);
if (!resultat.item1) return; if (!resultat.item1) return;
setState(() { setState(() {
lastWorkoutArr[0]["Value"] = lastWorkoutArr[0]["value"] =
resultat.item2.timeOfActivity.toStringAsFixed(2); resultat.item2.timeOfActivity.toStringAsFixed(2);
lastWorkoutArr[1]["Value"] = resultat.item2.bpmAvg.toStringAsFixed(2); lastWorkoutArr[1]["value"] = resultat.item2.bpmAvg.toStringAsFixed(2);
lastWorkoutArr[2]["Value"] = lastWorkoutArr[2]["value"] =
resultat.item2.vitesseAvg.toStringAsFixed(2); resultat.item2.vitesseAvg.toStringAsFixed(2);
lastWorkoutArr[3]["Value"] = resultat.item2.distance.toStringAsFixed(2); lastWorkoutArr[3]["value"] = resultat.item2.distance.toStringAsFixed(2);
}); });
} }

Loading…
Cancel
Save