亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Python的多媒體教室管理系統(tǒng)設計

        2019-05-24 00:53:14張喜紅王玉香
        關鍵詞:控計算機課表串口

        張喜紅 王玉香

        (亳州職業(yè)技術學院, 安徽 亳州 236800)

        隨著計算機技術的發(fā)展,多媒體教室的應用逐漸普及[1]。計算機、投影機是學校多媒體教室必備的基礎性硬件設備,這類設備大多使用壽命有限、配件價格較高。如,普通投影機燈泡的使用壽命僅4 000 h左右,激光投影機燈泡的使用壽命僅20 000 h左右,且使用時若操作不當極易導致燈泡損壞[2]。在學校多媒體教室設備日常管理中,規(guī)范使用,按需開關機,有助于延長設備使用壽命。目前,大多學校采用多媒體教室外配專屬中控設備的方式來實現(xiàn)統(tǒng)一管理。亳州職業(yè)技術學院即采用此種方式在實際使用當中發(fā)現(xiàn)存在以下問題:中控設備的配置增加了建設成本;中控設備的接入增加了系統(tǒng)施工、布線的復雜程度;后期維修、維護相對困難。為了避免這些問題,我們基于Python語言重新設計了一套多媒體教室管理系統(tǒng)。Python語言具有模塊豐富、語法簡潔、跨平臺性能較好等優(yōu)勢[3],因此基于Python的系統(tǒng)穩(wěn)定性良好,使用成本不高。

        1 系統(tǒng)硬件及工作流程

        1.1 系統(tǒng)硬件組成

        多媒體教室管理系統(tǒng)的硬件由總控計算機、路由器、各教室計算機、投影機等組成(見圖1) 。教室的多媒體設備包括教室計算機和投影機,各教室計算機支持網卡喚醒啟動,教室計算機與投影機之間通過RS232串行總線連接,教室計算機可通過串行總線向投影機發(fā)送控制指令,最終實現(xiàn)投影機的開啟與關閉。每臺教室計算機和總控計算機通過路由器連接,形成局域網。

        圖1 多媒體教室管理系統(tǒng)硬件組成結構

        1.2 系統(tǒng)工作流程設計

        開始管理系統(tǒng)設計之前,首先需確定以下問題:(1) 采用什么方式控制各教室計算機的自動開啟和關閉;(2) 確定課表分析功能是由教室計算機實現(xiàn),還是由總控計算機實現(xiàn);(3) 如何控制投影機按需、按時完成開啟和關閉等操作。

        現(xiàn)有管理方式是通過外配中控硬件來實現(xiàn)教室計算機的自動開啟和關閉等操作。對于教室計算機,是通過斷電器聯(lián)接計算機電源開機觸發(fā)線實現(xiàn)計算機的開關機控制,長期使用對硬件的損傷較大。對于投影機,是通過單片機模塊的串口通信實現(xiàn)控制,且大多采用無應答檢查控制方式,可靠性低。因此,省去中控設備,并實現(xiàn)自動控制是系統(tǒng)改造的重點工作。

        當前各教室計算機支持網卡喚醒功能,因此,在不額外增加設備的情況下,各教室計算機的開機操作可通過網卡遠程喚醒來實現(xiàn)。如果由總控計算機完成所有課表的分析,并有針對性地實時喚醒各教室計算機,將導致總控計算機的運算分析工作量過大。為了保證實時性,總控計算機應滿足較高的硬件配置要求。為了控制改造成本,課表分析任務、投影機的開關機控制都由當前各教室計算機來完成。

        基于以上考慮,確定系統(tǒng)工作流程:

        (1) 總控計算機依據(jù)當前季度的作息時間,在每節(jié)課上課前5 min內向全校多媒體教室發(fā)送網絡喚醒開機指令,開啟各多媒體教室計算機。

        (2) 各多媒體教室計算機開機后,運行程序,讀取并分析本地存放的本教室課表文件。若當前未安排課程,則執(zhí)行計算機的關機指令,立即關閉本教室計算機。

        (3) 若當前時段安排有課程,則通過串口開啟投影機,并以一定的時間間隔周期性檢查是否已到下課時間。若下課時間到,就先通過串口向投影機發(fā)送關機指令,關閉投影機,然后執(zhí)行計算機關機指令,立即關閉本教室計算機。

        2 系統(tǒng)軟件設計與實現(xiàn)

        2.1 總控計算機程序

        總控計算機的主要任務是依據(jù)當前季度的作息時間,在每節(jié)課前通過網絡喚醒技術提前啟動多媒體教室計算機。實現(xiàn)這一功能,應首先確定開機時間節(jié)點的獲取方式,然后完成網絡喚醒功能的程序設計。開機時間節(jié)點通過讀取Excel文件得到,以適應上課時間的變化。首先,將各節(jié)次上課時間與提前開機時間設置值按圖2所示格式存放于Excel文件中,待總控端程序啟動后,通過Python語言中xlrd模塊的相應函數(shù)將Excel 文件中的開機時間列表文件讀入;接著,程序駐留于后臺保持運行,其間按照一定的時間間隔,通過Python語言中time模塊的time.localtime()方法,周期性提取系統(tǒng)時間,并與從Excel文件中讀入的時間安排進行比對,若相符即可通過網絡喚醒技術遠程啟動多媒體教室計算機。通過Python語言中xlrd模塊讀取圖2所示Excel文件,以獲取上課時間節(jié)點。

        圖2 上課時間安排

        函數(shù)代碼如下:

        def Read_Class_time(class_path):#讀取本季度各節(jié)的上課時間

        # class_path為表格文件的存放路徑

        data=xlrd.open_workbook(class_path)

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

        # 獲取Sheet1表的第2列數(shù)據(jù),得到開機時間節(jié)點數(shù)據(jù)

        Class_time=table.col_values(1)

        # 獲取Sheet1表的第3列的第1個數(shù)據(jù),得到提前開機時間值

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

        # 計算開機時間,并把開機時間轉化為以“時”為單位的時間列表

        value_list = []

        for t in range(0,10):

        h=int(24*3600*Class_time[t]/3600)#時

        m=int(24*3600*Class_time[t]%3600/60)#分

        #以“時”為單位整合時間列表,便于與系統(tǒng)時間比較

        value=h+m/60.0-Difference_time/60.0

        value_list.append(value)

        return value_list #返回開機時間列表

        通過Python語言time模塊獲取總控計算機系統(tǒng)時間,其函數(shù)代碼如下:

        def get_current_time():#獲取當前電腦時間

        current_time=list(time.localtime())#獲取總控計算機系統(tǒng)時間

        hour=current_time[3]#提取“時”

        minute=current_time[4]#提取“分”

        value=hour+minute/60.0#統(tǒng)一變換為以“時”為單位的數(shù)據(jù),以便后續(xù)比較

        return value

        網絡喚醒啟動,是由總機通過網絡對各分機傳送規(guī)定內容的編碼包來實現(xiàn),編碼包用16進制格式表示為:“FF FF FF FF FF FF +16次目標機MAC地址”。同時,網絡喚醒具有明顯的廣播特征,通常采用UDP協(xié)議來實現(xiàn)[4-5]。通過Python提供的socket模塊,簡單配置參數(shù)后便可實現(xiàn)UDP網絡通信[6]。采用Python設計網絡喚醒功能,其函數(shù)代碼如下:

        import socket#導入模塊

        import binascii

        #ip參數(shù)為主機IP地址,PORT為通信端口號,MAC_List為各目標機MAC地址列表

        def UDP_Broadcast_Tx(IP,POTR,MAC_List):

        #初始化“套接字”為UDP連接

        my_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

        my_socket.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)

        #廣播各目標機喚醒數(shù)據(jù)包

        for i in mac:

        #構造各目標機的開機魔術數(shù)據(jù)包

        data=binascii.unhexlify(′FF′ * 6 + i * 16)

        #發(fā)送數(shù)據(jù)包

        my_socket.sendto(data,(ip,port))

        my_socket.close()#關閉網絡連接

        2.2 教室計算機程序

        教室計算機程序的功能是,依據(jù)本教室的課表按時開關投影機。具體的實現(xiàn)過程如下:

        (1) 將本教室的課表按圖3所示模板來設計,存放于教室計算機本地磁盤中。

        辛迪·舍曼(Cindy Sherman)、杰夫·昆斯(Jeff Koons)和托恩·霍克斯(Teun Hocks)親自步入鏡頭前;霍埃爾-彼得·威特金(Joel-Peter Witkin)和喬·甘茨(Joe Gantz)則創(chuàng)造出不時使人震驚的敘述體場景。阿瑟·特雷斯(Arthur Tress)和戴維·萊維索爾(David Levinthal)長于縮微場景;卡魯姆·科爾萬(Calum Colvin)和維克托·施勒格(Victor Schrager)則擅長靜物攝影。

        (2) 教室計算機被喚醒啟動后,自動啟動教室計算機端的程序,通過Python的datetime模塊,首先獲取系統(tǒng)的當前日期與時間,并提取分解出當前周次與時間。

        (3) 通過xlrd模塊的相關函數(shù),讀取課表文件中的節(jié)次時間安排,并與當前時間作比對,得到當前時間對應節(jié)次。

        (4) 以周次與節(jié)次為行、列索引讀取課表信息。若當前單元格為空,則將課程標記變量置為‘0’,代表無課,于是執(zhí)行關閉計算機指令;若當前單元格不為空,則將課程標記置為‘1’,代表有課,于是執(zhí)行開啟投影機指令。

        (5) 程序在后臺駐留,并以一定的時間間隔周期性地比較系統(tǒng)時間與課表文件中的下課時間。若下課時間到,則依次執(zhí)行關閉投影機和關閉計算機的指令。其中,計算機的關機操作通過os模塊的os.system(“shutdown -s -t 0”)方法實現(xiàn)。

        圖3 教室課表模板

        2.3 開關投影機程序

        鑒于原有教室計算機與投影機已布設有串行連接線,本次設計中教室計算機對投影機的控制將通過RS232串行總線來實現(xiàn)。通常,投影機在出廠時標配RS232串口,并提供串口控制指令碼及參數(shù)表。如日電NP-CR3125X投影機的通信波特率為38 400,串行口開、關機指令碼分別是02-00-00-00-00-02、02-01-00-00-00-03,且控制成功后會返回應答碼,開、關機的應答碼分別是22-00-01-20-00-43、22-01-01-20-00-44。

        Python語言中實現(xiàn)串口控制的模塊是serial模塊。應用serial模塊設計串口控制程序,主要內容包括串口的初始化和串口的發(fā)送與接收。

        (1) 串口的初始化。串口的初始化內容主要包括端口號及波特率、位長、停止位等參數(shù)的設置。

        初始化與指令發(fā)送函數(shù)代碼如下:

        #串口初始化函數(shù)

        def serial_init(COM,Baudrate,ByteSize,Stopbits,Timeout):

        serial_COM = serial.Serial(COM)#設置端口號,如:COM=′COM1′

        serial_COM.setBaudrate(Baudrate)#設置波特率,如:Baudrate=38 400

        serial_COM.setByteSize(ByteSize)#設置位數(shù),如:ByteSize=8

        serial_COM.setStopbits(Stopbits)#設置停止位,如:Stopbits=1

        serial_COM.setTimeout(Timeout)#設置接收超時,如:Timeout=0.5 s

        print serial_COM.portstr

        time.sleep(1)#等1 s穩(wěn)定

        returnserial_COM

        #串口開、關機指令發(fā)送函數(shù)

        def serial_Tx(serial_COM,Command):

        for i in range(1,3):#最多發(fā)3次,未收到應答提示控制失敗

        # 通過串口發(fā)送控制命令

        serial_COM.write(Command)#開機指令:Command=″x02x00x00x00x00x02″.encode(′utf-8′)

        #關機指令:Command=″x02x01x00x00x00x03″.encode(′utf-8′)

        if(serial_COM.read(6)!=″ ″):#接收投影機返回的6字節(jié)應答信號

        print(″投影機控制成功!″)

        return 1

        print(″投影機控制成功!″)

        showinfo(title=′提示′,message=′程序控制可能出錯,請您用遙控器操控投影機′)

        return 0

        3 系統(tǒng)程序測試

        在Pycharm 2016.3.3開發(fā)環(huán)境下,采用python 2.7版本設計、調試總控計算機與教室計算機程序;然后,再借助py2exe將所設計程序編譯打包成exe可執(zhí)行文件[7],安裝對應的總控計算機與106臺教室計算機。總控計算機與教室計算機的CPU型號為Intel(R) Core(TM) i3-4160 3.6GHz,內存大小為4 GiB,操作系統(tǒng)為Win7-64位。通過Windows系統(tǒng)自帶任務計劃程序安排功能,將總控計算機與教室計算機的exe程序設為開機自啟動模式。最后,進入教室計算機的BIOS系統(tǒng),開啟允許網絡喚醒功能。在為期1周的運行測試過程中,總控計算機能夠實時喚醒106臺教室計算機。其中,有105臺計算機能夠按照課表實時開啟和關閉投影機;有1臺計算機,因其系統(tǒng)時間設置有誤,未能按課表安排的上課時間正常開機。

        4 結 語

        我們以亳州職業(yè)技術學院現(xiàn)有多媒體教室布設結構為基礎,針對外配中控管理方式維護不便的問題,設計了基于Python的多媒體教室管理系統(tǒng)。在該系統(tǒng)中應用了Python的datetime 、xlrd 、socket等模塊,使總控計算機可以依照Excel文件中預設的時間節(jié)點喚醒各教室計算機;同時,應用了Python的serial等模塊,使教室計算機可以通過串口按照Excel課表安排完成按時開關機的工作。在實際測試中,系統(tǒng)運行良好,在一定程度上減少了教室管理員的工作量。所設計的軟件是以本地計算機系統(tǒng)時間為操控設備的基準時間,因此在實際應用中需注意主板電池、系統(tǒng)時間設置的匹配性。

        猜你喜歡
        控計算機課表串口
        學生出招解決”日課牌“問題
        科教新報(2022年17期)2022-05-24 13:01:09
        如果我是校長
        淺談AB PLC串口跟RFID傳感器的通訊應用
        某型飛控計算機與地面檢測設備無法連接故障分析
        運用VBA自動生成子課程表
        電子測試(2018年21期)2018-11-08 03:09:36
        無人機容錯飛行控制計算機體系結構研究
        USB接口的多串口數(shù)據(jù)并行接收方法探索
        基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
        地礦測繪(2015年3期)2015-12-22 06:27:26
        各地區(qū)學生課表
        留學生(2015年6期)2015-07-02 02:36:20
        基于并行控制的FPGA多串口拓展實現(xiàn)
        两个人看的www免费视频中文| 青青草精品在线免费观看| 日本一级二级三级不卡| 亚洲人成国产精品无码果冻| 国产肉丝袜在线观看| 国产高清a| 少妇人妻一区二区三飞| 亚洲图片自拍偷图区| 欧美猛男军警gay自慰| 97日日碰日日摸日日澡| 亚洲国产丝袜美女在线| 国产成人久久精品一区二区三区| 色 综合 欧美 亚洲 国产| 国产一级片毛片| 中文字幕久久人妻av| 日韩中文字幕版区一区二区三区| 天天躁日日躁狠狠很躁| 久久久久亚洲AV无码专| 人妖系列在线免费观看| 国产精品久久久久久久久久红粉 | 亞洲綜合一區二區三區無碼| 亚洲高清自偷揄拍自拍| 国产激情视频免费在线观看| 亚洲av成人无码网站…| 日韩av二区三区一区| 日本啪啪视频一区二区| 97se亚洲国产综合自在线观看| 久久久无码一区二区三区| 日韩av在线不卡一区二区三区 | 日日摸日日碰人妻无码| 欧美黑人疯狂性受xxxxx喷水| 国产精品亚洲专区无码不卡| 亚洲av少妇高潮喷水在线| 国产一区二区女内射| 色综合久久无码中文字幕app| 久久免费看视频少妇高潮| 欧美肥妇毛多水多bbxx水蜜桃| 无码专区天天躁天天躁在线| 国产经典免费视频在线观看| 夜夜骚久久激情亚洲精品| 亚洲性啪啪无码av天堂|