本發(fā)明涉及一種應(yīng)用于工業(yè)檢測的無線數(shù)據(jù)通訊方法。
背景技術(shù):
隨著科學(xué)技術(shù)的發(fā)展,數(shù)據(jù)傳輸網(wǎng)絡(luò),尤其是無線網(wǎng)絡(luò)得到廣泛應(yīng)用,因而工業(yè)檢測中數(shù)據(jù)通過無線網(wǎng)絡(luò)傳輸被大多檢測設(shè)備所首選。但是,由于大多工業(yè)生產(chǎn)現(xiàn)場環(huán)境惡劣,周圍存在各種磁場、電場等干擾,無線信號的穩(wěn)定性較差,嚴(yán)重影響數(shù)據(jù)的準(zhǔn)確、可靠傳輸,一旦數(shù)據(jù)傳輸錯誤,則前期的檢測作業(yè)需重復(fù)進(jìn)行,或影響后期的數(shù)據(jù)分析處理,降低了生產(chǎn)效率,影響檢測數(shù)據(jù)的正確應(yīng)用。同時(shí)傳統(tǒng)的基于tcp/ip的數(shù)據(jù)通訊是基于有線數(shù)據(jù)傳輸制定的,其復(fù)雜的握手、交互機(jī)制很容易發(fā)生通訊中斷或長時(shí)間延遲,特別是在一些嵌入式設(shè)備中,由于協(xié)議棧實(shí)現(xiàn)不完善,使數(shù)據(jù)通訊不但時(shí)間長而且很不穩(wěn)定,限制了工業(yè)生產(chǎn)現(xiàn)場中數(shù)據(jù)傳輸?shù)膽?yīng)用。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是提供一種應(yīng)用于工業(yè)檢測的無線數(shù)據(jù)通訊方法,本方法克服工業(yè)生產(chǎn)現(xiàn)場傳統(tǒng)數(shù)據(jù)通訊的缺陷,確保數(shù)據(jù)的準(zhǔn)確、可靠傳輸,提高了工業(yè)生產(chǎn)效率,保證檢測數(shù)據(jù)的正確應(yīng)用。
為解決上述技術(shù)問題,本發(fā)明應(yīng)用于工業(yè)檢測的無線數(shù)據(jù)通訊方法包括如下步驟:
步驟一、數(shù)據(jù)通訊開始時(shí)由客戶機(jī)向服務(wù)器發(fā)起連接握手,客戶機(jī)向服務(wù)器發(fā)送連接請求數(shù)據(jù)包,服務(wù)器回復(fù)客戶機(jī)連接確認(rèn)數(shù)據(jù)包;
步驟二、客戶機(jī)收到服務(wù)器的連接確認(rèn)包后開始向服務(wù)器傳輸數(shù)據(jù),數(shù)據(jù)傳輸時(shí)客戶機(jī)采用重復(fù)發(fā)送、服務(wù)器采用冗余確認(rèn);
步驟三、數(shù)據(jù)通訊完成后,服務(wù)器向客戶機(jī)發(fā)起斷開握手,服務(wù)器向客戶機(jī)發(fā)送所有數(shù)據(jù)已收到數(shù)據(jù)確認(rèn)包,客戶機(jī)接收到數(shù)據(jù)確認(rèn)包后向服務(wù)器發(fā)送斷開連接數(shù)據(jù)包,服務(wù)器收到斷開連接數(shù)據(jù)包后數(shù)據(jù)通訊結(jié)束。
進(jìn)一步,客戶機(jī)向服務(wù)器發(fā)送的連接請求數(shù)據(jù)包包括傳輸數(shù)據(jù)的長度和傳輸數(shù)據(jù)塊的大小,服務(wù)器根據(jù)傳輸數(shù)據(jù)長度和傳輸數(shù)據(jù)塊的大小建立接收數(shù)據(jù)區(qū)和數(shù)據(jù)塊接收標(biāo)志區(qū),數(shù)據(jù)塊接收標(biāo)志區(qū)中的每個(gè)標(biāo)志對應(yīng)一個(gè)數(shù)據(jù)塊,數(shù)據(jù)塊接收標(biāo)志區(qū)中未設(shè)置標(biāo)志,則表示該標(biāo)志對應(yīng)的數(shù)據(jù)塊沒有接收到,數(shù)據(jù)塊接收標(biāo)志區(qū)中設(shè)有標(biāo)志,則表示該標(biāo)志對應(yīng)的數(shù)據(jù)塊已經(jīng)接收到。
進(jìn)一步,客戶機(jī)向服務(wù)器發(fā)送的連接請求數(shù)據(jù)包包括傳輸數(shù)據(jù)的長度和傳輸數(shù)據(jù)塊的大小,客戶機(jī)根據(jù)傳輸數(shù)據(jù)的長度和傳輸數(shù)據(jù)塊的大小建立數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū),數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)中的每個(gè)標(biāo)志對應(yīng)一個(gè)數(shù)據(jù)塊,數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)中未設(shè)有標(biāo)志的數(shù)據(jù)塊表示該數(shù)據(jù)塊沒有被服務(wù)器接收,數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)中設(shè)有標(biāo)志的數(shù)據(jù)塊表示該數(shù)據(jù)塊已經(jīng)被服務(wù)器接收。
進(jìn)一步,客戶機(jī)向服務(wù)器發(fā)送數(shù)據(jù)塊前在數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)中查找該數(shù)據(jù)塊的標(biāo)志,如該標(biāo)志存在,表示該數(shù)據(jù)塊已被服務(wù)器接收,無需再次發(fā)送,如該數(shù)據(jù)塊無標(biāo)志,表示該數(shù)據(jù)塊尚未被服務(wù)器接收,需要發(fā)送。
進(jìn)一步,客戶機(jī)向服務(wù)器發(fā)送的數(shù)據(jù)塊中包含一個(gè)id,該id對應(yīng)該數(shù)據(jù)塊在傳輸數(shù)據(jù)中的順序位置,該id在數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)中與該數(shù)據(jù)塊的標(biāo)志一一對應(yīng)。
進(jìn)一步,服務(wù)器向客戶機(jī)發(fā)送的數(shù)據(jù)確認(rèn)包中包含已接收數(shù)據(jù)塊的順序位置id和冗余確認(rèn)標(biāo)志id,該順序位置id與客戶機(jī)發(fā)送的該數(shù)據(jù)塊id相同,并與服務(wù)器的數(shù)據(jù)塊接收標(biāo)志區(qū)中該數(shù)據(jù)塊的標(biāo)志一一對應(yīng)。
進(jìn)一步,客戶機(jī)接收到服務(wù)器發(fā)送的數(shù)據(jù)確認(rèn)包后在數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)中標(biāo)識已發(fā)送數(shù)據(jù)塊id對應(yīng)的標(biāo)志,并且根據(jù)該數(shù)據(jù)塊中服務(wù)器的冗余確認(rèn)標(biāo)志id標(biāo)識相應(yīng)的標(biāo)志位。
進(jìn)一步,服務(wù)器向客戶機(jī)發(fā)送的數(shù)據(jù)確認(rèn)包中的冗余確認(rèn)標(biāo)志id與順序位置id相關(guān),數(shù)據(jù)確認(rèn)包中的順序位置id為100,表示服務(wù)器收到客戶端發(fā)來的id為100的數(shù)據(jù)塊,冗余確認(rèn)標(biāo)志id由id為100的數(shù)據(jù)塊在數(shù)據(jù)塊接收標(biāo)志區(qū)中該數(shù)據(jù)塊位置前若干個(gè)數(shù)據(jù)塊的標(biāo)志組成。
由于本發(fā)明應(yīng)用于工業(yè)檢測的無線數(shù)據(jù)通訊方法采用了上述技術(shù)方案,即本方法在數(shù)據(jù)通訊開始時(shí)由客戶機(jī)向服務(wù)器發(fā)起連接握手,客戶機(jī)發(fā)送連接請求數(shù)據(jù)包,服務(wù)器回復(fù)連接確認(rèn)數(shù)據(jù)包;客戶機(jī)收到連接確認(rèn)包后開始向服務(wù)器傳輸數(shù)據(jù),數(shù)據(jù)傳輸時(shí)客戶機(jī)采用重復(fù)發(fā)送、服務(wù)器采用冗余確認(rèn);數(shù)據(jù)通訊完成后服務(wù)器向客戶機(jī)發(fā)起斷開握手,服務(wù)器發(fā)送所有數(shù)據(jù)已收到數(shù)據(jù)確認(rèn)包,客戶機(jī)接收到數(shù)據(jù)確認(rèn)包后向服務(wù)器發(fā)送斷開連接數(shù)據(jù)包,服務(wù)器收到斷開連接數(shù)據(jù)包后數(shù)據(jù)通訊結(jié)束。本方法克服工業(yè)生產(chǎn)現(xiàn)場傳統(tǒng)數(shù)據(jù)通訊的缺陷,確保數(shù)據(jù)的準(zhǔn)確、可靠傳輸,提高了工業(yè)生產(chǎn)效率,保證檢測數(shù)據(jù)的正確應(yīng)用。
附圖說明
下面結(jié)合附圖和實(shí)施方式對本發(fā)明作進(jìn)一步的詳細(xì)說明:
圖1為本發(fā)明應(yīng)用于工業(yè)檢測的無線數(shù)據(jù)通訊方法示意圖;
圖2為本方法中數(shù)據(jù)傳輸示意圖;
圖3為本方法中數(shù)據(jù)塊順序位置id和冗余確認(rèn)標(biāo)志id標(biāo)識示意圖。
具體實(shí)施方式
實(shí)施例如圖1所示,本發(fā)明應(yīng)用于工業(yè)檢測的無線數(shù)據(jù)通訊方法包括如下步驟:
步驟一、數(shù)據(jù)通訊開始時(shí)由客戶機(jī)1向服務(wù)器2發(fā)起連接握手,客戶機(jī)1向服務(wù)器2發(fā)送連接請求數(shù)據(jù)包,服務(wù)器2回復(fù)客戶機(jī)1連接確認(rèn)數(shù)據(jù)包;若客戶機(jī)在設(shè)定時(shí)間未收到服務(wù)器的連接確認(rèn)數(shù)據(jù)包可以重試連接握手或放棄連接;
步驟二、客戶機(jī)1收到服務(wù)器2的連接確認(rèn)包后開始向服務(wù)器2傳輸數(shù)據(jù),數(shù)據(jù)傳輸時(shí)客戶機(jī)1采用重復(fù)發(fā)送、服務(wù)器2采用冗余確認(rèn);
步驟三、數(shù)據(jù)通訊完成后,服務(wù)器2向客戶機(jī)1發(fā)起斷開握手,服務(wù)器2向客戶機(jī)1發(fā)送所有數(shù)據(jù)已收到數(shù)據(jù)確認(rèn)包,客戶機(jī)1接收到數(shù)據(jù)確認(rèn)包后向服務(wù)器2發(fā)送斷開連接數(shù)據(jù)包,服務(wù)器2收到斷開連接數(shù)據(jù)包后數(shù)據(jù)通訊結(jié)束。
優(yōu)選的,客戶機(jī)向服務(wù)器發(fā)送的連接請求數(shù)據(jù)包包括傳輸數(shù)據(jù)的長度和傳輸數(shù)據(jù)塊的大小,服務(wù)器根據(jù)傳輸數(shù)據(jù)長度和傳輸數(shù)據(jù)塊的大小建立接收數(shù)據(jù)區(qū)和數(shù)據(jù)塊接收標(biāo)志區(qū),數(shù)據(jù)塊接收標(biāo)志區(qū)中的每個(gè)標(biāo)志對應(yīng)一個(gè)數(shù)據(jù)塊,數(shù)據(jù)塊接收標(biāo)志區(qū)中未設(shè)置標(biāo)志,則表示該標(biāo)志對應(yīng)的數(shù)據(jù)塊沒有接收到,數(shù)據(jù)塊接收標(biāo)志區(qū)中設(shè)有標(biāo)志,則表示該標(biāo)志對應(yīng)的數(shù)據(jù)塊已經(jīng)接收到。
優(yōu)選的,客戶機(jī)向服務(wù)器發(fā)送的連接請求數(shù)據(jù)包包括傳輸數(shù)據(jù)的長度和傳輸數(shù)據(jù)塊的大小,客戶機(jī)根據(jù)傳輸數(shù)據(jù)的長度和傳輸數(shù)據(jù)塊的大小建立數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū),數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)中的每個(gè)標(biāo)志對應(yīng)一個(gè)數(shù)據(jù)塊,數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)中未設(shè)有標(biāo)志的數(shù)據(jù)塊表示該數(shù)據(jù)塊沒有被服務(wù)器接收,數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)中設(shè)有標(biāo)志的數(shù)據(jù)塊表示該數(shù)據(jù)塊已經(jīng)被服務(wù)器接收。
優(yōu)選的,客戶機(jī)向服務(wù)器發(fā)送數(shù)據(jù)塊前在數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)中查找該數(shù)據(jù)塊的標(biāo)志,如該標(biāo)志存在,表示該數(shù)據(jù)塊已被服務(wù)器接收,無需再次發(fā)送,如該數(shù)據(jù)塊無標(biāo)志,表示該數(shù)據(jù)塊尚未被服務(wù)器接收,需要發(fā)送。
優(yōu)選的,客戶機(jī)向服務(wù)器發(fā)送的數(shù)據(jù)塊中包含一個(gè)id,該id對應(yīng)該數(shù)據(jù)塊在傳輸數(shù)據(jù)中的順序位置,該id在數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)中與該數(shù)據(jù)塊的標(biāo)志一一對應(yīng)。
優(yōu)選的,服務(wù)器向客戶機(jī)發(fā)送的數(shù)據(jù)確認(rèn)包中包含已接收數(shù)據(jù)塊的順序位置id和冗余確認(rèn)標(biāo)志id,該順序位置id與客戶機(jī)發(fā)送的該數(shù)據(jù)塊id相同,并與服務(wù)器的數(shù)據(jù)塊接收標(biāo)志區(qū)中該數(shù)據(jù)塊的標(biāo)志一一對應(yīng)。
優(yōu)選的,客戶機(jī)接收到服務(wù)器發(fā)送的數(shù)據(jù)確認(rèn)包后在數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)中標(biāo)識已發(fā)送數(shù)據(jù)塊id對應(yīng)的標(biāo)志,并且根據(jù)該數(shù)據(jù)塊中服務(wù)器的冗余確認(rèn)標(biāo)志id標(biāo)識相應(yīng)的標(biāo)志位。
優(yōu)選的,服務(wù)器向客戶機(jī)發(fā)送的數(shù)據(jù)確認(rèn)包中的冗余確認(rèn)標(biāo)志id與順序位置id相關(guān),數(shù)據(jù)確認(rèn)包中的順序位置id為100,表示服務(wù)器收到客戶端發(fā)來的id為100的數(shù)據(jù)塊,冗余確認(rèn)標(biāo)志id由id為100的數(shù)據(jù)塊在數(shù)據(jù)塊接收標(biāo)志區(qū)中該數(shù)據(jù)塊位置前若干個(gè)數(shù)據(jù)塊的標(biāo)志組成。例如,以冗余確認(rèn)標(biāo)志id為32位無符號整數(shù)為例,每一位對應(yīng)一個(gè)數(shù)據(jù)塊接收標(biāo)志,表示該位置數(shù)據(jù)塊是否已經(jīng)接收到。
如圖2所示,通訊連接建立后,客戶機(jī)1根據(jù)傳輸數(shù)據(jù)長度和每個(gè)數(shù)據(jù)包中傳輸?shù)臄?shù)據(jù)塊大小建立數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)12,每個(gè)標(biāo)志對應(yīng)一個(gè)數(shù)據(jù)塊;服務(wù)器2根據(jù)傳輸數(shù)據(jù)長度和每個(gè)數(shù)據(jù)包中傳輸?shù)臄?shù)據(jù)塊大小建立數(shù)據(jù)塊接收標(biāo)志區(qū)22??蛻魴C(jī)1在數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)12查找沒有確認(rèn)標(biāo)志的數(shù)據(jù)塊,從發(fā)送數(shù)據(jù)區(qū)11取出數(shù)據(jù)塊打包發(fā)送給服務(wù)器2;同時(shí)客戶機(jī)1接收從服務(wù)器2發(fā)來的確認(rèn)數(shù)據(jù)包,從中提取當(dāng)前數(shù)據(jù)塊順序位置id及冗余確認(rèn)id,在數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)12相應(yīng)位置設(shè)置確認(rèn)標(biāo)志;服務(wù)器2接收客戶機(jī)1發(fā)來的數(shù)據(jù)包,提取數(shù)據(jù)塊id,根據(jù)id在數(shù)據(jù)塊接收標(biāo)志區(qū)22查找是否已收到該數(shù)據(jù)塊,若未收到,將該數(shù)據(jù)塊放到接收數(shù)據(jù)區(qū)21相應(yīng)的位置并在數(shù)據(jù)塊接收標(biāo)志區(qū)22設(shè)置已接收標(biāo)志;同時(shí),服務(wù)器2向客戶機(jī)1發(fā)送當(dāng)前數(shù)據(jù)塊的確認(rèn)包,確認(rèn)包中不但包含當(dāng)前數(shù)據(jù)塊的id還包含當(dāng)前數(shù)據(jù)塊前若干個(gè)數(shù)據(jù)塊是否已收到的標(biāo)識。當(dāng)服務(wù)器2檢查數(shù)據(jù)塊接收標(biāo)志區(qū)22確認(rèn)所有數(shù)據(jù)塊已接收后向客戶機(jī)1發(fā)送所有數(shù)據(jù)已接收數(shù)據(jù)包??蛻魴C(jī)1發(fā)完所有數(shù)據(jù)塊后,檢查數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)12,重發(fā)未設(shè)置數(shù)據(jù)確認(rèn)標(biāo)識的數(shù)據(jù)塊,設(shè)定重復(fù)發(fā)送次數(shù)或直到收到服務(wù)器2發(fā)來的所有數(shù)據(jù)已接收確認(rèn)數(shù)據(jù)包后停止。
如圖3所示,數(shù)據(jù)塊確認(rèn)標(biāo)志區(qū)12中數(shù)據(jù)塊順序位置id與數(shù)據(jù)塊接收標(biāo)志區(qū)22中數(shù)據(jù)塊順序位置id一一對應(yīng),同時(shí),服務(wù)器的數(shù)據(jù)確認(rèn)包中的冗余確認(rèn)標(biāo)志id由該數(shù)據(jù)塊順序位置id以及該數(shù)據(jù)塊位置前若干個(gè)數(shù)據(jù)塊的標(biāo)志組成,以提供當(dāng)前數(shù)據(jù)塊前若干個(gè)數(shù)據(jù)塊是否已收到的標(biāo)識。
本方法經(jīng)實(shí)際應(yīng)用測試,不但能可靠地進(jìn)行數(shù)據(jù)通訊,還能有效地提高數(shù)據(jù)通訊的效率,在無線環(huán)境下比傳統(tǒng)的基于tcp/ip的數(shù)據(jù)通訊方式效率可提高數(shù)十倍,從而確保工業(yè)檢測數(shù)據(jù)的準(zhǔn)確、可靠傳輸,提高了工業(yè)生產(chǎn)效率,保證檢測數(shù)據(jù)的正確應(yīng)用。