De MicElectroLinGenMet.
// Affiche données base météo Ws2300 du serveur Debian Vesta.
// Version pour carte FOX
#include "stdio.h"
#include "stdlib.h"
#include "unistd.h"
//#include <mysql/mysql.h> // Compilation PC
#include "/home/dan/tampon/fox-sdk/devboard-R2_01/mysql-5.0.21/include/mysql.h" // Compilation Fox
/*
Compilation PC: gcc ws2300mysql.c -o ws2300mysql -lmysqlclient
Compilation Fox:
$ cd ~/fox-sdk/devboard-R2_01/
$ . init_env
$ cd apps/mysqlclient/
$ gcc-cris -mlinux -isystem /$AXIS_TOP_DIR/target/cris-axis-linux-gnu -lm -o ws2300mysql ws2300mysql.c /$AXIS_TOP_DIR//mysql-5.0.21/libmysql/.libs/libmysqlclient.a /$AXIS_TOP_DIR/mysql-5.0.21/zlib/.libs/libz.a
cris-strip ws2300mysql
$ cris-strip ws2300mysql
$ scp ws2300mysql root@fox:/var
*/
#define MYSQL_HOST "vesta"
#define MYSQL_DB "meteo"
#define MYSQL_LOGIN "root"
char mysqlpw[]="xxxxxxxx" ;
//Compilation: gcc test-mysql.c -o test-mysql -lmysqlclient
int main() {
MYSQL mysql;
MYSQL_RES *result;
MYSQL_ROW row;
char requete[255] ;
char maxtimestamp[32] ;
int i ;
mysql_init(&mysql);
if(!mysql_init(&mysql))
{
fprintf(stderr, "Cannot initialize MySQL") ;
return 1;
}
if(!mysql_real_connect(&mysql, MYSQL_HOST, MYSQL_LOGIN,
mysqlpw, MYSQL_DB,
, NULL, ))
{
fprintf(stderr, "Mysql connection error !\n Error %d: %s \n", mysql_errno(&mysql), mysql_error(&mysql));
return 1;
}
sprintf(requete, "SELECT rec_date,rec_time,temp_in,temp_out,rel_hum_in,rel_hum_out,(windspeed*3.6),wind_direction,rain_1h,rel_pressure FROM ws2300 ORDER BY timestamp DESC LIMIT 1 ;");
if(mysql_query(&mysql, requete))
{
fprintf(stderr, "Query error [%s] !\n Error %d: %s\n", requete, mysql_errno(&mysql), mysql_error(&mysql));
mysql_close(&mysql);
return 1;
}
if ( (result = mysql_use_result(&mysql)) )
{
// 1 seul résultat attendu sinon utiliser 'while ((row = mysql_fetch_row(result)))'
row = mysql_fetch_row(result) ;
printf("%s %s %s° %s° %s%% %s%% %skm/h %s %smm %shP\n", row[], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9]);
}
else fprintf(stderr, "Result query error !\n Error %d: %s !\n", mysql_errno(&mysql), mysql_error(&mysql) );
mysql_free_result(result) ;
mysql_close(&mysql);
return ;
}