freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于cc2530溫濕度采集系統(tǒng)課程設(shè)計(jì)報(bào)告(已改無錯(cuò)字)

2022-07-24 17:07:41 本頁面
  

【正文】 影響網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),AODV 使得移動(dòng)節(jié)點(diǎn)能適時(shí)對這種變化做出響應(yīng)。AODV 的操作是無自環(huán)的,并且由于解決了 BellmanFord“無窮計(jì)數(shù)”的問題,使得該算法在網(wǎng)絡(luò)拓?fù)渥兓瘯r(shí)能夠快速收斂。當(dāng)一個(gè)連接斷開時(shí),AODV 會(huì)告知所有受到影響的節(jié)點(diǎn),這些節(jié)點(diǎn)會(huì)讓用到這個(gè)連接的路由失效。AODV 的一個(gè)顯著特點(diǎn)是它在每個(gè)路由表項(xiàng)上使用了目的序列號。目的序列號由目的節(jié)點(diǎn)創(chuàng)建,并且被包含在路由信息中,然后這些路由信息將被回發(fā)到所有向它發(fā)起請求的節(jié)點(diǎn)。目的序列號的使用確保了無回環(huán),并且易于編程。如果到一個(gè)目的有兩條路由可供選擇,那么收到請求的節(jié)點(diǎn)將會(huì)選擇序列號最大的那一條。此外,AODV另一個(gè)顯著的特點(diǎn)是它加入了組播路由協(xié)議擴(kuò)展,并支持QOS。它的缺點(diǎn)是:不支持單向信道,原因是AODV協(xié)議基于雙向信道的假設(shè)工作,路由回答分組直接沿著路由請求的反方向回到源節(jié)點(diǎn)。該溫濕度數(shù)據(jù)采集系統(tǒng)是由溫濕度探頭直接以IIC接口進(jìn)行控制,并用CC2530 讀取溫濕度傳感器SHT10的溫度和濕度數(shù)據(jù),并將采樣到的數(shù)據(jù)轉(zhuǎn)換然后再LCD顯示。其中對溫濕度的讀取是利用CC2530的I/O()模擬一個(gè)類IIC得過程,而使用的SHT10 是一款高度集成的溫濕度傳感器芯片。因此,可以將該過程劃分為三個(gè)子模塊:溫度數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、濕度數(shù)據(jù)采集模塊,其總體軟件結(jié)構(gòu)圖如圖13所示。電源模塊 溫度采集模塊 數(shù)據(jù)處理模塊 濕度處理模塊 圖13 總體軟件結(jié)構(gòu)圖void main(){ int tempera。 int humidity。 char s[16]。 UINT8 adc0_value[2]。 float num = 0。SET_MAIN_CLOCK_SOURCE(CRYSTAL)。 // 設(shè)置系統(tǒng)時(shí)鐘源為 32MHz 晶體振蕩器GUI_Init()。 // GUI 初始化GUI_SetColor(1,0)。 // 顯示色為亮點(diǎn),背景色為暗點(diǎn)GUI_PutString5_7(25,6,OURSCC2530)。 //顯示 OURSCC2530GUI_PutString5_7(10,22,Temp:)。GUI_PutString5_7(10,35,Humi:)。GUI_PutString5_7(10,48,Light:)。LCM_Refresh()。while(1){ th_read(amp。tempera,amp。humidity)。 //讀取溫度和濕度sprintf(s, (char*)%d%d C, ((INT16)((int)tempera / 10)),((INT16)((int)tempera % 10)))。 //將溫度結(jié)果轉(zhuǎn)換為字符串 GUI_PutString5_7(48,22,(char *)s)。 //顯示結(jié)果 LCM_Refresh()。sprintf(s,(char*)%d%d %%,((INT16)((int)humidity / 10)),((INT16)((int)humidity % 10)))。 //將濕度結(jié)果轉(zhuǎn)換為字符串 GUI_PutString5_7(48,35,(char *)s)。 //顯示結(jié)果LCM_Refresh()。 AODV協(xié)議源代碼分析Void AODV::recv(Packet *p, Handler*)//判斷是否是aodv包,是則調(diào)用函數(shù)recvAODV(p)if(chptype() == PT_AODV) {recvAODV(p)。//本節(jié)點(diǎn)產(chǎn)生的數(shù)據(jù)包,添加IP頭if((ihsaddr() == index) amp。amp。 (chnum_forwards() == 0))Add the IP Header//收到本節(jié)點(diǎn)發(fā)送的包,說明有路由環(huán)路,丟包else if(ihsaddr() == index)drop(p, DROP_RTR_ROUTE_LOOP)。//本節(jié)點(diǎn)是中間節(jié)點(diǎn)else {//TTL是分組最多能轉(zhuǎn)發(fā)的次數(shù) if(ihttl_ == 0)drop(p, DROP_RTR_TTL)。//收到的不是廣播分組,解析分組if ( (u_int32_t)ihdaddr() != IP_BROADCAST)rt_resolve(p)。//轉(zhuǎn)發(fā) else forward((aodv_rt_entry*) 0, p, NO_DELAY)。voidAODV::rt_resolve(Packet *p) {//查找是否有到目的節(jié)點(diǎn)的路由rt = (ihdaddr())。//沒有,則添加到該目的節(jié)點(diǎn)的路由,此時(shí)添加的路由是無效的if(rt == 0) rt = (ihdaddr())。//有效路由,則根據(jù)路由表中信息轉(zhuǎn)發(fā)分組if(rtrt_flags == RTF_UP) forward(rt, p, NO_DELAY)。//如果本節(jié)點(diǎn)是該分組的源節(jié)點(diǎn),說明沒有到目的節(jié)點(diǎn)的路,此時(shí)發(fā)送RREQ找路else if(ihsaddr() == index)(p)。 sendRequest(rtrt_dst)。//鏈路中斷,在維護(hù)中 else if (rtrt_flags == RTF_IN_REPAIR)(p)。// 本節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)分組,但是不知道該到目的節(jié)點(diǎn)的路,發(fā)送RERR說明鏈路中斷else sendError(rerr, false)。//添加到目的節(jié)點(diǎn)的路由,此時(shí)的路由不可用,是無效的aodv_rt_entry *rt = (dst)。//不到發(fā)送RREQ的時(shí)間,注意文件開頭的RREQ定時(shí)器,若沒收到RREP,源節(jié)點(diǎn)需要定時(shí)發(fā)送
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1