最近在6410ARM板子上做了一个基于视频传输的WIFI小车,视频的采集、传输、小车的控制全在主线程内完成的,在实验小车时发现存在失控现象,所有在QT的现有程序中改写,把socket小车控制部分单独开了一个线程,发现小车运行的效果好多了。
在工程中添加C++类,myThread,继承与QThread,在myThread类中重新实现run()函数。一下是代码的简单实现。
#ifndef MYTHREAD_H
#define MYTHREAD_H
#include <QThread>
#include <QTcpServer>
#include <QTcpSocket>
class myThread : public QThread
{
Q_OBJECT
public:
explicit myThread(QObject *parent = 0);
protected:
void run();
signals:
private:
//server
QTcpServer *server;
QTcpSocket *clientConnection;
QByteArray recbuf;
//QTimer *timerSer;
char *buf;
int fd;
int reclen;
public slots:
private slots:
void acceptConnection();
void readClient();
};
#endif // MYTHREAD_H
#include "mythread.h"
#include <string.h>
#include <stdio.h>
#include <sys/types.h>
#inclu