黄成君,孟利民,司徒涨勇
(浙江省通信网应用技术研究重点实验室,浙江杭州310023)
通信领域的实验课程在各综合性高校都普遍存在,而传统的学生进入实验室操作,教师在现场指导的模式虽实用却灵活性不够,且不能满足日益扩大的实验规模。国内外对远程实验管理方面的研究也有许多实际的成果,这些成果更多地是对实验室实验设备的控制和管理。而本系统是共享式实验管理系统,主要实现对学生实验操作本身的追踪和结果捕获。学生可在寝室或者实验室进行嵌入式实验的操作,学生端软件通过MSComm控件与实验设备通信[1],通过SIP协议与教师端软件交互[2]。学生在开始实验、操作实验以及提交实验时会发送相应的消息给教师客户端,用于教师客户端对学生实验状况的追踪及最后结果的获取。
本项目可分为学生实验端、服务器端以及教师控制端3大部分。学生实验端可分为嵌入式实验设备和学生控制软件,前者是实验承载体,是真正负责完成实验的主体;后者集成串口通信功能,控制实验设备的同时,根据实验进展把实验状态传送给教师控制端。服务器为信令服务器,负责SIP消息的控制和转发,即负责学生端软件和教师端软件的信息交互。教师控制端人性化的界面实现实验状态显示。本系统由于需要存储学生信息,学生实验等信息,需要使用数据库,这里采用MySql数据库和客户端交互。整个系统的设计方案如图1所示:
图1 系统方案设计图
学生控制软件采用VS2005软件,C++程序语言,基于对话框架构实现[3]。软件集成串口通信功能,这样,学生可直接通过该软件和嵌入式实验板进行交互,操作实验。当学生开始实验时,发送开始消息给教师端,该信息包括学号、实验名、班级等。实验过程中,软件会记录实验板回复过来的所有信息,然后记录到日志文件中。当实验结束时,学生提交实验,此时,该实验预存在数据库中的关键句会和保存的日志文件进行比对,以获取学生实验的完成状况。教师端软件收到实验完成状况后,保存到对应的学生和实验数据表中。基于这些功能,软件需要有输入、显示、开始实验、提交实验、学号以及实验名等模块。串口通信是该软件中一项非常重要的功能,它采用Window XP提供的MSComm控件实现,该控件封装在MSComm32.OCX文件中。
教师控制软件的实现采用VS2005软件,C++程序语言,基于MFC的单文档架构[4]。界面主要分为4部分:菜单栏、工具栏、树视图和Form视图。其中菜单栏为自绘菜单,由一个CMyCoolMenu类实现,该类继承自Cmenu类。工具栏为扩展工具栏,加载了自己的图标,每个按钮对应菜单栏中的一个选项,触发相应的操作,如视频监控、密码修改、班级管理、实验管理以及完成情况等。班级管理和实验管理,用于事先存入班级、学生、实验名、实验对应的关键句等,这样系统在运行的时候就可以调用这些信息;密码修改用于修改用户登录服务器的密码,采用SHA1加密;视频监控实现远程有线或无线视频监控。树视图显示在线与不在线的实验人员,并可对每个节点进行一系列的操作。Form视图则用图标实现每个实验人员的状态显示,每个图标为一个小人,不同状态图标会相应改变,鼠标移动到图标上则可显示相应的学生信息。
本系统学生端软件和教师端软件都需要用到数据库,鉴于Mysql数据库轻量化、操作便捷、查询功能强大等优点,采用VS2005软件连接Mysql的方式[5]。由于系统是进行远程操作的,数据库需要安装在远程服务器上,该项目将数据库安装在Linux服务器上。VS2005连接远程数据库有一个非常重要的注意点,就是不同IP的主机在访问数据库时,需要进行数据库配置,给这些IP地址设置访问权限,否则无法连接到数据库。可以指定某个IP,也可以允许所有的IP访问。本系统供创建了3张表,分别为班级表、实验表、成绩登记表。班级表用于存放学生的学号、班级名、姓名、性别等;实验表用于存放实验名以及每个实验的关键句;成绩登记表用于存放学生实验的完成状况。数据库ER图如图2所示:
图2 数据库ER图
交叉编译实验的目的是让学生完成交叉编译环境的搭建并设计小程序验证。首先用SSH客户端登录服务器,解压交叉编译环境软件包,然后将交叉编译环境的路径增加到系统路径中。完成环境搭建后,写一个hello world的测试程序,并生成二进制的可执行文件hello。然后打开学生端软件,输入班级、学号、实验名,点击开始实验,这样教师端就能显示实验状态。然后连接实验设备,即可用相应的指令操控实验设备。把实验设备挂载到服务器上,运行刚才生成的可执行文件hello。这样,整个实验就完成了,然后点击提交实验按钮,后台程序就会提取数据库中该实验对应的关键句和串口返回的内容进行比对,把比对的结果发送给教师客户端并存储随即结束实验。学生端和教师端软件界面分别如图2、3所示:
图2 学生端软件
图3 教师端软件
经过测试,学生控制软件能很好地和实验设备交互,也能通过服务器把实验信息顺利地传递给教师控制软件,教师控制软件能够方便地显示各个不同的在线学生的状态。但是数据库是远程的,在网络状况不佳的时候会出现数据库操作迟滞的现象,总体来说该系统还是带来了很多便捷性。
[1] 王建川.利用MSComm控件实现与GPS接收器的串口通讯[J].科学技术与工程,2006,6(19):3 204-3 206.
[2] 黄伦文.基于SIP协议的网络视频监控系统的设计与实现[J].电脑知识与技术,2010,6(1):74-76.
[3] 孙鑫.Visual C++深入详解[M].北京:电子工业出版社,2007:63-99,219-307.
[4] 明日科技.Visual C++项目开发实例[M].北京:人民邮电出版社,2008:80-120.
[5] 袁渊.MySql数据库接口的VC实现和应用[J].江苏科技大学学报,2002,16(5):41-45.