国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于RTX的實(shí)時(shí)數(shù)據(jù)處理系統(tǒng)①

2017-10-13 12:06:55崔亞軍王鴻亮王俊霖
關(guān)鍵詞:實(shí)時(shí)性線程進(jìn)程

崔亞軍, 趙 奎, 王鴻亮, 王俊霖

?

基于RTX的實(shí)時(shí)數(shù)據(jù)處理系統(tǒng)①

崔亞軍1,2, 趙 奎2, 王鴻亮2, 王俊霖3

1(中國科學(xué)院大學(xué), 北京 100049)2(中國科學(xué)院沈陽計(jì)算技術(shù)研究所, 沈陽 110168)3(大連理工大學(xué)軟件學(xué)院, 大連 116024)

為了解決遠(yuǎn)程設(shè)備數(shù)據(jù)處理不及時(shí)的問題, 提出了一種基于RTX實(shí)時(shí)操作系統(tǒng)的設(shè)備數(shù)據(jù)處理系統(tǒng). 該系統(tǒng)由RTX實(shí)時(shí)數(shù)據(jù)處理進(jìn)程和人機(jī)交互進(jìn)程兩部分組成, 其中RTX實(shí)時(shí)數(shù)據(jù)處理進(jìn)程負(fù)責(zé)接收遠(yuǎn)程設(shè)備端的數(shù)據(jù)并進(jìn)行實(shí)時(shí)的處理, 將處理過的數(shù)據(jù)經(jīng)共享內(nèi)存和同步事件對象等通信方式, 傳輸?shù)絎in32的人機(jī)交互進(jìn)程進(jìn)行顯示和存儲數(shù)據(jù), 同時(shí)用戶可以通過控制指令修改遠(yuǎn)程設(shè)備的狀態(tài). 實(shí)驗(yàn)證明, 該系統(tǒng)解決了設(shè)備數(shù)據(jù)處理不及時(shí)的問題, 保證了設(shè)備管控的實(shí)時(shí)性和穩(wěn)定性, 能夠滿足對遠(yuǎn)程設(shè)備進(jìn)行實(shí)時(shí)管控的要求.

數(shù)據(jù)處理; 實(shí)時(shí)系統(tǒng); RTX; 進(jìn)程通信

1 引言

隨著設(shè)備管控技術(shù)的發(fā)展, 以實(shí)時(shí)數(shù)據(jù)處理為基礎(chǔ)的管控技術(shù)成為當(dāng)前工業(yè)實(shí)時(shí)設(shè)備管控的關(guān)鍵. 目前, 雖然通用操作系統(tǒng)的處理能力、速度和效率等已經(jīng)能夠滿足大部分工業(yè)生產(chǎn)的需要, 然而, 在實(shí)時(shí)設(shè)備管控領(lǐng)域, 系統(tǒng)不僅需要好的處理能力和效率, 還要保證設(shè)備數(shù)據(jù)處理的實(shí)時(shí)性. 為了滿足這一要求, 本文采用基于實(shí)時(shí)操作系統(tǒng)(RTOS)的實(shí)時(shí)設(shè)備數(shù)據(jù)處理方案[1]. RTOS能夠保證數(shù)據(jù)處理請求在極短的時(shí)間內(nèi)得到相應(yīng)處理, 具有低成本、高靈活性、高實(shí)時(shí)性及豐富配套資源等優(yōu)點(diǎn)[2]. 目前常用的RTOS有VxWorks、RTX和RtLinux等, 其中RTX是Windows下硬實(shí)時(shí)的操作系統(tǒng)[3]. 為了充分利用Windows下豐富的資源, 本文提出一種基于RTX的實(shí)時(shí)數(shù)據(jù)處理系統(tǒng), 實(shí)現(xiàn)設(shè)備數(shù)據(jù)的接收、處理、顯示以及人機(jī)交互等功能, 以滿足系統(tǒng)的實(shí)時(shí)性、可靠性和安全性.

2 RTX概述

2.1 RTX相關(guān)概念

IntervalZero公司研發(fā)的RTX系統(tǒng)是Windows環(huán)境下純軟件實(shí)現(xiàn)的硬實(shí)時(shí)操作系統(tǒng)[4], 其擁有采用搶占式優(yōu)先級的高效任務(wù)管理器, 同時(shí)可以支持大部分C/C++語言函數(shù)庫和Win32 API. RTX通過對Windows硬件抽象層(HAL)進(jìn)行擴(kuò)展來實(shí)現(xiàn)獨(dú)立的內(nèi)核驅(qū)動模型, 并增加與Win32子系統(tǒng)并存的實(shí)時(shí)子系統(tǒng)(RTSS)來保證系統(tǒng)的實(shí)時(shí)性, RTX的體系架構(gòu)如圖1所示. 在RTX環(huán)境下進(jìn)行實(shí)時(shí)系統(tǒng)的開發(fā), 有以下幾點(diǎn)優(yōu)勢: 1)能夠保證程序的實(shí)時(shí)性; 2)實(shí)時(shí)接口RtApi的使用與Win32環(huán)境類似, 便于程序的開發(fā); 3)RTX支持使用C/C++的集成開發(fā)環(huán)境進(jìn)行程序開發(fā)[5].

圖1 RTX和Windows運(yùn)行的架構(gòu)圖

2.2 RTX的實(shí)時(shí)性分析

系統(tǒng)實(shí)時(shí)性的評價(jià), 主要從系統(tǒng)處理不確定事件時(shí)所消耗的線程切換延遲、中斷響應(yīng)延遲和定時(shí)器延遲等方面進(jìn)行[6]. 本文利用RTX64和Intel i3 CPU的PC進(jìn)行RTX的性能測試, 并將測試結(jié)果與Windows 7進(jìn)行對比, 具體情況如表1所示.

表1 RTX和Windows性能的對比

由表1可以看出, Windows系統(tǒng)的通用性能良好, 但是最大延遲是實(shí)時(shí)系統(tǒng)所不能接收的, 而RTX能夠保證在任何情況下, 系統(tǒng)的最大延遲都是極小的, 因此RTX能保證在處理不確定事件時(shí)也具有實(shí)時(shí)性.

3 實(shí)時(shí)數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)

3.1 系統(tǒng)需求分析

本文系統(tǒng)的設(shè)計(jì)旨在實(shí)現(xiàn)遠(yuǎn)程設(shè)備的實(shí)時(shí)管控, 該系統(tǒng)主要包含兩個模塊: 實(shí)時(shí)數(shù)據(jù)處理模塊和人機(jī)交互模塊. 系統(tǒng)的數(shù)據(jù)流程是遠(yuǎn)程設(shè)備通過RtxTcpip協(xié)議實(shí)時(shí)地把設(shè)備數(shù)據(jù)傳輸?shù)皆撓到y(tǒng), 并由數(shù)據(jù)處理模塊進(jìn)行接收和處理, 然后將處理好的數(shù)據(jù)通過進(jìn)程間通信傳輸給人機(jī)交互模塊, 由人機(jī)交互模塊進(jìn)行數(shù)據(jù)的顯示和存儲. 系統(tǒng)的控制流程是指首先由系統(tǒng)的人機(jī)交互模塊發(fā)送控制指令, 然后通過RtxTcpip協(xié)議將指令實(shí)時(shí)地傳輸給遠(yuǎn)程設(shè)備. 該系統(tǒng)的實(shí)時(shí)數(shù)據(jù)處理模塊主要包括數(shù)據(jù)監(jiān)聽、數(shù)據(jù)接收、數(shù)據(jù)解析、數(shù)據(jù)檢測和數(shù)據(jù)轉(zhuǎn)儲等子模塊. 人機(jī)交互模塊主要包括指令設(shè)置、數(shù)據(jù)存儲、數(shù)據(jù)分析和數(shù)據(jù)可視化等子模塊, 詳細(xì)的功能規(guī)劃如圖2所示.

圖2 系統(tǒng)的功能模塊圖

3.2 系統(tǒng)整體架構(gòu)的設(shè)計(jì)

系統(tǒng)架構(gòu)是影響系統(tǒng)整體性能的關(guān)鍵因素之一, 雖然RTX能夠保證進(jìn)程的實(shí)時(shí)性, 但良好的架構(gòu)能夠減少任務(wù)調(diào)度對系統(tǒng)關(guān)鍵線程的影響[7]. 因此, 在系統(tǒng)開發(fā)之前, 有必要對系統(tǒng)整體的架構(gòu)、各模塊的運(yùn)行機(jī)制以及內(nèi)部的實(shí)現(xiàn)作詳細(xì)地分析, 盡可能設(shè)計(jì)出最優(yōu)性能的系統(tǒng), 以達(dá)到相對理想的狀態(tài).

本文系統(tǒng)整體的結(jié)構(gòu)如圖3所示. 該系統(tǒng)的實(shí)時(shí)數(shù)據(jù)處理層在RTX環(huán)境下運(yùn)行, 包括實(shí)時(shí)的數(shù)據(jù)接收、解析和檢測等功能, 同時(shí)能夠及時(shí)地進(jìn)行異常中斷處理, 保證遠(yuǎn)程的設(shè)備數(shù)據(jù)傳送到該系統(tǒng)時(shí), 數(shù)據(jù)能夠得到實(shí)時(shí)地處理, 而人機(jī)交互層在Win32環(huán)境下運(yùn)行. 本系統(tǒng)利用MFC完成人機(jī)交互界面的設(shè)計(jì), 同時(shí)提供指令發(fā)送、數(shù)據(jù)可視化和數(shù)據(jù)存儲的功能.

圖3 系統(tǒng)的整體架構(gòu)圖

3.3 系統(tǒng)的程序設(shè)計(jì)

整個系統(tǒng)程序流程的設(shè)計(jì)以RTX實(shí)時(shí)進(jìn)程和人機(jī)交互進(jìn)程之間的共享內(nèi)存通信為中心. 系統(tǒng)的程序流程圖如圖4所示, 其中圖4右側(cè)為RTX實(shí)時(shí)進(jìn)程, 圖4左側(cè)為人機(jī)交互進(jìn)程.

圖4 系統(tǒng)的程序流程圖

RTX實(shí)時(shí)進(jìn)程主要包括實(shí)時(shí)主線程、數(shù)據(jù)接收線程和數(shù)據(jù)處理線程三部分. 實(shí)時(shí)處理線程負(fù)責(zé)將接收的設(shè)備數(shù)據(jù)進(jìn)行實(shí)時(shí)處理, 并將結(jié)果通過共享內(nèi)存的方式傳輸給人機(jī)交互層, 并根據(jù)人機(jī)交互的控制指令修改實(shí)時(shí)進(jìn)程的狀態(tài). 人機(jī)交互進(jìn)程主要由系統(tǒng)主線程、指令發(fā)送、數(shù)據(jù)顯示和轉(zhuǎn)儲等多個線程組成. 指令發(fā)送線程負(fù)責(zé)發(fā)送用戶對遠(yuǎn)程設(shè)備的控制指令, 數(shù)據(jù)顯示線程負(fù)責(zé)對通過共享內(nèi)存?zhèn)鱽淼臄?shù)據(jù)進(jìn)行及時(shí)可視化處理, 以向用戶展示遠(yuǎn)程設(shè)備的當(dāng)前狀態(tài), 同時(shí)利用數(shù)據(jù)存儲線程將接收到的遠(yuǎn)程設(shè)備數(shù)據(jù)存儲到系統(tǒng)指定的數(shù)據(jù)庫中.

4 系統(tǒng)的實(shí)現(xiàn)

本文的系統(tǒng)開發(fā)是在RTX64實(shí)時(shí)環(huán)境下, 使用C/C++語言在Visual Studio 2013平臺進(jìn)行的. 其中實(shí)時(shí)進(jìn)程采用RTX提供的RtApi實(shí)時(shí)接口進(jìn)行開發(fā), 人機(jī)交互進(jìn)程采用MFC類庫進(jìn)行開發(fā).

4.1 實(shí)時(shí)進(jìn)程的實(shí)現(xiàn)

4.1.1 實(shí)時(shí)數(shù)據(jù)接收的實(shí)現(xiàn)

高精度定時(shí)器是實(shí)時(shí)數(shù)據(jù)處理進(jìn)程的核心, RTX系統(tǒng)提供了三種類型的定時(shí)器: CLOCK_SYSTEM、CLOCK_FASTEST和CLOCK_3[8]. 本文采用了的時(shí)鐘精度為1us的CLOCK_FASTEST類型的定時(shí)器. 在使用定時(shí)器時(shí), 首先利用RtCreateTimer()函數(shù)創(chuàng)建定時(shí)器, 然后通過RtSetTimerRelative()函數(shù)設(shè)置定時(shí)器的時(shí)鐘周期和重復(fù)間隔, 最后將數(shù)據(jù)接收執(zhí)行代碼放到定時(shí)器的回調(diào)函數(shù)中, 使其能夠周期性的實(shí)時(shí)執(zhí)行. 關(guān)鍵代碼示例如下:

HANDLE hDataTimer=RtCreateTimer(NULL,0,

DataFunc,NULL, RT_PRIORITY_MAX,

CLOCK_FASTEST);

RtSetTimerRelative(hDataTimer,&nDataPeriod,

&nDataPeriod);

void RTFCNDCL DataFunc(void* context){

... //數(shù)據(jù)接收代碼段

RtSetEvent(hDataParse); //重置同步事件對象

}

4.1.2 實(shí)時(shí)數(shù)據(jù)解析和轉(zhuǎn)儲的實(shí)現(xiàn)

數(shù)據(jù)解析和轉(zhuǎn)儲線程主要包括以下幾個方面. 首先數(shù)據(jù)解析線程通過RtWaitForMultipleObjects()函數(shù)接收由數(shù)據(jù)接收線程發(fā)來的同步事件對象, 然后打開共享內(nèi)存, 從中提取數(shù)據(jù)進(jìn)行解析, 并對數(shù)據(jù)正確性的檢測, 如果解析的數(shù)據(jù)符合標(biāo)準(zhǔn)的數(shù)據(jù)格式, 就把它交于數(shù)據(jù)轉(zhuǎn)儲線程進(jìn)行轉(zhuǎn)儲到共享內(nèi)存[9], 否則將錯誤信息封裝到數(shù)據(jù)塊的錯誤信息段, 并交由人機(jī)交互層處理. 最后由RtSetEvent()函數(shù)重置與Win32通信的同步事件對象, 并通知人機(jī)交互層將共享內(nèi)存中的數(shù)據(jù)及時(shí)進(jìn)行顯示和存儲. 關(guān)鍵代碼示例如下:

dwStatus=RtWaitForMultipleObjects(2,hEvent,

FALSE,INFINITE);

if(WAIT_OBJECT_0+TERM_EVENT==dwStatus){

RtSetEvent(hEvent[TERM_EVENT]); ExitProcess(0);

}

if(WAIT_OBJECT_0+EXECUTE_EVENT==dwStatus){

if(memcmp(pData->prodData,pData->consData, sizeof(pData->prodData)) != 0){

... //數(shù)據(jù)轉(zhuǎn)儲代碼段 RtSetEvent(hEvent[TERM_EVENT]);

ExitProcess(0);

}

}

4.2 人機(jī)交互進(jìn)程的實(shí)現(xiàn)

人機(jī)交互進(jìn)程的實(shí)現(xiàn)是在Win32環(huán)境下使用MFC基礎(chǔ)類庫完成的, 它與實(shí)時(shí)進(jìn)程間的交互通過RTX的RtApi接口來完成[10]. 人機(jī)交互進(jìn)程主要包括以下幾個功能: 數(shù)據(jù)的顯示、存儲數(shù)據(jù)庫、控制指令的發(fā)送. 其中, 數(shù)據(jù)顯示負(fù)責(zé)從實(shí)時(shí)進(jìn)程中接收數(shù)據(jù), 并將數(shù)據(jù)顯示到MFC界面, 數(shù)據(jù)顯示界面如圖5所示.

圖5 數(shù)據(jù)顯示的界面圖

存儲數(shù)據(jù)功能負(fù)責(zé)將接收到的數(shù)據(jù)存儲到數(shù)據(jù)庫, 為用戶查詢設(shè)備的歷史信息提供便利. 控制指令的發(fā)送功能主要將控制指令對話框中的指令發(fā)送到遠(yuǎn)程設(shè)備, 對遠(yuǎn)程設(shè)備進(jìn)行控制.

5 實(shí)驗(yàn)測試及結(jié)果分析

本次性能測試實(shí)驗(yàn)的硬件配置為: CPU(Intel i3 3.60GHz)、內(nèi)存(4.00GB); 軟件環(huán)境為: Windows 7、RTX64實(shí)時(shí)系統(tǒng)和VS 2013開發(fā)工具. 本實(shí)驗(yàn)測試的主要目的是對數(shù)據(jù)處理進(jìn)程在實(shí)時(shí)環(huán)境下所消耗的時(shí)間與Win32環(huán)境所用時(shí)間進(jìn)行對比, 并分析本系統(tǒng)的實(shí)時(shí)性. 在實(shí)驗(yàn)測試中, 采用高精度計(jì)數(shù)器完成時(shí)間的統(tǒng)計(jì), 通過QueryPerformanceFrequency()函數(shù)和QueryPerformanceCounter()函數(shù)分別獲取計(jì)時(shí)器的頻率和數(shù)值[11], 并利用兩次獲取的計(jì)數(shù)之差與計(jì)時(shí)器頻率, 計(jì)算出數(shù)據(jù)處理所花費(fèi)的精確時(shí)間.

圖6 輕負(fù)載RTX與Win32性能的比較

圖7 重負(fù)載RTX與Win32性能的比較

該數(shù)據(jù)處理系統(tǒng)在輕負(fù)載和重負(fù)載下分別進(jìn)行了50次實(shí)驗(yàn), 實(shí)驗(yàn)結(jié)果如圖6和圖7所示. 在輕度負(fù)載的Win32環(huán)境下, 數(shù)據(jù)處理時(shí)間在22ms左右, 浮動相對較小; 在重負(fù)載的Win32環(huán)境下, 數(shù)據(jù)處理時(shí)間浮動很大, 接近秒級, 因此不能達(dá)到業(yè)界對實(shí)時(shí)處理系統(tǒng)在10ms之內(nèi)完成數(shù)據(jù)處理的要求. 而在RTX實(shí)時(shí)環(huán)境中, 數(shù)據(jù)的處理時(shí)間不受Windows負(fù)載的影響, 因此, 無論在輕負(fù)載還是重負(fù)載下, 實(shí)時(shí)數(shù)據(jù)處理都能夠保證在3ms之內(nèi)完成, 具有很好的實(shí)時(shí)性, 能夠滿足實(shí)時(shí)管控系統(tǒng)對數(shù)據(jù)處理的要求.

6 結(jié)語

本文設(shè)計(jì)的基于RTX的實(shí)時(shí)數(shù)據(jù)處理系統(tǒng), 充分利用了RTX的可擴(kuò)展析性、實(shí)時(shí)性和高靈活性等特征, 實(shí)現(xiàn)了搶占式優(yōu)先級的高效任務(wù)管理和實(shí)時(shí)調(diào)度. 通過對數(shù)據(jù)處理系統(tǒng)的實(shí)時(shí)性測試, 可以看出RTX環(huán)境為系統(tǒng)的實(shí)時(shí)性提供了保證, 其設(shè)備數(shù)據(jù)處理的性能遠(yuǎn)遠(yuǎn)好于Windows環(huán)境, 能夠保證設(shè)備數(shù)據(jù)處理在10ms內(nèi)完成. 因此, 本文設(shè)計(jì)的數(shù)據(jù)處理系統(tǒng)能夠很好地滿足實(shí)時(shí)設(shè)備管控的需要, 同時(shí)也為在Windows非實(shí)時(shí)環(huán)境下如何通過軟硬件擴(kuò)展進(jìn)行實(shí)時(shí)系統(tǒng)的開發(fā)提供了一種有效的解決方法.

1 White JA, Bettencourt J. Real-time experiment interface for biological control applications. 2010 Annual International Conference of the IEEE Engineering in Medicine and Biology. IEEE. 2010. 4160–4163.

2 IntervalZero lnc. RTX64 deployment guide. https://www. intervalzero.com/rtx-downloads/rtx64-downloads/rtx64-2014- downloads. [2015-10-13].

3 楊建,王建軍,郭立紅.基于RTX的某光電裝備圖像處理實(shí)時(shí)性研究.計(jì)算機(jī)測量與控制,2015,11(4):31–33.

4 馬維斯.基于RTX的關(guān)節(jié)控制系統(tǒng)及測試平臺研究[碩士學(xué)位論文].哈爾濱:哈爾濱工業(yè)大學(xué),2014.

5 Guo C, Ni F, Zou T. Design of real-time and open control system for Chinese space manipulator joint on RTX. 2015 IEEE International Conference on Robotics and Biomimetics (ROBIO). IEEE. 2015. 2629–2634.

6 Lee YH, Kim D. Software architecture supporting integrate real-time systems. The Journal of Systems and Software, 2013, 65(4): 71–86.

7 彭健,包夢.基于RTX51嵌入式操作系統(tǒng)的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì).工業(yè)儀表與自動化裝置,2015,2(4):29–32.

8 雷毅,周徐昌.基于RTX平臺高速實(shí)時(shí)數(shù)據(jù)采集與處理平臺設(shè)計(jì).艦船電子工程,2010,6(7):89–96.

9 王偉,袁保君,吳佳楠.基于RTX的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì).測控技術(shù),2012,8(10):78–81.

10 劉曉晶.基于Windows平臺的實(shí)時(shí)擴(kuò)展子系統(tǒng)(RTX)研究及其在雷達(dá)系統(tǒng)中的應(yīng)用[碩士學(xué)位論文].南京:南京理工大學(xué),2011.

11 任偉,陳韶千,王亮.基于RTX的網(wǎng)絡(luò)延遲測試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).測控技術(shù),2013,3(4):80–83.

Real-Time Data Processing System Based on RTX

CUI Ya-Jun1,2, ZHAO Kui2, WANG Hong-Liang2, WANG Jun-Lin3

1(University of Chinese Academy of Sciences, Beijing 100049, China)2(Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168, China)3(School of Software Technology, Dalian University of Technology, Dalian 116024, China)

In order to ensure the real-time data processing of remote device, a real-time processing system based on RTX is proposed, which is composed of RTX real-time process and man-machine interaction. The RTX real-time process gets data from remote device and processes the real-time data. Then, it displays and storages data by transferring the processed data to a Win32 user interface layer by sharing memory and synchronizing event object. Simultaneously, the user could alter remote device upon commands from man-machine interaction. Experiments have shown that the system can reduce the latency of data processing, ensure the real-time and stability of equipment control, and satisfy the real-time control requirements for remote device.

data processing; real-time system; RTX; process communication

國家水體污染控制與治理科技重大專項(xiàng)(2012ZX07505003)

2016-04-26;收到修改稿時(shí)間:2016-06-21

[10.15888/j.cnki.csa.005534]

猜你喜歡
實(shí)時(shí)性線程進(jìn)程
基于規(guī)則實(shí)時(shí)性的端云動態(tài)分配方法研究
債券市場對外開放的進(jìn)程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實(shí)時(shí)性仿真
航空電子AFDX與AVB傳輸實(shí)時(shí)性抗干擾對比
淺談linux多線程協(xié)作
一種車載Profibus總線系統(tǒng)的實(shí)時(shí)性分析
社會進(jìn)程中的新聞學(xué)探尋
我國高等教育改革進(jìn)程與反思
Linux僵死進(jìn)程的產(chǎn)生與避免
Linux線程實(shí)現(xiàn)技術(shù)研究
聂荣县| 灌云县| 永泰县| 崇阳县| 靖安县| 嘉荫县| 宁海县| 黑龙江省| 旬阳县| 洪江市| 尼勒克县| 恩施市| 军事| 建平县| 新蔡县| 班戈县| 满城县| 武川县| 阜宁县| 平邑县| 田东县| 大渡口区| 科技| 浑源县| 抚远县| 鄂尔多斯市| 兴山县| 朝阳市| 龙里县| 南昌市| 卓尼县| 肇东市| 芒康县| 兴安盟| 芜湖市| 尼玛县| 伊宁市| 彭阳县| 玉龙| 巨鹿县| 石林|