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

        ?

        一種基于微信小程序在RTS2的控制框架擴展*

        2018-04-12 07:47:21田智雁衛(wèi)守林
        天文研究與技術(shù) 2018年2期
        關(guān)鍵詞:天文望遠鏡命令

        梁 波,田智雁,王 鋒,鄧 輝,衛(wèi)守林

        (昆明理工大學(xué)云南省計算機技術(shù)應(yīng)用重點實驗室,云南 昆明 650500)

        遠程望遠鏡系統(tǒng)第2版*http://rts2.org(Remote Telescope System 2nd version, RTS2)是一種基于Linux操作系統(tǒng)的遠程天文望遠鏡控制系統(tǒng),設(shè)計目的是實現(xiàn)全自動的天文望遠鏡控制。根據(jù)其開源性特點,天文技術(shù)研究人員可以很容易從GitHub獲得源代碼,并根據(jù)GitHub上的方法在Ubuntu操作系統(tǒng)下安裝和配置RTS2。

        在RTS2中已經(jīng)擁有了像rts2-mon等命令行界面工具對系統(tǒng)進行控制,但是這些工具只能在已經(jīng)安裝并依賴RTS2軟件包的Linux機器上運行,然而,移動終端的廣泛使用,科研人員工作和生活半徑增大,在需要移動辦公和遠程監(jiān)控需求時,RTS2的自備工具極為不便,甚至有些情況鞭長莫及。

        對于天文望遠鏡的觀測監(jiān)控人員來說,能夠?qū)崟r查看運行狀態(tài)、報警信息和發(fā)送控制請求是很有必要的。近年來,國內(nèi)在天文望遠鏡自主觀測系統(tǒng)的控制擴展上已出現(xiàn)一些研究成果,在RTS2中可以訪問RTS2的rts2-xmlrpc服務(wù),通過8889端口號以網(wǎng)絡(luò)訪問的方式對RTS2進行監(jiān)控和狀態(tài)查看[1-4],并且天文觀測技術(shù)人員通過改進的XMP-RPC接口,使用XML格式數(shù)據(jù),實現(xiàn)了瀏覽器對系統(tǒng)的操作,但是XML格式復(fù)雜,傳輸占用帶寬比較大,解析XML需要耗費大量的中央處理器資源,不具備輕量級環(huán)境中使用;或者繼承Rts2 Client Core類實現(xiàn)一個服務(wù),開發(fā)瀏覽器頁面通過WebSocket[3-4]對RTS2進行監(jiān)測和控制。兩種實現(xiàn),都是希望利用瀏覽器的輕便解決傳統(tǒng)命令行界面環(huán)境的局限,在瀏覽器中,需要記錄訪問的統(tǒng)一資源定位器(Uniform Resource Locator, URL),對于記憶和使用都比較麻煩,不利于望遠鏡的監(jiān)測和控制的使用。

        隨著移動終端的發(fā)展,微信使用十分普遍,如能將望遠鏡的實時監(jiān)測和控制界面移植到微信小程序中,對于觀測人員實時控制望遠鏡系統(tǒng)將更加簡便。本文正是基于此背景展開相應(yīng)的研究工作,在分析其他已有研究成果的基礎(chǔ)上,采用HTTP協(xié)議與微信小程序進行JSON數(shù)據(jù)交互,從而實現(xiàn)RTS2自主控制系統(tǒng)進行監(jiān)測和控制。

        1 微信小程序與RTS2的數(shù)據(jù)交互

        1.1 微信小程序

        微信(WeChat)*http://www.chinastor.org/GuoNeiXinWen/8699.html是騰訊公司2011年推出的一個為智能終端提供即時通訊服務(wù)的免費應(yīng)用程序。隨著近幾年技術(shù)的發(fā)展,騰訊公司推出了觸手可及、用完即走的微信小程序[5],它不需要下載和安裝就可以使用,用戶掃一掃或者搜一下即可以打開應(yīng)用,用完之后退出即可,無需關(guān)閉卸載[6],可在微信內(nèi)便捷地獲取與傳播,具有很出色的用戶體驗;微信支持多種不同操作系統(tǒng)的移動終端,微信小程序開發(fā)者可以不用考慮移動終端是Android系統(tǒng)還是IOS系統(tǒng),只需要實現(xiàn)開發(fā)所需要的功能即可,但是要想使用微信小程序,用戶的微信版本必須升級到6.5.3及以上版本。

        微信小程序的開發(fā)與寫HTML界面很相似,它的主要開發(fā)內(nèi)容也包括界面index.wxml、index.wxss和index.js,并通過微信小程序提供的接口與開發(fā)者的服務(wù)器進行數(shù)據(jù)交互。以微信作為載體的微信小程序與RTS2進行數(shù)據(jù)交互的流程如圖1。

        圖1微信小程序訪問RTS2流程圖
        Fig.1The WeChat Micro-program access to RTS2 flow chart

        在微信小程序中,每訪問RTS2服務(wù)一次,都需要先訪問微信服務(wù)器,所以在做服務(wù)訪問時需要調(diào)用微信小程序封裝好的訪問方法wx.request(OBJECT),然后通過微信服務(wù)器與RTS2服務(wù)進行數(shù)據(jù)交互,最后將JSON數(shù)據(jù)返回給微信小程序。由于微信小程序提供的接口,對訪問的URL中不能擁有端口號的限制,要想通過微信小程序訪問自己的服務(wù)器,先得把observatoryserver中的端口號做一個地址映射,將端口號隱藏,這樣才能很好地通過微信小程序與RTS2進行交互。

        1.2 數(shù)據(jù)處理

        微信小程序通過發(fā)送HTTP請求與RTS2服務(wù)進行數(shù)據(jù)交互,這一點與網(wǎng)絡(luò)訪問RTS2服務(wù)一致。根據(jù)JSONAPI提供的各種命令,微信小程序可以通過HTTP地址訪問RTS2服務(wù),RTS2根據(jù)不同的命令,以JSON的格式返回對應(yīng)的數(shù)據(jù),為了避免出現(xiàn)中文亂碼現(xiàn)象,微信小程序與RTS2服務(wù)進行數(shù)據(jù)交互時,都需要設(shè)置數(shù)據(jù)編碼格式為UTF-8。比如,通過地址http://observatoryserver/apipath/jsoncommands,加上相應(yīng)的傳入?yún)?shù),就可以獲取RTS2返回的JSON格式的數(shù)據(jù){infotime: 1502882474.90689, uptime: 1502882474.052562, focuser: “F0”},在微信小程序中,通過jquery很方便地獲取JSON格式的數(shù)據(jù),通過代碼obj.infotime可以獲取1502882474.90689數(shù)據(jù),該數(shù)據(jù)為時間戳,在做數(shù)據(jù)處理時,需要對數(shù)據(jù)進行時間轉(zhuǎn)換,具體方法可以通過以下代碼轉(zhuǎn)換:

        var day=new Date(parseInt(time)*1000);

        var date="."+ time.split(".")[1];

        time=day.toLocaleDateString().replace(///g, "-") + "T" +day.toTimeString().substr(0, 8)+parseFloat(date).toFixed(3);

        由于不同JSON命令獲取的數(shù)據(jù)不同,在微信小程序里寫了一個通用的方法,將RTS2返回的JSON格式數(shù)據(jù),做了一個基本的轉(zhuǎn)換,將原鍵值對的數(shù)據(jù)分開,形成新的JSON格式的數(shù)據(jù),具體核心代碼如下:

        var json="{′list′:[";

        vari=0;

        for(varkin devices){

        if(i> 0)

        json+=",";

        json+="{′name′: ′"+k+"′, ′values′: ′"+devices[k]+"′}";

        i++;

        }

        json+="]}";

        var obj=eval(′(′+json+′)′);

        前述JSON數(shù)據(jù)經(jīng)上述代碼轉(zhuǎn)化為{list:[{key: infotime, value: 1502882474.90689}, {key: uptime, value: 1502882474.052562}, {key: focuser, value: “F0”}]}這樣的格式,JSON格式易于閱讀和編寫,同時也易于機器解析和生成,并有效提升網(wǎng)絡(luò)傳輸效率。

        2 微信小程序設(shè)計

        2.1 JSON API命令

        根據(jù)GitHub中最新RTS2源代碼的分析,提供了很多命令可以通過瀏覽器或移動終端設(shè)備獲取RTS2中的設(shè)備信息,并通過一些參數(shù)可以控制設(shè)備。這些命令可以對天文望遠鏡自主系統(tǒng)進行遠程控制和遠程查看設(shè)備控制、狀態(tài)信息,同時還可以獲取相應(yīng)的天文圖片。本文使用的一些命令具體介紹如下:

        (1)控制命令

        a、直接控制cmd

        通過使用cmd命令,可以根據(jù)傳入的device和target兩個參數(shù),向RTS2中的不同設(shè)備發(fā)送命令控制設(shè)備。比如,要觀察目標8的下一個目標,通過地址 http://observatoryserver/apipath/cmd?d=EXEC&c=next%208就可以向設(shè)備發(fā)送控制命令(在這種情況下, 腳本有一個替換為 ‘%20’ 的空格以符合http urls標準)。

        b、運行腳本控制runscript、killscript

        微信小程序可以通過runscript命令運行腳本、killscript關(guān)閉正在運行的腳本,通過微信小程序向RTS2發(fā)送控制信息runscript?d=C0&s=E%201可以運行已經(jīng)準備好的腳本(在這種情況下, 腳本有一個替換為 ‘%20’ 的空格以符合http urls標準)。

        (2)devbytype

        通過調(diào)用devbytype方法,可以通過選擇設(shè)備類型,查詢與之匹配的設(shè)備列表,表1*http://rts2.org/wiki/doku.php?id=code:json列出了可供選擇設(shè)備類型的代碼。

        (3)devices

        微信小程序通過使用devices命令,可以獲取連接到RTS2中的所有設(shè)備列表,該數(shù)據(jù)以JSON格式描述。

        (4)get

        微信小程序通過get命令,結(jié)合設(shè)備名稱參數(shù),獲取某個連接設(shè)備的具體數(shù)據(jù),比如設(shè)備的狀態(tài)、位置等詳細的數(shù)據(jù)生成JSON格式從RTS2中返回微信小程序,以便觀測人員進行解析顯示。

        (5)lastimage、currentimage

        微信小程序通過lastimage命令獲取最后采集的圖片,通過currentimage命令獲取當前采集的圖片。

        表1 設(shè)備類型Table1 Equipmenttype

        2.2 RTS2的微信小程序終端控制系統(tǒng)實現(xiàn)

        根據(jù)上述討論的技術(shù),在移動終端依托微信小程序,利用開源的RTS2,在微信小程序上實現(xiàn)了一套基于RTS2的望遠鏡系統(tǒng)狀態(tài)查看、連接在RTS2上設(shè)備的信息及狀態(tài)查看和望遠鏡拍攝圖片查看的系統(tǒng)原型。系統(tǒng)以部署在Ubuntu16.04上的RTS2為服務(wù),使用系統(tǒng)為Android6.0版本的手機且安裝版本為6.5.10的微信,微信小程序與RTS2交互的訪問流程如圖2。

        圖2微信小程序功能圖
        Fig.2The WeChat Micro-program function diagram

        通過微信開發(fā)工具將微信小程序發(fā)布到微信上即可使用,微信小程序通過使用devices命令獲取連接設(shè)備列表,根據(jù)需要查看設(shè)備的狀態(tài)和信息,設(shè)備信息、狀態(tài)和性能數(shù)據(jù)的顯示界面如圖3。

        根據(jù)圖3的顯示信息可以看出通過小程序發(fā)送JSON封裝的命令,獲取連接設(shè)備的基本信息,微信小程序自帶的調(diào)試和性能監(jiān)控功能可以看出中央處理器占用率是1%,內(nèi)存消耗只有151 M,運行小程序?qū)κ謾C硬件的要求不高,同時,由于小程序自身擁有即開即用、不需要下載安裝等特點,也不會占用系統(tǒng)的存儲空間。在現(xiàn)實使用中,觀測人員通過微信小程序可以隨時隨地查看連接設(shè)備信息和拍攝的天文圖片,同時也可以根據(jù)JSON命令控制設(shè)備。

        圖3設(shè)備信息、狀態(tài)和性能
        Fig.3Device information, status and performance

        3 結(jié)束語

        RTS2作為一個開源的天文望遠鏡控制系統(tǒng),在天文領(lǐng)域許多研究人員對其進行研究和使用,基于瀏覽器通過XMLRPC[1]/WebSocket[3-4]協(xié)議對其進行實時的控制和狀態(tài)查詢進行擴展,通過微信的廣泛使用,以此為載體,提供微信小程序,只需要觀測人員或者值守人員擁有微信客戶端,使用場景與手機操作系統(tǒng)無關(guān),可以在移動終端隨時隨地查看連接設(shè)備狀態(tài),獲取望遠鏡拍攝的圖片。雖然本文的自主控制系統(tǒng)是RTS2,同樣可以借助JSON Proxy Server擴展到ASCOM框架,實現(xiàn)一個基于微信小程序針對自主望遠鏡控制系統(tǒng)遠程的通用框架。

        總體來說,本文實現(xiàn)的通用望遠鏡控制微信程序設(shè)計能夠滿足對連接設(shè)備信息查看和控制的觀測需要。由于本文基于HTTP協(xié)議進行,所有獲取都是主動模式,與WebSocket相比,實時方面有所欠缺,在下一步工作中,可尋找技術(shù)手段進行改進。

        參考文獻:

        [1]冉凡輝, 鄧輝, 梁波, 等. 基于XML-RPC的RTS2自主觀測系統(tǒng)遠程訪問技術(shù)[J]. 天文研究與技術(shù)——國家天文臺臺刊, 2013, 10(4): 372-377.

        Ran Fanhui, Deng Hui, Liang Bo, et al. A study of remote access techniques for an RTS2 autonomous observation software system based on the XML-RPC[J]. Astronomical Research & Technology——Publications of National Astronomical Observatories of China,2013,10(4):372-377.

        [2]諶俊毅, 陳東, 范玉峰, 等. 基于嵌入式系統(tǒng)的望遠鏡遠程控制實驗[J]. 天文研究與技術(shù)——國家天文臺臺刊, 2007, 4(1): 36-41.

        Chen Junyi, Chen Dong, Fan Yufeng, et al. The remote control experiment of the telescope based on the embedded Internet[J]. Astronomical Research & Technology——Publications of National Astronomical Observatories of China, 2007, 4(1): 36-41.

        [3]許駿, 金振宇. WindowsSockets實現(xiàn)天文終端的遠程控制[J]. 云南天文臺臺刊, 2001(1): 40-46.

        Xu Jun, Jin Zhenyu. Remote control of astronomical terminals based on WinSockets[J]. Publications of the Yunnan Observatory, 2001(1): 40-46.

        [4]衛(wèi)守林, 曹子皇, 王鋒, 等. 基于WebSocket的RTS2Web控制研究[J].天文研究與技術(shù)——國家天文臺臺刊, 2014, 11(4): 404-409.

        Wei Shoulin, Cao Zihuang, Wang Feng, et al. A study of web control of an RTS2 system based on the WebSocket[J]. Astronomical Research & Technology——Publications of National Astronomical Observatories of China, 2014, 11(4): 404-409.

        [5]匡文波, 李芮, 任卓如. 微信小程序面面觀[J]. 新聞?wù)搲? 2017(2): 15-18.

        Kuang Wenbo, Li Rui, Ren Zhuoru. Face view micro-program[J]. News Tribune, 2017(2): 15-18.

        [6]王天泥. 當圖書館遇上微信小程序[J]. 圖書與情報, 2016(6): 83-86.

        Wang Tianni. When library encounters WeChat mini-apps[J]. Library and Information, 2016(6): 83-86.

        猜你喜歡
        天文望遠鏡命令
        天文動手做/中國古天文系列 三星在天、在隅、在戶
        軍事文摘(2024年4期)2024-01-09 09:08:34
        只聽主人的命令
        神奇的“千里眼”——望遠鏡
        天文篇
        神奇的千里眼——望遠鏡
        打造最大望遠鏡
        移防命令下達后
        超級望遠鏡頭
        一群“玩”天文的癡迷少年
        這是人民的命令
        亚洲av永久无码精品| 国产女人精品一区二区三区 | 亚洲精品国产第一综合色吧| 99亚洲男女激情在线观看| 中文文精品字幕一区二区| 美女福利一区二区三区在线观看| 天堂网日韩av在线播放一区| 国产强被迫伦姧在线观看无码| 亚洲日韩国产精品第一页一区| 久久中文字幕亚洲精品最新| 凹凸世界视频a一二三| 国产精品久久久爽爽爽麻豆色哟哟 | 亚洲阿v天堂2018在线观看| 日本黄色特级一区二区三区| 国产无套乱子伦精彩是白视频| 亚洲精品无码久久久久| 亚洲午夜看片无码| av黄色大片久久免费| 日本熟妇色xxxxx日本妇| 天天做天天爱天天综合网| 午夜日韩视频在线观看| 久久精品国产亚洲av四叶草| 国产精品伦一区二区三级视频 | 亚洲综合偷自成人网第页色| 久久精品国产亚洲av沈先生| 一区二区三区内射美女毛片 | 精品国内自产拍在线视频| 丝袜美腿诱惑一二三区| 男吃奶玩乳尖高潮视频| 99蜜桃在线观看免费视频网站| 国产传媒在线视频| 野花视频在线观看免费| 性高朝大尺度少妇大屁股| 亚洲国产一区在线二区三区| 亚洲色图偷拍自拍亚洲色图| 亚洲成av人片乱码色午夜| 久久亚洲精品无码gv| 亚洲国产精品国自产拍av在线| 国产精品女同一区二区免费站| 亚洲av永久无码天堂网毛片| 国产高潮流白浆免费观看不卡|