123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #include "databasethread.h"
- #include "datashm.h"
- //#define HostName "47.98.201.187"
- //#define HostPort 3306
- //#define UserName "root"
- //#define PassWord "Yt2018IoT"
- //#define DatabaseName "jdxf"
- #define HostName "101.133.214.75"
- #define HostPort 3306
- #define UserName "usky"
- #define PassWord "Yt#75Usky"
- #define DatabaseName "usky-cloud"
- #define sql_debug
- extern bool firsttime;
- DatabaseThread::DatabaseThread(QObject *parent) :
- QThread(parent)
- {
- keep = false;
- hour = 255;
- sqlList.clear();
- db = QSqlDatabase::addDatabase("QMYSQL","dmpdata_db");
- db.setHostName(QString(HostName));
- db.setPort(HostPort);
- db.setUserName(QString(UserName));
- db.setPassword(QString(PassWord));
- db.setDatabaseName(QString(DatabaseName));
- }
- void DatabaseThread::appendSql(QString sql)
- {
- sqlList.append(sql);
- }
- void DatabaseThread::check_devicelist()
- {
- printf("database thread check_devicelist()\n");
- int nrow=0;
- QString sql = QString("select device_code,device_type from dmp_device");
- QSqlQuery qry = db.exec(sql);
- while(qry.next()){
- if(nrow>1023)
- break;
- datashm->devinfo[nrow].Enabled = 0x01;
- sprintf(datashm->devinfo[nrow].DeviceCode,"%s",qry.value(0).toString().toUtf8().data());
- datashm->devinfo[nrow].DeviceType = qry.value(1).toUInt();
- // printf("nrow: %d, device_code: %s, device_type: %d\n",nrow,qry.value(0).toString().toUtf8().data(),qry.value(1).toUInt());
- nrow++;
- }
- qry.clear();
- for(int i=nrow;i<1024;i++)
- datashm->devinfo[i].Enabled=0x00;
- hour=QTime::currentTime().hour();
- }
- void DatabaseThread::stop()
- {
- keep = false;
- }
- void DatabaseThread::run()
- {
- int w_count=0;
- keep = true;
- while(keep){
- if(w_count>9)
- exit(1);
- QTime nowTime = QTime::currentTime();
- if((sqlList.length()>0)||((nowTime.hour()!=hour)&&(nowTime.minute()>12))){
- if(!db.isOpen()){
- w_count++;
- db.open();
- //printf("w_count = %d\n",w_count);
- }else{
- w_count=0;
- if((nowTime.hour()!=hour)&&(nowTime.minute()>12)){
- check_devicelist();
- }
- if(sqlList.length()>0){
- db.exec(sqlList.first());
- //printf("-----currenttime: %s sql = %s\n",(nowTime.toString("yyyy-MM-dd HH:mm:ss.zzz")).toUtf8().data(),(sqlList.first()).toUtf8().data());
- #ifdef sql_debug
- emit SqlLog(QString("[ %1 sql ] ").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss.zzz"))+sqlList.first());
- #endif
- sqlList.removeFirst();
- }else
- db.close();
- }
- }
- usleep(10000);
- }
- if(db.isOpen())
- db.close();
- }
|