增加了数据库下载的功能
This commit is contained in:
@@ -123,14 +123,7 @@ bool PowerManger::Iterate()
|
||||
else
|
||||
m_FsmThread.Stop();
|
||||
// 数据库测试
|
||||
PowerData data;
|
||||
// data.id = 1;
|
||||
data.timestamp = "2023-05-22 10:00:00";
|
||||
data.voltage = 12.3 + rand() % 100 / 100.0;
|
||||
data.current = 4.5 + rand() % 100 / 100.0;
|
||||
data.power = 56.7 + rand() % 100 / 100.0;
|
||||
data.temperature = 25.0 + rand() % 100 / 100.0;
|
||||
m_db->insertPowerData(data.voltage, data.current, data.power, data.temperature);
|
||||
|
||||
//3. 输出报告
|
||||
buildPowerSysReport();
|
||||
//4. 打印错误信息
|
||||
@@ -281,7 +274,6 @@ bool PowerManger::FsmLoop()
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool PowerManger::updatePmState()
|
||||
{
|
||||
|
||||
|
||||
@@ -97,6 +97,32 @@ void SQLiteDB::insertStateData(StateData stateData) {
|
||||
std::cerr << "Error preparing statement: " << sqlite3_errmsg(m_db) << std::endl;
|
||||
}
|
||||
}
|
||||
bool SQLiteDB::isDatabaseConnected(const std::string& path, const std::string& dbName) {
|
||||
if (!m_db) return false;
|
||||
|
||||
// 尝试执行简单查询验证连接
|
||||
const char* sql = "SELECT name FROM sqlite_master WHERE type='table';";
|
||||
char* errMsg = nullptr;
|
||||
|
||||
int rc = sqlite3_exec(m_db, sql, nullptr, nullptr, &errMsg);
|
||||
if (rc != SQLITE_OK) {
|
||||
std::cerr << "Database connection check failed: " << errMsg << std::endl;
|
||||
sqlite3_free(errMsg);
|
||||
return false;
|
||||
}
|
||||
|
||||
// 检查数据库路径和名称是否匹配
|
||||
std::string fullPath = path + "/" + dbName;
|
||||
const char* dbPath = sqlite3_db_filename(m_db, "main");
|
||||
|
||||
if (!dbPath || fullPath != dbPath) {
|
||||
std::cerr << "Database path mismatch: expected " << fullPath << ", got " << (dbPath ? dbPath : "null") << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
std::vector<PowerData> SQLiteDB::getPowerData(int limit) {
|
||||
std::vector<PowerData> data;
|
||||
if (!m_db) return data;
|
||||
@@ -124,4 +150,4 @@ std::vector<PowerData> SQLiteDB::getPowerData(int limit) {
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +35,9 @@ public:
|
||||
void insertStateData(StateData stateData);
|
||||
std::vector<PowerData> getPowerData(int limit = 100);
|
||||
|
||||
//使用函数
|
||||
bool isDatabaseConnected(const std::string& path, const std::string& dbName);
|
||||
|
||||
private:
|
||||
sqlite3* m_db;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user