2021-09-18 13:45:24 +08:00
|
|
|
#ifndef _SQLDB_H_L
|
|
|
|
#define _SQLDB_H_L
|
|
|
|
extern "C"{
|
|
|
|
#include <sqlite3.h>
|
|
|
|
}
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <list>
|
|
|
|
#include <map>
|
|
|
|
#include <vector>
|
|
|
|
#include <string>
|
|
|
|
#include "../utility/SH_MySingleton.hpp"
|
|
|
|
|
|
|
|
#define T_SENSOR_INFO(x) T_SENSOR_INFO[T_SENSOR_INFO_##x]
|
|
|
|
#define T_DATA_INFO(x) T_DATA_INFO[T_DATA_INFO_##x]
|
|
|
|
#define T_DATASTATIC_INFO(x) T_DATASTATIC_INFO[T_DATASTATIC_INFO_##x]
|
2024-07-09 09:49:42 +08:00
|
|
|
#define T_GATEWAY_INFO(x) T_GATEWAY_INFO[T_GATEWAY_INFO_##x]
|
|
|
|
#define T_DATANODE_TIME(x) T_DATANODE_TIME[T_DATANODE_TIME_##x]
|
2024-08-05 10:25:50 +08:00
|
|
|
#define T_BATTERY_INFO(x) T_BATTERY_INFO[T_BATTERY_INFO_##x]
|
2021-09-18 13:45:24 +08:00
|
|
|
|
|
|
|
typedef std::map<std::string, std::string> map_t;
|
|
|
|
typedef std::vector<std::string> vec_t;
|
2024-07-09 09:49:42 +08:00
|
|
|
typedef std::vector<float> vec_Value;
|
2021-09-18 13:45:24 +08:00
|
|
|
typedef std::vector<vec_t> array_t;
|
|
|
|
|
|
|
|
class SqliteDB : public MySingleton < SqliteDB > {
|
|
|
|
public:
|
|
|
|
explicit SqliteDB();
|
|
|
|
virtual ~SqliteDB();
|
|
|
|
bool OpenDB(const char *pDbName, bool isDB2=false);
|
|
|
|
void SqliteInit(const char *pDbName, bool isDB2=false);
|
2024-07-09 09:49:42 +08:00
|
|
|
void SqliteInitDel(const char *pDbName);
|
|
|
|
void Createtable(const char *ptableName);
|
|
|
|
void Deletetable(const char *ptableName);
|
|
|
|
void CreatedataStatictable(const char *ptableName);
|
2021-09-18 13:45:24 +08:00
|
|
|
int TransBegin();
|
|
|
|
int TransRollback();
|
|
|
|
int TransCommit();
|
|
|
|
int CreateTable(const char *sql, bool isDB2=false);
|
2024-08-23 12:26:03 +08:00
|
|
|
int ExeSql(const char *sql, bool isDB2=false);
|
2021-09-18 13:45:24 +08:00
|
|
|
int GetTableColumnCount(const char *tablename, bool isDB2 = false);
|
|
|
|
int GetTableRows(const char *tablename, const char *whereCon);
|
|
|
|
int AlterTable(const char *tablename, const char *column, bool isAdd = true, bool isDB2=false);
|
|
|
|
vec_t GetDataSingleLine(const char *tablename, const char *column, const char *whereCon);
|
|
|
|
std::string GetData(const char *tablename, const char *column, const char *whereCon);
|
2024-07-09 09:49:42 +08:00
|
|
|
char* GetDataChar(const char *tablename, const char *column, const char *whereCon);
|
2021-09-18 13:45:24 +08:00
|
|
|
array_t GetDataMultiLine(const char *tablename, const char *column, const char *whereCon);
|
2024-07-09 09:49:42 +08:00
|
|
|
array_t GetDataMultiLineTransaction(const char *tablename, const char *column, const char *whereCon);
|
2021-09-18 13:45:24 +08:00
|
|
|
vec_t GetDataMultiLineOfOneColumn(const char *tablename, const char *column, const char *whereCon);
|
2024-07-09 09:49:42 +08:00
|
|
|
vec_Value GetDataMultiLineOfOneColumnDouble(const char *tablename, const char *column, const char *whereCon);
|
2021-09-18 13:45:24 +08:00
|
|
|
int DeleteTableData(const char* tablename, const char* whereCond = NULL, bool isDB2=false);
|
|
|
|
int DeleteTableDataOneConditon(const char* tablename, const char* condColumnName, const char * condColumnValue, bool isDB2=false);
|
|
|
|
int UpdateTableData(const char* tablename, const char* updateColumn, const char* whereCond, bool isDB2 = false);
|
2024-07-09 09:49:42 +08:00
|
|
|
int UpdateNodeNameData(const char* tablename, const char* updateColumn, const char* whereCond, bool isDB2 = false);
|
2021-09-18 13:45:24 +08:00
|
|
|
int UpdateTableDataOneColumn(const char* tablename, const char* columnName, const char* columnValue, const char* whereColName = NULL, const char * whereColValue = NULL, bool isDB2 = false);
|
|
|
|
int UpdateTableData(const char* directSql, bool isDB2 = false);
|
|
|
|
int InsertData(const char* tablename, const char* insertValues, int replace = 0, bool expandalbe = false, bool isDB2 = false);
|
2024-07-09 09:49:42 +08:00
|
|
|
int InsertData(const char* insertSql);
|
|
|
|
int CalculateBattery();
|
|
|
|
int CalculateDip();
|
|
|
|
int InintGateway();
|
|
|
|
int QueryofflineData();
|
|
|
|
std::string GetNodeConfigureInfor(const char* whereCon);
|
2021-09-18 13:45:24 +08:00
|
|
|
int CloseDB();
|
|
|
|
|
|
|
|
private:
|
|
|
|
sqlite3 *GetDbHandle(bool isDB2);
|
|
|
|
void HandError(int code);
|
|
|
|
sqlite3 *mDBAcess;
|
|
|
|
sqlite3 *mDb2;
|
|
|
|
};
|
|
|
|
extern SqliteDB *sql_ctl;
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
T_SENSOR_INFO_TNAME = 0,
|
|
|
|
T_SENSOR_INFO_DATANODENO,
|
|
|
|
T_SENSOR_INFO_DATANODENAME,
|
|
|
|
T_SENSOR_INFO_INITFLAG,
|
|
|
|
T_SENSOR_INFO_ACCFLAG,
|
|
|
|
T_SENSOR_INFO_ZIGBEEFLAG,
|
|
|
|
T_SENSOR_INFO_TEMTOPFLAG,
|
|
|
|
T_SENSOR_INFO_TEMBOTFLAG,
|
|
|
|
T_SENSOR_INFO_EQUIPSTA,
|
|
|
|
T_SENSOR_INFO_HARDVERSION,
|
|
|
|
T_SENSOR_INFO_SOFTVERSION,
|
|
|
|
T_SENSOR_INFO_BPNO,
|
|
|
|
T_SENSOR_INFO_SERIALNO,
|
|
|
|
T_SENSOR_INFO_FIRSTPOWERNO,
|
|
|
|
T_SENSOR_INFO_CONFIGFLAG,
|
|
|
|
T_SENSOR_INFO_STARTBRANDS,
|
|
|
|
T_SENSOR_INFO_STOPBRANDS,
|
|
|
|
T_SENSOR_INFO_FEATUREINTERVAL,
|
|
|
|
T_SENSOR_INFO_WAVEINTERVAL,
|
|
|
|
T_SENSOR_INFO_SAMPLINGRATE,
|
|
|
|
T_SENSOR_INFO_SCOPE,
|
|
|
|
T_SENSOR_INFO_RANGE,
|
|
|
|
T_SENSOR_INFO_ENVELOPEBANDPASS,
|
|
|
|
T_SENSOR_INFO_FAULTFREQUENCY,
|
|
|
|
T_SENSOR_INFO_ZIGBEEPANID,
|
|
|
|
T_SENSOR_INFO_ZIGBEECHANNEL,
|
|
|
|
T_SENSOR_INFO_ZIGBEESHORTADDR,
|
|
|
|
T_SENSOR_INFO_ZIGBEELONGADDR,
|
|
|
|
T_SENSOR_INFO_ZIGBEEDESADDR,
|
|
|
|
T_SENSOR_INFO_STATUS,
|
|
|
|
T_SENSOR_INFO_TIMESTAMP,
|
|
|
|
T_SENSOR_INFO_VIFF,
|
|
|
|
T_SENSOR_INFO_RSSI
|
|
|
|
}T_SENSOR_INFO_Index;
|
|
|
|
const static char* T_SENSOR_INFO[] = { "t_sensor_info", "dataNodeNo", "dataNodeName", "initFlag", "accFlag","zigbeeFlag","temTopFlag","temBotFlag","equipSta","hardVersion", "softVersion","bpNo","serialNo","firstPowerTime","configFlag","startBrands","stopBrands","featureInterVal","waveInterVal","samplingRate","scope","range","envelopeBandPass","faultFrequency","zigbeePanId","zigbeeChannel","zigbeeShortAddr","zigbeeLongAddr","zigbeeDesAddr","status","timeStamp","viff","RSSI"};
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
T_DATA_INFO_TNAME = 0,
|
|
|
|
T_DATA_INFO_DATANODENO,
|
|
|
|
T_DATA_INFO_CHANNELID,
|
|
|
|
T_DATA_INFO_DIAGNOSISEAK,
|
|
|
|
T_DATA_INFO_INTEGRATPK,
|
|
|
|
T_DATA_INFO_INTEGRATRMS,
|
|
|
|
T_DATA_INFO_RMSVALUES,
|
|
|
|
T_DATA_INFO_ENVELOPNERGY,
|
|
|
|
T_DATA_INFO_AMP1,
|
|
|
|
T_DATA_INFO_AMP2,
|
|
|
|
T_DATA_INFO_AMP3,
|
|
|
|
T_DATA_INFO_AMP4,
|
|
|
|
T_DATA_INFO_AMP5,
|
|
|
|
T_DATA_INFO_PHASE1,
|
|
|
|
T_DATA_INFO_PHASE2,
|
|
|
|
T_DATA_INFO_PHASE3,
|
|
|
|
T_DATA_INFO_PHASE4,
|
2024-07-09 09:49:42 +08:00
|
|
|
T_DATA_INFO_STATICINDEX,
|
2021-09-18 13:45:24 +08:00
|
|
|
T_DATA_INFO_TIMESTAMP,
|
2024-07-09 09:49:42 +08:00
|
|
|
T_DATA_INFO_SENDMSG,
|
|
|
|
T_DATA_INFO_NODERESEND
|
2021-09-18 13:45:24 +08:00
|
|
|
}T_DATA_INFO_Index;
|
2024-07-09 09:49:42 +08:00
|
|
|
const static char* T_DATA_INFO[] = { "t_data_info", "dataNodeNo", "channelID", "diagnosisPk", "integratPk","integratRMS","rmsValues","envelopEnergy","Amp1","Amp2","Amp3","Amp4","Amp5","Phase1","Phase2","Phase3","Phase4","StaticIndex","timeStamp","sendMsg","nodeResend"};
|
2021-09-18 13:45:24 +08:00
|
|
|
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
T_DATASTATIC_INFO_TNAME = 0,
|
|
|
|
T_DATASTATIC_INFO_DATANODENO,
|
|
|
|
T_DATASTATIC_INFO_CHANNELID,
|
|
|
|
T_DATASTATIC_INFO_TEMTOP,
|
|
|
|
T_DATASTATIC_INFO_TEMBOT,
|
|
|
|
T_DATASTATIC_INFO_DIP,
|
|
|
|
T_DATASTATIC_INFO_VOLTAGE,
|
2024-07-09 09:49:42 +08:00
|
|
|
T_DATASTATIC_INFO_STATICINDEX,
|
2021-09-18 13:45:24 +08:00
|
|
|
T_DATASTATIC_INFO_TIMESTAMP,
|
2024-07-09 09:49:42 +08:00
|
|
|
T_DATASTATIC_INFO_SENDMSG,
|
|
|
|
T_DATASTATIC_INFO_NODERESEND
|
2021-09-18 13:45:24 +08:00
|
|
|
}T_DATASTATIC_INFO_Index;
|
2024-07-09 09:49:42 +08:00
|
|
|
const static char* T_DATASTATIC_INFO[] = { "t_datastatic_info","dataNodeNo","channelID","temTop","temBot","dip","voltage","StaticIndex","timeStamp","sendMsg","nodeResend"};
|
2021-09-18 13:45:24 +08:00
|
|
|
|
2024-07-09 09:49:42 +08:00
|
|
|
typedef enum {
|
|
|
|
T_DATANODE_TIME_TNAME = 0,
|
|
|
|
T_DATANODE_TIME_DATANODENO,
|
|
|
|
T_DATANODE_TIME_SHORTADDR,
|
|
|
|
T_DATANODE_TIME_STATICCYCLE,
|
|
|
|
T_DATANODE_TIME_WAVECYCLE,
|
|
|
|
T_DATANODE_TIME_NODEGROUP,
|
|
|
|
T_DATANODE_TIME_NODEINDEX,
|
|
|
|
T_DATANODE_TIME_NODEWAVEINDEX,
|
|
|
|
T_DATANODE_TIME_STATICTIME,
|
|
|
|
T_DATANODE_TIME_STATICSTARTTIME
|
|
|
|
}T_DATANODE_TIME_Index;
|
|
|
|
const static char* T_DATANODE_TIME[] = { "t_datanode_time","dataNodeNo","shortaddr","staticcycle","wavecycle","nodegroup","nodeindex","nodewaveindex","statictime","staticstarttime"};
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
T_GATEWAY_INFO_TNAME = 0,
|
|
|
|
T_GATEWAY_INFO_GATEWAYMAC,
|
|
|
|
T_GATEWAY_INFO_SENSORVER,
|
|
|
|
T_GATEWAY_INFO_GATEWAYLOCATION,
|
|
|
|
T_GATEWAY_INFO_ZIGBEEPANID,
|
|
|
|
T_GATEWAY_INFO_ZIGBEECHANNEL,
|
|
|
|
T_GATEWAY_INFO_COMMUNICATIONTYPE,
|
|
|
|
T_GATEWAY_INFO_SIGNAL,
|
|
|
|
T_GATEWAY_INFO_LOCALIP,
|
|
|
|
T_GATEWAY_INFO_SYSTEMVERSION,
|
|
|
|
T_GATEWAY_INFO_PROGRAMVERSION,
|
|
|
|
T_GATEWAY_INFO_WEBVERSION,
|
|
|
|
T_GATEWAY_INFO_SERVERIP,
|
|
|
|
T_GATEWAY_INFO_SERVERPORT,
|
|
|
|
T_GATEWAY_INFO_STATUS,
|
|
|
|
T_GATEWAY_INFO_GATEWAYUPDATE,
|
|
|
|
T_GATEWAY_INFO_MAC2,
|
|
|
|
}T_GATEWAY_INFO_Index;
|
|
|
|
const static char* T_GATEWAY_INFO[] = { "t_gateway_info","gatewayMAC","sensorVersion","gatewayLocation","zigbeePanID","zigbeeChannel","communicationType","signal","localIP","systemVersion","programVersion","webVersion","serverIP","serverPort","status","gateWayUpdate","MAC2"};
|
2024-07-17 14:33:31 +08:00
|
|
|
|
2024-08-05 10:25:50 +08:00
|
|
|
typedef enum {
|
|
|
|
T_BATTERY_INFO_TNAME = 0,
|
|
|
|
T_BATTERY_INFO_DATANODENO,
|
|
|
|
T_BATTERY_INFO_DIP,
|
|
|
|
T_BATTERY_INFO_TEMBOT,
|
|
|
|
T_BATTERY_INFO_NODEWORKTIME,
|
|
|
|
T_BATTERY_INFO_NODESENDTIME,
|
|
|
|
T_BATTERY_INFO_BATTERYVOLTAGE,
|
|
|
|
T_BATTERY_INFO_BATTERYUSAGE,
|
|
|
|
T_BATTERY_INFO_BATTERYREMAIN,
|
|
|
|
T_BATTERY_INFO_TIMESTAMP
|
|
|
|
|
|
|
|
}T_BATTERY_INFO_Index;
|
|
|
|
const static char* T_BATTERY_INFO[] = { "t_battery_info","dataNodeNo","Dip","temBot","nodeWorkTime","nodeSendTime","batteryVoltage","batteryUsage","batteryRemain","timeStamp"};
|
2021-09-18 13:45:24 +08:00
|
|
|
#endif
|