value=chang_list>""
""<input type=submit n AME =action
value=更新文字>"" ""<TEXTAREA
name=up_txtcols=30rows=8wrap="">
</TEXTAREA>"" ""</form>""
用户通过Qt控制页面添加更新的文字内容,点击更新字幕按钮会触发改变字幕的CGI例程。qt_change_list.cgi例程将创建从本地到显示开发板上的TCP Socket Server 端的TCP套接字连接,并将控制命令“更新文字”与文字内容一起上传到TCP Socket Server端服务器。
广告机控制命令的控制表单部分设计如下:
对于单纯的控制命令,广告机终端的设计比较简单,对于每一种控制命令均对应有不同的CGI例程和命令宏定义,每个例程将对应的控制命令通过Socket 上传就可以实现。
""<form action=***_ctl_cmd.cgi method=post>""
""<input type=hidden name=order value=start>""
""<input type=submit name=action
value=控制命令>""
上传文件关键表单部分设计:
""<form action=add_***.cgi method=post>""
""<input name=filename type=FILE
size=25 maxlength=100>""
""<input type=submit name=action value=***>""
文件上传将根据Qt图片和视频文件的不同调用相应的上传例程。这里除了要将图片或者视频文件上传到开发板显示终端外,还要向服务器监控中心的Sqlite3 数据库中添加相应的资源信息和状态信息,根据前面数据库对不同媒体类别的设计属性域添加相应的相关信息,以便后续的插入、排序、删除和更新操作。其中,使用多线程传输模型设计上传程序my_scp实现对较大视频和图片文件的快速传输,关于多线程编程见参考文献[7]。上传文件的部分代码如下所示:
sqlite3_mprintf( ); //向数据库中添加相关信息
sqlite3_exec( ); //向数据库中添加上传记录
3.4 监控终端
为了提升安全性能,需要设置用户密码功能。管理员通过用户名和密码的匹配输入后,就可以获得广告机的控制权限。根据广告机媒体类型的不同,分别设计了Qt控制页面、Mplayer控制页面和文件更新控制页面。通过控制不同的控制页面,即可控制广告机的不同媒体播放操作。
4 结语
本项目设计使用Linux开源系统和软件工具集,构建了基于嵌入式多网络节点、性能优越的广告机系统,最终获得了满意的效果。本系统的设计不但涵盖了Linux系统开发的软件和硬件技术,也涵盖了嵌入式产品设计的各种综合素质和多项技能,具有一定的实用价值。