Qt之开发板和电脑通过网线通信

tech2025-09-14  9

一、简介

现在有一个需求,不能联网的机器端想要与pc端的qt程序通信,所以在中间添加了一块转接板。

工作模式:机器端串口通信转接板,转接板wifi通信pc端(内网模式下)

那么在你出厂的时候,转接板肯定是不知道你工作环境的wifi账号和密码的,此时你可以:

1、机器端设置wifi的账号和密码以及pc的ip,不做介绍

2、转接板和pc端通过网线直连,pc端设置静态ip(与转接板出厂默认的处于同一网关),此时可以通过socket通信

pc端设置静态ip和恢复动态ip的链接点击此处

二、确定通信建立

2.1、转接板端:开机默认状态:

2.2、pc端:设置的静态ip,有线连接选择 以太网

2.3、查看是否设置成功

2.4、测试,pc端ping转接端ip pc端使用ping 192.168.1.136

2.5、此时在无网络情况下,通过网线直接pc端和转接板端已经可以ping通,接下来就是简单的客户端和服务端通信即可

三、代码实现

3.1、转接板端:用的是部分代码,主要是思路

/* 新建了一个线程专门等待有线接口 */ factoryConfig::factoryConfig(QObject *parent):QThread(parent) { /* fix host ip */ hostAddress = "192.168.1.135"; tcpSocket = NULL; } void factoryConfig::run() { QFile f("/sys/class/net/eth0/carrier"); while(1){ if(f.open(QIODevice::ReadOnly|QIODevice::Text)){ QByteArray ba = f.read(1); /* wired connect success!!! */ if(!ba.isEmpty() && ba.toInt()){ if(tcpSocket == NULL){ tcpSocket = new QTcpSocket; } tcpSocket->connectToHost(hostAddress,8888); sleep(3); } f.close(); } tcpSocket->disconnectFromHost(); delete tcpSocket; tcpSocket = NULL; } }

3.2、运行之前链接中所说的pc端设置静态ip和恢复动态ip软件,观看打印数据即可

3.3、剩下的就只是写和读了

 

 

 

最新回复(0)