增加了网页服务

This commit is contained in:
zjk
2025-05-16 01:08:12 +08:00
parent 47079f79df
commit e0b3e986c7
27 changed files with 31713 additions and 156 deletions
+328
View File
@@ -262,6 +262,96 @@ bool SQLite::createTable()
if (!createTable("disLowBusState", disLowBusColumns)) {
return false;
}
// 6. 创建ccuColCmd表
std::string ccuColCmdColumns = R"(
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp DATETIME DEFAULT (datetime('now', 'localtime')),
workCondition INTEGER,
fcuCmd INTEGER,
fcuPowerEfficiency INTEGER,
fcuInsEfficiency INTEGER,
insBatCmd INTEGER,
powerBatCmd INTEGER,
powerBatEfficiency INTEGER,
heartbeat INTEGER,
masterState INTEGER,
paceholder1 INTEGER,
paceholder2 INTEGER
)";
if (!createTable("ccuColCmd", ccuColCmdColumns)) {
return false;
}
// 7. 创建disHighVolBusCmd表
std::string disHighVolBusCmdColumns = R"(
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp DATETIME DEFAULT (datetime('now', 'localtime')),
fuelCellCircuitBreaker INTEGER,
powerLithiumBatteryCircuitBreaker INTEGER,
propulsionMotorCircuitBreaker INTEGER,
lithiumBatteryGroupInstrumentCircuitBreaker INTEGER,
dcDc5ModuleCircuitBreaker INTEGER,
bowHighVoltageDistributionBoxCircuitBreaker INTEGER,
sternFTDevice45CircuitBreaker INTEGER,
sternRudderSwitch1CircuitBreaker INTEGER,
sternRudderSwitch2CircuitBreaker INTEGER,
fbReservedCircuitBreaker INTEGER,
tyzReservedCircuitBreaker INTEGER,
reservedCircuitBreaker INTEGER,
dcdc5Module INTEGER,
coolingSystem INTEGER
)";
if (!createTable("disHighVolBusCmd", disHighVolBusCmdColumns)) {
return false;
}
// 8. 创建disHighAVolBusCmd表
std::string disHighAVolBusCmdColumns = R"(
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp DATETIME DEFAULT (datetime('now', 'localtime')),
bowFTDevice123CircuitBreaker INTEGER,
actuatorCircuitBreaker INTEGER,
mastSteeringGearControlBoxCircuitBreaker INTEGER,
xczCircuitBreaker INTEGER,
bowRudderControlBoxCircuitBreaker INTEGER,
openWaterCoverStartCylinderCircuitBreaker INTEGER
)";
if (!createTable("disHighAVolBusCmd", disHighAVolBusCmdColumns)) {
return false;
}
// 9. 创建disLowMainBusCmd表
std::string disLowMainBusCmdColumns = R"(
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp DATETIME DEFAULT (datetime('now', 'localtime')),
lithiumBatteryGroupInstrumentCircuitBreaker INTEGER,
bowLowVoltageDistributionBoxCircuitBreaker INTEGER,
unit4InstrumentDC48VCircuitBreaker INTEGER,
dcC1DCDistributionPanelCircuitBreaker INTEGER,
reservedCircuitBreaker1 INTEGER,
reservedCircuitBreaker2 INTEGER,
emergencyLithiumBatteryGroup2CircuitBreaker INTEGER
)";
if (!createTable("disLowMainBusCmd", disLowMainBusCmdColumns)) {
return false;
}
// 10. 创建disLowBusCmd表
std::string disLowBusCmdColumns = R"(
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp DATETIME DEFAULT (datetime('now', 'localtime')),
unit1CircuitBreaker INTEGER,
unit2CircuitBreaker INTEGER,
unit3CircuitBreaker INTEGER,
unit5CircuitBreaker INTEGER,
bowPZDeviceCircuitBreaker INTEGER,
reservedCircuitBreaker1 INTEGER,
reservedCircuitBreaker2 INTEGER,
emergencyLithiumBatteryGroup1CircuitBreaker INTEGER
)";
if (!createTable("disLowBusCmd", disLowBusCmdColumns)) {
return false;
}
return true;
}
@@ -492,6 +582,244 @@ bool SQLite::insertData(const ccuState data) {
return success;
}
bool SQLite::insertData(const ccuColCmd cmd) {
if (!m_db) {
std::cerr << "数据库未打开,无法插入数据。" << std::endl;
return false;
}
const char* sql = R"(
INSERT INTO ccuColCmd (
workCondition, fcuCmd, fcuPowerEfficiency,
fcuInsEfficiency, insBatCmd, powerBatCmd,
powerBatEfficiency, heartbeat, masterState,
paceholder1, paceholder2
) VALUES (
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
);
)";
sqlite3_stmt* stmt = nullptr;
if (sqlite3_prepare_v2(m_db, sql, -1, &stmt, nullptr) != SQLITE_OK) {
std::cerr << "准备插入语句失败: " << sqlite3_errmsg(m_db) << std::endl;
return false;
}
int idx = 1;
#define BIND_INT(x) sqlite3_bind_int(stmt, idx++, static_cast<int>(x))
BIND_INT(cmd.workCondition);
BIND_INT(cmd.fcuCmd);
BIND_INT(cmd.fcuPowerEfficiency);
BIND_INT(cmd.fcuInsEfficiency);
BIND_INT(cmd.insBatCmd);
BIND_INT(cmd.powerBatCmd);
BIND_INT(cmd.powerBatEfficiency);
BIND_INT(cmd.heartbeat);
BIND_INT(cmd.masterState);
BIND_INT(cmd.paceholder1);
BIND_INT(cmd.paceholder2);
#undef BIND_INT
bool success = (sqlite3_step(stmt) == SQLITE_DONE);
if (!success) {
std::cerr << "执行插入失败: " << sqlite3_errmsg(m_db) << std::endl;
}
sqlite3_finalize(stmt);
return success;
}
bool SQLite::insertData(const disHighVolBusCmd cmd) {
if (!m_db) {
std::cerr << "数据库未打开,无法插入数据。" << std::endl;
return false;
}
const char* sql = R"(
INSERT INTO disHighVolBusCmd (
fuelCellCircuitBreaker, powerLithiumBatteryCircuitBreaker,
propulsionMotorCircuitBreaker, lithiumBatteryGroupInstrumentCircuitBreaker,
dcDc5ModuleCircuitBreaker, bowHighVoltageDistributionBoxCircuitBreaker,
sternFTDevice45CircuitBreaker, sternRudderSwitch1CircuitBreaker,
sternRudderSwitch2CircuitBreaker, fbReservedCircuitBreaker,
tyzReservedCircuitBreaker, reservedCircuitBreaker,
dcdc5Module, coolingSystem
) VALUES (
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
);
)";
sqlite3_stmt* stmt = nullptr;
if (sqlite3_prepare_v2(m_db, sql, -1, &stmt, nullptr) != SQLITE_OK) {
std::cerr << "准备插入语句失败: " << sqlite3_errmsg(m_db) << std::endl;
return false;
}
int idx = 1;
#define BIND_INT(x) sqlite3_bind_int(stmt, idx++, static_cast<int>(x))
BIND_INT(cmd.fuelCellCircuitBreaker);
BIND_INT(cmd.powerLithiumBatteryCircuitBreaker);
BIND_INT(cmd.propulsionMotorCircuitBreaker);
BIND_INT(cmd.lithiumBatteryGroupInstrumentCircuitBreaker);
BIND_INT(cmd.dcDc5ModuleCircuitBreaker);
BIND_INT(cmd.bowHighVoltageDistributionBoxCircuitBreaker);
BIND_INT(cmd.sternFTDevice45CircuitBreaker);
BIND_INT(cmd.sternRudderSwitch1CircuitBreaker);
BIND_INT(cmd.sternRudderSwitch2CircuitBreaker);
BIND_INT(cmd.fbReservedCircuitBreaker);
BIND_INT(cmd.tyzReservedCircuitBreaker);
BIND_INT(cmd.reservedCircuitBreaker);
BIND_INT(cmd.dcdc5Module);
BIND_INT(cmd.coolingSystem);
#undef BIND_INT
bool success = (sqlite3_step(stmt) == SQLITE_DONE);
if (!success) {
std::cerr << "执行插入失败: " << sqlite3_errmsg(m_db) << std::endl;
}
sqlite3_finalize(stmt);
return success;
}
bool SQLite::insertData(const disHighAVolBusCmd cmd) {
if (!m_db) {
std::cerr << "数据库未打开,无法插入数据。" << std::endl;
return false;
}
const char* sql = R"(
INSERT INTO disHighAVolBusCmd (
bowFTDevice123CircuitBreaker, actuatorCircuitBreaker,
mastSteeringGearControlBoxCircuitBreaker, xczCircuitBreaker,
bowRudderControlBoxCircuitBreaker, openWaterCoverStartCylinderCircuitBreaker
) VALUES (
?, ?, ?, ?, ?, ?
);
)";
sqlite3_stmt* stmt = nullptr;
if (sqlite3_prepare_v2(m_db, sql, -1, &stmt, nullptr) != SQLITE_OK) {
std::cerr << "准备插入语句失败: " << sqlite3_errmsg(m_db) << std::endl;
return false;
}
int idx = 1;
#define BIND_INT(x) sqlite3_bind_int(stmt, idx++, static_cast<int>(x))
BIND_INT(cmd.bowFTDevice123CircuitBreaker);
BIND_INT(cmd.actuatorCircuitBreaker);
BIND_INT(cmd.mastSteeringGearControlBoxCircuitBreaker);
BIND_INT(cmd.xczCircuitBreaker);
BIND_INT(cmd.bowRudderControlBoxCircuitBreaker);
BIND_INT(cmd.openWaterCoverStartCylinderCircuitBreaker);
#undef BIND_INT
bool success = (sqlite3_step(stmt) == SQLITE_DONE);
if (!success) {
std::cerr << "执行插入失败: " << sqlite3_errmsg(m_db) << std::endl;
}
sqlite3_finalize(stmt);
return success;
}
bool SQLite::insertData(const disLowMainBusCmd cmd) {
if (!m_db) {
std::cerr << "数据库未打开,无法插入数据。" << std::endl;
return false;
}
const char* sql = R"(
INSERT INTO disLowMainBusCmd (
lithiumBatteryGroupInstrumentCircuitBreaker, bowLowVoltageDistributionBoxCircuitBreaker,
unit4InstrumentDC48VCircuitBreaker, dcC1DCDistributionPanelCircuitBreaker,
reservedCircuitBreaker1, reservedCircuitBreaker2,
emergencyLithiumBatteryGroup2CircuitBreaker
) VALUES (
?, ?, ?, ?, ?, ?, ?
);
)";
sqlite3_stmt* stmt = nullptr;
if (sqlite3_prepare_v2(m_db, sql, -1, &stmt, nullptr) != SQLITE_OK) {
std::cerr << "准备插入语句失败: " << sqlite3_errmsg(m_db) << std::endl;
return false;
}
int idx = 1;
#define BIND_INT(x) sqlite3_bind_int(stmt, idx++, static_cast<int>(x))
BIND_INT(cmd.lithiumBatteryGroupInstrumentCircuitBreaker);
BIND_INT(cmd.bowLowVoltageDistributionBoxCircuitBreaker);
BIND_INT(cmd.unit4InstrumentDC48VCircuitBreaker);
BIND_INT(cmd.dcC1DCDistributionPanelCircuitBreaker);
BIND_INT(cmd.reservedCircuitBreaker1);
BIND_INT(cmd.reservedCircuitBreaker2);
BIND_INT(cmd.emergencyLithiumBatteryGroup2CircuitBreaker);
#undef BIND_INT
bool success = (sqlite3_step(stmt) == SQLITE_DONE);
if (!success) {
std::cerr << "执行插入失败: " << sqlite3_errmsg(m_db) << std::endl;
}
sqlite3_finalize(stmt);
return success;
}
bool SQLite::insertData(const disLowBusCmd cmd) {
if (!m_db) {
std::cerr << "数据库未打开,无法插入数据。" << std::endl;
return false;
}
const char* sql = R"(
INSERT INTO disLowBusCmd (
unit1CircuitBreaker, unit2CircuitBreaker,
unit3CircuitBreaker, unit5CircuitBreaker,
bowPZDeviceCircuitBreaker, reservedCircuitBreaker1,
reservedCircuitBreaker2, emergencyLithiumBatteryGroup1CircuitBreaker
) VALUES (
?, ?, ?, ?, ?, ?, ?, ?
);
)";
sqlite3_stmt* stmt = nullptr;
if (sqlite3_prepare_v2(m_db, sql, -1, &stmt, nullptr) != SQLITE_OK) {
std::cerr << "准备插入语句失败: " << sqlite3_errmsg(m_db) << std::endl;
return false;
}
int idx = 1;
#define BIND_INT(x) sqlite3_bind_int(stmt, idx++, static_cast<int>(x))
BIND_INT(cmd.unit1CircuitBreaker);
BIND_INT(cmd.unit2CircuitBreaker);
BIND_INT(cmd.unit3CircuitBreaker);
BIND_INT(cmd.unit5CircuitBreaker);
BIND_INT(cmd.bowPZDeviceCircuitBreaker);
BIND_INT(cmd.reservedCircuitBreaker1);
BIND_INT(cmd.reservedCircuitBreaker2);
BIND_INT(cmd.emergencyLithiumBatteryGroup1CircuitBreaker);
#undef BIND_INT
bool success = (sqlite3_step(stmt) == SQLITE_DONE);
if (!success) {
std::cerr << "执行插入失败: " << sqlite3_errmsg(m_db) << std::endl;
}
sqlite3_finalize(stmt);
return success;
}
bool SQLite::insertData(const disHighVolBusState data) {
if (!m_db) {
std::cerr << "数据库未打开,无法插入数据。" << std::endl;