Enzo 1 year ago
parent 6027af0e18
commit 6fbde68b73

@ -285,7 +285,11 @@ class RequestApi implements IDataStrategy {
@override
Future<Tuple2> getModeleAI(String token, String category) async {
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) {
Map<String, dynamic> json = jsonDecode(response.body);

@ -21,8 +21,14 @@ class HomeViewUtil {
List<FlSpot> bpmSecondes2 = List.from(bpmSecondes);
return DataHomeView(normaliserPremierElement(bpmSecondes), normaliserPremierElement(normaliserDeuxiemeElement(bpmSecondes2)),
normaliserPremierElement(normaliserDeuxiemeElement(vitesseSecondes)), normaliserPremierElement(altitudeSeconde));
print('DEBUG');
print(bpmSecondes.length);
return DataHomeView(
normaliserPremierElement(bpmSecondes),
normaliserPremierElement(normaliserDeuxiemeElement(bpmSecondes2)),
normaliserPremierElement(normaliserDeuxiemeElement(vitesseSecondes)),
normaliserPremierElement(altitudeSeconde));
}
List<FlSpot> normaliserDeuxiemeElement(List<FlSpot> liste) {
@ -41,21 +47,21 @@ class HomeViewUtil {
}
return liste;
}
List<FlSpot> normaliserPremierElement(List<FlSpot> liste) {
// Trouver le plus grand élément dans le premier élément de chaque FlSpot
double maxElement = 0.0;
for (var spot in liste) {
if (spot.x > maxElement) {
maxElement = spot.x;
// Trouver le plus grand élément dans le premier élément de chaque FlSpot
double maxElement = 0.0;
for (var spot in liste) {
if (spot.x > maxElement) {
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 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
import 'package:csv/csv.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@ -91,6 +90,9 @@ class ListActivityUtile {
String csvString = const ListToCsvConverter().convert(resultData.item2);
Uint8List byteCSV = Uint8List.fromList(utf8.encode(csvString));
File x = await File("${await _managerFile.localPath}\\what")
.writeAsString(csvString);
Tuple2<bool, String> result = await api.uploadFileByte(
token,
byteCSV,

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

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

Loading…
Cancel
Save