#include "main.h"

void printResult(MYSQL * mysqlPrint)                // 打印结果集(此处传入指针，而非内容)
{
    MYSQL_RES *result;
    int i;
    int numFields = 0;
    int numRows = 0;
    MYSQL_FIELD *field;
    MYSQL_ROW row;
    
    result = mysql_store_result(mysqlPrint);        // 将查询的全部结果读取到客户端
    numFields = mysql_num_fields(result);           // 统计结果集中的字段数
    numRows = mysql_num_rows(result);               // 统计结果集的行数
    while ((field = mysql_fetch_field(result)))     // 返回结果集中的列信息(字段)
        printf("%s\t", field->name);
    printf("\n");
    if (result) {
        while ((row = mysql_fetch_row(result)))     // 返回结果集中行的记录
        {
            for (i = 0; i < numFields; i++) {
                printf("%s\t", row[i]);
            }
            printf("\n");
        }
    }

    mysql_free_result(result);  // 释放result空间

}

int main(int argc, char *argv[], char **env)
{
    FILE *fp;
    char temperature[BUFFER];
    char time[BUFFER];
    char dht11[BUFFER];
    char sql_insert[BUFFER];
    char system[BUFFER];

    fp = NULL;
    bzero(temperature, 0);
    bzero(time, 0);
    bzero(dht11, 0);
    bzero(sql_insert, 0);
    bzero(system, 0);

    fp = popen("/root/gpio/wind -d 28", "r");
    fgets(temperature, sizeof(temperature), fp);
    temperature[strlen(temperature) - 1] = 0;
    fp = popen("date '+%y%m%d%H%M%S'", "r");
    fgets(time, sizeof(time), fp);
    time[strlen(time) - 1] = 0;
    pclose(fp);

    fp = popen("/root/gpio/dht11 29", "r");
    fgets(dht11, sizeof(dht11), fp);
    dht11[strlen(dht11) - 1] = 0;
    printf("%s\n", dht11);
    pclose(fp);
    
    
    fp = popen("getcpudata | xargs", "r");
    fgets(system, sizeof(system), fp);
    system[strlen(system) - 1] = 0;
    printf("%s\n", system);
    pclose(fp);

    sprintf(sql_insert, "INSERT INTO temperature (time, temperature, dht11, SYSTEM) VALUES ('%s', '%s', '%s', '%s');", time, temperature, dht11, system);
    puts(sql_insert);



    MYSQL mysql;
    mysql_init(&mysql);
    if (mysql_real_connect(&mysql, "git.aixiao.me", "root", "198", "mysql", 3306, NULL, 0)) {
        ;
    } else {
        fprintf(stderr, "Connect failed:\n");
        if (mysql_errno(&mysql)) {
            printf("\terror code is %d\n\treason:%s\n", mysql_errno(&mysql), mysql_error(&mysql));
        }
        goto shutdown;
    }
    
    if (0 != mysql_set_character_set(&mysql, "utf8"))
    {
        perror("mysql_set_character_set");
    }

    mysql_query(&mysql, "use raspberrypi;");
    mysql_query(&mysql, sql_insert);
    mysql_query(&mysql, "select *from temperature;");
    //printResult(&mysql);
    
shutdown:
    mysql_close(&mysql);

    return 0;
}
