范書義 魏保華 謝永才 姜會霞
摘? 要 針對PowerPoint演示過程中需要通過串口與向設(shè)備發(fā)送數(shù)據(jù)這一問題,通過擴展VB中串口控件的功能以及對VB應(yīng)用程序命令行參數(shù)的解析,實現(xiàn)在PowerPoint演示頁面對串口通信設(shè)備的直接控制,保證PowerPoint演示文件播放的連續(xù)性,增強PPT的演示效果。
關(guān)鍵詞 PowerPoint;VB;示教板;串口設(shè)備
中圖分類號:G642? ? 文獻標識碼:B
文章編號:1671-489X(2019)05-0036-03
1 引言
PowerPoint(PPT)是微軟公司推出的一款優(yōu)秀幻燈片制作軟件,專門用于制作演示文稿。該軟件具有容易掌握、使用方便、擴展性強的特點,是目前使用最廣泛的幻燈片制作軟件,被廣泛應(yīng)用于電子教學(xué)、設(shè)計和制作產(chǎn)品演示、業(yè)績報告和項目展示等多個領(lǐng)域。
在復(fù)雜原理教學(xué)過程中,有時需要采用示教板輔助教學(xué),以幫助學(xué)生對所講授原理的理解,如圖1所示。目前,一般示教板都具有串口控制功能,在講解時需要從Power-Point演示界面切換到串口控制程序,實現(xiàn)對串口示教板的控制。這種方法需要在PowerPoint和串口控制程序之間多次切換,會割裂演示過程的完整性和流暢性,當需要頻繁控制串口設(shè)備時尤其如此。如果能夠在放映的PPT幻燈片中嵌入示教板的串口控制命令,則可以使講解過程更完整流暢,大大增強PowerPoint的演示效果。該方法也可以用在教學(xué)過程中其他需要在PowerPoint中控制串口設(shè)備的場合。
2 PowerPoint中串口通信的實現(xiàn)方法
PowerPoint演示頁面在播放PPT過程中的動作方式只有兩種,分別是“運行程序”和“運行宏”。首先分析“運行宏”這種方式。宏是由一系列VBA(Visual Basic for Application)代碼組成的可執(zhí)行程序。對宏的支持是微軟公司的Office系列辦公軟件區(qū)別于其他辦公軟件的一大特色。通過VBA可以實現(xiàn)對Office應(yīng)用程序的擴展,大大增強Office應(yīng)用程序的自動化能力。如果能夠直接使用VBA實現(xiàn)在PowerPoint演示頁面對串口通信設(shè)備的控制,那就再好不過了。這樣既不用使用其他開發(fā)工具,而且這些VBA代碼是嵌入PowerPoint中的,會使整個PowerPoint文檔具有很好的可移植性。一般情況下與串口設(shè)備通信時,應(yīng)能根據(jù)需要向串口設(shè)備發(fā)送不同數(shù)據(jù),但Office中的宏并不支持參數(shù)傳遞,這會給串口通信帶來很大問題。宏的這種特性就要求向串口設(shè)備發(fā)送不同數(shù)據(jù)時要用不同的宏,這種要求在通信數(shù)據(jù)類型較多時會造成極大的代碼重復(fù)。通過以上分析可知,直接使用宏顯然不是一種合理的方法。
再來分析“運行程序”這種方式。這種方式允許在PPT演示頁面通過在對象上單擊鼠標運行外部可執(zhí)行程序。這種方式與“運行宏”面臨相同的問題,即調(diào)用外部可執(zhí)行程序時要能夠傳遞參數(shù),該問題可以通過使用命令行參數(shù)來解決。因為Windows操作系統(tǒng)對文件名長度限制為小于255個字符,所以使用命令行參數(shù)時要注意命令行參數(shù)不要過長。如果需要傳遞的信息超過255個字符,可以采用分批多次發(fā)送的方式,或者采用壓縮參數(shù)格式,而后在VB程序中解析的方式。
規(guī)定通信協(xié)議? 要想實現(xiàn)設(shè)備之間的通信,必須規(guī)定通信雙方都能理解的通信協(xié)議。通信協(xié)議的規(guī)定應(yīng)簡明、無歧義。通信協(xié)議一般包括三個要素:
1)語法,即通信雙方通信時的數(shù)據(jù)報文格式;
2)語義,即通信的內(nèi)容;
3)時序規(guī)則,即何時進行通信。
因為項目采用VB的串口控件實現(xiàn)通信,而且采用異步通信方式,所以不需要考慮通信的時序問題,只需要考慮通信協(xié)議的語法和語義即可。以本項目為例,需要在演示頁面通過向串口發(fā)送數(shù)據(jù)控制某設(shè)備示教板中不同部分燈的點亮和熄滅,要求能夠單獨控制某個示教板的某條線或框點亮或熄滅,其通信協(xié)議規(guī)定如下:
示教板區(qū)域號+[線編號(框編號)+亮(1)/滅(0)標記]
當要控制多條線/框時,可在上面格式的基礎(chǔ)上+空格+[線編號(框編號)+亮(1)/滅(0)標記],如XK11 L11 L120(控制示教板X區(qū)域的K1、線L1亮,線L12滅)。
開發(fā)者可根據(jù)項目需求,規(guī)定合適的通信協(xié)議。通信內(nèi)容主要是規(guī)定表示示教板的字母和線號,這些內(nèi)容需要在發(fā)送前進行校驗,以避免發(fā)送錯誤的數(shù)據(jù)到接收端。
解析命令行參數(shù)? 考慮到編程的方便性,采用Micro-soft公司的VB(Visual Basic)作為編程工具。VB提供的串口控件(MSComm)封裝了對串口的各種操作,可以通過調(diào)用控件提供的方法(method)和屬性(attribute)實現(xiàn)對串口的訪問[1]。
因為程序是在PPT演示頁面執(zhí)行的,所以不需要顯示可執(zhí)行窗口。因此需要在工程中進行設(shè)置,如圖2所示。在工程設(shè)置的“General”選項卡的“Startup Object”下拉列表框中選擇“Sub Main”,這樣程序就可以在PPT演示頁面中不顯示窗口執(zhí)行了。這種方式需要在VB工程中編寫一個main()函數(shù),并在該函數(shù)中對命令行中的參數(shù)進行解析[2]。獲取命令行參數(shù)并進行解析的關(guān)鍵代碼如下:
以上代碼將獲取的命令行參數(shù)存儲到字符串數(shù)組中,第二行代碼中的參數(shù)與通信協(xié)議規(guī)定的數(shù)據(jù)格式密切相關(guān)。因為本項目以空格作為分隔符,所以采用空格作為Split()函數(shù)的參數(shù),將通過命令行傳遞到程序中的函數(shù)分隔為字符串數(shù)組,以便進一步處理。開發(fā)者可根據(jù)規(guī)定的通信格式,采取適當?shù)奶幚矸绞健?/p>
向串口發(fā)送數(shù)據(jù)? 命令行參數(shù)解析完成后,可使用VB提供的MSComm串口通信控件將數(shù)據(jù)發(fā)送到串行口。該控件為程序開發(fā)者提供了簡單易用的串口通信函數(shù)接口和屬性,為串口應(yīng)用程序的開發(fā)提供了極大方便。通過該控件向串口發(fā)送數(shù)據(jù)非常簡單,如果數(shù)據(jù)需要以文本形式發(fā)送,則直接將文本字符串直接賦值給Output屬性即可,如MSComm.Output=":X011,021,031,041,051*"。
如果要以二進制形式發(fā)送數(shù)據(jù),則需進行必要的轉(zhuǎn)換。首先定義一個Byte類型的數(shù)組,然后將要發(fā)送的文本數(shù)據(jù)采用Cbyte()函數(shù)逐字節(jié)轉(zhuǎn)換為Byte類型,最后將該Byte類型的數(shù)組賦值給串口控件的Output屬性即可,主要代碼如下:
在PPT演示頁面中的應(yīng)用? 在PPT中,選擇單擊時要向示教板發(fā)送數(shù)據(jù)的文本、對象或線條,在“插入”選項卡中單擊“超鏈接”圖標,彈出圖3所示窗口;選擇“運行程序”選項,在該選項的文本框中輸入用VB生成的程序和相應(yīng)參數(shù),然后單擊“確定”即可。圖3中輸入的參數(shù)表示要發(fā)送給示教板相應(yīng)的流程線,控制示教板流程線點亮或熄滅。
在PPT演示頁面,操作者只需用鼠標單擊嵌入了超鏈接的文本或?qū)ο蠹纯蓤?zhí)行該程序,將命令行參數(shù)中攜帶的數(shù)據(jù)發(fā)送到示教板,對示教板進行控制。
3 結(jié)語
微軟的PowerPoint是目前廣泛使用的一款演示軟件,具有強大的互動演示功能和方便快捷的拖放式操作方法。但某些高級功能并不能直接通過簡單的拖放操作實現(xiàn),可以通過PowerPoint提供的超鏈接功能,利用通用編程語言提供的強大功能實現(xiàn)某些特殊功能,為互動演示提供便利。
參考文獻
[1]楊忠寶,康順哲.VB語言程序設(shè)計教程[M].北京:人民郵電出版社,2010:81-92.
[2]龔沛曾,楊志強,等.Visual Basic程序設(shè)計教程[M].4版.北京:高等教育出版社,2013:136-138.