Comment puis-je voir et stocker les données de l'appareil dans QT?
mon ui avec qt.
ce que je veux.
Je suis en communication série qt avec mon appareil. Je fais un ui et je peux connecter mon appareil en utilisant ui. Je veux obtenir un journal de données de l'appareil et afficher en qt en utilisant QTimer.
comment puis-je le faire? et veulent également enregistrer des données dans un fichier csv.
s'il vous plaît aidez-moi et laissez-moi savoir comment puis-je résoudre le problème
ci-dessous est mon code.
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtSerialPort/QSerialPort>
#include <QSerialPortInfo>
#include <QMessageBox>
#include <QObject>
#include <QIODevice>
#include <QDebug>
#include <QPlainTextEdit>
#include <QDateTime>
QSerialPort serial;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
mSerialport{new QSerialPort}
{
ui->setupUi(this);
connect(this->mSerialport,SIGNAL(readyRead()),
this,SLOT(readSerialData()));
connect(ui->pushButton_send,
&QPushButton::clicked, [=](){
sendMsg(ui->textEdit->toPlainText());
});
}
MainWindow::~MainWindow()
{
delete mSerialport;
delete ui;
}
void MainWindow::on_pushButton_connect_clicked()
{
mSerialport->setPortName("/dev/ttyUSB0");
mSerialport->setBaudRate(QSerialPort::Baud9600);
mSerialport->setDataBits(QSerialPort::Data8);
mSerialport->setParity(QSerialPort::NoParity);
mSerialport->setStopBits(QSerialPort::OneStop);
mSerialport->setFlowControl(QSerialPort::NoFlowControl);
if (mSerialport->open(QIODevice::ReadWrite))
{ QMessageBox::information(this,tr("connect"),
"serialcommunication start");
}
else {
QMessageBox::information(this,tr("fail"),
mSerialport->errorString());
}
}
void MainWindow::on_pushButton_disconnect_clicked()
{
QMessageBox::information(this, tr("disconnect"),
"serial communication end");
mSerialport->close();
}
void MainWindow::sendMsg(const QString &msg)
{
QString str = msg;
str.append("\n");
this->mSerialport->write(str.toLatin1());
ui->comLog->insertPlainText(QDateTime::currentDateTime().
toString("yyyy-MM-dd hh:mm:ss") + " [send] " + msg + "\n");
}
void MainWindow::recvMsg(){
QByteArray msg = this->mSerialport->readAll();
ui->comLog->insertPlainText(QDateTime::currentDateTime().
toString("yyyy-MM-dd hh:mm:ss") + " [recieve] " + msg.toHex().
data() + "\n");
}
Quel est votre problème réel? Lecture de l'appareil? En utilisant QTimer? Afficher les données? Veuillez éviter d'inclure des informations inutiles. Voir [demander]. – m7913d