Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.66 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <string>
  4. #include <stdlib.h>
  5. #include <mysql.h>
  6. #include <time.h>
  7. #include <wiringPi.h>
  8. #include <math.h>
  9. #include <unistd.h>
  10. #include <fstream>
  11. #include <iostream>
  12.  
  13. #define DATABASE_NAME "slasko"
  14. #define DATABASE_USERNAME "slasko"
  15. #define DATABASE_PASSWORD "2wYuLFkD56t3DJBM"
  16. #define DOpin 7
  17.  
  18. using namespace std;
  19. MYSQL *mysql1;
  20.  
  21. //connection
  22. void mysql_connect(void)
  23. {
  24. mysql1 = mysql_init(NULL);
  25. if(mysql1==NULL)
  26. {
  27. fprintf(stderr, "ABB: %s\n",mysql_error(mysql1));
  28. return;
  29. }
  30.  
  31. if(mysql_real_connect(mysql1,"157.158.81.79",DATABASE_USERNAME,DATABASE_PASSWORD,DATABASE_NAME,33306,NULL,0)==NULL)
  32. {
  33. fprintf(stderr,"%s\n",mysql_error(mysql1));
  34. }
  35. else
  36. {
  37. printf("Database connection succesful.\r\n");
  38. }
  39. }
  40.  
  41. //disconnection
  42. void mysql_disconnect(void)
  43. {
  44. mysql_close(mysql1);
  45. printf("\nDisconnected from database.\r\n");
  46. }
  47.  
  48. int sensor_read()
  49. {
  50. int tmp=0;
  51. if(wiringPiSetup() == -1)
  52. {
  53. printf("Setup wiringPi failed!");
  54. return 1;
  55. }
  56. tmp = digitalRead(DOpin);
  57.  
  58. return tmp;
  59. }
  60.  
  61. void finish_with_error(MYSQL *mysql1)
  62. {
  63. fprintf(stderr,"%s\n",mysql_error(mysql1));
  64. mysql_close(mysql1);
  65. exit(1);
  66. }
  67.  
  68. void in_plik(void)
  69. {
  70. printf("\nPlik.\r\n");
  71. }
  72.  
  73. void in_database(void)
  74. {
  75. printf("\nBaza.\r\n");
  76. }
  77.  
  78. void in_between(void)
  79. {
  80. printf("\nPrzepisuje z pliku do bazy.\r\n");
  81. }
  82. //main
  83. int main(int argc, char **argv)
  84. {
  85. //Zmienne potrzebne do DATATIME
  86. time_t rawtime;
  87. struct tm * timeinfo;
  88. char buffer[19];
  89.  
  90. //Zmienne do sklejania stringa do querry
  91. char query_template[] = "INSERT INTO Monitoring (Date, State) VALUES ('%s',%i)";
  92. char query[19 + 1 + sizeof query_template ];
  93.  
  94. //Zmienne do plikow
  95. fstream plik; //ofstream
  96. char buffor_read[19 + 1 + sizeof query_template +50];
  97. string read;
  98. fstream my_stream;
  99.  
  100. //Flaga
  101. int flag[1];
  102. flag[0]=0;
  103.  
  104. //PROGRAM
  105. printf("Welcome back Commander.\r\n");
  106.  
  107. //mysql_query(mysql1,"CREATE TABLE Monitoring(Id INT NOT NULL AUTO_INCREMENT, Date DATETIME, State INT,PRIMARY KEY (Id))");
  108. //mysql_query(mysql1, "DROP TABLE IF EXISTS Monitoring");
  109. //mysql_query(mysql1, "INSERT INTO Monitoring (State) VALUES ('1')");
  110.  
  111.  
  112. while(1)
  113. {
  114. //TIME
  115. time(&rawtime);
  116. timeinfo = localtime(&rawtime);
  117. strftime(buffer,80,"%Y-%m-%d %I:%M:%S",timeinfo);
  118.  
  119. //Sklejanie stringa
  120. sprintf(query,query_template,buffer,sensor_read());
  121. //printf((query),"\n");
  122.  
  123. mysql1 = mysql_init(NULL);
  124. if(mysql_real_connect(mysql1,"157.158.81.79",DATABASE_USERNAME,DATABASE_PASSWORD,DATABASE_NAME,33306,NULL,0) != NULL)
  125. {
  126. //Zapis staroci z pliku i posprzatanie pliku
  127. if(flag[0]==1)
  128. {
  129. in_between();
  130. plik.open("log.txt",std::ios::in);
  131. while(!plik.eof())
  132. {
  133. getline(plik, read);
  134. cout << read;
  135. strcpy(buffor_read,read.c_str());
  136. if(mysql_query(mysql1,buffor_read))
  137. {finish_with_error(mysql1);};
  138. memset(buffor_read,0,19 + 1 + sizeof query_template+50);
  139. }
  140. plik.close();
  141. //Czyszczenie pliku
  142. plik.open("log.txt",std::ofstream::out | std::ofstream::trunc);
  143. plik.close();
  144. flag[0] = 0;
  145. }
  146.  
  147. //Wpis do bazy
  148. in_database();
  149. if(mysql_query(mysql1, query))
  150. {finish_with_error(mysql1);};
  151. }
  152. else
  153. {
  154.  
  155. flag[0] = 1;
  156. in_plik();
  157.  
  158. //Zapis do pliku
  159. plik.open("log.txt",std::ios::app);
  160. if(plik.good() == true)
  161. {
  162. plik << query << '\n';
  163. plik.flush();
  164. }
  165.  
  166. plik.close();
  167. }
  168.  
  169.  
  170. sleep(2);//Delay 2 sekundy
  171. //Czyszczenie buforw
  172. memset(buffer,0,80);
  173. memset(query,0,19 + 1 + sizeof query_template);
  174. mysql_close(mysql1);
  175. }
  176.  
  177.  
  178. return 0;
  179. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement