zigbee學(xué)習(xí)自我總結(jié)!!!!!_第1頁(yè)
zigbee學(xué)習(xí)自我總結(jié)!!!!!_第2頁(yè)
zigbee學(xué)習(xí)自我總結(jié)!!!!!_第3頁(yè)
zigbee學(xué)習(xí)自我總結(jié)!!!!!_第4頁(yè)
zigbee學(xué)習(xí)自我總結(jié)!!!!!_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1. Zigbee網(wǎng)絡(luò)節(jié)點(diǎn)類型Zigbee網(wǎng)絡(luò)有三類節(jié)點(diǎn)類型:即協(xié)調(diào)器Coordinator、路由器Router和終端設(shè)備EndDevice,其中協(xié)調(diào)器和路由器均為全功能設(shè)備,而終端設(shè)備選用精簡(jiǎn)功能設(shè)備。2. Zigbee協(xié)議棧各層主要功能模塊3. Zigbee網(wǎng)絡(luò)節(jié)點(diǎn)地址Zigbee網(wǎng)絡(luò)協(xié)議的每一個(gè)節(jié)點(diǎn)皆有兩個(gè)地址:位的地址及位網(wǎng)絡(luò)地址EUI-64(64-bit extended unique identifier)1)64-bit地址,又稱為MAC地址或IEEE地址。每個(gè)ZigBee節(jié)點(diǎn)都應(yīng)該有全球唯一的64位IEEE地址。這個(gè)地址需要向IEEE組織申請(qǐng)才能使用。通信時(shí),將待發(fā)送的數(shù)據(jù)包的

2、目的地址設(shè)為此64位IEEE地址,從而實(shí)現(xiàn)數(shù)據(jù)包的正確投遞。2)16-bit地址,即網(wǎng)絡(luò)地址,或稱為短地址。當(dāng)一個(gè)ZigBee網(wǎng)絡(luò)形成后,ZigBee網(wǎng)絡(luò)內(nèi)的每個(gè)節(jié)點(diǎn),都會(huì)分配到一個(gè)16位的網(wǎng)絡(luò)地址。通信時(shí),將待發(fā)送的數(shù)據(jù)包的目的地址設(shè)為此16位網(wǎng)絡(luò)地址。4.Zigbee協(xié)議術(shù)語(yǔ)配置文件(profile):Zigbee協(xié)議的配置文件是對(duì)邏輯組件及其相關(guān)接口的描述,是面向某個(gè)應(yīng)用類別的公約、準(zhǔn)則通常沒(méi)有程序代碼與配置文件相關(guān)聯(lián)屬性(attribute):設(shè)備之間通信的每一種數(shù)據(jù)像開(kāi)關(guān)的狀態(tài)或溫度計(jì)值等皆可稱為屬性每個(gè)屬性可得到唯一的ID值簇(cluster):多個(gè)屬性的匯集形成了簇,每個(gè)簇也擁有

3、一個(gè)唯一的ID。雖然個(gè)體之間傳輸?shù)耐ǔJ菍傩孕畔ⅲ^的邏輯組件的接口指的卻是簇一級(jí)的操作,而非屬性一級(jí)終端(endpoint):每個(gè)支持一個(gè)或多個(gè)簇的代碼功能塊稱為終端。不同的設(shè)備通過(guò)它們的終端及所支持的簇來(lái)進(jìn)行通信。PAN IDs:PAN IDs是用來(lái)在邏輯上分離在同一領(lǐng)域內(nèi)的多個(gè)節(jié)點(diǎn)組。這樣不同組之間節(jié)點(diǎn)通信就不會(huì)干擾,且可以在同一通道channel上(zigbee2007不行,因?yàn)樗ㄐ艜r(shí)可以改變頻率的)Pan id是16位,范圍是0x000003fff。當(dāng)建立或加入網(wǎng)絡(luò)時(shí)沒(méi)有指定PAN ID的話,就會(huì)根據(jù)default PAN ID確定。它是個(gè)常量。Extended PAN ID:

4、zigbee 增加了一個(gè)8字節(jié)的擴(kuò)展PAN ID,便于提供服務(wù)和PAN ID沖突檢測(cè)。5. Zigbee協(xié)議結(jié)構(gòu)物理層(PHY)物理層定義了物理無(wú)線信道和MAC子層之間的接口,提供物理層數(shù)據(jù)服務(wù)和物理層管理服務(wù)。物理層內(nèi)容: 1) ZigBee的激活;2)當(dāng)前信道的能量檢測(cè);3)接收鏈路服務(wù)質(zhì)量信息;4 )ZigBee信道接入方式;5)信道頻率選擇;6)數(shù)據(jù)傳輸和接收。介質(zhì)接入控制子層(MAC)MAC層負(fù)責(zé)處理所有的物理無(wú)線信道訪問(wèn),并產(chǎn)生網(wǎng)絡(luò)信號(hào)、同步信號(hào);支持PAN連接和分離,提供兩個(gè)對(duì)等MAC實(shí)體之間可靠的鏈路。MAC層功能:1)網(wǎng)絡(luò)協(xié)調(diào)器產(chǎn)生信標(biāo);2)與信標(biāo)同步;3)支持PAN (個(gè)域

5、網(wǎng))鏈路的建立和斷開(kāi);4)為設(shè)備的安全性提供支持;5)信道接入方式采用免沖突載波檢測(cè)多址接入(CSMA-CA)機(jī)制;6)處理和維護(hù)保護(hù)時(shí)隙(GTS)機(jī)制;7)在兩個(gè)對(duì)等的M AC實(shí)體之間提供一個(gè)可靠的通信鏈路。網(wǎng)絡(luò)層(NWK)ZigBee協(xié)議棧的核心部分在網(wǎng)絡(luò)層。網(wǎng)絡(luò)層主要實(shí)現(xiàn)節(jié)點(diǎn)加入或離開(kāi)網(wǎng)絡(luò)、接收或拋棄其他節(jié)點(diǎn)、路由查找及傳送數(shù)據(jù)等功能。網(wǎng)絡(luò)層功能:1)網(wǎng)絡(luò)發(fā)現(xiàn);2)網(wǎng)絡(luò)形成;3)允許設(shè)備連接;4)路由器初始化;5)設(shè)備同網(wǎng)絡(luò)連接;6)直接將設(shè)備同網(wǎng)絡(luò)連接;7)斷開(kāi)網(wǎng)絡(luò)連接;8)重新復(fù)位設(shè)備;9)接收機(jī)同步;10)信息庫(kù)維護(hù)。應(yīng)用層(APL)ZigBee應(yīng)用層框架包括應(yīng)用支持層(APS)、

6、ZigBee設(shè)備對(duì)象(ZDO)和制造商所定義的應(yīng)用對(duì)象。應(yīng)用支持層的功能包括:維持綁定表、在綁定的設(shè)備之間傳送消息。ZigBee設(shè)備對(duì)象的功能包括:定義設(shè)備在網(wǎng)絡(luò)中的角色(如ZigBee協(xié)調(diào)器和終端設(shè)備),發(fā)起和響應(yīng)綁定請(qǐng)求,在網(wǎng)絡(luò)設(shè)備之間建立安全機(jī)制。ZigBee 設(shè)備對(duì)象還負(fù)責(zé)發(fā)現(xiàn)網(wǎng)絡(luò)中的設(shè)備,并且決定向他們提供何種應(yīng)用服務(wù)。ZigBee應(yīng)用層除了提供一些必要函數(shù)以及為網(wǎng)絡(luò)層提供合適的服務(wù)接口外,一個(gè)重要的功能是應(yīng)用者可在這層定義自己的應(yīng)用對(duì)象。應(yīng)用程序框架(AF)運(yùn)行在ZigBee協(xié)議棧上的應(yīng)用程序?qū)嶋H上就是廠商自定義的應(yīng)用對(duì)象,并且遵循規(guī)范(profile)運(yùn)行在端點(diǎn)1-240上。在Z

7、igBee應(yīng)用中,提供2種標(biāo)準(zhǔn)服務(wù)類型:鍵值對(duì)(KVP)或報(bào)文(MSG)。Zigbee設(shè)備對(duì)象(ZDO)遠(yuǎn)程設(shè)備通過(guò)ZDO請(qǐng)求描述符信息,接收到這些請(qǐng)求時(shí),ZDO會(huì)調(diào)用配置對(duì)象獲取相應(yīng)描述符值。另外,ZDO提供綁定服務(wù)。6. Z-Stack軟件構(gòu)架Z-Stack由main()函數(shù)開(kāi)始執(zhí)行,main()函數(shù)共做了2件事:一是系統(tǒng)初始化,另外一件是開(kāi)始執(zhí)行輪轉(zhuǎn)查詢式操作系統(tǒng),如下圖所示:7. Z-Stack 系統(tǒng)運(yùn)行流程圖8. Z-Stack在項(xiàng)目中的目錄結(jié)構(gòu)(1)App:應(yīng)用層目錄,這個(gè)目錄下的文件就是創(chuàng)建一個(gè)新項(xiàng)目時(shí)自己要添加的文件,(2)HAL:硬件層目錄,Common目錄下的文件是公用文件

8、,基本上與硬件無(wú)關(guān),其中hal_assert.c是斷言文件,用于調(diào)用,hal_drivers.c是驅(qū)動(dòng)文件,抽象出與硬件無(wú)關(guān)的驅(qū)動(dòng)函數(shù),包含有與硬件相關(guān)的配置和驅(qū)動(dòng)及操作函數(shù)。Include目錄下主要包含各個(gè)硬件模塊的頭文件,而Target目錄下的文件是跟硬件平臺(tái)相關(guān)的,可能看到有兩個(gè)平臺(tái),分別是Cc2430DB平臺(tái)和一個(gè)CC2430EB平臺(tái)。后面的DB和EB表示的是TI公司開(kāi)發(fā)板的型號(hào),其實(shí)還有一種類型是BB的,BB: Battery BoardDB: Development BoardEB: Evaluation Board分別對(duì)應(yīng)TI公司開(kāi)發(fā)的三種板型,其功能按上順序依次變強(qiáng)??梢詤⒖碯

9、-Stack Users Guide for CC2430的圖片,可以獲得更直觀的認(rèn)識(shí)。(3)MAC:MAC層目錄,HighLevel和LowLevel兩個(gè)目錄表示MAC層分為了高層和底層兩層,Include目錄下則包含了MAC層的參數(shù)配置文件及基MAC的LIB庫(kù)函數(shù)接口文件,這里的MAC層的協(xié)議是不開(kāi)源的,以庫(kù)的形式給出(4)MT:監(jiān)制調(diào)試層目錄,該目錄下的文件主要用于調(diào)試目的,即實(shí)現(xiàn)通過(guò)串口調(diào)試各層,與各層進(jìn)行直接交互。(5)NWK:網(wǎng)絡(luò)層目錄,含有網(wǎng)絡(luò)層配置參數(shù)文件及網(wǎng)絡(luò)層庫(kù)的函數(shù)接口文件,及APS層庫(kù)的函數(shù)接口(6)OSAL:協(xié)議棧的操作系統(tǒng)抽象層目錄(7)Profile:AF層目錄,

10、Application Farmework應(yīng)用框架,包含AF層處理函數(shù)接口文件。(8)Security:安全層目錄,包含安全層處理函數(shù)接口文件(9)Services:ZigBee和802.15.4設(shè)備地址處理函數(shù)目錄,包括地址模式的定義及地址處理函數(shù)(10)Tools:工作配置目錄,包括空間劃分及Z-Stack相關(guān)配置信息(11)ZDO:指ZigBee設(shè)備對(duì)象,可認(rèn)為是一種公共的功能集,文件用戶用自定義的對(duì)象調(diào)用APS子層的服務(wù)和NWK層的服務(wù)(12)ZMAC:其中Zmac.c是Z-StackMAC導(dǎo)出層接口文件,zmac_cb.c是ZMAC需要調(diào)用的網(wǎng)絡(luò)層函數(shù)(13)Zmain:Zmain.

11、c主要包含了整個(gè)項(xiàng)目的入口函數(shù)main(),在OnBoard.c包含硬件開(kāi)始平臺(tái)類外設(shè)進(jìn)行控制的接口函數(shù)(14)Output:輸出文件目錄,這個(gè)是EW8051 IDE自動(dòng)生成的9.Z-stack 中實(shí)現(xiàn)自己的任務(wù)在Zstack(TI的Zigbee協(xié)議棧)中,對(duì)于每個(gè)用戶自己新建立的任務(wù)通常需要兩個(gè)相關(guān)的處理函數(shù),包括:用于初始化的函數(shù)如:SampleApp_Init(),這個(gè)函數(shù)是在osalInitTasks( )這個(gè)osal(Zstack中自帶的小操作系統(tǒng))中去調(diào)用的,其目的就是把一些用戶自己寫的任務(wù)中的一些變量,網(wǎng)絡(luò)模式,網(wǎng)絡(luò)終端類型等進(jìn)行初始化;用于引起該任務(wù)狀態(tài)變化的事件發(fā)生后所需要執(zhí)

12、行的事件處理函數(shù)如:SampleApp_ProcessEvent(),這個(gè)函數(shù)是首先const pTaskEventHandlerFntasksArr 中進(jìn)行設(shè)置(綁定),然后在osalInitTasks()中如果發(fā)生事件進(jìn)行調(diào)用綁定的事件處理函數(shù)。1)用戶自己設(shè)計(jì)的任務(wù)代碼在Zstack中的調(diào)用過(guò)程main( )執(zhí)行(在Zmain目錄中ZMain.c)-osal_init_system( )(在OSAL目錄中的OSAL.c 中)-調(diào)用osalInitTasks( )(在APP目錄中的OSAL_SerialApp.c)-調(diào)用SerialApp_Init( ),(在APP目錄中的SerialAp

13、p.c中)。在osalInitTasks()中實(shí)現(xiàn)了多個(gè)任務(wù)初始化的設(shè)置,其中macTaskInit(taskID+)到ZDApp_Init(taskID+ )的幾行代碼表示對(duì)于幾個(gè)系統(tǒng)運(yùn)行初始化任務(wù)的調(diào)用,而用戶自己實(shí)現(xiàn)的SampleApp_Init()在最后,這里taskID隨著任務(wù)的增加也隨之遞增.所以用戶自己實(shí)現(xiàn)的任務(wù)的初始化操作應(yīng)該在osalInitTasks()中增加。(在APP目錄中的OSAL_SerialApp.c中增加)。2)任務(wù)處理調(diào)用的重要數(shù)據(jù)結(jié)構(gòu)在Zstack里,對(duì)于同一個(gè)任務(wù)可能有多種事件發(fā)生,那么需要執(zhí)行不同的事件處理,為了方便,對(duì)于每個(gè)任務(wù)的事件處理函數(shù)都統(tǒng)一在一

14、個(gè)事件處理函數(shù)中實(shí)現(xiàn),然后根據(jù)任務(wù)的ID號(hào)(task_id)和該任務(wù)的具體事件(events)調(diào)用某個(gè)任務(wù)的事件處理函數(shù),進(jìn)入了該任務(wù)的事件處理函數(shù)之后,再根據(jù) events 再來(lái)判別是該任務(wù)的哪一種事件發(fā)生,進(jìn)而執(zhí)行相應(yīng)的事件處理。pTaskEventHandlerFn 是一個(gè)指向函數(shù)(事件處理函數(shù))的指針,這里實(shí)現(xiàn)的每一個(gè)數(shù)組元素各對(duì)應(yīng)于一個(gè)任務(wù)的事件處理函數(shù),比如SampleApp_ProcessEvent對(duì)于用戶自行實(shí)現(xiàn)的事件處理函數(shù) uint16 SampleApp_ProcessEvent( uint8 task_id,uint16 events ),所以這里如果我們實(shí)現(xiàn)了一個(gè)任務(wù)

15、,還需要把實(shí)現(xiàn)的該任務(wù)的事件處理函數(shù)在這里添加。注意,tasksEvents(在APP目錄中的OSAL_SerialApp.c的osalInitTasks(void)函數(shù)中)和tasksArr(在APP中的OSAL_SerialApp.c中)里的順序是一一對(duì)應(yīng)的,tasksArr中的第i個(gè)事件處理函數(shù)對(duì)應(yīng)于tasksEvents中的第i個(gè)任務(wù)的事件。3)對(duì)于不同事件發(fā)生后的任務(wù)處理函數(shù)的調(diào)用osal_start_system()很重要,決定了當(dāng)某個(gè)任務(wù)的事件發(fā)生后調(diào)用對(duì)應(yīng)的事件處理函數(shù)(在Zmain目錄中ZMain.c)。10.Z-stack 添加一個(gè)新的任務(wù)在osalInitTasks()和

16、tasksArr添加相應(yīng)的項(xiàng)就可以了。osalInitTasks()為初始化系統(tǒng)的任務(wù),tasksArr 為任務(wù)處理事件矩陣。在 osalInitTasks()和 tasksArr添加相應(yīng)的項(xiàng)就可以。1)修改 osalInitTasks() void osalInitTasks( void ) OuhsApp_Init(taskID+ ); PhotoApp_Init(taskID); 2)修改 tasksArr const pTaskEventHandlerFn tasksArr = OuhsApp_ProcessEvent PhotoApp_ProcessEvent ;3)添加_Init(

17、 )和_ProcessEvent( )void PhotoApp_Init(uint8 task_id) PhotoApp_TaskID=task_id; PhotoInit(); RegisterForPhoto(PhotoApp_TaskID ); uint16 PhotoApp_ProcessEvent( uint8 task_id uint16 events ) afIncomingMSGPacket_t *MSGpkt; if ( events &SYS_EVENT_MSG ) MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( P

18、hotoApp_TaskID ); while ( MSGpkt ) switch ( MSGpkt-hdr.event ) case PHOTO_CHANGE: HalLedblink( HAL_LED_1 3 30 300 ); /P0IE=1; break; / Release the memory osal_msg_deallocate( (uint8 *)MSGpkt ); / Next - if one is availableMSGpkt =(afIncomingMSGPacket_t *)osal_msg_receive( PhotoApp_TaskID ); / return

19、 unprocessed events return (events SYS_EVENT_MSG); / Discard unknown events return 0; TI節(jié)點(diǎn)地址的獲得:NLME_GetShortAddr();/調(diào)用NLME_GetShortAddr()函數(shù),獲得16位短地址。(void)NLME_GetExtAddr();/ Load the saveExtAddr pointer/獲得64位的IEEE地址。實(shí)例分析一:Sample Application工程:遠(yuǎn)程按鍵無(wú)線控制燈實(shí)例分析二:按鍵處理硬件層對(duì)按鍵的處理:InitBoard-( HalKeyConfig(O

20、nboardKeyIntEnable,OnBoard_KeyCallback);/按鍵配置,設(shè)置回調(diào)函數(shù)對(duì)按鍵進(jìn)行處理- HalDriverInit();/初始化外設(shè)- HalKeyInit( )- HalKeyConfig( )- /* Register the callback fucntion/注冊(cè)回調(diào)函數(shù) */pHalKeyProcessFunction = cback;/設(shè)置回調(diào)函數(shù)- OnBoard_KeyCallback()或如沒(méi)有使用中斷,osal_start_timerEx (Hal_TaskID, HAL_KEY_EVENT, HAL_KEY_POLLING_VALUE);

21、/*Kickoffpolling-uint16 Hal_ProcessEvent( uint8 task_id, uint16 events )對(duì)按鍵進(jìn)行掃描-HalKeyPoll();/檢查按鍵-OnBoard_KeyCallback(uint8keys,uint8state)-OnBoard_SendKeys( keys, shift )- osal_msg_send( registeredKeysTaskID, (uint8 *)msgPtr ); /發(fā)送消息KEY_CHANGE應(yīng)用層對(duì)按鍵的處理:GenericApp_ProcessEvent( byte task_id, UINT16

22、 events )-在應(yīng)用層是通過(guò)消息來(lái)處理按鍵的。通過(guò)標(biāo)識(shí)KEY_CHANGE來(lái)識(shí)別- GenericApp_HandleKeys( (keyChange_t *)MSGpkt)-state, (keyChange_t *)MSGpkt)-keys )實(shí)例分析三:串口處理過(guò)程:SerialAPP工程Main( )-HalDriverInit( )-HAL: hal_drivers.c-HalDriverInit-HalUARTInit()-HAL:Target:hal_uart.c-HalUARTInit()-HalUARTInitDMA()或HalUARTInitISR()-ZStack-

23、cc2530-2.2.2-1.3.0componentshaltargetCC2530EB _hal_uart_isr.c: HalUARTInitISR(void)或ZStack-cc2530-2.2.2-1.3.0componentshaltargetCC2530EB_hal_uart_dma.c:HalUARTInitDMA(void)osal_init_system()-osalInitTasks()-SerialApp_Init( taskID )-APP-SerialApp.c: SerialApp_Init( taskID )- HalUARTOpen()- -HalUARTOp

24、enISR(config)-初始化及配置完成之后剩下的就是如何使用:SerialApp_ProcessEvent( uint8 task_id, UINT16 events ):收:case AF_INCOMING_MSG_CMD: SerialApp_ProcessMSGCmd( MSGpkt ); break;發(fā): if ( events & SERIALAPP_SEND_EVT ) SerialApp_Send(); return ( events SERIALAPP_SEND_EVT ); SerialApp_Send();/發(fā)送數(shù)據(jù)- AF_DataRequest(&SerialAp

25、p_TxAddr,(endPointDesc_t*)&SerialApp_epDesc, SERIALAPP_CLUSTERID1, SerialApp_TxLen+1, SerialApp_TxBuf, &SerialApp_MsgID, 0, AF_DEFAULT_RADIUS)實(shí)例分析四:SimpleAPP測(cè)溫分析SimpleSensor:采集溫度值并發(fā)送:Mian( )- 初始化HAL,在HAL目錄下的hal_board_cfg.h的HAL_BOARD_INIT()- Initialize board I/O,在ZMain目錄下的OnBoard.c里 InitBoard( )- 在HA

26、L目錄下的hal_drivers.c里HalDriverInit()-在OSAL目錄下的OSAL.C里osal_init_system()-在APP目錄下的sapi.c里 osalInitTasks()-在APP目錄下的sapi.c里SAPI_Init(),同時(shí)設(shè)置了應(yīng)用開(kāi)始事件ZB_ENTRY_EVENT 用osal_set_event(task_id, ZB_ENTRY_EVENT)實(shí)現(xiàn)-在APP目錄下的sapi.c里SAPI_ProcessEvent()事件處理-在APP目錄下的SimpleSensor.c里zb_HandleOsalEvent()讀取溫度值-在APP目錄下的sapi.c

27、里通過(guò)zb_SendDataRequest( )調(diào)用AF_DataRequest()把溫度發(fā)出去-注:zb_SendDataRequest( 0xFFFE, SENSOR_REPORT_CMD_ID, 2, pData, 0, AF_ACK_REQUEST, 0 );參數(shù)pData就是采集到的溫度值。SimpleCollector:溫度值接收并上報(bào):Mian( )- osal_init_system()-在APP目錄下的sapi.c里 osalInitTasks()-在APP目錄下的sapi.c里SAPI_Init()-tasksArr -SAPI_ProcessEvent-case AF_I

28、NCOMING_MSG_CMD: SAPI_ReceiveDataIndication()-zb_ReceiveDataIndication( source, command, len, pData )該函數(shù)在APP目錄的SimpleCollector.c里-if (command = SENSOR_REPORT_CMD_ID),執(zhí)行DataChange(pData,buf) 數(shù)據(jù)處理,該函數(shù)在DS18B20.C里-通過(guò)調(diào)用debug_str();函數(shù)發(fā)送到串口。實(shí)例分析五:無(wú)線串口透明傳輸typedef struct osal_event_hdr_t hdr; /* OSAL Message

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論