• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Android系統(tǒng)的數(shù)字電路實驗設計

    2019-07-16 11:55:38婁津銘楊華睿王洵清林兆陽
    電子技術與軟件工程 2019年8期
    關鍵詞:數(shù)字電路數(shù)組后臺

    婁津銘 楊華?!⊥蹁濉×终钻?/p>

    摘要:本文以Android系統(tǒng)為基礎,介紹了線上實現(xiàn)數(shù)字電路實驗功能的系統(tǒng)整體設計,以APP的形式在移動端為用戶提供數(shù)字電路實驗服務。系統(tǒng)主要提供面包板,邏輯原件,電阻,處理器等電子原件供用戶進行自由操作,通過與服務器交互查看實驗輸出,為國內高校數(shù)字電路實驗室資源問題提供在線解決方案。

    [關鍵詞]數(shù)字電路在線實驗Android系統(tǒng)

    1引言

    在數(shù)字電路實驗領域,國內已有部分高校推出在線實驗解決方案或產品,但大部分都是基于特定軟件開發(fā)并在特定系統(tǒng)上運行的,并在實驗室內部局域網才能啟動,不能大量發(fā)行并推廣?,F(xiàn)有在線實驗產品的服務器端主要為教師設計,用于上傳實驗要求,批閱學生報告以及提供實驗時的監(jiān)控和指導??蛻舳酥饕獮閷W生設計,用于實驗知識學習,實驗模擬操作,并配備了模擬實驗面板、示波器以及完備的實驗報告編輯器,讓學生在實驗時采集圖像數(shù)據(jù)并和實驗報告一起提交服務器端。這類產品虛擬實驗系統(tǒng)結構更加完整,但其搭建條件基于實驗室內部的設置,所以產品的獨立性不高,可推廣性不強。

    本項目研究之初,項目組討論了關于實際試驗的局限條件分析,基于國內各高校實際實驗時間的限制,實驗器材的損壞、器材的準備時間、外部條件對于器材的影響等一系列要素的考慮,計劃設計以移動端手機APP為載體的在線數(shù)字電路實驗系統(tǒng),創(chuàng)建虛擬實驗面板,通過移動端和服務器端的交互來完成在線數(shù)字電路搭建、查看輸出等一系列功能。在這過程中,完全平臺化的虛擬實驗教學一方面了滿足虛擬實驗教學的便利性,另一方面滿足虛擬實驗的可操作性。

    2系統(tǒng)設計

    2.1服務器端

    2.1.1數(shù)字電路實現(xiàn)原理

    虛擬實驗后臺設計主要是使用JAVA語言對前端發(fā)送來的信息進行分析,提取關鍵信息,根據(jù)前端的指令運行相對應的后臺程序,最終得出虛擬實驗的實驗結果,在傳輸回前端。

    前端傳輸向后臺的數(shù)據(jù)主要由器件類型和孔的位置兩部分組成。器件類型使用ID來表示。前端與后臺使用同一張對應表,前端選中拖動一個器件后,向后臺傳輸相應的ID,后臺收到ID后,根據(jù)對應關系可知前端使用的是哪個器件,在根據(jù)相應的代碼塊進行運算,對二維數(shù)組的數(shù)值進行讀取,計算,修改,保存??椎奈恢脛t由一對二維坐標表示,當器件放置到面包板上時,前端將器件所放置的位置變?yōu)檩斎朦c的二維坐標,輸出點的二維坐標等參數(shù)傳輸?shù)胶笈_,這些二維坐標與后臺二維數(shù)組一一對應,后臺獲得坐標后,對輸入坐標的相應位置的數(shù)值進行讀取,將其值賦給后臺程序中的一些變量,在根據(jù)器件ID,進行所對應的操作計算,最后將計算的結果賦值給輸出坐標所對應的二維數(shù)組的位置,從而改變了二維數(shù)組的值。

    由于前端與后臺的連接是放置一個器件后,傳輸一次請求,所以后臺必須能保存本次操作后二維數(shù)組的結果,并在下個器件放置時調用本次保存下來的二維數(shù)組,在本次操作后的二維數(shù)組的基礎上進行讀取,修改。所以本系統(tǒng)設計采取了JAVAweb編程中的HttpSession對象。當前端開始一個新的實驗的時候,放置第一個器件后,后臺JAVA程序創(chuàng)建一個新的HttPSession對象,并從前端發(fā)來的http請求中獲取session,并賦值給新建的HttpSession。并初始化二維數(shù)組,并根據(jù)第一個放置的器件的ID與位置對這個二維數(shù)組進行第一次計算,修改。然后將此二維數(shù)組作為一個屬性保存在這個新建的HttpSession對象中。這樣即完成了第一個器件的操作。此時的HttpSession對象中保存著一個關于這次虛擬實驗的的二維數(shù)組的屬性。這個二維數(shù)組已經根據(jù)第一個放置的器件進行了修改。隨后,當放置第二個器件時,前端向后臺傳輸參數(shù)時,后臺從前端發(fā)來的http請求中獲得session,后臺發(fā)現(xiàn)這個session不是新的session,說明這不是第一次通話,所以后臺程序從之前的HTTPSession對象中獲取二維數(shù)組這一屬性,并根據(jù)前端發(fā)來的器件數(shù)據(jù)對這個二維數(shù)組進行計算,修改,保存。

    2.1.2虛擬面包板設計

    為測試后臺程序思路的可行性,服務器端創(chuàng)建了一個虛擬的面包板來測試后臺功能。

    Python擁有強大的庫函數(shù),使建立面包板的GUI變得十分方便。所以我們使用Python語言來創(chuàng)建測試用的面包板GUI。系統(tǒng)使用了Python自帶的tkinter包,來創(chuàng)建了面包板GUI,圖1中面包板及相當于前端的面包板,有一個二維數(shù)組與面包板的點相對應,就像后臺程序中的二維數(shù)組與前端面包板相對應一樣。當我們電機左側的器件后將其放置到右側面包板上后,程序根據(jù)我們的操作執(zhí)行相應的函數(shù),修改二維數(shù)組對應點的值。根據(jù)測試結果,使用二維數(shù)組來實現(xiàn)虛擬實驗的方式是可行的。

    2.1.3APP交互

    將后臺JAVA程序部署在服務器中,封裝打包成為專門接受APP的http請求API接口。APP的http請求主要為3類:清除電路,修改電路及測試輸出。當服務器接受到前端傳來的http請求后,解析讀取http請求中的信息及數(shù)據(jù),根據(jù)不同請求類型并調用后臺程序。

    當http請求為清除所有電路時,服務器清除當前內部電路并開始等待下一次請求。

    當http請求為修改電路,即刪除某一電路元件時,服務器根據(jù)特征ID及嵌入時間查詢最新插入的電路元件,予以刪除并開始等待下一次請求。

    當http請求為測試輸出時,服務器調用內部模擬電源,啟動電路并記錄LED元件亮暗情況,得出結果。服務器將LED元件的特征ID及亮暗情況打包進http響應中,通過網絡傳回APP用于接收服務器請求的API以供APP解析。

    2.2虛擬實驗室移動端設計

    2.2.1初始UI設置

    移動端基于安卓系統(tǒng)進行開發(fā)。實驗界面采用xml布局文件所需的標簽語言進行初始設置,父布局種類選用相對布局。父布局中央為實驗用面包板,數(shù)字電路元件,如AND,OR,NOR門等采取可拖拽Button控件擺放在面包板兩側。用戶可執(zhí)行命令包括重新設計,開始執(zhí)行和刪除原件,以固定位置Button控件形式并列擺放于面包板及電路元件下側。

    2.2.2動態(tài)執(zhí)行

    動態(tài)執(zhí)行過程通過綁定屏幕監(jiān)聽器實現(xiàn)電路元件件拖拽效果。屏幕監(jiān)聽器會實時跟蹤用戶手指的位置并更新當前位置下數(shù)字電路元件所有孔在面包板坐標系下的坐標。每當用戶按住一個電路元件并開始滑動,監(jiān)聽器便通知系統(tǒng)生成一個對應電路元件對象并賦予其一個特征ID,特征ID第一位為電路元件的種類序列,后幾位為隨機非重復序列。當用戶在拖動電路元件時,監(jiān)聽器的孔孔匹配方法會實時計算在面包板坐標系下電路元件孔與所有面包板孔的距離,并根據(jù)電路元件的形狀,孔與孔之間的距離確定面包板上最適合電路元件嵌入的16個孔,實時鎖定電路元件在面包板上的位置。結束拖動后,動態(tài)執(zhí)行時系統(tǒng)生成的監(jiān)聽器對象會以“電子元件孔序列一面包板孔序列”兩兩一組的2*16二維數(shù)組記錄電路元件在面包板上的位置,作為關鍵數(shù)據(jù)發(fā)給服務器。

    2.2.3服務器交互

    每當用戶結束一次滑動,監(jiān)聽器都會將得到的2*16數(shù)組與電子元件的特征ID。拖動過程結束后,APP進入服務器交互進程,采用http接口通訊,通過http請求向服務器發(fā)送電子元件的序列號以及包含了電子元件位置信息的2*16數(shù)組。服務器接收http請求,解析json數(shù)據(jù)包獲得對應的電路元件特征ID及其對應2*16位置數(shù)組,在服務器內面包板加載元件并保存。

    當用戶點擊“重新設計”時,APP進入清除進程,清除電路板上的所有電路元件并向服務器發(fā)送實驗終止http請求。服務器接收請求并清除內部已搭建全部電路,等待下次http請求。

    當用戶點擊“刪除元件”時,屏幕監(jiān)聽器監(jiān)聽用戶手指的點擊事件。當用戶點擊面包板上的某個電路元件時,屏幕監(jiān)聽器會獲取當前元件的特征ID,通知系統(tǒng)清除該元件并將包含特征ID的刪除元件http請求發(fā)送給服務器。服務器接收刪除請求,查詢內部面包板上特征ID與http請求中特征ID一致的電路元件并予以刪除。

    3結語

    本系統(tǒng)設計以在線電路實驗為出發(fā)點,采取APP為載體的形式實現(xiàn)在線搭建數(shù)字電路并檢測輸出功能,為當前各大高校提供在線電路實驗解決方案。在移動端最重要的部分是實現(xiàn)模擬面包板的動態(tài)執(zhí)行,面包板孔的信息包括ID序列號以及(x,y)形式的坐標,數(shù)字電路元件有自己的ID并以大小為16的一維序列數(shù)組形式保存其16個孔的位置信息,動態(tài)執(zhí)行時系統(tǒng)為電路元件賦予特征ID,結束拖動后監(jiān)聽器對象會以2*16的二維數(shù)組形式記錄電路元件在面包板上的位置,并連同電路元件特征ID一同以http請求形式發(fā)送給服務器。

    在服務器端動態(tài)接收過程中,服務器首先接收http請求,解析json數(shù)據(jù)包獲得對應的電路元件特征ID及其對應2*16位置數(shù)組,并在內部面包板加載元件并予以保存。后臺JAVA程序部署在服務器中,同時為APP開放專門接受APP的http請求API接口,解析讀取http請求中的信息及數(shù)據(jù),并調用后臺程序。當用戶點擊刪除或重構功能時,服務器響應相應請求改變或清除內部電路。當用戶點擊查看輸出功能時,服務器內部模擬接入電源過程并測試輸出,得出結果,即LED亮暗情況后,將結果打包進http響應中,通過網絡傳回前端。同時在這一部分的設計中,為測試后臺程序思路的可行性,我們創(chuàng)建了一個虛擬的面包板來測試后臺相關功能。

    參考文獻

    [1]J, Butime, R. Besiga, A. Bwonyo,V. Nakanwagi, T. Togboa and A.Katumba,“Design of Online DigitalElectronics Laboratories Based on theNIELVIS II platform”,InternationalJournal of Interactive MobileTechnologies

    [2] Muchlas,M. Andang Nov ianta, An Online Lab for Digital ElectronicsCourse Using Information Techno logySupports”,International Conferenceon Science in Information Technology2015

    [3]張新朝,李夢雪,云教育平臺虛擬實驗室構建[J/0L].軟件導刊,2019.

    [4]曹曉燕,模擬仿真技術在電子電工實驗中的運用[J].電子技術與軟件工程,2019(04):94.

    猜你喜歡
    數(shù)字電路數(shù)組后臺
    JAVA稀疏矩陣算法
    電腦報(2022年13期)2022-04-12 00:32:38
    JAVA玩轉數(shù)學之二維數(shù)組排序
    電腦報(2020年24期)2020-07-15 06:12:41
    基于數(shù)字電路的定時器的設計
    電子制作(2019年22期)2020-01-14 03:16:46
    MATLAB在數(shù)字電路教學中的應用
    電子測試(2018年23期)2018-12-29 11:11:48
    基于數(shù)字電路的密碼鎖設計與實現(xiàn)
    后臺暗戀
    數(shù)字電路實驗的設計分析
    電子制作(2017年1期)2017-05-17 03:54:28
    前臺、后臺精彩花絮停不了
    風采童裝(2016年2期)2016-08-02 09:18:38
    尋找勾股數(shù)組的歷程
    電力調度中后臺監(jiān)控系統(tǒng)的應用
    河南科技(2014年11期)2014-02-27 14:10:03
    蓬莱市| 西宁市| 南通市| 寻乌县| 土默特左旗| 邯郸县| 辽源市| 云安县| 修水县| 武定县| 出国| 海南省| 永顺县| 临漳县| 卢龙县| 乐亭县| 沙湾县| 邵阳县| 广东省| 洛南县| 长乐市| 阿巴嘎旗| 宁强县| 商都县| 长春市| 汶川县| 荆州市| 齐齐哈尔市| 永川市| 阜南县| 根河市| 乡城县| 泾阳县| 阳信县| 沂源县| 章丘市| 郯城县| 河源市| 垫江县| 大名县| 会泽县|