|
@@ -51,8 +51,7 @@ firingWidget::firingWidget(const int &row, const bool &select, const QString &uu
|
|
|
mqttThread->setConnectionInfo("114.55.233.194", 1883, "hxgc", "hxgc123456", "P" + uuid, topics);
|
|
|
connect(mqttThread, &MqttThread::mqttConnected, this, &firingWidget::onMqttConnected);
|
|
|
mqttThread->start();
|
|
|
- connect(mqttThread, &MqttThread::projectMqttMessageReceived, this,
|
|
|
- &firingWidget::handleProjectFiringMqttMessage);
|
|
|
+ connect(mqttThread, &MqttThread::projectMqttMessageReceived, this, &firingWidget::handleProjectFiringMqttMessage);
|
|
|
connect(this, &firingWidget::lastStageChanged, this, &firingWidget::handleFiringStageChanged);
|
|
|
connect(this, &firingWidget::updateData, this, &firingWidget::onBlastSuccess);
|
|
|
startBlasting();
|
|
@@ -80,15 +79,13 @@ void firingWidget::startBlasting() {
|
|
|
bool isReceivedMessage = false;
|
|
|
connect(mqttThread, &MqttThread::projectMqttMessageReceived, this,
|
|
|
[connectionCheckTimer](const QByteArray &message) {
|
|
|
- qDebug() << ANSI_COLOR_GREEN
|
|
|
- << "Received connection confirmation message from MQTT server."
|
|
|
+ qDebug() << ANSI_COLOR_GREEN << "Received connection confirmation message from MQTT server."
|
|
|
<< ANSI_COLOR_RESET;
|
|
|
connectionCheckTimer->stop();
|
|
|
});
|
|
|
connect(connectionCheckTimer, &QTimer::timeout, this, [this]() {
|
|
|
if (m_isMqttConnected) {
|
|
|
- QMessageBox::critical(nullptr, "起爆错误",
|
|
|
- "未收到爆破器的连接确认消息,请检查爆破器是否在线");
|
|
|
+ QMessageBox::critical(nullptr, "起爆错误", "未收到爆破器的连接确认消息,请检查爆破器是否在线");
|
|
|
Logger::getInstance().error("启动爆破后,未收到爆破器的连接确认消息");
|
|
|
cancelBlasting();
|
|
|
} else {
|
|
@@ -197,15 +194,14 @@ bool firingWidget::uploadToDanLing(const QJsonObject &jsonObj) {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
-void firingWidget::handleProjectFiringMqttMessage(const QByteArray &message,
|
|
|
- const QMqttTopicName &topic) {
|
|
|
+void firingWidget::handleProjectFiringMqttMessage(const QByteArray &message, const QMqttTopicName &topic) {
|
|
|
QString msgText = QString("Topic: %1, Message: %2").arg(topic.name(), QString(message));
|
|
|
QTextEdit *textEdit = ui->scrollAreaWidgetContents->findChild<QTextEdit *>("textEdit");
|
|
|
if (textEdit) {
|
|
|
textEdit->append(msgText);
|
|
|
}
|
|
|
- qDebug() << ANSI_COLOR_GREEN << "Received message on topic:" << topic.name()
|
|
|
- << ", Message:" << QString(message) << ANSI_COLOR_RESET;
|
|
|
+ qDebug() << ANSI_COLOR_GREEN << "Received message on topic:" << topic.name() << ", Message:" << QString(message)
|
|
|
+ << ANSI_COLOR_RESET;
|
|
|
int stage = 0;
|
|
|
QJsonDocument jsonDoc = QJsonDocument::fromJson(message);
|
|
|
if (!jsonDoc.isNull() && jsonDoc.isObject()) {
|
|
@@ -216,12 +212,11 @@ void firingWidget::handleProjectFiringMqttMessage(const QByteArray &message,
|
|
|
QJsonObject dataObject = jsonObj["data"].toObject();
|
|
|
int status = dataObject["status"].toInt();
|
|
|
if (ErrorBlastStatusList::isErrorStatus(status)) {
|
|
|
- Logger::getInstance().error(
|
|
|
- QString("爆破器返回异常. 工程uuid: %1; 错误code: %2")
|
|
|
- .arg(m_uuid, ErrorBlastStatusList::getErrorMessage(status)));
|
|
|
- QMessageBox::critical(nullptr, "爆破器报错",
|
|
|
- QString("错误错误信息: %1")
|
|
|
- .arg(ErrorBlastStatusList::getErrorMessage(status)));
|
|
|
+ Logger::getInstance().error(QString("爆破器返回异常. 工程uuid: %1; 错误code: %2")
|
|
|
+ .arg(m_uuid, ErrorBlastStatusList::getErrorMessage(status)));
|
|
|
+ QMessageBox::critical(
|
|
|
+ nullptr, "爆破器报错",
|
|
|
+ QString("错误错误信息: %1").arg(ErrorBlastStatusList::getErrorMessage(status)));
|
|
|
cancelBlasting();
|
|
|
return;
|
|
|
}
|
|
@@ -312,8 +307,7 @@ void firingWidget::onCountdownFinished(const QString &topic, const QString &mess
|
|
|
}
|
|
|
|
|
|
void firingWidget::onMqttConnected() {
|
|
|
- Logger::getInstance().info(
|
|
|
- QString("Project(%1) firing MQTT connected successfully.").arg(m_uuid));
|
|
|
+ Logger::getInstance().info(QString("Project(%1) firing MQTT connected successfully.").arg(m_uuid));
|
|
|
m_isMqttConnected = true;
|
|
|
}
|
|
|
|
|
@@ -322,8 +316,7 @@ void firingWidget::onButtonPressedReceived(const QString &topic, const QString &
|
|
|
// 调用发送数据的方法
|
|
|
bool success = serialTool->sendData(data);
|
|
|
if (!success) {
|
|
|
- Logger::getInstance().error(
|
|
|
- QString("onButtonPressedReceived: Failed to send data: %1").arg(data));
|
|
|
+ Logger::getInstance().error(QString("onButtonPressedReceived: Failed to send data: %1").arg(data));
|
|
|
return;
|
|
|
}
|
|
|
emit countdown(m_uuid, topic, message);
|
|
@@ -396,9 +389,8 @@ void firingWidget::handleFiringStageChanged(int newStage) {
|
|
|
}
|
|
|
connection = connect(serialTool, &SerialTool::enableButtonReceived,
|
|
|
[this]() { emit updateBlastStatus(10, m_row); });
|
|
|
- connectionPress = connect(
|
|
|
- serialTool, &SerialTool::buttonPressedReceived,
|
|
|
- [this, topic, message]() { this->onButtonPressedReceived(topic, message); });
|
|
|
+ connectionPress = connect(serialTool, &SerialTool::buttonPressedReceived,
|
|
|
+ [this, topic, message]() { this->onButtonPressedReceived(topic, message); });
|
|
|
|
|
|
} else {
|
|
|
qDebug() << "serialTool Not fond.";
|
|
@@ -430,8 +422,7 @@ void firingWidget::on_sendTest_4_clicked() {}
|
|
|
void firingWidget::testOnBlastSuccess(const QJsonObject &jsonObj) { onBlastSuccess(jsonObj); }
|
|
|
// 处理爆破成功,安全验证装置通过MQTT传回的数据
|
|
|
void firingWidget::onBlastSuccess(const QJsonObject &jsonObj) {
|
|
|
- Logger::getInstance("blastRecord.log")
|
|
|
- .info(QJsonDocument(jsonObj).toJson(QJsonDocument::Indented));
|
|
|
+ Logger::getInstance("blastRecord.log").info(QJsonDocument(jsonObj).toJson(QJsonDocument::Indented));
|
|
|
blast_uuid = QUuid::createUuid().toString(QUuid::WithoutBraces).remove(QRegularExpression("-"));
|
|
|
|
|
|
saveAndUploadRecord(jsonObj);
|
|
@@ -440,8 +431,7 @@ void firingWidget::onBlastSuccess(const QJsonObject &jsonObj) {
|
|
|
void firingWidget::saveAndUploadRecord(const QJsonObject &jsonObj) {
|
|
|
QSqlDatabase db = DatabaseManager::getInstance().getDatabase();
|
|
|
if (!db.transaction()) {
|
|
|
- Logger::getInstance().critical(
|
|
|
- QString("Failed to start DB transaction. Error: %1").arg(db.lastError().text()));
|
|
|
+ Logger::getInstance().critical(QString("Failed to start DB transaction. Error: %1").arg(db.lastError().text()));
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -464,26 +454,22 @@ void firingWidget::saveAndUploadRecord(const QJsonObject &jsonObj) {
|
|
|
blastEquipmentRecords.append(hBlastEquipmentRecord);
|
|
|
}
|
|
|
|
|
|
- QList<HBlastRecordDet *> hBlastRecordDets =
|
|
|
- recordBlastProjectDets(blastRecord->getUuid(), hBlastEquipmentRecord->getUuid(),
|
|
|
- equipmentJsonObject["dets"].toArray());
|
|
|
+ QList<HBlastRecordDet *> hBlastRecordDets = recordBlastProjectDets(
|
|
|
+ blastRecord->getUuid(), hBlastEquipmentRecord->getUuid(), equipmentJsonObject["dets"].toArray());
|
|
|
hBlastEquipmentRecord->setDetRecords(hBlastRecordDets);
|
|
|
}
|
|
|
|
|
|
blastRecord->setEquipmentRecords(blastEquipmentRecords);
|
|
|
|
|
|
if (db.commit()) {
|
|
|
- Logger::getInstance().info(
|
|
|
- QString("Transaction committed successfully. blast_uuid: %1").arg(blast_uuid));
|
|
|
+ Logger::getInstance().info(QString("Transaction committed successfully. blast_uuid: %1").arg(blast_uuid));
|
|
|
} else {
|
|
|
- Logger::getInstance().error(
|
|
|
- QString("Failed to commit transaction: %1. try to rollback: %2")
|
|
|
- .arg(db.lastError().text(), db.rollback() ? "success" : "failed"));
|
|
|
+ Logger::getInstance().error(QString("Failed to commit transaction: %1. try to rollback: %2")
|
|
|
+ .arg(db.lastError().text(), db.rollback() ? "success" : "failed"));
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- qDebug() << "Transaction committed successfully for blast record with uuid:"
|
|
|
- << blastRecord->getUuid();
|
|
|
+ qDebug() << "Transaction committed successfully for blast record with uuid:" << blastRecord->getUuid();
|
|
|
uploadBlastRecordToServer(blastRecord);
|
|
|
}
|
|
|
|
|
@@ -492,13 +478,11 @@ void firingWidget::uploadBlastRecordToServer(HBlastRecord *blastRecord) {
|
|
|
return;
|
|
|
}
|
|
|
if (!backendAPIManager::uploadBlastProjectFull(blastRecord->ToJson())) {
|
|
|
- Logger::getInstance().error(
|
|
|
- QString("Failed to upload blast project. data: %1")
|
|
|
- .arg(QJsonDocument(blastRecord->ToJson()).toJson(QJsonDocument::Indented)));
|
|
|
+ Logger::getInstance().error(QString("Failed to upload blast project. data: %1")
|
|
|
+ .arg(QJsonDocument(blastRecord->ToJson()).toJson(QJsonDocument::Indented)));
|
|
|
}
|
|
|
Logger::getInstance().info(
|
|
|
- QString("Blast project uploaded to server successfully. blast_uuid: %1")
|
|
|
- .arg(blastRecord->getUuid()));
|
|
|
+ QString("Blast project uploaded to server successfully. blast_uuid: %1").arg(blastRecord->getUuid()));
|
|
|
}
|
|
|
|
|
|
HBlastRecord *firingWidget::recordBlastProject(const QJsonObject &jsonObj) {
|
|
@@ -520,8 +504,7 @@ HBlastRecord *firingWidget::recordBlastProject(const QJsonObject &jsonObj) {
|
|
|
|
|
|
record->setRegDetCount(jsonObj["reg_deto_count"].toString().toInt());
|
|
|
record->setErrorDetCount(jsonObj["error_deto_count"].toString().toInt());
|
|
|
- QDateTime blastTime =
|
|
|
- QDateTime::fromString(jsonObj["blast_time"].toString(), "yyyy-MM-dd hh:mm:ss");
|
|
|
+ QDateTime blastTime = QDateTime::fromString(jsonObj["blast_time"].toString(), "yyyy-MM-dd hh:mm:ss");
|
|
|
record->setBlastAt(blastTime);
|
|
|
record->setCreatedAt(QDateTime::currentDateTime());
|
|
|
record->setUuid(blast_uuid);
|
|
@@ -536,8 +519,7 @@ HBlastRecord *firingWidget::recordBlastProject(const QJsonObject &jsonObj) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-HBlastEquipmentRecord *firingWidget::recordBlastEquipment(const QString blastProjectUuid,
|
|
|
- const QJsonObject ®Obj) {
|
|
|
+HBlastEquipmentRecord *firingWidget::recordBlastEquipment(const QString blastProjectUuid, const QJsonObject ®Obj) {
|
|
|
HBlastEquipmentRecord *recordReg = new HBlastEquipmentRecord();
|
|
|
reg_uuid = QUuid::createUuid().toString(QUuid::WithoutBraces).remove(QRegularExpression("-"));
|
|
|
recordReg->setUuid(reg_uuid);
|
|
@@ -556,16 +538,14 @@ HBlastEquipmentRecord *firingWidget::recordBlastEquipment(const QString blastPro
|
|
|
recordReg->setCreatedAt(QDateTime::currentDateTime());
|
|
|
|
|
|
if (!daoReg.saveHBlastRegRecord(*recordReg)) {
|
|
|
- Logger::getInstance().error(
|
|
|
- QString("Failed to save HBlastRegRecord: %1").arg(recordReg->getEquipSn()));
|
|
|
+ Logger::getInstance().error(QString("Failed to save HBlastRegRecord: %1").arg(recordReg->getEquipSn()));
|
|
|
delete recordReg;
|
|
|
return nullptr;
|
|
|
}
|
|
|
return recordReg;
|
|
|
}
|
|
|
|
|
|
-QList<HBlastRecordDet *> firingWidget::recordBlastProjectDets(const QString projectUuid,
|
|
|
- const QString equipmentUuid,
|
|
|
+QList<HBlastRecordDet *> firingWidget::recordBlastProjectDets(const QString projectUuid, const QString equipmentUuid,
|
|
|
const QJsonArray detsArray) {
|
|
|
QList<HBlastRecordDet *> recordDets;
|
|
|
|
|
@@ -574,8 +554,7 @@ QList<HBlastRecordDet *> firingWidget::recordBlastProjectDets(const QString proj
|
|
|
HBlastRecordDet *recordDet = new HBlastRecordDet();
|
|
|
|
|
|
recordDet->setId(0);
|
|
|
- recordDet->setUuid(
|
|
|
- QUuid::createUuid().toString(QUuid::WithoutBraces).remove(QRegularExpression("-")));
|
|
|
+ recordDet->setUuid(QUuid::createUuid().toString(QUuid::WithoutBraces).remove(QRegularExpression("-")));
|
|
|
recordDet->setOutCode(detObj["out_code"].toString());
|
|
|
recordDet->setInnerCode(detObj["in_code"].toString());
|
|
|
recordDet->setUid(detObj["uid"].toString());
|
|
@@ -590,9 +569,8 @@ QList<HBlastRecordDet *> firingWidget::recordBlastProjectDets(const QString proj
|
|
|
if (daoDet.addHBlastRecordDet(*recordDet)) {
|
|
|
recordDets.append(recordDet);
|
|
|
} else {
|
|
|
- Logger::getInstance().error(
|
|
|
- QString("Failed to insert record det. data %1")
|
|
|
- .arg(QJsonDocument(recordDet->ToJson()).toJson(QJsonDocument::Compact)));
|
|
|
+ Logger::getInstance().error(QString("Failed to insert record det. data %1")
|
|
|
+ .arg(QJsonDocument(recordDet->ToJson()).toJson(QJsonDocument::Compact)));
|
|
|
delete recordDet;
|
|
|
continue;
|
|
|
}
|