modify for ledgerupdate
This commit is contained in:
126
json/save2json.h
126
json/save2json.h
@@ -44,6 +44,7 @@ extern "C" {
|
||||
#include <iostream>
|
||||
extern int G_TEST_NUM;
|
||||
extern void ledger(const char* terminal_id = NULL,QIODevice* outputDevice = NULL);
|
||||
extern void value_print(const char *variableName, QTcpSocket *clientSocket);
|
||||
extern int TEST_PORT;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
@@ -107,24 +108,29 @@ class Worker : public QObject
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Worker(QObject *parent = NULL) : QObject(parent), server(NULL), TEST_NUM(G_TEST_NUM) {}
|
||||
Worker(QObject *parent = NULL) : QObject(parent), server(NULL), TEST_NUM(G_TEST_NUM) {
|
||||
timer = NULL;
|
||||
}
|
||||
~Worker() {
|
||||
if (server) {
|
||||
server->close();
|
||||
delete server;
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD>
|
||||
stopServer();
|
||||
}
|
||||
|
||||
public slots:
|
||||
void startServer() {
|
||||
server = new QTcpServer();
|
||||
if (server) {
|
||||
qDebug() << "Server is already running!";
|
||||
return; // <20><>ֹ<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> QTcpServer <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD>
|
||||
server = new QTcpServer(this);
|
||||
connect(server, SIGNAL(newConnection()), this, SLOT(onNewConnection()));
|
||||
|
||||
// <20><><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>˿<EFBFBD>
|
||||
if (!server->listen(QHostAddress::Any, TEST_PORT)) {
|
||||
std::cout << "Server failed to start!" << std::endl;
|
||||
qDebug() << "Server failed to start!";
|
||||
delete server;
|
||||
server = NULL;
|
||||
emit serverError();
|
||||
return;
|
||||
} else {
|
||||
@@ -135,12 +141,30 @@ public slots:
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
timer = new QTimer(this);
|
||||
connect(timer, SIGNAL(timeout()), this, SLOT(doPeriodicTask()));
|
||||
timer->start(60000); // ÿ60<36>봥<EFBFBD><EBB4A5>һ<EFBFBD><D2BB>
|
||||
timer->start(60000); // ÿ60<36>봥<EFBFBD><EBB4A5>һ<EFBFBD><D2BB>
|
||||
|
||||
std::cout << "Timer started, event loop running in thread: " << QThread::currentThreadId() << std::endl;
|
||||
qDebug() << "Timer started, event loop running in thread:" << QThread::currentThreadId();
|
||||
}
|
||||
|
||||
void stopServer() {
|
||||
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
||||
if (server) {
|
||||
server->close();
|
||||
delete server;
|
||||
server = NULL;
|
||||
qDebug() << "Server stopped.";
|
||||
}
|
||||
|
||||
// ֹͣ<CDA3><D6B9>ʱ<EFBFBD><CAB1>
|
||||
if (timer) {
|
||||
timer->stop();
|
||||
delete timer;
|
||||
timer = NULL;
|
||||
qDebug() << "Timer stopped.";
|
||||
}
|
||||
}
|
||||
|
||||
void setTestNum(int num) {
|
||||
QMutexLocker locker(&mutex);
|
||||
TEST_NUM = num;
|
||||
@@ -167,6 +191,7 @@ private slots:
|
||||
std::cout << "New connection established!\n";
|
||||
|
||||
connect(clientSocket, SIGNAL(readyRead()), this, SLOT(onReadyRead()));
|
||||
connect(clientSocket, SIGNAL(disconnected()), clientSocket, SLOT(deleteLater())); // <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD>ͻ<EFBFBD><CDBB>˷<EFBFBD><CBB7><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>
|
||||
if (clientSocket) {
|
||||
@@ -178,12 +203,10 @@ private slots:
|
||||
|
||||
void onReadyRead() {
|
||||
QTcpSocket *clientSocket = qobject_cast<QTcpSocket *>(sender());
|
||||
std::cout << "onReadyRead\n";
|
||||
if (!clientSocket) {
|
||||
std::cout << "Invalid socket\n";
|
||||
return;
|
||||
}
|
||||
std::cout << "read all\n";
|
||||
|
||||
QByteArray data = clientSocket->readAll();
|
||||
QString command = QString::fromUtf8(data).trimmed(); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EEB2A2><C8A5>ǰ<EFBFBD><C7B0><EFBFBD>ո<EFBFBD>
|
||||
@@ -191,16 +214,35 @@ private slots:
|
||||
qDebug() << "Received command:" << command;
|
||||
std::cout << "Received command: " << command.toStdString() << "\n";
|
||||
|
||||
// <20>洢<EFBFBD><E6B4A2>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
|
||||
if (!command.isEmpty() && (commandHistory.isEmpty() || command != commandHistory.last())) {
|
||||
commandHistory.append(command);
|
||||
historyIndex = commandHistory.size(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
// <20><><EFBFBD>ͻ<EFBFBD><CDBB>˷<EFBFBD><CBB7>͡<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>롱<EFBFBD><EBA1B1><EFBFBD><EFBFBD>
|
||||
clientSocket->write("Received command\n> ");
|
||||
clientSocket->flush();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ʾ<EFBFBD><CABE>
|
||||
clientSocket->write("test_shell> ");
|
||||
clientSocket->flush(); // ȷ<><C8B7><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> help <20><><EFBFBD><EFBFBD>
|
||||
if (command == "help") {
|
||||
QString helpText = "Available commands:\n";
|
||||
helpText += "TEST_NUM=<num> - Set the TEST_NUM\n";
|
||||
helpText += "rc - Execute rocketmq_test_rc\n";
|
||||
helpText += "rt - Execute rocketmq_test_rt\n";
|
||||
helpText += "ud - Execute rocketmq_test_ud\n";
|
||||
helpText += "set - Execute rocketmq_test_set\n";
|
||||
helpText += "ledger <id> - Execute ledger with optional terminal_id\n";
|
||||
helpText += "value <valuename> - Execute value print with valuename : iedcount frontfun frontindex\n";
|
||||
helpText += "exit - Exit the shell\n";
|
||||
helpText += "help - Show this help message\n";
|
||||
clientSocket->write(helpText.toUtf8());
|
||||
clientSocket->flush();
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD> TEST_NUM
|
||||
if (command.startsWith("TEST_NUM=")) {
|
||||
else if (command.startsWith("TEST_NUM=")) {
|
||||
bool ok;
|
||||
int num = command.mid(9).toInt(&ok); // <20><>ȡ<EFBFBD>Ⱥź<C8BA><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
|
||||
if (ok) {
|
||||
@@ -262,7 +304,57 @@ private slots:
|
||||
clientSocket->write("Executed ledger without parameters\n> ");
|
||||
}
|
||||
}
|
||||
|
||||
else if (command.startsWith("value")) {
|
||||
std::cout << "Executing value()" << std::endl;
|
||||
|
||||
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>еIJ<D0B5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
QStringList parts = command.split(" "); // <20><><EFBFBD>ݿո<DDBF><D5B8>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (parts.size() > 1) { // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
QString variableName = parts[1];
|
||||
|
||||
std::cout << "Calling value() with variable name: " << variableName.toStdString() << std::endl;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> value() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
value_print(variableName.toStdString().c_str(), clientSocket); // <20><><EFBFBD><EFBFBD> value() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
|
||||
clientSocket->write("Executed value with variable name: " + variableName.toUtf8() + "\n> ");
|
||||
} else {
|
||||
std::cout << "Calling value without parameters" << std::endl;
|
||||
|
||||
// <20><>ʾ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ҫ<EFBFBD>ṩ<EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
clientSocket->write("Please provide a variable name\n> ");
|
||||
}
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
|
||||
else if (command == "up" || command == "down") {
|
||||
// <20><><EFBFBD>¼<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EEB4A6>
|
||||
if (command == "up") {
|
||||
// <20>ϼ<EFBFBD>ͷ<EFBFBD><CDB7>ѡ<EFBFBD><D1A1>ǰһ<C7B0><D2BB><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
|
||||
if (historyIndex > 0) {
|
||||
historyIndex--;
|
||||
}
|
||||
} else if (command == "down") {
|
||||
// <20>¼<EFBFBD>ͷ<EFBFBD><CDB7>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
|
||||
if (historyIndex < commandHistory.size() - 1) {
|
||||
historyIndex++;
|
||||
}
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
|
||||
if (historyIndex >= 0 && historyIndex < commandHistory.size()) {
|
||||
clientSocket->write(commandHistory[historyIndex].toUtf8());
|
||||
} else {
|
||||
clientSocket->write("No history available\n> ");
|
||||
}
|
||||
clientSocket->flush();
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD> exit <20><><EFBFBD><EFBFBD>
|
||||
else if (command == "exit") {
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>رտͻ<D5BF><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
clientSocket->write("Goodbye! Exiting shell...\n");
|
||||
clientSocket->flush();
|
||||
clientSocket->disconnectFromHost(); // <20>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
|
||||
clientSocket->waitForDisconnected(); // ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD>ӶϿ<D3B6>
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD>δ֪<CEB4><D6AA><EFBFBD><EFBFBD>
|
||||
else {
|
||||
clientSocket->write("Unknown command\n> ");
|
||||
@@ -275,12 +367,15 @@ signals:
|
||||
void serverError();
|
||||
|
||||
private:
|
||||
QList<QString> commandHistory; // <20>洢<EFBFBD><E6B4A2>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
|
||||
int historyIndex = -1; // <20><>ǰ<EFBFBD><C7B0>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
QTcpServer *server;
|
||||
QTimer *timer;
|
||||
int TEST_NUM;
|
||||
QMutex mutex;
|
||||
};
|
||||
|
||||
|
||||
//lnk20241213
|
||||
class mqconsumerThread : public QThread
|
||||
{
|
||||
@@ -330,6 +425,7 @@ struct terminal //
|
||||
char dev_type[64];
|
||||
char dev_key[255];
|
||||
char dev_series[255];
|
||||
char processNo[64]; //lnk20250210<31><30><EFBFBD>̺<EFBFBD>
|
||||
char addr_str[64];
|
||||
char port[64];
|
||||
char timestamp[64];
|
||||
|
||||
Reference in New Issue
Block a user