基于Zigbee的無線定位系統(tǒng)_第1頁
基于Zigbee的無線定位系統(tǒng)_第2頁
基于Zigbee的無線定位系統(tǒng)_第3頁
基于Zigbee的無線定位系統(tǒng)_第4頁
基于Zigbee的無線定位系統(tǒng)_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、創(chuàng)新創(chuàng)業(yè)項目訓練計劃項目總結(jié)報告創(chuàng)新創(chuàng)業(yè)訓練計劃項目結(jié)題報告項 目 編 號:項 目 名 稱:智能搜狗項 目 級 別:項目負責人:項目類型:R創(chuàng)新訓練 ð創(chuàng)業(yè)訓練 ð創(chuàng)業(yè)實踐指 導 教 師:所在學部學院:教務處制大連理工大學大學生創(chuàng)新創(chuàng)業(yè)訓練計劃項目原創(chuàng)性聲明本人鄭重聲明:所呈交的項目結(jié)題報告以及所完成的作品實物等相關(guān)成果,是本人和項目組其他成員獨立進行研究工作所取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,本論文不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的作品成果,不侵犯任何第三方的知識產(chǎn)權(quán)或其他權(quán)利。本人完全意識到本聲明的法律結(jié)果由本人承擔。項目負責人簽名: 年 月 日 項目指導

2、教師審核簽名: 年 月 日智能搜狗Intelligent Searching23摘要今年來,隨著人們生活水平的提高,人們對日常生活中一些重要的物品或者是家里養(yǎng)的寵物等可移動事物的實時位置尤為關(guān)心,希望隨時隨地都能知道其具體方位,但是現(xiàn)有的GPS技術(shù)還未全面普及,價格依然很昂貴,所以,本項目著重研究利用低成本硬件設(shè)備實現(xiàn)實時定位的功能,將無線定位技術(shù)帶入人們生活的方方面面。通過前期的調(diào)查研究,我們發(fā)現(xiàn)現(xiàn)在市場上的定位裝置價格普遍昂貴,而且功耗較高,本項目利用ZIGBEE模塊的低成本、低功耗的特點很好的解決了這些問題。關(guān)鍵詞:無線定位;ZIGBEEAbstractIn recent years,w

3、ith the development of peoples living standard,people place more attention on the real-time position of something important or mobilizable at home like pets,they want it to be capable that they can attain the specific position of the object at anytime and anywhere.But the GPS has not been popularize

4、d,and the price is still very high.Therefore,our project is to do some research to find how to achieve real-time positioning with low-cost hardware,and bring wireless positioning technology into peoples daily life.According to the early investigation,we found that the positioning devices in the mark

5、et are generally very expensive and have high consumption of energy.Our project is to use the low-cost ZIGBEE module with low power consumption to solve these problems.Key Words:Wireless Positioning;ZIGBEE1 項目概述1.1項目成員及指導教師基本情況項目成員:學部:專業(yè)指導老師:專業(yè)領(lǐng)域:智能儀器控制1.2項目的選題背景、目的與意義如今人們的生活水平不斷提高,生活節(jié)奏不斷加快,每天進行這繁重的

6、工作和學習,無暇顧及生活中的一些細節(jié)問題,而生活中往往有些東西是我們非常關(guān)心的,比如一些重要的物品,甚至是自己養(yǎng)的寵物,我們代之關(guān)懷備至,總希望時時刻刻能夠知道它們的具體位置,抑或在自己忘記或者找不到的情況下能夠輕松地尋獲它們的方位,一方面節(jié)省時間,另一方面也為自己分憂。在科技迅猛發(fā)展的今天,網(wǎng)絡(luò)幾乎成為人民生產(chǎn)、生活的必需品,尤其是無線網(wǎng)絡(luò)的發(fā)展給人們的生活帶來了無盡的便捷,無線定位技術(shù)更是迅猛地發(fā)展起來。如今比較成熟的GPS技術(shù)價格依然十分昂貴,對于生活中這樣的一些小應用,成本太高不劃算,而且功耗高,不切實際。本項目正是從這方面出發(fā),利用低功耗、低成本的ZIGBEE模塊來實現(xiàn)無線定位的功能

7、,將無線定位技術(shù)引入生活的方方面面。13項目實施過程的人員工作分配和完成情況2013.4-2013.5項目論證,最終采取zigbee技術(shù)實現(xiàn)功能2013.6-20137查閱zigbee技術(shù)基本知識2013.8-2013.9了解協(xié)議棧工作原理,掌握程序指令功能2013.10-2014.1在硬件電路基礎(chǔ)上編程,逐步完成通信以及信號質(zhì)量檢測功能2014.2-2014.4建立距離-信號模型,實現(xiàn)測量功能本項目組由兩名同學組成,項目負責人為xxx,組員為xxx。任務分配如下:xxx 主要負責實驗程序的編寫與調(diào)試等xxx 主要負責實驗器材的購買、實驗數(shù)據(jù)的測試與處理以及相關(guān)定位算法的設(shè)計等1.4 項目實施

8、過程收獲和體會(1)在設(shè)計的過程中最關(guān)鍵的是查閱相關(guān)資料和組員之間的相互溝通;(2)相關(guān)理論知識的學習是必要的;(3)實驗的數(shù)據(jù)總是和理論值有一定的差距的,實驗中需要不斷地調(diào)整和測試;(4)在經(jīng)費允許的條件下,一定要購買開發(fā)板來節(jié)省開發(fā)的時間。2 項目預期成果完成情況和創(chuàng)新點本項目基本完成預期成果,具體功能如下:(1)單個ZIGBEE模塊的收發(fā)功能、和計算機之間的串口通信;調(diào)用和調(diào)試協(xié)議棧程序,完成單個ZIGBEE模塊的收發(fā)數(shù)據(jù)包的功能,為多個模塊之間的組網(wǎng)通信做準備,利用數(shù)據(jù)線將ZIGBEE模塊和計算機連接,實現(xiàn)兩者之間的串口通信,為計算機接收ZIGBEE信息和顯示數(shù)據(jù)做準備。(2)實現(xiàn)ZI

9、GBEE模塊間的組網(wǎng)功能;將多個ZIGBEE模塊組合在一起形成一個網(wǎng)絡(luò),便于數(shù)據(jù)的搜集和獲取,為接收多個RSSI數(shù)據(jù)做準備。(3)RSSI信號的檢測并顯示;利用ZIGBEE模塊實現(xiàn)RSSI信號的檢測,并將其顯示在計算機屏幕上,為后續(xù)的定位算法做準備。(4)基于RSSI的定位算法;利用接收到的RSSI信號計算出實際終端的位置。創(chuàng)新點:(1)利用串口通信的方式,解決了數(shù)據(jù)的顯示問題,而且可以利用計算機連接互聯(lián)網(wǎng),解決了數(shù)據(jù)共享的問題。(2)利用三個節(jié)點實現(xiàn)了終端的定位功能,無論在成本上還是在功耗上都大大降低了。(3)基于RSSI信號實現(xiàn)了定位功能,避免了使用昂貴的專用定位芯片的成本。3 項目說明3

10、.1實驗方法設(shè)計及方案基于ZIGBEE技術(shù),利用無線通信模塊實現(xiàn)各個模塊之間的組網(wǎng)并檢測終端節(jié)點的RSSI值,利用多個RSSI值設(shè)計算法從而實現(xiàn)定位的功能。圖3-1 項目設(shè)計整體框圖3.2 ZigBee技術(shù)協(xié)議ZigBee技術(shù)是一種可靠性高、功耗低的無線通信技術(shù),在ZigBee技術(shù)中,其體系結(jié)構(gòu)通常由層來量化它的各個簡化標準。每一層負責完成所規(guī)定的任務,并且向上層提供服務。各層之間的接口通過所定義的邏輯鏈路來提供服務。ZigBee技術(shù)的體系結(jié)構(gòu)主要由物理(PYH)層。媒體接入控制(MAC)層、網(wǎng)絡(luò)/安全層以及應用構(gòu)架層組成,其各層之間分布如圖。應用構(gòu)架層網(wǎng)絡(luò)/安全層層MAC層物理(PHY)層Z

11、igBee協(xié)議IEEE 802.15.4圖3-2 Zigbee技術(shù)結(jié)構(gòu)不難看出,ZigBee技術(shù)的協(xié)議層結(jié)構(gòu)簡單,不像諸如藍牙和其他網(wǎng)絡(luò)結(jié)構(gòu),這些網(wǎng)絡(luò)結(jié)構(gòu)通常分為7層,而ZigBee技術(shù)僅為3層。在ZigBee技術(shù)中,PHY層和MAC層采用IEEE 802.15.4協(xié)議標準,其中,PHY提供了兩種類型的服務:即通過物理層管理實體接口(PLME)對PHY層數(shù)據(jù)和PHY層管理提供服務。PHY層數(shù)據(jù)服務可以通過無線物理信道發(fā)送和接收物理層協(xié)議數(shù)據(jù)單元(PPDU)來實現(xiàn)。PHY層的特征是啟動和關(guān)閉無線收發(fā)器,能量檢測,鏈路質(zhì)量,信道選擇,清楚信道,評估(CCA),以及通過無線物理媒體對數(shù)據(jù)包進行發(fā)送和

12、接收。同樣,MAC層也提供了兩種類型的服務:通過MAC層管理實體服務接入點(MLME SAP)向MAC層數(shù)據(jù)和MAC層管理提供服務。MAC層數(shù)據(jù)服務可以通過PHY層數(shù)據(jù)服務發(fā)送和接收MAC層協(xié)議數(shù)據(jù)單元(MPDU)。MAC層的具體特征是:信標管理,信道接入,時隙管理,發(fā)送和確認幀,發(fā)送連接及斷開連接請求。除此之外,MAC層為應用合適的安全機制提供一些方法。ZigBee技術(shù)的網(wǎng)絡(luò)層、安全層主要用于為ZigBee的LR WPAN 網(wǎng)的組網(wǎng)連接、數(shù)據(jù)管理以及網(wǎng)絡(luò)安全等;應用框架層主要為ZigBee技術(shù)的實際應用提供一些應用框架模型等,以便對ZigBee技術(shù)的開發(fā)應用。本項目的主要程序也都添加在應用層

13、。3.3 定位程序流程利用Zigbee技術(shù)中的Z-stack協(xié)議,在應用層內(nèi)添加定位程序。整體流程如下圖:1.協(xié)調(diào)器建立網(wǎng)絡(luò)協(xié)調(diào)器是網(wǎng)絡(luò)的發(fā)起者與管理者。首先,由協(xié)調(diào)器建立網(wǎng)絡(luò),同時,不斷向周圍拋出數(shù)據(jù)包,待其他節(jié)點檢測,使網(wǎng)絡(luò)被發(fā)現(xiàn)。2. 路由器加入網(wǎng)絡(luò)并登記地址定位系統(tǒng)中除協(xié)調(diào)器外的其他參考點皆為路由器,路由器發(fā)現(xiàn)由協(xié)調(diào)器建立的網(wǎng)絡(luò)后,向協(xié)調(diào)器發(fā)出申請,請求加入網(wǎng)絡(luò)。符合要求后,協(xié)調(diào)器會為終端分配地址,就此,路由器成功加入網(wǎng)絡(luò)。協(xié)調(diào)器同時會登記各個路由器的地址,用于對返回Rssi值的管理與處理。3.待測節(jié)點加入網(wǎng)絡(luò)待測節(jié)點進入網(wǎng)絡(luò)覆蓋區(qū)域后,會同路由器一樣,加入網(wǎng)絡(luò),由協(xié)調(diào)器負責管理。4.

14、 .終端節(jié)點發(fā)廣播,各參考點測量Rssi值待測節(jié)點加入網(wǎng)絡(luò)后,會周期性發(fā)送廣播,各參考點接受數(shù)據(jù)包,并獲得與待測節(jié)點的通信信號質(zhì)量(Rssi值)。5.各參考點向協(xié)調(diào)器傳送測量值 各參考點每得到三組Rssi值后,取平均值分別將數(shù)值傳送到協(xié)調(diào)器,.傳送方式采用點播。6.協(xié)調(diào)器通過算法實現(xiàn)定位 接受到各路由器點播的數(shù)值,協(xié)調(diào)器采用地址查表的方式管理數(shù)值,將數(shù)值利用f(x) = 10(x-a)/(10*n)求得通信雙方距離關(guān)系,在利用三邊定位算法獲得待測點坐標。圖3-3 項目設(shè)計流程圖3.3 定位模型建立1.距離-Rssi關(guān)系公式 d= 10(|RSSI|-a)/(10*n) 參數(shù)獲得實驗中關(guān)于RSS

15、I值和實際距離關(guān)系的原始數(shù)據(jù)如下表所示:實際距離d(m)12345678910|RSSI|(組1)37486064697476778181|RSSI|(組2)4050606472680818181根據(jù)經(jīng)驗公式d= 10(|RSSI|-a)/(10*n),其中a,n為隨環(huán)境變化的參數(shù)經(jīng)過曲線擬合后,得到擬合圖形如下所示:圖3-4 擬合圖像擬合結(jié)果如下:General model: f(x) = 10(x-a)/(10*n)Coefficients (with 95% confidence bounds): a = 38.28 (32.84, 43.72) n = 4.387 (3.772, 5.

16、002)Goodness of fit: SSE: 1.131 R-square: 0.9863 Adjusted R-square: 0.9846 RMSE: 0.3761General model: f(x) = 10(x-a)/(10*n)Coefficients (with 95% confidence bounds): a = 39.29 (27.26, 51.31) n = 4.484 (3.113, 5.855)Goodness of fit: SSE: 4.648 R-square: 0.9437 Adjusted R-square: 0.9366 RMSE: 0.7622可見

17、擬合效果較好,參數(shù)相差不大,從而可以得到測試環(huán)境下的公式參數(shù),明確了RSSI值和實際距離的關(guān)系。但由于該參數(shù)受環(huán)境影響較大,因而需要實時測量。2.三邊定位算法下圖所示的三個節(jié)點所構(gòu)成的三角形為等邊三角形。圖3-5 三邊定位示意圖為計算方便,預先將實驗中需要設(shè)置的三個節(jié)點組成等邊三角形,相關(guān)坐標如圖所示,實驗中通過RSSI值計算出終端離三個節(jié)點的距離,從而可以利用下述公式計算出終端的坐標位置。=> 從而實現(xiàn)定位的功能。3.3數(shù)據(jù)分析處理演示實驗采用在小區(qū)域內(nèi)進行測試,在邊長為10米的正三角形區(qū)域中嘗試準確定位。經(jīng)比較得,位置誤差在1米以內(nèi),初步到達設(shè)計預期結(jié)果。同時,各節(jié)點的直接通信距離在

18、100米左右,如果再在節(jié)點添加CC2591芯片,節(jié)點直接通信距離可達1公里以上,完全可以滿足區(qū)域定位的要求。4 項目總結(jié)經(jīng)過一年多的努力,我們終于完成了本項目的設(shè)計和制作,一路走來經(jīng)歷了很多坎坷,通過查閱資料,互相探討,提高了自己發(fā)現(xiàn)問題和解決問題的能力,增強了自己的動手能力和解決實際問題的能力,并且通過對ZIGBEE模塊的學習,使得對于無線通信方面有了更加深刻的認識和理解,對于自己以后從事相關(guān)項目和研究,打下了堅實的基礎(chǔ)。5 參考文獻1 蔣挺.趙成林 紫蜂技術(shù)及其應用.北京: 北京郵電大學出版社,2005.附錄 程序節(jié)選1.主函數(shù)int main( void ) osal_int_disab

19、le( INTS_ALL );/ 關(guān)閉所有中斷 / Initialization for board related stuff such as LEDs HAL_BOARD_INIT(); / Make sure supply voltage is high enough to run zmain_vdd_check(); / Initialize board I/O InitBoard( OB_COLD ); / Initialze HAL drivers HalDriverInit(); / Initialize NV System osal_nv_init( NULL ); / Ini

20、tialize the MAC ZMacInit(); / Determine the extended address zmain_ext_addr(); / Initialize basic NV items zgInit();#ifndef NONWK / Since the AF isn't a task, call it's initialization routine afInit();#endif / Initialize the operating system osal_init_system(); / Allow interrupts osal_int_en

21、able( INTS_ALL ); / Final board initialization InitBoard( OB_READY ); / Display information about this device zmain_dev_info(); /* Display the device info on the LCD */#ifdef LCD_SUPPORTED zmain_lcd_init();#endif#ifdef WDT_IN_PM1 /* If WDT is used, this is a good place to enable it. */ WatchDogEnabl

22、e( WDTIMX );#endif osal_start_system(); / No Return from here return 0; / Shouldn't get here. 2.系統(tǒng)函數(shù)void osal_start_system( void )#if !defined ( ZBIT ) && !defined ( UBIT ) for(;) / Forever Loop#endif uint8 idx = 0; osalTimeUpdate(); Hal_ProcessPoll(); / This replaces MT_SerialPoll() and

23、 osal_check_timer(). do if (tasksEventsidx) / Task is highest priority that is ready. break; while (+idx < tasksCnt); if (idx < tasksCnt) uint16 events; halIntState_t intState; HAL_ENTER_CRITICAL_SECTION(intState); events = tasksEventsidx; tasksEventsidx = 0; / Clear the Events for this task.

24、HAL_EXIT_CRITICAL_SECTION(intState); events = (tasksArridx)( idx, events ); HAL_ENTER_CRITICAL_SECTION(intState); tasksEventsidx |= events; / Add back unprocessed events to the current task. HAL_EXIT_CRITICAL_SECTION(intState); #if defined( POWER_SAVING ) else / Complete pass through all task events

25、 with no activity? osal_pwrmgr_powerconserve(); / Put the processor/system into sleep #endif 3.任務事件處理函數(shù)uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events ) afIncomingMSGPacket_t *MSGpkt; (void)task_id; / Intentionally unreferenced paramete if ( events & SYS_EVENT_MSG ) MSGpkt = (afIncom

26、ingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); while ( MSGpkt ) switch ( MSGpkt->hdr.event ) case CMD_SERIAL_MSG: /串口收到數(shù)據(jù)后由MT_UART層傳遞過來的數(shù)據(jù),編譯時不定義MT_TASK,則由MT_UART層直接傳遞到此應用層 SampleApp_SerialCMD(mtOSALSerialData_t *)MSGpkt); break; case KEY_CHANGE: SampleApp_HandleKeys( (keyChange_t *)MSGpk

27、t)->state, (keyChange_t *)MSGpkt)->keys ); break; / Received when a messages is received (OTA) for this endpoint case AF_INCOMING_MSG_CMD: SampleApp_MessageMSGCB( MSGpkt ); break; / Received whenever the device changes state in the network case ZDO_STATE_CHANGE: SampleApp_NwkState = (devStates

28、_t)(MSGpkt->hdr.status); if ( (SampleApp_NwkState = DEV_ZB_COORD) | (SampleApp_NwkState = DEV_ROUTER) SampleApp_NwkState = DEV_END_DEVICE ) / Start sending the periodic message in a regular interval. osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT, SAMPLEAPP_SEND_PERIODIC_MS

29、G_TIMEOUT ); if(SampleApp_NwkState = DEV_END_DEVICE) SampleApp_SendPointToPointMessage(); if(SampleApp_NwkState = DEV_ROUTER) SampleApp_SendPointToPointMessage1(); else / Device is no longer in the network break; default: break; / Release the memory osal_msg_deallocate( (uint8 *)MSGpkt ); / Next - i

30、f one is available MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); / return unprocessed events return (events SYS_EVENT_MSG); / Send a message out - This event is generated by a timer if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT ) / 周期性廣播函數(shù) SampleApp_SendPeriodicMessage(

31、); osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT, (SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT + (osal_rand() & 0x00FF) ); return (events SAMPLEAPP_SEND_PERIODIC_MSG_EVT); return 0;4.數(shù)據(jù)接收函數(shù)void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) /*16進制轉(zhuǎn)ASCII碼表*/ uint8 asc_1616=&

32、#39;0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' uint16 flashTime,temp,temp2; uint8 Rssi,templqi; uint8 hehe15; uint8 i,j,m,n; switch ( pkt->clusterId ) ca

33、se SAMPLEAPP_PERIODIC_CLUSTERID: HalUARTWrite(0,"I get datan",11); k=k+1; templqi=pkt->LinkQuality; lqisum+=templqi/3; /提示接收到數(shù)據(jù)HalUARTWrite(0,&asc_16hehe0,1);、HalUARTWrite(0,&asc_16hehe1,1);HalUARTWrite(0,&asc_16hehe2,1);HalUARTWrite(0,&asc_16hehe3,1);HalUARTWrite(0,&

34、;asc_16hehe4,1);HalUARTWrite(0,&asc_16hehe5,1); if(k=3) Rssisum=81-lqisum*99/255; / SampleApp_SendPointToPointMessage2(); / 路由器 KEY0=Rssisum; hehe6=Rssisum/100; /協(xié)調(diào)器 hehe7=Rssisum/10%10; hehe8=Rssisum%100%10; HalUARTWrite(0,"KEY0:",5); HalUARTWrite(0,"-",1); HalUARTWrite(0,&a

35、mp;asc_16hehe6,1)HalUARTWrite(0,&asc_16hehe7,1);HalUARTWrite(0,&asc_16hehe8,1); HalUARTWrite(0,"n",1); hehe0=d1/100; /協(xié)調(diào)器 hehe1=d1/10%10; hehe2=d1%100%10; HalUARTWrite(0,"D1:",3); HalUARTWrite(0,"-",1); HalUARTWrite(0,&asc_16hehe0,1);HalUARTWrite(0,&asc_

36、16hehe1,1);HalUARTWrite(0,&asc_16hehe2,1); HalUARTWrite(0,"n",1); k=0; Rssisum=0;lqisum=0; break; case SAMPLEAPP_POINT_TO_POINT_CLUSTERID:/終端加入網(wǎng)絡(luò) j=pkt->cmd.Data0; for(i=1;i<j+1;i+) HalUARTWrite(0,&pkt->cmd.Datai,1); HalUARTWrite(0,"n",1); break; case SAMPLEAPP_POINT_TO_POINT_CLUSTERID1: /路由器注冊 n=pkt->cmd.Data0; if(n='B') LIST0=pkt->srcAddr.addr.shortAddr; else LIST1=pkt->srcAddr.addr.shortAddr; break; case SAMPLEAPP_POINT_TO_POINT_CLUSTERID2:/路由器返回RSSI值 temp2=pkt->srcAddr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論