增加了网页服务
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user