CAN總線的嵌入式Web服務(wù)器設(shè)計(jì)
②將服務(wù)器設(shè)為L(zhǎng)isten監(jiān)聽狀態(tài),等待接收客戶端連接。用TCP API函數(shù)建立被動(dòng)連接代碼如下:
TCPAppInit
Bank TCB_BANK
Mov tcbLocalPortLSB,#APPLET_PORT_LSB;設(shè)置TCP服務(wù)端口
Mov tcbLocalPortMSB,#APPLET_PORT_MSB
Jmp @TCPAppPassiveOpen;跳轉(zhuǎn)到TCP被動(dòng)連接程序,進(jìn)行端口偵聽
_TCPAppPassiveOpen
_bank TCP_BANK
mov tcpState,#TCP_ST_LISTEN
clr tcpUnAckMSB
clr tcpUnAckLSB
retp
③當(dāng)TCP的狀態(tài)為established時(shí),雙方連接建立,可以開始傳輸數(shù)據(jù)。此時(shí)產(chǎn)生新的套接字,用來管理遠(yuǎn)端客戶機(jī)服務(wù),原來的端口繼續(xù)用來監(jiān)聽。
④數(shù)據(jù)傳輸包括數(shù)據(jù)接收和數(shù)據(jù)發(fā)送的兩問好。接收數(shù)據(jù)時(shí),用TCPAppRxBytes()函數(shù)獲得接收到的數(shù)據(jù)字節(jié)數(shù),根據(jù)得到的字節(jié)數(shù)多次調(diào)用TCPAppRxData()函數(shù)接收數(shù)據(jù),在全部數(shù)據(jù)接收完畢后可以在TCPAppRxDone()函數(shù)中做相應(yīng)的處理。發(fā)送數(shù)據(jù)時(shí),首先調(diào)用函數(shù)TCPAppTxBHytes()設(shè)置要發(fā)送數(shù)據(jù)的字節(jié)數(shù),根據(jù)此字節(jié)數(shù)調(diào)用TCPAppTxData()函數(shù)發(fā)送數(shù)據(jù),全部數(shù)據(jù)發(fā)送完畢后調(diào)用TCPAppTxDone()函數(shù)確認(rèn)。其中采集的動(dòng)態(tài)數(shù)據(jù)保存在變量globTemp3中。
⑤當(dāng)TCP狀態(tài)為closed時(shí),服務(wù)器關(guān)閉連接,不再發(fā)送和接收數(shù)據(jù)。程序具體實(shí)現(xiàn)時(shí),設(shè)定客戶端和服務(wù)器端連接建立后,服務(wù)器端即向客戶端發(fā)送數(shù)據(jù)。
3 結(jié)論
本文所設(shè)計(jì)的嵌入式Web服務(wù)器,采用改進(jìn)的Web應(yīng)用程序開發(fā)模式,用Java applet實(shí)現(xiàn)客戶端程序,不用在客戶端應(yīng)用程序,方便用戶使用;能取代傳統(tǒng)的工控機(jī)和接口卡,實(shí)現(xiàn)現(xiàn)場(chǎng)設(shè)備數(shù)據(jù)直接上網(wǎng),小巧輕便,成本低。
該Web服務(wù)器不僅可以廣泛應(yīng)用于工業(yè)控制領(lǐng)域,實(shí)現(xiàn)小型工業(yè)監(jiān)測(cè)系統(tǒng)網(wǎng)絡(luò)化,還可以實(shí)現(xiàn)智能儀器、智能園區(qū)、環(huán)境工程、植物工廠、工業(yè)制冷等方面的應(yīng)用。
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論