1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
#!/opt/bin/perl -w
eval 'exec /opt/bin/perl -w -S $0 ${1+"$@"}'
if 0; # not running under some shell
=head1 NAME
genere_xml_meteo - Perl script to generate xml datas files for website charts
=head1 DESCRIPTION
Perl script to generate xml datas files for website charts
=cut
use strict;
use warnings;
use DBI;
my $DB = "xxxx";
my $HOST = "xxxx";
my $LOGIN = "xxxx";
my $PWD = "xxxx";
my $dbh = DBI->connect("dbi:mysql:dbname=$DB;host=$HOST;",$LOGIN,$PWD) or die "Connexion impossible\n";
$|=1; # autoflush helps debugging
my $i = 0;
my $tab_auj;
my $tab_hier;
my $time;
my $val;
my $valhier;
my $fileCSV;
my @tab_auj= ();
my @tab_hier= ();
my @result= ();
# Run the main loop
&genere;
# ========== generer fichier xml pour datas temperature THGN800 ===============
sub genere {
# Requete pour les résultats du jour
my $requete = "SELECT timestamp_mesure, valeur_mesure FROM releves WHERE id_capteur='20' AND type_mesure='temp' AND timestamp_mesure BETWEEN DATE_ADD(NOW(),INTERVAL -25 HOUR) AND NOW() ORDER BY timestamp_mesure DESC";
my $sth = $dbh->prepare($requete);
$sth->execute() or die "Echec Requete $requete : $DBI::errstr\n";
while (my @result = $sth->fetchrow_array()) {
$tab_auj[$i] = { timestamp_mesure => $result[0], valeur_mesure => $result[1] };
$i ++;
}
$sth->finish();
# Requete pour les résultats de la veille
$requete = "SELECT timestamp_mesure, valeur_mesure FROM releves WHERE id_capteur='20' AND type_mesure='temp' AND timestamp_mesure BETWEEN DATE_ADD(NOW(),INTERVAL -50 HOUR) AND DATE_ADD(NOW(),INTERVAL -25 HOUR) ORDER BY timestamp_mesure DESC";
$sth = $dbh->prepare($requete);
$sth->execute() or die "Echec Requete $requete : $DBI::errstr\n";
while (my @result = $sth->fetchrow_array()) {
$tab_hier[$i] = { timestamp_mesure => $result[0], valeur_mesure => $result[1] };
$i ++;
}
$sth->finish();
use FileHandle;
my $fileXML="/volume1/web/meteo/graph_THGN800_1_temp/datas.XML";
open (F, ">$fileXML");
print F "chart_data: ";#pour écrire dans le fichier
for $i (0 .. ($#tab_auj)) {
$time = $tab_auj[$i]->{timestamp_mesure};
$val = $tab_auj[$i]->{valeur_mesure};
$valhier = $tab_hier[$i]->{valeur_mesure};
print F "$time";
print F ";";
print F "$val";
print F ";";
print F "$valhier";
print F ";";
}
print F ",\n";
close F;#fermeture du fichier.
print "Fin du script\n\n";
} |
Partager