From 8dac734ed669c6ccc38c0787669c6f47212ababc Mon Sep 17 00:00:00 2001 From: dev Date: Fri, 29 Mar 2024 12:56:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=B8=80=E4=B8=AABUG?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E7=9A=84Qt=E6=9B=B4=E6=96=B0=E5=90=8E?= =?UTF-8?q?=EF=BC=8Ctemplate=E6=96=87=E4=BB=B6=E5=A4=B9=E8=8B=B1=E4=B9=9F?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E6=9B=B4=E6=96=B0=E3=80=82=E8=BF=99=E9=87=8C?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E4=B8=BA=E5=85=B6=E5=87=86=E5=A4=87=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E3=80=82=20=E5=90=8C=E6=97=B6=E6=B5=8B=E8=AF=95tcp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/sensors2pc/dlgstp.cpp | 66 ++++++++++++++++++++++---- android/sensors2pc/dlgstp.h | 4 ++ android/sensors2pc/dlgstp.ui | 89 +++++++++++++++++++++++++---------- 3 files changed, 123 insertions(+), 36 deletions(-) diff --git a/android/sensors2pc/dlgstp.cpp b/android/sensors2pc/dlgstp.cpp index 74a458f..5d749ba 100644 --- a/android/sensors2pc/dlgstp.cpp +++ b/android/sensors2pc/dlgstp.cpp @@ -3,12 +3,14 @@ #include #include #include +#include #define MAX_ROWS_LSTV 256 DlgSTP::DlgSTP(QWidget *parent) : QDialog(parent) , ui(new Ui::DlgSTP) , m_pMsgMod(new QStandardItemModel(this)) , m_psock(new QUdpSocket(this)) + , m_pstream(new QTcpSocket(this)) { ui->setupUi(this); ui->listView_msg->setModel(m_pMsgMod); @@ -40,12 +42,36 @@ void DlgSTP::timerEvent(QTimerEvent * evt) //Call Update functions foreach(auto fn, m_sensorUpdaters) fn(); - //Send Current Data - QHostAddress addr (ui->lineEdit_ip->text()); - int port = ui->spinBox_port->value(); - foreach(QString i, m_listInfo) - m_psock->writeDatagram(i.toLocal8Bit(),addr,port); - m_nTotalSent += m_listInfo.size(); + if (ui->checkBox_udp->isChecked()) + { + //Send Current Data + QHostAddress addr (ui->lineEdit_ip_udp->text()); + int port = ui->spinBox_port_udp->value(); + foreach(QString i, m_listInfo) + m_psock->writeDatagram(i.toLocal8Bit(),addr,port); + m_nTotalSent += m_listInfo.size(); + } + if (ui->checkBox_tcp->isChecked()) + { + if (m_pstream->state()==QTcpSocket::ConnectedState) + { + QTextStream stm(m_pstream); + stm<<"\n======\n"; + stm<state()==QTcpSocket::UnconnectedState) + { + m_pstream->connectToHost(QHostAddress(ui->lineEdit_ip_tcp->text()),ui->spinBox_port_tcp->value()); + } + + } + m_listInfo.clear(); if (m_clk % updateGUI==0) { @@ -184,18 +210,26 @@ void DlgSTP::on_pushButton_right_clicked() void DlgSTP::loadSettings() { QSettings settings("ColoredEagleStudio","sensor2pc"); - ui->lineEdit_ip->setText(settings.value("ui/lineEdit_ip",ui->lineEdit_ip->text()).toString()); - ui->spinBox_port->setValue(settings.value("ui/spinBox_port",ui->spinBox_port->value()).toInt()); + ui->lineEdit_ip_udp->setText(settings.value("ui/lineEdit_ip_udp",ui->lineEdit_ip_udp->text()).toString()); + ui->spinBox_port_udp->setValue(settings.value("ui/spinBox_port_udp",ui->spinBox_port_udp->value()).toInt()); + ui->lineEdit_ip_udp->setText(settings.value("ui/lineEdit_ip_tcp",ui->lineEdit_ip_tcp->text()).toString()); + ui->spinBox_port_udp->setValue(settings.value("ui/spinBox_port_tcp",ui->spinBox_port_tcp->value()).toInt()); ui->horizontalSlider_freq->setValue(settings.value("ui/horizontalSlider_freq",ui->horizontalSlider_freq->value()).toInt()); ui->horizontalSlider_gps->setValue(settings.value("ui/horizontalSlider_gps",ui->horizontalSlider_gps->value()).toInt()); + ui->checkBox_tcp->setChecked(settings.value("ui/checkBox_tcp",ui->checkBox_tcp->isChecked()).toBool()); + ui->checkBox_udp->setChecked(settings.value("ui/checkBox_udp",ui->checkBox_udp->isChecked()).toBool()); } void DlgSTP::saveSettings() { QSettings settings("ColoredEagleStudio","sensor2pc"); - settings.setValue("ui/lineEdit_ip",ui->lineEdit_ip->text()); - settings.setValue("ui/spinBox_port",ui->spinBox_port->value()); + settings.setValue("ui/lineEdit_ip_udp",ui->lineEdit_ip_udp->text()); + settings.setValue("ui/spinBox_port_udp",ui->spinBox_port_udp->value()); + settings.setValue("ui/lineEdit_ip_tcp",ui->lineEdit_ip_udp->text()); + settings.setValue("ui/spinBox_port_tcp",ui->spinBox_port_udp->value()); settings.setValue("ui/horizontalSlider_freq",ui->horizontalSlider_freq->value()); settings.setValue("ui/horizontalSlider_gps",ui->horizontalSlider_gps->value()); + settings.setValue("ui/checkBox_tcp",ui->checkBox_tcp->isChecked()); + settings.setValue("ui/checkBox_udp",ui->checkBox_udp->isChecked()); } void DlgSTP::on_horizontalSlider_gps_valueChanged(int value) { @@ -209,3 +243,15 @@ void DlgSTP::on_tabWidget_currentChanged(int index) saveSettings(); } + +void DlgSTP::on_checkBox_udp_clicked(bool checked) +{ + saveSettings(); +} + + +void DlgSTP::on_checkBox_tcp_clicked(bool checked) +{ + saveSettings(); +} + diff --git a/android/sensors2pc/dlgstp.h b/android/sensors2pc/dlgstp.h index 74184f8..2d08293 100644 --- a/android/sensors2pc/dlgstp.h +++ b/android/sensors2pc/dlgstp.h @@ -5,6 +5,7 @@ #include #include #include +#include #include #include QT_BEGIN_NAMESPACE @@ -39,11 +40,14 @@ protected: protected: //Net Send QUdpSocket * m_psock = 0; + QTcpSocket * m_pstream = 0; QStringList m_listInfo; private slots: void on_pushButton_left_clicked(); void on_pushButton_right_clicked(); void on_horizontalSlider_gps_valueChanged(int value); void on_tabWidget_currentChanged(int index); + void on_checkBox_udp_clicked(bool checked); + void on_checkBox_tcp_clicked(bool checked); }; #endif // DLGSTP_H diff --git a/android/sensors2pc/dlgstp.ui b/android/sensors2pc/dlgstp.ui index 788c455..695a77c 100644 --- a/android/sensors2pc/dlgstp.ui +++ b/android/sensors2pc/dlgstp.ui @@ -126,14 +126,14 @@ color: rgb(0, 0, 0); - UDP + Network Qt::AlignCenter - - + + 1025 @@ -141,12 +141,33 @@ color: rgb(0, 0, 0); 65536 - 3500 + 12345 - - + + + + Sensor Update Interval + + + + + + + TCP + + + + + + + UDP + + + + + 1 @@ -176,31 +197,17 @@ color: rgb(0, 0, 0); - + GPS Update Interval - - - - Destin Address - - - - - - - Sensor Update Interval - - - - - + + - 192.168.45.229 + 127.0.0.1 Qt::AlignCenter @@ -214,8 +221,8 @@ color: rgb(0, 0, 0); - - + + 1 @@ -245,6 +252,36 @@ color: rgb(0, 0, 0); + + + + 127.0.0.1 + + + Qt::AlignCenter + + + + + + + Destin Port + + + + + + + 1025 + + + 65536 + + + 12345 + + + -- GitLab