2024-09-10 16:12:38 +08:00
|
|
|
|
#include "mainwindow.h"
|
2024-09-10 14:38:23 +08:00
|
|
|
|
#include "ui_mainwindow.h"
|
2024-09-10 16:12:38 +08:00
|
|
|
|
#include <QPixmap>
|
|
|
|
|
#include <QMessageBox>
|
2024-09-10 14:38:23 +08:00
|
|
|
|
|
2024-10-11 14:20:12 +08:00
|
|
|
|
#include <hv/hlog.h>
|
2024-09-10 16:55:41 +08:00
|
|
|
|
#include "MainDialog.h"
|
2024-10-11 14:20:12 +08:00
|
|
|
|
#include "mysqlutils.h"
|
2024-11-11 15:28:31 +08:00
|
|
|
|
#include "kutilities.h"
|
2024-11-13 17:05:57 +08:00
|
|
|
|
#include "ipaddress.h"
|
2024-11-08 16:11:31 +08:00
|
|
|
|
|
2024-09-10 14:38:23 +08:00
|
|
|
|
MainWindow::MainWindow(QWidget *parent)
|
|
|
|
|
: QMainWindow(parent)
|
|
|
|
|
, ui(new Ui::MainWindow)
|
2024-09-10 16:55:41 +08:00
|
|
|
|
, m_pMainDialog(nullptr)
|
2024-09-10 14:38:23 +08:00
|
|
|
|
{
|
|
|
|
|
ui->setupUi(this);
|
2024-11-13 17:05:57 +08:00
|
|
|
|
|
2024-09-10 16:12:38 +08:00
|
|
|
|
this->setWindowIcon(QIcon(":/images/icon.png"));
|
2024-11-13 17:05:57 +08:00
|
|
|
|
this->setWindowTitle(tr("EMU Configurer Kit"));
|
2024-09-10 16:12:38 +08:00
|
|
|
|
|
|
|
|
|
QPixmap pixmap(":/images/hj-net.png");
|
|
|
|
|
pixmap = pixmap.scaled(250, 75, Qt::KeepAspectRatio, Qt::SmoothTransformation); // 按比例缩放
|
|
|
|
|
ui->label_logo->setPixmap(pixmap);
|
|
|
|
|
|
|
|
|
|
QString qsLineEditStyle("QLineEdit { min-height: 20px; min-width: 120px; }");
|
|
|
|
|
ui->userToken->setStyleSheet(qsLineEditStyle);
|
|
|
|
|
|
2024-11-13 17:05:57 +08:00
|
|
|
|
ui->serverIP->setIP("127.0.0.1");
|
|
|
|
|
|
|
|
|
|
ui->pb_Logon->setFixedSize(100, 30);
|
|
|
|
|
ui->pb_Close->setFixedSize(100, 30);
|
|
|
|
|
ui->pb_Test->setFixedSize(45, 25);
|
|
|
|
|
|
|
|
|
|
QFont font("Arial", 24, QFont::Bold);
|
|
|
|
|
ui->productName1->setText(tr("Configurer Kit"));
|
|
|
|
|
ui->productName1->setFont(font);
|
|
|
|
|
|
|
|
|
|
QFont font2("Arial", 12, QFont::Bold);
|
|
|
|
|
ui->productName2->setText(tr("for EMU Host"));
|
|
|
|
|
ui->productName2->setFont(font2);
|
2024-09-10 14:38:23 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MainWindow::~MainWindow()
|
|
|
|
|
{
|
|
|
|
|
delete ui;
|
2024-09-10 16:55:41 +08:00
|
|
|
|
if (m_pMainDialog)
|
|
|
|
|
{
|
|
|
|
|
delete m_pMainDialog;
|
|
|
|
|
m_pMainDialog = nullptr;
|
|
|
|
|
}
|
2024-09-10 14:38:23 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-09-10 16:12:38 +08:00
|
|
|
|
void MainWindow::setIp(const QString &ip)
|
|
|
|
|
{
|
2024-11-13 17:05:57 +08:00
|
|
|
|
ui->serverIP->setIP(ip);
|
2024-09-10 16:12:38 +08:00
|
|
|
|
}
|
2024-09-10 16:55:41 +08:00
|
|
|
|
|
2024-10-12 14:00:37 +08:00
|
|
|
|
bool MainWindow::testDatabase()
|
2024-10-11 14:20:12 +08:00
|
|
|
|
{
|
2024-10-17 20:25:43 +08:00
|
|
|
|
CWaitorCursor wait;
|
2024-11-13 17:05:57 +08:00
|
|
|
|
QString svr = ui->serverIP->getIP();
|
2024-10-11 14:20:12 +08:00
|
|
|
|
std::string dbserver = svr.toStdString(); //"tcp://192.168.4.254";
|
|
|
|
|
int dbport = 3306;
|
|
|
|
|
std::string dbuser = "root";
|
|
|
|
|
std::string dbpasswd = "Hj57471000";
|
2024-11-08 16:11:31 +08:00
|
|
|
|
//std::string dbpasswd = "L2ysc1s1kr";
|
2024-10-11 14:20:12 +08:00
|
|
|
|
std::string dbname = "hjems";
|
|
|
|
|
bool dbok = MysqlUtils::getInstance()->OpenDatabase(dbserver,dbport,dbuser,dbpasswd,dbname);
|
|
|
|
|
if (!dbok)
|
|
|
|
|
{
|
|
|
|
|
hloge("failed to open database, exit now...");
|
2024-10-12 14:00:37 +08:00
|
|
|
|
return false;
|
2024-10-11 14:20:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
hlogi("database connection test successfully!");
|
2024-10-12 14:00:37 +08:00
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-11 15:28:31 +08:00
|
|
|
|
void MainWindow::onMessage(const hv::SocketChannelPtr& channel, hv::Buffer* buf)
|
|
|
|
|
{
|
|
|
|
|
hlogd("MainWindow<==\n%s", Kutilities::printHex((void*)buf->data(),(int)buf->size()).c_str());
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-08 16:11:31 +08:00
|
|
|
|
bool MainWindow::testServerEcho()
|
|
|
|
|
{
|
|
|
|
|
using namespace hv;
|
|
|
|
|
|
2024-11-13 17:05:57 +08:00
|
|
|
|
QString svr = ui->serverIP->getIP();
|
2024-11-08 16:11:31 +08:00
|
|
|
|
|
2024-11-11 15:28:31 +08:00
|
|
|
|
int connfd = AppTcpClient::getInstance()->Initialize(svr,DEVICE_SERVER_PORT);
|
2024-11-08 16:11:31 +08:00
|
|
|
|
if (connfd <= 0)
|
|
|
|
|
{
|
2024-11-11 15:28:31 +08:00
|
|
|
|
hloge("failed to create socket for connecting to device data service ...");
|
2024-11-08 16:11:31 +08:00
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-11 15:28:31 +08:00
|
|
|
|
hlogi("create socket for connecting to device data service port %d, connfd=%d ...", DEVICE_SERVER_PORT, connfd);
|
|
|
|
|
|
|
|
|
|
CWaitorCursor wait1;
|
|
|
|
|
|
|
|
|
|
hv_msleep(500);
|
|
|
|
|
|
|
|
|
|
//设置返回消息回调
|
|
|
|
|
onMessageCallbackFunc f = std::bind(&MainWindow::onMessage, this, std::placeholders::_1, std::placeholders::_2);
|
|
|
|
|
AppTcpClient::getInstance()->resetOnMessageCallbackFunction(f);
|
2024-11-08 16:11:31 +08:00
|
|
|
|
|
|
|
|
|
unsigned char frame[10] = { 0x02, 0x01,0x00,0x00,0x00, 0x00,0xEE,0xFF,0xEE,0xFF};
|
|
|
|
|
int cnt = AppTcpClient::getInstance()->m_tcpclient->send((void*)frame,10);
|
2024-11-11 15:28:31 +08:00
|
|
|
|
hlogd("send %d bytes test echo signal, connfd=%d ...", cnt, connfd);
|
2024-11-08 16:11:31 +08:00
|
|
|
|
|
|
|
|
|
return cnt > 0 ? true : false;
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-12 14:00:37 +08:00
|
|
|
|
void MainWindow::on_pb_Logon_clicked()
|
|
|
|
|
{
|
2024-11-08 16:11:31 +08:00
|
|
|
|
if (testDatabase() && testServerEcho())
|
2024-10-12 14:00:37 +08:00
|
|
|
|
{
|
|
|
|
|
m_pMainDialog = new MainDialog();
|
|
|
|
|
m_pMainDialog->show();
|
|
|
|
|
this->close();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
QMessageBox::critical(this, tr("Critical Message"),tr("Failed to retrieve device data!"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-11 14:20:12 +08:00
|
|
|
|
|
2024-10-12 14:00:37 +08:00
|
|
|
|
void MainWindow::on_pb_Test_clicked()
|
|
|
|
|
{
|
|
|
|
|
if (testDatabase())
|
2024-11-08 16:11:31 +08:00
|
|
|
|
QMessageBox::information(this, tr("Successfully"),tr("Connect to device database successfully!"));
|
|
|
|
|
else
|
|
|
|
|
QMessageBox::critical(this, tr("Critical Message"),tr("Failed to connect to device database!"));
|
|
|
|
|
|
|
|
|
|
//测试与设备端接收服务的连接
|
|
|
|
|
if (testServerEcho())
|
|
|
|
|
QMessageBox::information(this, tr("Successfully"),tr("Connect to device data service successfully!"));
|
2024-10-12 14:00:37 +08:00
|
|
|
|
else
|
2024-11-08 16:11:31 +08:00
|
|
|
|
QMessageBox::critical(this, tr("Critical Message"),tr("Failed to connect to device data service!"));
|
2024-10-11 14:20:12 +08:00
|
|
|
|
}
|
|
|
|
|
|