




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
中智訊代碼解析主要內(nèi)容常見問題框架分析實(shí)例講解內(nèi)容一常見問題常見問題程序的框架是怎樣的?解析協(xié)議的時(shí)機(jī)?數(shù)據(jù)幀最基本包含哪些內(nèi)容?有哪些節(jié)點(diǎn)類型?有沒有數(shù)據(jù)存儲(chǔ)?程序的框架服務(wù)端客戶端1客戶端2客戶端3客戶端4……解析協(xié)議的方式取決于接收數(shù)據(jù)的方式,有輪詢,有應(yīng)答式,這里使用的是應(yīng)答式,也就是說只有當(dāng)你請(qǐng)求了,才會(huì)獲得信息,而不是循環(huán)讀取。既然是應(yīng)答式,那么接收幀解析的方式跟請(qǐng)求幀的解析方式需要保持一致。數(shù)據(jù)幀最基本包含內(nèi)容請(qǐng)求幀應(yīng)答幀請(qǐng)求幀請(qǐng)求的種類分為3種:請(qǐng)求搜尋網(wǎng)絡(luò)(SEARCH_NETWORK)請(qǐng)求終端節(jié)點(diǎn)(另外2種是協(xié)調(diào)器和路由節(jié)點(diǎn))信息(NODE_ENDPOINT)請(qǐng)求應(yīng)用(APP_MSG)消息請(qǐng)求搜尋網(wǎng)絡(luò)(SEARCH_NETWORK)SOPCMD1lengthADDRCMD2數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)3……FCS0x00010x00020x00050x00140x0015軟件版本硬件版本設(shè)備類型MAC地址鄰接表個(gè)數(shù)及地址讀0x00010x2900應(yīng)答幀的格式1個(gè)Byte2個(gè)Byte返回信息…….FCSADDRCMD狀態(tài)碼(1byte)參數(shù)標(biāo)識(shí)(2byte)參數(shù)值……請(qǐng)求終端節(jié)點(diǎn)信息(NODE_ENDPOINT)SOPCMD1lengthFCS0x0A06目的地址(2byte)Addressofinterest(2byte)Ep?(1byte)0?(1byte)回復(fù)幀格式?沒有這個(gè)處理例程-.-請(qǐng)求應(yīng)用(APP_MSG)消息SOPReq(2byte)Length(1byte)netAddr(2byte)CMD(2byte)數(shù)據(jù)……FCS節(jié)點(diǎn)類型溫度傳感器濕度傳感器光照傳感器燈光傳感器人體傳感器Co2傳感器三軸加速度傳感器Rfid傳感器指紋傳感器距離傳感器數(shù)據(jù)存儲(chǔ)指紋傳感器氣壓傳感器RFID傳感器3軸加速度傳感器內(nèi)容二框架分析應(yīng)用程序服務(wù)端2點(diǎn)擊,觸摸,等動(dòng)作1請(qǐng)求和響應(yīng)Zigbee協(xié)議溫度傳感器濕度傳感器光照傳感器燈光傳感器人體傳感器Co2傳感器三軸加速度Rfid、指紋、距離……程序流程1.連接服務(wù)端。2.請(qǐng)求查找網(wǎng)絡(luò)。3.根據(jù)返回的信息組織程序界面。4.如果返回信息表明找不到信息,跳到2。5.如果返回信息找到了網(wǎng)絡(luò),則組織信息,形成拓?fù)鋱D。6.如果用戶點(diǎn)擊了拓?fù)鋱D上的某個(gè)節(jié)點(diǎn),則跳轉(zhuǎn)至對(duì)應(yīng)節(jié)點(diǎn)的界面。在那個(gè)界面中顯示用戶選擇的節(jié)點(diǎn)信息。7.如果用戶點(diǎn)擊返回,則退出。內(nèi)容三實(shí)例講解19查找網(wǎng)絡(luò)privatevoidconnect2server()
{
mConnectStatus=1;
mZbThread.requestConnect(mZigBeeGetWay,8320);//
setTitle("正在連接到ZigBee網(wǎng)關(guān)--"
+this.mZigBeeGetWay);
setProgressBarIndeterminateVisibility(true);
}voidrequestConnect(Stringhost,intport){mProx.connect(host,port);}publicvoidconnect(Stringhost,intport){mLink.requestConnect(host,port);}publicint
requestConnect(Stringhost,intport)//應(yīng)答鏈接
{Messagemsg;
intret;synchronized(mLockConn){if(mConnectStatus==CONNECT_DISCONNECT){
msg=Message.obtain();
msg.what=REQUEST_CONNECT;msg.arg1=port;msg.obj=host;
mConnectStatus=CONNECT_CONNECTING;
mWorkerHandler.sendMessage(msg);
ret=0;}elseret=1;
}returnret;
}publicvoidhandleMessage(Messagemsg)
{
switch(msg.what)
{caseREQUEST_CONNECT:
doRequestConnect(msg);break;privatevoiddoRequestConnect(Messagemsg)
{Stringhost=(String)msg.obj;
intport=msg.arg1;
intret;
ret=linkOpen(host,port);
msg=Message.obtain();if(ret<0){
mConnectStatus=CONNECT_DISCONNECT;/*notifymainthread*/
msg.what=NOTIFY_CONNECT_FAIL;}else{
mConnectStatus
=CONNECT_CONNECTED;
mReceiver=newReceiver();
msg.what=NOTIFY_CONNECT_ON;
}/*notifymainthread*/
mWorkerHandler.sendMessage(msg);
}privateint
linkOpen(Stringhost,intport)//建立連接
{try{//mSocket=newSocket(host,port);
mSocket=newSocket();
mSocket.connect(newInetSocketAddress(host,port)/*,30*1000*/);
}catch(Exceptione){//e.printStackTrace();Log.e(TAG,"connecthost:"+host+":"+port);return-1;}try{mReader=mSocket.getInputStream();mWriter=mSocket.getOutputStream();}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();return-2;}return0;}rlen=mReader.read(dat);byte[]d=newbyte[rlen];for(inti=0;i<rlen;i++)d[i]=dat[i];//msg=Message.obtain();//msg.what=NOTIFY_CONNECT_DATA;//msg.obj=d;//mWorkerHandler.sendMessage(msg);mConnectListener.onConnectData(d);}}else{/*connecton*/mConnectStatus=2;setTitle("正在搜索ZigBee網(wǎng)絡(luò)...");setProgressBarIndeterminateVisibility(true);mSearchingZbNet=1;mZbThread.requestSerachNetWrok();}voidrequestSerachNetWrok(){Messagemsg=Message.obtain();msg.what=REQUEST_SEARCH_NETWORK;mMyHandler.sendMessage(msg);}publicvoidhandleMessage(Messagemsg)
{switch(msg.what){caseREQUEST_SEARCH_NETWORK:
doSearchNetWork();break;privatevoiddoSearchNetWork(){Top.DistroyTree(mTree);//devinfo=mProx.syncRequestSYS_GET_DEVICE_INFO();byte[]ninfo=mProx.syncRequestSYS_APP_MSG(2,newbyte[]{(byte)(0>>8),(byte)0,//addr0x00,0x01,//cmd0x00,0x01,0x00,0x02,0x00,0x05,0x00,0x14,0x00,0x15});if(ninfo==null||ninfo.length<29){/*getdevinfofail*/Log.e(TAG,"Can'tgettherootdeviceinfo.");Messagemsg=Message.obtain();msg.what=MSG_NEW_NETWORK;msg.arg1=-1;mMainHandler.sendMessage(msg);return;}/*notifyui*/Top.DrawTop(mTree);Messagemsg=Message.obtain();msg.what=MSG_NEW_NETWORK;msg.arg1=1;mMainHandler.sendMessage(msg);buildNetWork(mTree,childs);/*notifyui*/Top.DrawTop(mTree);msg=Message.obtain();msg.what=MSG_NEW_NETWORK;msg.arg1=0;mMainHandler.sendMessage(msg);}privatevoidbuildNetWork(Nodepa,int[]cli)//建立ZigBee{for(inti=0;i<cli.length;i++){/*getchildiinfo*/try{Thread.currentThread().sleep(500);}catch(InterruptedExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}byte[]ninfo=mProx.syncRequestSYS_APP_MSG(2,newbyte[]{(byte)(cli[i]>>8),(byte)cli[i],//addr0x00,0x01,//cmd0x00,0x01,0x00,0x02,0x00,0x05,0x00,0x1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同管理制度職責(zé)
- 農(nóng)業(yè)科技園區(qū)規(guī)劃設(shè)計(jì)與運(yùn)營(yíng)管理手冊(cè)
- 2025年毫州考從業(yè)資格證貨運(yùn)試題
- 家政公司家政服務(wù)合同
- 建筑鋼筋班組合同8篇
- 購(gòu)銷合同格式
- 房屋代理出租合同
- 建繼續(xù)教育建設(shè)工程合同管理
- 2025年景德鎮(zhèn)貨運(yùn)從業(yè)資格證考試試題及答案
- 第07講 文言文翻譯 講義 中考語(yǔ)文復(fù)習(xí)
- 2024-2025學(xué)年八年級(jí)地理下冊(cè)第七章《南方地區(qū)》檢測(cè)卷(人教版)
- 2025年湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)參考答案
- 《ISO 56000-2025創(chuàng)新管理 基礎(chǔ)和術(shù)語(yǔ)》之1:“引言+范圍+術(shù)語(yǔ)和定義”專業(yè)深度解讀與應(yīng)用指導(dǎo)材料(雷澤佳編寫2025A0)-1-150
- DB37-T4817-2025 瀝青路面就地冷再生技術(shù)規(guī)范
- 2025年公共營(yíng)養(yǎng)師三級(jí)理論試題及答案
- 提高設(shè)備基礎(chǔ)預(yù)埋螺栓一次安裝合格率
- 煤礦防治水安全質(zhì)量標(biāo)準(zhǔn)化評(píng)分表
- 2024年科技節(jié)小學(xué)科普知識(shí)競(jìng)賽題及答案(共100題)
- 2025年度教育培訓(xùn)機(jī)構(gòu)學(xué)生綜合素質(zhì)評(píng)價(jià)協(xié)議3篇
- 氧氣管道吹掃、打壓方案
- 第28課 改革開放和社會(huì)主義現(xiàn)代化建設(shè)的巨大成就 教學(xué)設(shè)計(jì)(表格式)必修 中外歷史綱要(上)
評(píng)論
0/150
提交評(píng)論