首先,简单地说一下本次实训的主要项目内容。项目使用PC机作为上位机,实现平台为VM下linux中ubuntu版本,下位机是使用华清远见研发中心 FS4412开发板。主体功能是:一、实现开发板外设摄像头拍照功能,二、开发板外接ZigBee协调器读取m0终端的环境数据,三,通过串口控制mo终端的外设。其中将得到的视频信息及环境数据显示在客户端,客户端使用qt开发,服务端运行在开发板上,二者通过TCP协议进行网络通信。可实现多线程通信,但服务器尚且不能并行访问。主体功能大致实现,但代码中存在一些尚未解决的问题可能影响实际效果,仅供参考。
客户端项目代码如下:
QT客户端部分代码
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QWidget>
#include <QLineEdit>
#include <QPushButton>
#include <QTcpSocket>
#include <QLabel>
#include <QGridLayout>
#include <QThread>
#include <qdebug.h>
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
public slots:
void send_pic_one(void)
{
sock1->connectToHost(le_hostip->text().toStdString().c_str(),le_port->text().toInt());
connect(sock1, SIGNAL(connected()), this, SLOT(send_pic_two()));
qDebug()<<" connect success! ";
}
void send_pic_two(void)
{
char buf[20]="start";
sock1->write(buf,sizeof buf);
qDebug()<<" request success! ";
}
void send_tempdata_one(void)
{
sock2->connectToHost(le_hostip->text().toStdString().c_str(),le_port->text().toInt());
connect(sock2, SIGNAL(connected()), this, SLOT(send_tempdata_two()));
qDeb