diff --git a/global.h b/global.h index c8c55da..49f04fd 100644 --- a/global.h +++ b/global.h @@ -11,6 +11,13 @@ extern "C"{ #include "libmodbus/modbus.h" } + +#if defined(_MSC_VER) && (_MSC_VER >= 1600) +# pragma execution_character_set("utf-8") +#endif + + + typedef struct { int addr; uint16_t *val1; @@ -85,10 +92,23 @@ public: QThread::msleep(300); for(auto s = 0;s < itr->req.length();s++){ - QThread::msleep(1000); + QThread::msleep(itr->rate*1000); int ret = modbus_read_registers(mMod,itr->req[s].addr,itr->req[s].len,dat); mMux.lock(); + QString log = QDateTime::currentDateTime().toString("yyyy-mm-dd hh:MM:ss ") + "发送数据:"; + for(int i =0;i < req_length;i++){ + log += QString::asprintf("0x%02x ",req[i]); + } + emit(Info(log)); + + + log = QDateTime::currentDateTime().toString("yyyy-mm-dd hh:MM:ss ") + "接收数据:"; + for(int i =0;i < resp_length;i++){ + log += QString::asprintf("0x%02x ",rsp[i]); + } + emit(Info(log)); +// req_length; bool succ = true; if(mListData.contains(itr->addr)){ diff --git a/mainwindow.cpp b/mainwindow.cpp index bae4659..69574b8 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -75,7 +75,8 @@ void MainWindow::on_pushButton_3_clicked() } SubForm *p1 = new SubForm(ui->comboBox_2->currentText(), ui->comboBox->currentText().toInt(), - ui->lineEdit_2->text().toInt()); + ui->lineEdit_2->text().toInt(), + ui->lineEdit_3->text().toInt()); qDebug()<lineEdit_2->text(); ui->tabWidget->addTab((QWidget*)p1,"address:" + ui->lineEdit_2->text()); this->mForms[ui->lineEdit_2->text()] = p1; diff --git a/mainwindow.ui b/mainwindow.ui index dfa56ba..5955689 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -33,6 +33,7 @@ + Arial 12 diff --git a/subform.cpp b/subform.cpp index 795ac83..9e99255 100644 --- a/subform.cpp +++ b/subform.cpp @@ -15,7 +15,7 @@ #endif -SubForm::SubForm(QString addr,int baurate,int device_addr) +SubForm::SubForm(QString addr,int baurate,int device_addr,int rate) :ui(new Ui::Form) { ui->setupUi(this); @@ -32,6 +32,7 @@ SubForm::SubForm(QString addr,int baurate,int device_addr) mConfig->addr = device_addr; mConfig->com = *com; mConfig->baurate = baurate; + mConfig->rate = rate; connect(pTimer,&QTimer::timeout,[=]() { static float sd = 0; @@ -109,6 +110,7 @@ SubForm::SubForm(QString addr,int baurate,int device_addr) ui->lineEdit_2->setText(addr); gAsyncData->AddConfig(this->mConfig); ui->tableView->setColumnWidth(2,230); + connect(gAsyncData,SIGNAL(Info(QString)),this,SLOT( on_log(QString))); } void SubForm::on_pushButton_clicked() { @@ -234,6 +236,12 @@ void SubForm::on_pushButton_2_clicked() { mConfig->req.append(Req{ ui->lineEdit->text().toUShort(), ui->lineEdit_3->text().toUShort(), - }); + }); +} + +void SubForm::on_log(QString info) +{ + qDebug()<textEdit->append(info + "\r\n"); } diff --git a/subform.h b/subform.h index 267bf2c..7e9fd78 100644 --- a/subform.h +++ b/subform.h @@ -26,7 +26,7 @@ class SubForm :QWidget { Q_OBJECT public: - SubForm(QString,int baurate,int device_addr); + SubForm(QString,int baurate,int device_addr,int rate); void init_charts(); private slots: @@ -36,6 +36,8 @@ private slots: void on_pushButton_2_clicked(); + void on_log(QString); + private: Ui::Form *ui; QChart *mChart;