简介
接着第一个写!!!!!!!!
QT与协调器的通信方法
再没有云端的情况下,如何实现QT和协调器的通信。这就需要另外一个网络协议TCP/IP 协议,本次我们使用的主要是其中的一个C/S架构,就是主从模式,详细来说就是一个作为客户端发送数据另外一个作为服务器监听客户端发送的数据,理解不了的参考QT的基础学习笔记(三)。
WiFi模块
本次使用的还是一个关于AT指令的WiFi模块,具体指令可以借鉴手册或者百度。
QT部分
由于本人比较喜爱QT这个软件,所以现在基本的上位机和显示就都是QT。
主函数代码
Start::Start(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Start)
{
ui->setupUi(this);
//设置基础界面
time.start(1);
connect(&time,&QTimer::timeout,[=](){setInterface();});
//绑定按钮事件
bindPushbutton();
server.listen(QHostAddress::AnyIPv4,5250);
connect(&server,&QTcpServer::newConnection,this,[=](){
qDebug()<<"客户端连接成功";
socket = server.nextPendingConnection();
connect(socket,&QTcpSocket::readyRead,this,&Start::tcpRead);
});
setWindowFlags(Qt::FramelessWindowHint);
this->setAutoFillBackground(true);
QPalette palette;
//palette.setColor(QPalette::Background, QColor(0,0,0));
QPixmap pix_img;
pix_img.load(":/Start/start.png");
pix_img = pix_img.scaled(900, 1080,Qt::IgnoreAspectRatio);
palette.setBrush(QPalette::Background, QBrush(pix_img));
this->setPalette(palette);
}
void Start::tcpRead()
{
//读取消息
qDebug()<< "接收消息";
QByteArray data = socket->readAll(); //将接收的数据放进一个数组
}
界面代码
preset::preset(QList<drugBox *> *box,QTcpSocket *socket2,QWidget *parent) :
QWidget(parent),
ui(new Ui::preset)
{
ui->setupUi(this);
setWindowFlags(Qt::FramelessWindowHint);
this->setAutoFillBackground(true);
QPalette palette;
//palette.setColor(QPalette::Background, QColor(0,0,0));
QPixmap pix_img;
pix_img.load(":/Start/preset.png");
pix_img = pix_img.scaled(1080, 2430,Qt::IgnoreAspectRatio);
palette.setBrush(QPalette::Background, QBrush(pix_img));
this->setPalette(palette);
this->socket = socket2;
addDrugBox = box->at(0);
time1.start(1);
connect(ui->ok,&QPushButton::clicked,this,&preset::btnOk1);
//connect(ui->cancle,&QPushButton::clicked,[=](){this->;});
connect(&time1,&QTimer::timeout,[=](){
ui->tempnum_1->setText(QString::number(addDrugBox->temp));
ui->huminum_1->setText(QString::number(addDrugBox->hum));
ui->pretem_1->setText(QString::number(addDrugBox->Prehumi));
ui->prehumi_1->setText(QString::number(addDrugBox->Pretemp));
});
}
这部分不理解 请参考QT基础笔记三部曲:
QT的基础学习笔记(一)
QT的基础学习笔记(二)
QT的基础学习笔记(三)
有问题评论或私信 讨论群985432073