基于Python的多媒体教室管理系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第21卷第2期㊀㊀㊀㊀㊀㊀㊀㊀㊀重庆科技学院学报(自然科学版)2019年4月

基于Python的多媒体教室管理系统设计

张喜红㊀王玉香

(亳州职业技术学院ꎬ安徽亳州236800)

收稿日期:2018-12-18

基金项目:国家骨干高等职业院校重点建设专业 医疗器械维护与管理专业 (XM-01)ꎻ2018年安徽省高等学校质量工程项

目 大规模在线开放课程 单片机原理及应用(MOOC) (2018MOOC104)ꎻ亳州职业技术学院 临床检验仪器 精品课程建设项目(2017BZJPKC08)ꎻ亳州职业技术学院 计算机控制技术 精品课程建设项目(2017BZJPKC10)

作者简介:张喜红(1983 )ꎬ男ꎬ硕士ꎬ讲师ꎬ研究方向为计算机应用技术ꎮ

摘㊀要:为了延长多媒体教室设备使用寿命ꎬ减少教室管理员的工作量ꎬ将一台总控计算机和多台教室计算机组建在同一局域网内ꎬ并基于Python语言设计了一套多媒体教室管理系统ꎮ启动该系统后ꎬ总控计算机将依照Excel文件中预设的时间节点唤醒各教室计算机ꎬ教室计算机则按照Excel文件中的课表安排通过串口按时完成开关投影机的工作ꎮ在实际测试中ꎬ系统运行稳定ꎬ使用成本低ꎬ布线施工难度不高ꎮ关键词:教室管理ꎻPythonꎻ投影机ꎻ串口ꎻ网络唤醒中图分类号:TN791

文献标识码:A

文章编号:1673-1980(2019)02-0075-04

㊀㊀随着计算机技术的发展ꎬ多媒体教室的应用逐渐普及[1]ꎮ计算机㊁投影机是学校多媒体教室必备的基础性硬件设备ꎬ这类设备大多使用寿命有限㊁配件价格较高ꎮ如ꎬ普通投影机灯泡的使用寿命仅4000h左右ꎬ激光投影机灯泡的使用寿命仅20000h左右ꎬ且使用时若操作不当极易导致灯泡损坏[2]ꎮ

在学校多媒体教室设备日常管理中ꎬ规范使用ꎬ按需开关机ꎬ有助于延长设备使用寿命ꎮ目前ꎬ大多学校采用多媒体教室外配专属中控设备的方式来实现统一管理ꎮ亳州职业技术学院即采用此种方式在实际使用当中发现存在以下问题:中控设备的配置增加了建设成本ꎻ中控设备的接入增加了系统施工㊁布线的复杂程度ꎻ后期维修㊁维护相对困难ꎮ为了避免这些问题ꎬ我们基于Python语言重新设计了一套多媒体教室管理系统ꎮPython语言具有模块丰富㊁语法简洁㊁跨平台性能较好等优势[3]ꎬ因此基于Python的系统稳定性良好ꎬ使用成本不高ꎮ

1㊀系统硬件及工作流程

1.1㊀系统硬件组成

多媒体教室管理系统的硬件由总控计算机㊁路由器㊁各教室计算机㊁投影机等组成(见图1)ꎮ教室的多媒体设备包括教室计算机和投影机ꎬ各教室计算机支持网卡唤醒启动ꎬ教室计算机与投影机之

间通过RS232串行总线连接ꎬ教室计算机可通过串行总线向投影机发送控制指令ꎬ最终实现投影机的开启与关闭ꎮ每台教室计算机和总控计算机通过路由器连接ꎬ形成局域网

图1 多媒体教室管理系统硬件组成结构

1.2㊀系统工作流程设计

开始管理系统设计之前ꎬ首先需确定以下问题:

(1)采用什么方式控制各教室计算机的自动开启和

关闭ꎻ(2)确定课表分析功能是由教室计算机实现ꎬ还是由总控计算机实现ꎻ(3)如何控制投影机按需㊁按时完成开启和关闭等操作ꎮ

现有管理方式是通过外配中控硬件来实现教室计算机的自动开启和关闭等操作ꎮ对于教室计算机ꎬ是通过断电器联接计算机电源开机触发线实现计算机的开关机控制ꎬ长期使用对硬件的损伤较大ꎮ

57

对于投影机ꎬ是通过单片机模块的串口通信实现控制ꎬ且大多采用无应答检查控制方式ꎬ可靠性低ꎮ因此ꎬ省去中控设备ꎬ并实现自动控制是系统改造的重点工作ꎮ

当前各教室计算机支持网卡唤醒功能ꎬ因此ꎬ在不额外增加设备的情况下ꎬ各教室计算机的开机操作可通过网卡远程唤醒来实现ꎮ如果由总控计算机完成所有课表的分析ꎬ并有针对性地实时唤醒各教室计算机ꎬ将导致总控计算机的运算分析工作量过大ꎮ为了保证实时性ꎬ总控计算机应满足较高的硬件配置要求ꎮ为了控制改造成本ꎬ课表分析任务㊁投影机的开关机控制都由当前各教室计算机来完成ꎮ

基于以上考虑ꎬ确定系统工作流程: (1)总控计算机依据当前季度的作息时间ꎬ在每节课上课前5min内向全校多媒体教室发送网络唤醒开机指令ꎬ开启各多媒体教室计算机ꎮ(2)各多媒体教室计算机开机后ꎬ运行程序ꎬ读取并分析本地存放的本教室课表文件ꎮ若当前未安排课程ꎬ则执行计算机的关机指令ꎬ立即关闭本教室计算机ꎮ

(3)若当前时段安排有课程ꎬ则通过串口开启投影机ꎬ并以一定的时间间隔周期性检查是否已到下课时间ꎮ若下课时间到ꎬ就先通过串口向投影机发送关机指令ꎬ关闭投影机ꎬ然后执行计算机关机指令ꎬ立即关闭本教室计算机ꎮ

2㊀系统软件设计与实现

2.1㊀总控计算机程序

总控计算机的主要任务是依据当前季度的作息时间ꎬ在每节课前通过网络唤醒技术提前启动多媒体教室计算机ꎮ实现这一功能ꎬ应首先确定开机时间节点的获取方式ꎬ然后完成网络唤醒功能的程序设计ꎮ开机时间节点通过读取Excel文件得到ꎬ以适应上课时间的变化ꎮ首先ꎬ将各节次上课时间与提前开机时间设置值按图2所示格式存放于Excel文件中ꎬ待总控端程序启动后ꎬ通过Python语言中xlrd模块的相应函数将Excel文件中的开机时间列表文件读入ꎻ接着ꎬ程序驻留于后台保持运行ꎬ其间按照一定的时间间隔ꎬ通过Python语言中time模块的time.localtime()方法ꎬ周期性提取系统时间ꎬ并与从Excel文件中读入的时间安排进行比对ꎬ若相符即可通过网络唤醒技术远程启动多媒体教室计算机ꎮ通过Python语言中xlrd模块读取图2所示Ex ̄cel文件ꎬ以获取上课时间节点

图2 上课时间安排

函数代码如下:

defRead_Class_time(class_path):#读取本季度各节的上课时间

#class_path为表格文件的存放路径

data=xlrd.open_workbook(class_path)

table=data.sheets()[0]#读取表格文件的Sheet1表

#获取Sheet1表的第2列数据ꎬ得到开机时间节点数据

Class_time=table.col_values(1)

#获取Sheet1表的第3列的第1个数据ꎬ得到提前开机时间值

Difference_time=table.col(2)[0].value

#计算开机时间ꎬ并把开机时间转化为以 时 为单位的时间列表

value_list=[]

fortinrange(0ꎬ10):

h=int(24∗3600∗Class_time[t]∕3600)#时m=int(24∗3600∗Class_time[t]%3600∕60)#分#以 时 为单位整合时间列表ꎬ便于与系统时间比较

value=h+m∕60.0-Difference_time∕60.0

value_list.append(value)

returnvalue_list#返回开机时间列表

通过Python语言time模块获取总控计算机系统时间ꎬ其函数代码如下:

defget_current_time():#获取当前电脑时间current_time=list(time.localtime())#获取总控计算机系统时间

hour=current_time[3]#提取 时

minute=current_time[4]#提取 分

value=hour+minute∕60.0#统一变换为以 时 为单位的数据ꎬ以便后续比较

returnvalue

网络唤醒启动ꎬ是由总机通过网络对各分机传送

67

相关文档
最新文档