增加了数据库功能,采用直接编译源码的方式,不使用动态库链接
This commit is contained in:
+1381
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,91 @@
|
||||
#ifndef SQLITEDB_H
|
||||
#define SQLITEDB_H
|
||||
|
||||
#include <sqlite3.h>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "json/json.h"
|
||||
#include "ccuUdpMsg.h"
|
||||
#include "pmSysvariable.h"
|
||||
#include "driver.h"
|
||||
|
||||
|
||||
using namespace std;
|
||||
struct PowerData {
|
||||
double voltage;
|
||||
double current;
|
||||
double power;
|
||||
double temperature;
|
||||
};
|
||||
|
||||
struct StateData {
|
||||
int state_id;
|
||||
std::string state_name;
|
||||
std::string event;
|
||||
int event_id;
|
||||
int fault_code;
|
||||
std::string note;
|
||||
};
|
||||
|
||||
class SQLiteDB {
|
||||
public:
|
||||
SQLiteDB(const std::string& dbPath);
|
||||
~SQLiteDB();
|
||||
|
||||
// 模板函数声明
|
||||
template<typename T>
|
||||
bool executeInsert(const char* sql, const T& data);
|
||||
|
||||
template<typename T>
|
||||
bool bindParameters(sqlite3_stmt* stmt, const T& data);
|
||||
// 数据库操作函数
|
||||
bool createPowerDataTables();
|
||||
bool createStateTables();
|
||||
bool createDisCcuSysTables();
|
||||
bool createDriversTables(string tableName);
|
||||
|
||||
bool clearPowerData();
|
||||
bool clearStateData();
|
||||
|
||||
// 插入数据函数
|
||||
bool insertPowerData(const PowerData& powerData);
|
||||
bool insertStateData(StateData stateData,bool filter=true);
|
||||
|
||||
|
||||
bool insertCcuData(ccuState s);
|
||||
bool insertDisHighVolBusData(disHighVolBusState s);
|
||||
bool insertDisHighAVolBusData(disHighAVolBusState s);
|
||||
bool insertDisHighBVolBusData(disHighBVolBusState s);
|
||||
bool insertDisLowBusData(disLowBusState s);
|
||||
|
||||
bool insertCcuSysCmd(ccuColCmd cmd);
|
||||
bool insertDisSysCmd(disHighVolBusCmd cmd);
|
||||
bool insertDisSysCmd(disHighAVolBusCmd cmd);
|
||||
bool insertDisSysCmd(disHighBVolBusCmd cmd);
|
||||
bool insertDisSysCmd(disLowBusCmd cmd);
|
||||
|
||||
bool insertDriverTables(DriverTable driverTable,string tableName);
|
||||
|
||||
bool insertDisCcuData(pmState s,bool filter=true);//由于信息同步原因,暂时不使用该函数
|
||||
|
||||
// 获取最新的状态数据
|
||||
bool getStateData(StateData &stateData);
|
||||
bool getStateData(StateData &stateData,string &time);
|
||||
|
||||
// 使用函数
|
||||
bool isDatabaseConnected(const std::string& path, const std::string& dbName);
|
||||
std::vector<PowerData> getPowerData(int limit = 100);
|
||||
|
||||
// 获取数据库状态函数
|
||||
string getDBPatch();
|
||||
|
||||
// 获取数据库大小
|
||||
long getDatabaseSize();
|
||||
|
||||
private:
|
||||
sqlite3* m_db;
|
||||
string m_dbPath;
|
||||
|
||||
};
|
||||
|
||||
#endif // SQLITEDB_H
|
||||
Reference in New Issue
Block a user