|
@@ -1,163 +0,0 @@
|
|
|
-#include "databasethread.h"
|
|
|
-#include "smartlightshm.h"
|
|
|
-
|
|
|
-DatabaseThread::DatabaseThread(QObject *parent) : QThread(parent)
|
|
|
-{
|
|
|
- QDir dir(QString(DbPath));
|
|
|
- ConfSqlList.clear();
|
|
|
- RecSqlList.clear();
|
|
|
- StaSqlList.clear();
|
|
|
- if(!dir.exists())
|
|
|
- dir.mkdir(QString(DbPath));
|
|
|
- conf_db = QSqlDatabase::addDatabase("QSQLITE","conf_db");
|
|
|
- conf_db.setDatabaseName(QString(DbPath)+"/conf.db");
|
|
|
- rec_db = QSqlDatabase::addDatabase("QSQLITE","rec.db");
|
|
|
- rec_db.setDatabaseName(QString(DbPath)+"/rec.db");
|
|
|
- sta_db = QSqlDatabase::addDatabase("QSQLITE","sta_db");
|
|
|
- sta_db.setDatabaseName(QString(DbPath)+"/sta.db");
|
|
|
- if(db_init()){
|
|
|
- db_load();
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-DatabaseThread::~DatabaseThread()
|
|
|
-{
|
|
|
- stop();
|
|
|
- deleteLater();
|
|
|
-}
|
|
|
-
|
|
|
-void DatabaseThread::stop()
|
|
|
-{
|
|
|
- keep = false;
|
|
|
-}
|
|
|
-
|
|
|
-void DatabaseThread::appendSql(int type, QString sql)
|
|
|
-{
|
|
|
- if(type==ConfSql)
|
|
|
- ConfSqlList.append(sql);
|
|
|
- else if(type==RecSql)
|
|
|
- RecSqlList.append(sql);
|
|
|
- else if(type==StaSql)
|
|
|
- StaSqlList.append(sql);
|
|
|
-}
|
|
|
-
|
|
|
-bool DatabaseThread::had_table(QStringList tblist, QString tbname)
|
|
|
-{
|
|
|
- for(int i=0;i<tblist.length();i++){
|
|
|
- if(tblist.at(i).compare(tbname)==0)
|
|
|
- return true;
|
|
|
- }
|
|
|
- return false;
|
|
|
-}
|
|
|
-
|
|
|
-bool DatabaseThread::db_init()
|
|
|
-{
|
|
|
- if(!conf_db.open())
|
|
|
- return false;
|
|
|
- if(!had_table(conf_db.tables(),"sys_conf")){
|
|
|
- conf_db.exec("create table sys_conf (name text(40), value text(200))");
|
|
|
- conf_db.exec("insert into sys_conf (name, value) values ('ServerAddr','88888888888888')");
|
|
|
- }
|
|
|
- conf_db.close();
|
|
|
- if(!rec_db.open())
|
|
|
- return false;
|
|
|
- if(!had_table(rec_db.tables(),"err_rec")){
|
|
|
- rec_db.exec("create table err_rec (id integer primary key autoincrement, device_id text(20), erc integer, sta integer, arg1 integer, arg2 integer, arg3 integer, value float, value2 float, others text(200), time1 integer, time2 text(20))");
|
|
|
- }
|
|
|
- rec_db.close();
|
|
|
- if(!sta_db.open())
|
|
|
- return false;
|
|
|
- if(!had_table(sta_db.tables(),"err_count")){
|
|
|
- sta_db.exec("create table err_count (id integer primary key autoincrement, device_id text(20), err_count1 integer, err_count2 integer)");
|
|
|
- }
|
|
|
- sta_db.close();
|
|
|
- return true;
|
|
|
-}
|
|
|
-
|
|
|
-void DatabaseThread::db_load()
|
|
|
-{
|
|
|
- if(conf_db.open()){
|
|
|
- QSqlQuery qry = conf_db.exec("select name, value from sys_conf");
|
|
|
- while (qry.next()) {
|
|
|
- if(qry.value(0).toString().compare("ServerAddr")==0){
|
|
|
-// ServerAddr0 = 0x00000000;
|
|
|
-// ServerAddr1 = 0x00000000;
|
|
|
-// quint64 sAddr = qry.value(1).toULongLong()&0xffffffffffffffff;
|
|
|
-// ServerAddr0 |= ((sAddr/10000000000000)<<20)&0x00f00000;
|
|
|
-// ServerAddr0 |= (((sAddr/1000000000000)%10)<<16)&0x000f0000;
|
|
|
-// ServerAddr0 |= (((sAddr/100000000000)%10)<<12)&0x0000f000;
|
|
|
-// ServerAddr0 |= (((sAddr/10000000000)%10)<<8)&0x00000f00;
|
|
|
-// ServerAddr0 |= (((sAddr/1000000000)%10)<<4)&0x000000f0;
|
|
|
-// ServerAddr0 |= ((sAddr/100000000)%10)&0x0000000f;
|
|
|
-// ServerAddr1 |= (((sAddr/10000000)%10)<<28)&0xf0000000;
|
|
|
-// ServerAddr1 |= (((sAddr/1000000)%10)<<24)&0x0f000000;
|
|
|
-// ServerAddr1 |= (((sAddr/100000)%10)<<20)&0x00f00000;
|
|
|
-// ServerAddr1 |= (((sAddr/10000)%10)<<16)&0x000f0000;
|
|
|
-// ServerAddr1 |= (((sAddr/1000)%10)<<12)&0x0000f000;
|
|
|
-// ServerAddr1 |= (((sAddr/100)%10)<<8)&0x00000f00;
|
|
|
-// ServerAddr1 |= (((sAddr/10)%10)<<4)&0x000000f0;
|
|
|
-// ServerAddr1 |= (sAddr%10)&0x0000000f;
|
|
|
- }
|
|
|
- }
|
|
|
- conf_db.close();
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void DatabaseThread::run()
|
|
|
-{
|
|
|
- keep = true;
|
|
|
- while(true){
|
|
|
- if(ConfSqlList.length()>0){
|
|
|
- if(conf_db.open()){
|
|
|
- if(conf_db.transaction()){
|
|
|
- while(ConfSqlList.length()>0){
|
|
|
- conf_db.exec(ConfSqlList.first());
|
|
|
- QString Data = QString("[ %1 sql ] %2")
|
|
|
- .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss.zzz"))
|
|
|
- .arg(ConfSqlList.first());
|
|
|
- emit sql_log(Data);
|
|
|
- ConfSqlList.removeFirst();
|
|
|
- usleep(1000);
|
|
|
- }
|
|
|
- conf_db.commit();
|
|
|
- }
|
|
|
- conf_db.close();
|
|
|
- }
|
|
|
- }
|
|
|
- if(RecSqlList.length()>0){
|
|
|
- if(rec_db.open()){
|
|
|
- if(rec_db.transaction()){
|
|
|
- while(RecSqlList.length()>0){
|
|
|
- rec_db.exec(RecSqlList.first());
|
|
|
- QString Data = QString("[ %1 sql ] %2")
|
|
|
- .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss.zzz"))
|
|
|
- .arg(RecSqlList.first());
|
|
|
- emit sql_log(Data);
|
|
|
- RecSqlList.removeFirst();
|
|
|
- usleep(1000);
|
|
|
- }
|
|
|
- rec_db.commit();
|
|
|
- }
|
|
|
- rec_db.close();
|
|
|
- }
|
|
|
- }
|
|
|
- if(StaSqlList.length()>0){
|
|
|
- if(sta_db.open()){
|
|
|
- if(sta_db.transaction()){
|
|
|
- while (StaSqlList.length()>0) {
|
|
|
- sta_db.exec(StaSqlList.first());
|
|
|
- QString Data = QString("[ %1 sql ] %2")
|
|
|
- .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss.zzz"))
|
|
|
- .arg(StaSqlList.first());
|
|
|
- emit sql_log(Data);
|
|
|
- StaSqlList.removeFirst();
|
|
|
- usleep(1000);
|
|
|
- }
|
|
|
- sta_db.commit();
|
|
|
- }
|
|
|
- sta_db.close();
|
|
|
- }
|
|
|
- }
|
|
|
- usleep(100000);
|
|
|
- }
|
|
|
-}
|