no message

master
zcy 2023-10-04 23:48:12 +08:00
parent f7c5404c66
commit 8d7c5d6946
5 changed files with 47 additions and 17 deletions

View File

@ -79,20 +79,25 @@ public:
while(mRuning){ while(mRuning){
int count = 0; int count = 0;
for(int it = 0;it < mConf.size();it++) { for(int it = 0;it < mConf.size();it++) {
auto itr = mConf.at(it); auto itr = mConf.at(it);
uint16_t dat[10] = {0}; uint16_t dat[10] = {0};
if(mMod == nullptr){
mMod = modbus_new_rtu(itr->com.toStdString().c_str(), mMod = modbus_new_rtu(itr->com.toStdString().c_str(),
itr->baurate, 'N', 8, 1); //相同的端口只能同时打开一个 itr->baurate, 'N', 8, 1); //相同的端口只能同时打开一个
modbus_set_debug(mMod,true); modbus_set_debug(mMod,true);
modbus_set_slave(mMod,itr->addr); //设置modbus从机地址 modbus_set_slave(mMod,itr->addr); //设置modbus从机地址
modbus_connect(mMod); modbus_connect(mMod);
modbus_set_response_timeout(mMod,1,1000); modbus_set_response_timeout(mMod,3,0);
QThread::msleep(300); }
for(auto s = 0;s < itr->req.length();s++){ for(auto s = 0;s < itr->req.length();s++){
QThread::msleep(itr->rate*1000); QThread::msleep(itr->rate);
int ret = modbus_read_registers(mMod,itr->req[s].addr,itr->req[s].len,dat); int ret = modbus_read_registers(mMod,itr->req[s].addr,itr->req[s].len,dat);
mMux.lock(); mMux.lock();
@ -104,11 +109,14 @@ public:
log = QDateTime::currentDateTime().toString("yyyy-mm-dd hh:MM:ss ") + "接收数据:"; log = QDateTime::currentDateTime().toString("yyyy-mm-dd hh:MM:ss ") + "接收数据:";
for(int i =0;i < resp_length;i++){ for(int i =0;i < resp_length;i++){
log += QString::asprintf("0x%02x ",rsp[i]); log += QString::asprintf("0x%02x ",rsp[i]);
} }
if(ret < 0){
log += "超时";
}
emit(Info(log)); emit(Info(log));
// req_length;
bool succ = true; bool succ = true;
if(mListData.contains(itr->addr)){ if(mListData.contains(itr->addr)){
@ -139,11 +147,13 @@ public:
} }
mMux.unlock(); mMux.unlock();
} }
modbus_close(mMod);
} }
qDebug()<<"keep alive"; qDebug()<<"keep alive";
QThread::msleep(100); QThread::msleep(100);
} }
modbus_close(mMod);
// 读取2 // 读取2
} }
@ -164,7 +174,7 @@ public:
} }
QMap<int,QList<CapData *>*> mListData; QMap<int,QList<CapData *>*> mListData;
QMutex mMux; QMutex mMux;
modbus_t* mMod; modbus_t* mMod = nullptr;
bool mRuning; bool mRuning;
QList<Config*> mConf; QList<Config*> mConf;
}; };

View File

@ -92,7 +92,7 @@
</font> </font>
</property> </property>
<property name="text"> <property name="text">
<string>采样间隔(秒):</string> <string>采样间隔(秒):</string>
</property> </property>
</widget> </widget>
</item> </item>

View File

@ -44,12 +44,20 @@ SubForm::SubForm(QString addr,int baurate,int device_addr,int rate)
if(ret == 0){ if(ret == 0){
bool succ = z->succ; bool succ = z->succ;
if(this->mLines.find(z->addr) != mLines.end()){ if(this->mLines.find(z->addr) != mLines.end()){
mLines[z->addr]->append(mLines.count() + 1,z->val1[0]); static int i = 0;
qDebug()<< mLines[z->addr]->count()<<"fsdf";
mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0]));
mCapMax++;
}else{ }else{
mLines[z->addr] = new QLineSeries; mLines[z->addr] = new QLineSeries;
mChart->addSeries(mLines[z->addr]); // mChart->addSeries(mLines[z->addr]); //
mLines[z->addr]->attachAxis(mAxisX); // mLines[z->addr]->attachAxis(mAxisX); //
mLines[z->addr]->attachAxis(mAxisY); mLines[z->addr]->attachAxis(mAxisY);
mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0]));
mLines[z->addr]->setName(QString::asprintf("%d",z->addr));
mCapMax++;
} }
// mSeries1->append(sd,z->val1); // mSeries1->append(sd,z->val1);
pTime.append(QDateTime::currentDateTime().toString("yyyyMMdd-hh:mm:ss")); pTime.append(QDateTime::currentDateTime().toString("yyyyMMdd-hh:mm:ss"));
@ -85,6 +93,15 @@ SubForm::SubForm(QString addr,int baurate,int device_addr,int rate)
QPushButton *button = new QPushButton(this); QPushButton *button = new QPushButton(this);
ui->tableView->setIndexWidget(mModel->index(i,3),button); ui->tableView->setIndexWidget(mModel->index(i,3),button);
button->setText("»æͼ"); button->setText("»æͼ");
connect(button,&QPushButton::clicked,[=](){
qDebug()<<i<<mModel->item(i,0)->data(Qt::DisplayRole).toInt();
if(this->mLines[mModel->item(i,0)->data(Qt::DisplayRole).toInt()]->isVisible()){
this->mLines[mModel->item(i,0)->data(Qt::DisplayRole).toInt()]->hide();
}else{
this->mLines[mModel->item(i,0)->data(Qt::DisplayRole).toInt()]->show();
}
});
}else{ }else{
mModel->item(found->row(),0)->setData(QString("%1").arg(z->addr),Qt::DisplayRole); mModel->item(found->row(),0)->setData(QString("%1").arg(z->addr),Qt::DisplayRole);
@ -105,7 +122,7 @@ SubForm::SubForm(QString addr,int baurate,int device_addr,int rate)
delete z; delete z;
} }
}); });
pTimer->start(100); pTimer->start(10);
qDebug()<<QDateTime::currentDateTime().toString(); qDebug()<<QDateTime::currentDateTime().toString();
ui->lineEdit_2->setText(addr); ui->lineEdit_2->setText(addr);
gAsyncData->AddConfig(this->mConfig); gAsyncData->AddConfig(this->mConfig);
@ -132,7 +149,7 @@ void SubForm::on_pushButton_clicked() {
out << tr("x,") << tr("error,") << tr("speed,")<< tr("temperature,")<< out << tr("x,") << tr("error,") << tr("speed,")<< tr("temperature,")<<
tr("input volate,")<<tr("input current,")<<"motor temperature"<<"\n"; tr("input volate,")<<tr("input current,")<<"motor temperature"<<"\n";
for(int i = 0;i < p1.size();i++){ for(int i = 0;i < mCapMax;i++){
out <<pTime.at(i).toStdString().c_str()<< "," out <<pTime.at(i).toStdString().c_str()<< ","
<< p1.at(i)<< "," ; << p1.at(i)<< "," ;
out << p2.at(i)<< ","; out << p2.at(i)<< ",";
@ -217,7 +234,6 @@ void SubForm::init_charts()
mChart->legend()->setFont(font);//б mChart->legend()->setFont(font);//б
font.setPointSizeF(12); font.setPointSizeF(12);
mChart->legend()->setFont(font);//С mChart->legend()->setFont(font);//С
mChart->legend()->setFont(QFont(""));//
mChart->legend()->setLabelColor(Qt::white); // mChart->legend()->setLabelColor(Qt::white); //
} }

View File

@ -63,6 +63,7 @@ private:
QDateTime mStartTime; QDateTime mStartTime;
bool mStart; bool mStart;
QStandardItemModel *mModel; QStandardItemModel *mModel;
int mCapMax = 0;
}; };

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 5.0.2, 2023-09-27T20:46:07. --> <!-- Written by QtCreator 5.0.2, 2023-10-04T00:36:07. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>
@ -80,6 +80,9 @@
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/> <valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value> <value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="CppEditor.QuickFix">
<value type="bool" key="UseGlobalSettings">true</value>
</valuemap>
</valuemap> </valuemap>
</data> </data>
<data> <data>