function menu($page_active) {
$url1="Accueil";
$url1_actif="Accueil";
$url5="Météo";
$url5_actif="Météo";
$menu = "
";
return $menu;
}
?>
//require_once("./include/bd.php");
/* Fonction permettant de déterminer la direction du vent en fonction
de sa mesure en degree
@param : degree -> direction du vent en degree (compris entre 0 et 360)
*/
function getDirectionVent($degree)
{
$direction = NULL;
if ( ($degree != null) && ($degree >= 0) && ($degree <= 359) ) {
if (($degree >= 345) && ($degree <= 359)) $direction = "N";
elseif (($degree >= 0) && ($degree <= 14)) $direction = "N";
elseif (($degree >= 15) && ($degree <= 34)) $direction = "NNE";
elseif (($degree >= 35) && ($degree <= 54)) $direction = "NE";
elseif (($degree >= 55) && ($degree <= 74)) $direction = "ENE";
elseif (($degree >= 75) && ($degree <= 104)) $direction = "E";
elseif (($degree >= 105) && ($degree <= 124)) $direction = "ESE";
elseif (($degree >= 125) && ($degree <= 144)) $direction = "SE";
elseif (($degree >= 145) && ($degree <= 164)) $direction = "SSE";
elseif (($degree >= 165) && ($degree <= 194)) $direction = "S";
elseif (($degree >= 195) && ($degree <= 214)) $direction = "SSO";
elseif (($degree >= 215) && ($degree <= 234)) $direction = "SO";
elseif (($degree >= 235) && ($degree <= 254)) $direction = "OSO";
elseif (($degree >= 255) && ($degree <= 284)) $direction = "O";
elseif (($degree >= 285) && ($degree <= 304)) $direction = "ONO";
elseif (($degree >= 305) && ($degree <= 324)) $direction = "NO";
elseif (($degree >= 325) && ($degree <= 344)) $direction = "NNO";
}else $direction ="";
return $direction;
}
function getDirectionVentForVocal($degree) {
$direction = NULL;
if ( ($degree != null) && ($degree >= 0) && ($degree <= 359) ) {
if (($degree >= 345) && ($degree <= 359)) $direction = "Nord";
elseif (($degree >= 0) && ($degree <= 14)) $direction = "Nord";
elseif (($degree >= 15) && ($degree <= 34)) $direction = "Nord. Nord èste";
elseif (($degree >= 35) && ($degree <= 54)) $direction = "Nord. èste";
elseif (($degree >= 55) && ($degree <= 74)) $direction = "èste. Nord èste";
elseif (($degree >= 75) && ($degree <= 104)) $direction = "èste";
elseif (($degree >= 105) && ($degree <= 124)) $direction = "èste. Sud èste";
elseif (($degree >= 125) && ($degree <= 144)) $direction = "Sud èste";
elseif (($degree >= 145) && ($degree <= 164)) $direction = "Sud. Sud èste";
elseif (($degree >= 165) && ($degree <= 194)) $direction = "Sud";
elseif (($degree >= 195) && ($degree <= 214)) $direction = "Sud. Sud Ouest";
elseif (($degree >= 215) && ($degree <= 234)) $direction = "Sud Ouest";
elseif (($degree >= 235) && ($degree <= 254)) $direction = "Ouest. Sud Ouest";
elseif (($degree >= 255) && ($degree <= 284)) $direction = "Ouest";
elseif (($degree >= 285) && ($degree <= 304)) $direction = "Ouest. Nord Ouest";
elseif (($degree >= 305) && ($degree <= 324)) $direction = "Nord Ouest";
elseif (($degree >= 325) && ($degree <= 344)) $direction = "Nord. Nord Ouest";
}else $direction ="non déterminé";
return $direction;
}
/* Fonction renvoyant un tableau représentant le dernier releve meteo de la balise
* @param : idBalise -> identifiant de la balise
* @return : array_result -> tableau de < clef , valeur > des données météos
*/
function getReleve($idBalise)
{
global $DB_LINK;
inc_balises_counters($idBalise);
$req = "SELECT `last_data_horo` FROM `balises` WHERE `idBalise` = '" . $idBalise . "'";
$r = mysqli_query($DB_LINK, $req);
$bal1 = mysqli_fetch_array($r);
$releve = null;
$t0 = microtime(true);
// Protection injection SQL (Jerome 20100727)
$idBalise = intval($idBalise);
if (isset($bal1['last_data_horo']))
{
$data_since = abs(time() - cvdate($bal1['last_data_horo']));
}
else
{
$data_since = 100*24*3600; // juste pour faire croire ˆ la suite que non
}
if ($data_since < 5*24*3600)
{
$req1 = "SELECT date, DATE_FORMAT(date,'%d/%m/%Y - %H:%i') as dateFormate,"
." DATE_FORMAT(date,'%Y-%m-%d %H:%i:%s') as dateIso,"
." vitesseVentMoy, vitesseVentMax, vitesseVentMin,"
." directVentMoy, directVentInst, temperature, LUM, u_sol, u_bat, signal_sigfox"
." FROM relevemeteo"
." WHERE idBalise=".$idBalise
." ORDER BY `date` DESC LIMIT 1";
$answer1 = mysqli_query($DB_LINK, $req1);
$releve = mysqli_fetch_array($answer1);
}
$req2 = "SELECT `nom`, `forKyte`, `decalageHoraire` FROM `balises` WHERE `idBalise`=" . $idBalise;
$answer2 = mysqli_query($DB_LINK, $req2);
$balise = mysqli_fetch_array($answer2);
if ($balise==Null) return false;
$array_result = null;
$valid = true;
//Test si la balise est une balise kyte
if ($balise != null && $releve != null) {
/* Test de la validité du releve : invalide si > 30mins */
$dateReleve = strtotime($releve['dateIso']);
$dateCourante = strtotime(date("Y-m-d H:i:s", time()));
$dif = floor(($dateCourante- $dateReleve)/60); //différence en minutes
$limit = 30;
if($dif >= $limit) {
$valid = false;
}
/* Détermination de la direction du vent ( point cardinaux ) */
$directVentMoyCard = getDirectionVent($releve['directVentMoy']);
$directVentInstCard = getDirectionVent($releve['directVentInst']);
if($balise['forKyte']) {
$coeff_conv_kmH_noeud = 1.852;
$vitesseVentMoy = round($releve['vitesseVentMoy'] / $coeff_conv_kmH_noeud);
$vitesseVentMax = round($releve['vitesseVentMax'] / $coeff_conv_kmH_noeud);
$vitesseVentMin = round($releve['vitesseVentMin'] / $coeff_conv_kmH_noeud);
$typeBalise = "kyte";
$unitVent = UNIT_VITESSE_NOEUD_VENT;
}
else {
$vitesseVentMoy = $releve['vitesseVentMoy'];
$vitesseVentMax = $releve['vitesseVentMax'];
$vitesseVentMin = $releve['vitesseVentMin'];
$typeBalise = "normal";
$unitVent = UNIT_VITESSE_VENT;
}
/* Construction du tableau */
$array_result = array(
"idBalise" => $idBalise,
"isValid" => $valid,
"nomBalise" => $balise['nom'],
//"dateFormate" => $releve['dateFormate'],
"dateFormate" => date('d/m/Y - H:i', $dateReleve+(60*60*$balise['decalageHoraire'])),
"dateIso" => $releve['dateIso'],
"vitesseVentMoy" => $vitesseVentMoy,
"vitesseVentMax" => $vitesseVentMax,
"vitesseVentMin" => $vitesseVentMin,
"directVentMoy" => $releve['directVentMoy'],
"directVentInst" => $releve['directVentInst'],
"directVentMoyCard" => $directVentMoyCard,
"directVentInstCard" => $directVentInstCard,
"temperature" => $releve['temperature'],
"typeBalise" => $typeBalise,
"unitVent" => $unitVent,
"LUM" => $releve['LUM'],
"u_sol" => (isset($releve['u_sol'])?round($releve['u_sol']/1000,1):null),
"u_bat" => (isset($releve['u_bat'])?round($releve['u_bat']/1000,1):null),
"signal_sigfox" => $releve['signal_sigfox'],
);
}
else // Gilles 2019-06-09 si aucun relevŽ trouvŽ, on sort un relevŽ fictif
{
/* Construction du tableau */
pas_de_releve_frais:
$array_result = array(
"idBalise" => $idBalise,
"isValid" => 1,
"nomBalise" => $balise['nom'],
//"dateFormate" => $releve['dateFormate'],
"dateFormate" => '',
"dateIso" => '',
"vitesseVentMoy" => '',
"vitesseVentMax" => '',
"vitesseVentMin" => '',
"directVentMoy" => '',
"directVentInst" => '',
"directVentMoyCard" => '',
"directVentInstCard" => '',
"temperature" => '',
"typeBalise" => '',
"unitVent" => '',
"LUM" => '',
"u_sol" => '',
"u_bat" => '',
"signal_sigfox" => '',
);
}
return $array_result;
}
function getDirectionVentForIMG($degree) {
$direction = NULL;
if ( ($degree != null) && ($degree >= 0) && ($degree <= 359) ) {
if (($degree >= 345) && ($degree <= 359)) $direction = "N";
elseif (($degree >= 0) && ($degree <= 15)) $direction = "N";
else if (($degree > 15) && ($degree < 75)) $direction = "NE";
else if (($degree >= 75) && ($degree <= 105)) $direction = "E";
else if (($degree > 105) && ($degree < 165)) $direction = "SE";
else if (($degree >= 165) && ($degree <= 195)) $direction = "S";
else if (($degree > 195) && ($degree < 225)) $direction = "SO";
else if (($degree >= 225) && ($degree <= 285)) $direction = "O";
else if (($degree > 285) && ($degree < 345)) $direction = "NO";
} else $direction = "NC";
return $direction;
}
?>
Fatal error: Uncaught Error: Call to undefined function getReleve() in /var/www/balisemeteo.com/balise.php:26
Stack trace:
#0 {main}
thrown in /var/www/balisemeteo.com/balise.php on line 26