This commit is contained in:
2025-08-15 16:36:54 +08:00
parent 3d17218dad
commit d98592060d
1324 changed files with 5841 additions and 49568 deletions
Binary file not shown.
+18 -1
View File
@@ -135,8 +135,10 @@ bool rpc_finsTcp::writeData(std::vector<cv::Mat>& vec_mat, QByteArray& data){
readDataQueue.append(data);
}
else {
if(data.contains("Heart") == false)
qDebug() << data;
emit writeCallSignal("excuteCli", QJsonArray{ QString(data) }, "finstcp");
//qDebug() << data;
//
}
return true;
}
@@ -147,13 +149,26 @@ bool rpc_finsTcp::initParas(QByteArray& data){
subThread = new QThread(this);
write_JsonRpcClient = new JsonRpcClientWorker();
write_JsonRpcClient->moveToThread(subThread);
QObject::connect(this, &rpc_finsTcp::initRpcClient,
write_JsonRpcClient, &JsonRpcClientWorker::initClient, Qt::QueuedConnection);
emit initRpcClient();
QObject::connect(this, &rpc_finsTcp::writeCallSignal,
write_JsonRpcClient, &JsonRpcClientWorker::writeCallSlot,Qt::QueuedConnection);
subThread->start();
emit writeCallSignal("init", QJsonArray{ m_IP,m_port }, "finstcp");
while (write_JsonRpcClient->connection == None)
QThread::msleep(1);
if (write_JsonRpcClient->connection == Disconnected) {
qDebug() << "JsonRpcClientSubThread connection failed!";
return false;
}
else if (write_JsonRpcClient->connection == Connected) {
qDebug() << "JsonRpcClientSubThread connected successfully!";
}
//qDebug() << "返回结果:" << result;
//QList<QPair<QString, QJsonObject>> batchList;
@@ -180,9 +195,11 @@ JsonRpcClient::JsonRpcClient(const QString& host, quint16 port)
socket_.connectToHost(host_, port_);
if (!socket_.waitForConnected(3000)) {
qWarning() << "[JsonRpcClient] Initial connection failed:" << socket_.errorString();
_connectionStatus = Disconnected;
}
else {
qDebug() << "[JsonRpcClient] Connected to" << host_ << ":" << port_;
_connectionStatus = Connected;
}
}
+10 -1
View File
@@ -20,14 +20,21 @@
#include <QHostAddress>
#include <qmap.h>
#include <qthread.h>
enum connectionStatus {
None,
Disconnected,
Connected
};
class JsonRpcClient : public QObject {
Q_OBJECT
public:
connectionStatus _connectionStatus = None;
JsonRpcClient(const QString& host = "127.0.0.1", quint16 port = 9000);
void writeCall(const QString& method, const QJsonArray& params = {}, const QString& module = QString());
QVariant call(const QString& method, const QJsonArray& params = {}, const QString& module = QString());
bool reconnect(); // 主动重连,或 call() 失败时调用
private:
QMutex mutex_; // 确保线程安全
QTcpSocket socket_;
QString host_;
@@ -38,6 +45,7 @@ private:
class JsonRpcClientWorker : public QObject {
Q_OBJECT
public:
connectionStatus connection;
QQueue<QByteArray> readDataQueue;
JsonRpcClientWorker() {
@@ -45,10 +53,11 @@ public:
public slots:
void initClient() {
_JsonRpcClient = new JsonRpcClient();
connection = _JsonRpcClient->_connectionStatus;
}
void writeCallSlot(const QString& method, const QJsonArray& params, const QString& module = QString()) {
if (_JsonRpcClient) {
qDebug() << params;
//qDebug() << params;
_JsonRpcClient->call(method, params, module);
}
}