Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <string>
- #include <stdlib.h>
- #include <mysql.h>
- #include <time.h>
- #include <wiringPi.h>
- #include <math.h>
- #include <unistd.h>
- #include <fstream>
- #define DATABASE_NAME "slasko"
- #define DATABASE_USERNAME "slasko"
- #define DATABASE_PASSWORD "2wYuLFkD56t3DJBM"
- #define DOpin 7
- using namespace std;
- MYSQL *mysql1;
- //connection
- void mysql_connect(void)
- {
- mysql1 = mysql_init(NULL);
- if(mysql1==NULL)
- {
- fprintf(stderr, "ABB: %s\n",mysql_error(mysql1));
- return;
- }
- if(mysql_real_connect(mysql1,"157.158.81.79",DATABASE_USERNAME,DATABASE_PASSWORD,DATABASE_NAME,33306,NULL,0)==NULL)
- {
- fprintf(stderr,"%s\n",mysql_error(mysql1));
- }
- else
- {
- printf("Database connection succesful.\r\n");
- }
- }
- //disconnection
- void mysql_disconnect(void)
- {
- mysql_close(mysql1);
- printf("\nDisconnected from database.\r\n");
- }
- int sensor_read()
- {
- int tmp=0;
- if(wiringPiSetup() == -1)
- {
- printf("Setup wiringPi failed!");
- return 1;
- }
- tmp = digitalRead(DOpin);
- return tmp;
- }
- void finish_with_error(MYSQL *mysql1)
- {
- fprintf(stderr,"%s\n",mysql_error(mysql1));
- mysql_close(mysql1);
- exit(1);
- }
- void in_plik(void)
- {
- printf("\nPlik.\r\n");
- }
- void in_database(void)
- {
- printf("\nBaza.\r\n");
- }
- void in_between(void)
- {
- printf("\nPrzepisuje z pliku do bazy.\r\n");
- }
- //main
- int main(int argc, char **argv)
- {
- //Zmienne potrzebne do DATATIME
- time_t rawtime;
- struct tm * timeinfo;
- char buffer[19];
- //Zmienne do sklejania stringa do querry
- char query_template[] = "INSERT INTO Monitoring (Date, State) VALUES ('%s',%i)";
- char query[19 + 1 + sizeof query_template ];
- //Zmienne do plikow
- fstream plik; //ofstream
- char buffor_read[19 + 1 + sizeof query_template ];
- fstream my_stream;
- //Flaga
- int flag = 0;
- //PROGRAM
- printf("Welcome back Commander.\r\n");
- //mysql_query(mysql1,"CREATE TABLE Monitoring(Id INT NOT NULL AUTO_INCREMENT, Date DATETIME, State INT,PRIMARY KEY (Id))");
- //mysql_query(mysql1, "DROP TABLE IF EXISTS Monitoring");
- //mysql_query(mysql1, "INSERT INTO Monitoring (State) VALUES ('1')");
- while(1)
- {
- //TIME
- time(&rawtime);
- timeinfo = localtime(&rawtime);
- strftime(buffer,80,"%Y-%m-%d %I:%M:%S",timeinfo);
- //Sklejanie stringa
- sprintf(query,query_template,buffer,sensor_read());
- printf((query),"\n");
- mysql1 = mysql_init(NULL);
- if(mysql_real_connect(mysql1,"157.158.81.79",DATABASE_USERNAME,DATABASE_PASSWORD,DATABASE_NAME,33306,NULL,0) != NULL)
- {
- flag=1;
- //Zapis staroci z pliku i posprzatanie pliku
- if(flag==1)
- {
- in_between();
- plik.open("log.txt",std::ios::in);
- while(!plik.eof())
- {
- plik.getline(buffor_read,sizeof buffor_read);
- if(mysql_query(mysql1, buffor_read))
- {finish_with_error(mysql1);};
- memset(buffor_read,0,19 + 1 + sizeof query_template);
- }
- plik.close();
- //Czyszczenie pliku
- plik.open("log.txt",std::ofstream::out | std::ofstream::trunc);
- plik.close();
- flag = 0;
- }
- //Wpis do bazy
- in_database();
- if(mysql_query(mysql1, query))
- {finish_with_error(mysql1);};
- }
- else
- {
- in_plik();
- //Zapis do pliku
- plik.open("log.txt",std::ios::app);
- if(plik.good() == true)
- {
- plik << query << '\n';
- plik.flush();
- }
- flag = 1;
- plik.close();
- }
- sleep(2);//Delay 2 sekundy
- //Czyszczenie buforw
- memset(buffer,0,80);
- memset(query,0,19 + 1 + sizeof query_template);
- mysql_close(mysql1);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement