Advertisement
Guest User

Untitled

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