新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 3 G网络的移动机器人远程监控系统

3 G网络的移动机器人远程监控系统

作者:时间:2013-04-23来源:网络收藏

视频数据传输通过Socket实现,且直接在服务器设备端与Web客户端之间进行传输,通过视频流服务器实现对视频的开关控制。由于视频传输是连续的过程,所以客户端和服务器端都通过线程来实现发送与接收。接收线程由函数pthread_create((servers[id].threadID),NULL,server thread,&(servers[id]))创建。
视频的采集和传输是在两个线程中实现的,它们共享一个缓冲池。这两个线程都是在视频采集服务器端的程序启动时创建并运行的。其中采集视频图像的线程不断通过摄像头采集现场图像,经过JPEG压缩后存放到缓冲池中,而传输视频数据的线程创建一个Socket来监听等待远程客户的连接请求。当有客户发送连接请求并建立连接后,就通过该连接向远程客户发送视频数据,而发送的视频数据就是从缓冲池中获取的。也就是说,在视频采集服务器端,视频数据传输所需要的一切都已经准备好,就等着客户的请求,一旦建立连接,就可以发送视频数据,从而实现较快的速度和较高的效率。
视频采集和传输的工作流程图如图2所示。

本文引用地址:http://www.eepw.com.cn/article/148051.htm

b.JPG


2.2 远程控制的实现
为了监控界面能被通用浏览器打开,需要移植Web服务器Boa。Boa服务器是一款小型开源的嵌入式Web服务器,交叉编译后的可执行代码大小约为60 KB,在3.0.1内核下运行时占用的内存大小约为1.7 MB。其功能较为强大,支持身份认证、动态Web技术等。它不像传统的Web服务器那样为每个访问连接开启一个进程,只能依次完成用户的请求,即单进程响应多路请求,因此,Boa在同等硬件条件下相对于其他Web服务器表现出更快的速度,节省更多的资源。
通用网关接口()是用于Web服务器与外部应用程序之间信息交互的标准接口。可以使外部程序处理客户端传来的表单和数据,并对此作出某种反应。这种反应可以是HTML文件、图片等可以在浏览器窗体上出现的任何数据,也可以是对服务器端硬件资源的控制。
调用CGI程序的方法主要有两种:
①GET方法,CGI程序从环境变量QUERY_STRING中获得数据;
②POST方法,Web服务器通过STDIN向CGI程序传输数据,数据量超过1024字节时采用此方法。
本系统采用GET方法。
在串口应用程序中,数据的获取通过以下代码实现:
……
char*data;
data=getenv(“QUERY STRING”);
……

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


关键词: 机器人 3G Linux CGI Ajax

评论


相关推荐

技术专区

关闭