no message
parent
f7c5404c66
commit
8d7c5d6946
22
global.h
22
global.h
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
|
@ -92,7 +92,7 @@
|
||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>采样间隔(秒):</string>
|
<string>采样间隔(毫秒):</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
24
subform.cpp
24
subform.cpp
|
@ -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); //
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,6 +63,7 @@ private:
|
||||||
QDateTime mStartTime;
|
QDateTime mStartTime;
|
||||||
bool mStart;
|
bool mStart;
|
||||||
QStandardItemModel *mModel;
|
QStandardItemModel *mModel;
|
||||||
|
int mCapMax = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in New Issue