|
|
@ -8,6 +8,7 @@
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @package manager
|
|
|
|
* @package manager
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
namespace Manager;
|
|
|
|
namespace Manager;
|
|
|
|
|
|
|
|
|
|
|
|
use adriangibbons\phpFITFileAnalysis;
|
|
|
|
use adriangibbons\phpFITFileAnalysis;
|
|
|
@ -39,10 +40,10 @@ class ActivityManager
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @param IAuthService $authService Le service d'authentification utilisé pour vérifier l'utilisateur actuel.
|
|
|
|
* @param IAuthService $authService Le service d'authentification utilisé pour vérifier l'utilisateur actuel.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public function __construct(DataManager $dataManager,IAuthService $authService)
|
|
|
|
public function __construct(DataManager $dataManager, IAuthService $authService)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
$this->authService = $authService;
|
|
|
|
$this->authService = $authService;
|
|
|
|
$this->dataManager = $dataManager;
|
|
|
|
$this->dataManager = $dataManager;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -57,22 +58,22 @@ class ActivityManager
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
// Extraction des données du fichier FIT
|
|
|
|
// Extraction des données du fichier FIT
|
|
|
|
$fitData = [
|
|
|
|
$fitData = [
|
|
|
|
'timestamps' => $monFichierFit->data_mesgs['record']['timestamp'],
|
|
|
|
'timestamps' => $monFichierFit->data_mesgs['record']['timestamp'],
|
|
|
|
'latitudes' => $monFichierFit->data_mesgs['record']['position_lat'],
|
|
|
|
'latitudes' => $monFichierFit->data_mesgs['record']['position_lat'],
|
|
|
|
'longitudes' => $monFichierFit->data_mesgs['record']['position_long'],
|
|
|
|
'longitudes' => $monFichierFit->data_mesgs['record']['position_long'],
|
|
|
|
'altitudes' => $monFichierFit->data_mesgs['record']['altitude'],
|
|
|
|
'altitudes' => $monFichierFit->data_mesgs['record']['altitude'],
|
|
|
|
'heartRates' => $monFichierFit->data_mesgs['record']['heart_rate'],
|
|
|
|
'heartRates' => $monFichierFit->data_mesgs['record']['heart_rate'],
|
|
|
|
'cadences' => $monFichierFit->data_mesgs['record']['cadence'],
|
|
|
|
'cadences' => $monFichierFit->data_mesgs['record']['cadence'],
|
|
|
|
'distances' => $monFichierFit->data_mesgs['record']['distance'],
|
|
|
|
'distances' => $monFichierFit->data_mesgs['record']['distance'],
|
|
|
|
'speeds' => $monFichierFit->data_mesgs['record']['speed'],
|
|
|
|
'speeds' => $monFichierFit->data_mesgs['record']['speed'],
|
|
|
|
'powers' => $monFichierFit->data_mesgs['record']['power'],
|
|
|
|
'powers' => $monFichierFit->data_mesgs['record']['power'],
|
|
|
|
'temperatures' => $monFichierFit->data_mesgs['record']['temperature'],
|
|
|
|
'temperatures' => $monFichierFit->data_mesgs['record']['temperature'],
|
|
|
|
];
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
// Conversion des données en format JSON
|
|
|
|
// Conversion des données en format JSON
|
|
|
|
$jsonFitData = json_encode($fitData, JSON_PRETTY_PRINT);
|
|
|
|
$jsonFitData = json_encode($fitData, JSON_PRETTY_PRINT);
|
|
|
|
// Enregistrement du fichier JSON
|
|
|
|
// Enregistrement du fichier JSON
|
|
|
|
file_put_contents( './you.json', $jsonFitData);
|
|
|
|
file_put_contents('./you.json', $jsonFitData);
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
} catch (\Exception $e) {
|
|
|
@ -98,12 +99,12 @@ class ActivityManager
|
|
|
|
// Vérification des options par défaut
|
|
|
|
// Vérification des options par défaut
|
|
|
|
if (empty($options)) {
|
|
|
|
if (empty($options)) {
|
|
|
|
$options = [
|
|
|
|
$options = [
|
|
|
|
'input_is_data' => true,
|
|
|
|
'input_is_data' => true,
|
|
|
|
'fix_data' => ['all'],
|
|
|
|
'fix_data' => ['all'],
|
|
|
|
'data_every_second' => false,
|
|
|
|
'data_every_second' => false,
|
|
|
|
'units' => 'metric',
|
|
|
|
'units' => 'metric',
|
|
|
|
'pace' => true,
|
|
|
|
'pace' => true,
|
|
|
|
'garmin_timestamps' => false,
|
|
|
|
'garmin_timestamps' => false,
|
|
|
|
'overwrite_with_dev_data' => false
|
|
|
|
'overwrite_with_dev_data' => false
|
|
|
|
];
|
|
|
|
];
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -135,9 +136,14 @@ class ActivityManager
|
|
|
|
$standardDeviation = number_format(sqrt($variance), 2);
|
|
|
|
$standardDeviation = number_format(sqrt($variance), 2);
|
|
|
|
$maximum = max($heartRateList);
|
|
|
|
$maximum = max($heartRateList);
|
|
|
|
$minimum = min($heartRateList);
|
|
|
|
$minimum = min($heartRateList);
|
|
|
|
|
|
|
|
if(isset($monFichierFit->data_mesgs['record']['temperature'])){
|
|
|
|
$temperatureList = $monFichierFit->data_mesgs['record']['temperature'];
|
|
|
|
// Extraction de la température moyenne (si disponible
|
|
|
|
$averageTemperature = (!empty($temperatureList)) ? number_format(array_sum($temperatureList) / count($temperatureList), 1) : -200;
|
|
|
|
$temperatureList = $monFichierFit->data_mesgs['record']['temperature'];
|
|
|
|
|
|
|
|
$averageTemperature = (!empty($temperatureList)) ? number_format(array_sum($temperatureList) / count($temperatureList), 1) : -200;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else{
|
|
|
|
|
|
|
|
$averageTemperature = -200;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$isPaused = count($monFichierFit->isPaused()) > 0;
|
|
|
|
$isPaused = count($monFichierFit->isPaused()) > 0;
|
|
|
|
|
|
|
|
|
|
|
@ -158,17 +164,22 @@ class ActivityManager
|
|
|
|
$isPaused
|
|
|
|
$isPaused
|
|
|
|
);
|
|
|
|
);
|
|
|
|
// $this->dataManager->activityRepository->add($newActivity);
|
|
|
|
// $this->dataManager->activityRepository->add($newActivity);
|
|
|
|
if ($this->saveFitFileToJSON($monFichierFit)){
|
|
|
|
// if ($this->saveFitFileToJSON($monFichierFit)) {
|
|
|
|
// Ajout de l'activité et enregistrement du fichier FIT en JSON
|
|
|
|
// Ajout de l'activité et enregistrement du fichier FIT en JSON
|
|
|
|
if ($this->authService->getCurrentUser()->getRole()->addActivity($newActivity)) {
|
|
|
|
if ($this->authService->getCurrentUser()->getRole()->addActivity($newActivity)) {
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch(\Exception $e){
|
|
|
|
echo $e;
|
|
|
|
echo $e;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
?>
|
|
|
|
?>
|