databasethread.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include "databasethread.h"
  2. #include "../ytDataCollectorDog/datacollector.h"
  3. #define HostName "47.111.81.118"
  4. #define HostPort 13307
  5. #define UserName "usky"
  6. #define PassWord "Yt#75Usky"
  7. #define DatabaseName "usky-cloud"
  8. DatabaseThread::DatabaseThread(QObject *parent) :
  9. QThread(parent)
  10. {
  11. hour = 255;
  12. db = QSqlDatabase::addDatabase("QMYSQL","smokerdevice_db");
  13. db.setHostName(QString(HostName));
  14. db.setPort(HostPort);
  15. db.setUserName(QString(UserName));
  16. db.setPassword(QString(PassWord));
  17. db.setDatabaseName(QString(DatabaseName));
  18. db.open();
  19. printf("database thread init\n");
  20. keep = false;
  21. }
  22. void DatabaseThread::check_devicelist()
  23. {
  24. QSqlQuery qry = db.exec("select distinct company_code,device_type,product_code from dmp_device where company_code is not null");
  25. int nrow= 0;
  26. while(qry.next()){
  27. printf("---nrow = %d, Device_Code = %s, Device_Name = %s,Company_Code = %s\n",nrow,qry.value(0).toString().toUtf8().data(),qry.value(1).toString().toUtf8().data(),qry.value(2).toString().toUtf8().data());
  28. sprintf(smokerDeviceList->sensors[nrow].Company_Code,"%s",qry.value(0).toString().toUtf8().data());
  29. sprintf(smokerDeviceList->sensors[nrow].Device_Type,"%s",qry.value(1).toString().toUtf8().data());
  30. sprintf(smokerDeviceList->sensors[nrow].product_code,"%s",qry.value(2).toString().toUtf8().data());
  31. nrow++;
  32. }
  33. qry.clear();
  34. }
  35. void DatabaseThread::stop()
  36. {
  37. keep = false;
  38. }
  39. void DatabaseThread::run()
  40. {
  41. keep = true;
  42. printf("database thread start\n");
  43. while(keep){
  44. if(!db.isOpen()){
  45. db.open();
  46. }else{
  47. if(QTime::currentTime().hour()!=hour){
  48. hour=QTime::currentTime().hour();
  49. check_devicelist();
  50. }
  51. db.close();
  52. }
  53. usleep(50000);
  54. }
  55. if(db.isOpen())
  56. db.close();
  57. }