Fox ws2300mysql.c

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 ;
}

Administration wiki