本發(fā)明涉及物聯(lián)網(wǎng)通信領(lǐng)域,更具體地,涉及一種基于物聯(lián)網(wǎng)的跨平臺(tái)應(yīng)用程序接口調(diào)用方法。
背景技術(shù):
傳感器是構(gòu)建物聯(lián)網(wǎng)的一個(gè)重要部分,隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,需要在不同的平臺(tái)下開發(fā)基于物聯(lián)網(wǎng)的傳感器應(yīng)用程序。在物聯(lián)網(wǎng)的應(yīng)用中,傳感器采集的數(shù)據(jù)可通過各種無(wú)線通信技術(shù),如ZigBee、IPv6、藍(lán)牙、WiFi等傳到智能終端上,反過來(lái),智能終端通過這些無(wú)線通信技術(shù)將控制指令發(fā)送給傳感器以完成對(duì)傳感器的控制。
由于智能終端使用的平臺(tái)有很多種,如Linux、Android等,而目前基于物聯(lián)網(wǎng)的應(yīng)用程序在不同的平臺(tái)下進(jìn)行開發(fā)時(shí)需要遵循各自平臺(tái)提供的接口和開發(fā)語(yǔ)言,所以現(xiàn)在普遍的物聯(lián)網(wǎng)應(yīng)用程序開發(fā)都是針對(duì)使用的平臺(tái)單獨(dú)的開發(fā)一套只能在該平臺(tái)上運(yùn)行和調(diào)用的傳感器應(yīng)用程序接口。因此,有必要開發(fā)一種基于物聯(lián)網(wǎng)的跨平臺(tái)應(yīng)用程序接口調(diào)用方法。
公開于本發(fā)明背景技術(shù)部分的信息僅僅旨在加深對(duì)本公開的一般背景技術(shù)的理解,而不應(yīng)當(dāng)被視為承認(rèn)或以任何形式暗示該信息構(gòu)成已為本領(lǐng)域技術(shù)人員所公知的現(xiàn)有技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
常規(guī)的基于物聯(lián)網(wǎng)的傳感器應(yīng)用程序接口需要針對(duì)智能終端使用的平臺(tái)單獨(dú)進(jìn)行開發(fā),無(wú)法實(shí)現(xiàn)跨平臺(tái),接口協(xié)議多且較為復(fù)雜。本發(fā)明的目的是實(shí)現(xiàn)跨平臺(tái)接口調(diào)用,可兼容Android和Linux操作系統(tǒng),同時(shí)客戶端可通過網(wǎng)絡(luò)接口調(diào)用實(shí)現(xiàn)遠(yuǎn)程對(duì)傳感器進(jìn)行數(shù)據(jù)采集和控制。
一種基于物聯(lián)網(wǎng)的跨平臺(tái)應(yīng)用程序接口調(diào)用方法,該方法可以包括以下步驟:建立連接,當(dāng)服務(wù)端接收到來(lái)自客戶端的連接請(qǐng)求時(shí),所述服務(wù)端建立與所述客戶端的連接;打開串口,在所述客戶端與所述服務(wù)端建立連接之后,所述服務(wù)端基于所述客戶端的打開串口請(qǐng)求打開運(yùn)行所述服務(wù)端的設(shè)備與硬件模塊連接的串口;進(jìn)行串口通信,在所述串口打口之后,所述服務(wù)端基于來(lái)自所述客戶端的串口通信請(qǐng)求進(jìn)行串口通信;更新顯示,如果所述客戶端獲得所述串口通信的結(jié)果,則對(duì)所述結(jié)果進(jìn)行解析并在界面上更新顯示;以及斷開串口,當(dāng)所述服務(wù)端接收到來(lái)自所述客戶端的斷開連接請(qǐng)求時(shí),所述服務(wù)端斷開與所述客戶端的連接。
優(yōu)選地,所述串口通信可以包括:不返回?cái)?shù)據(jù)的串口通信,將包含在不返回?cái)?shù)據(jù)的串口通信請(qǐng)求中的數(shù)據(jù)指令發(fā)送給硬件模塊以實(shí)現(xiàn)對(duì)所述硬件模塊的控制;以及返回?cái)?shù)據(jù)的串口通信,所述服務(wù)端通過所述客戶端請(qǐng)求的通信方式和串口從相應(yīng)的串口操作線程中獲取所述硬件模塊的數(shù)據(jù)并將所獲得的數(shù)據(jù)發(fā)送給所述客戶端。
優(yōu)選地,所述返回?cái)?shù)據(jù)的串口通信可以包括:同步返回?cái)?shù)據(jù)的串口通信;異步獲取數(shù)據(jù)的串口通信;以及異步自動(dòng)上報(bào)數(shù)據(jù)的串口通信。
優(yōu)選地,所述同步返回?cái)?shù)據(jù)的串口通信可以包括以下步驟:所述服務(wù)端將包含在同步返回?cái)?shù)據(jù)的串口通信請(qǐng)求中的數(shù)據(jù)指令發(fā)送至所述硬件模塊,并請(qǐng)求獲取所述硬件模塊的數(shù)據(jù);所述服務(wù)端同步獲取所述硬件模塊的數(shù)據(jù);以及所述服務(wù)端將所獲取的數(shù)據(jù)同步返回至所述客戶端。
優(yōu)選地,所述異步獲取數(shù)據(jù)的串口通信可以包括以下步驟:所述服務(wù)端將包含在異步獲取數(shù)據(jù)的串口通信請(qǐng)求中的數(shù)據(jù)指令發(fā)送至所述硬件模塊,并請(qǐng)求獲取所述硬件模塊的數(shù)據(jù);所述服務(wù)端異步獲取所述硬件模塊的數(shù)據(jù);以及所述服務(wù)端將所獲取的數(shù)據(jù)異步上報(bào)至客戶端。
優(yōu)選地,所述異步自動(dòng)上報(bào)數(shù)據(jù)的串口通信可以包括以下步驟:所述服務(wù)端將包含在異步自動(dòng)上報(bào)數(shù)據(jù)的串口通信請(qǐng)求中的數(shù)據(jù)指令發(fā)送至所述硬件模塊,并重復(fù)請(qǐng)求獲取硬件模塊的數(shù)據(jù);在每一次請(qǐng)求之后所述服務(wù)端異步獲取所述硬件模塊的數(shù)據(jù)并將所獲取的數(shù)據(jù)異步自動(dòng)上報(bào)至客戶端;以及在所述服務(wù)端接收到所述客戶端發(fā)出的停止自動(dòng)上報(bào)數(shù)據(jù)的請(qǐng)求時(shí),所述服務(wù)端停止自動(dòng)上報(bào)數(shù)據(jù)。
優(yōu)選地,所述監(jiān)聽客戶端連接可以包括:所述服務(wù)端通過Socket網(wǎng)絡(luò)接口監(jiān)聽客戶端的連接。
優(yōu)選地,所述通信方式可以為Zigbee、IPV6、藍(lán)牙、Wifi、3G/4G中的一種。
優(yōu)選地,所述服務(wù)端可以為L(zhǎng)inux或Android系統(tǒng)。
優(yōu)選地,所述硬件模塊可以為ZigBee模塊、IPv6模塊、藍(lán)牙模塊、WiFi模塊、3G/4G模塊中的一種或多種。
根據(jù)本發(fā)明的基于物聯(lián)網(wǎng)的跨平臺(tái)應(yīng)用程序接口調(diào)用方法與傳統(tǒng)方法相比,在Android和Linux下可以共用一個(gè)程序,不需要單獨(dú)的針對(duì)每個(gè)系統(tǒng)進(jìn)行開發(fā);同時(shí)提供網(wǎng)絡(luò)接口進(jìn)行調(diào)用的方式,支持客戶端遠(yuǎn)程訪問和控制,客戶端的開發(fā)在其他平臺(tái)下都能進(jìn)行并且只需要遵守一套通信協(xié)議,降低了開發(fā)的人力、物力、時(shí)間、維護(hù)和升級(jí)的成本。
本發(fā)明的方法具有其它的特性和優(yōu)點(diǎn),這些特性和優(yōu)點(diǎn)從并入本文中的附圖和隨后的具體實(shí)施例中將是顯而易見的,或者將在并入本文中的附圖和隨后的具體實(shí)施例中進(jìn)行詳細(xì)陳述,這些附圖和具體實(shí)施例共同用于解釋本發(fā)明的特定原理。
附圖說明
通過結(jié)合附圖對(duì)本發(fā)明示例性實(shí)施例進(jìn)行更詳細(xì)的描述,本發(fā)明的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯,其中,在本發(fā)明示例性實(shí)施例中,相同的參考標(biāo)號(hào)通常代表相同部件。
圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的基于物聯(lián)網(wǎng)的跨平臺(tái)應(yīng)用程序接口調(diào)用方法的流程圖。
圖2示出了該實(shí)施例的示例性實(shí)施過程。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本發(fā)明。雖然附圖中顯示了本發(fā)明的優(yōu)選實(shí)施例,然而應(yīng)該理解,可以以各種形式實(shí)現(xiàn)本發(fā)明而不應(yīng)被這里闡述的實(shí)施例所限制。
圖1示出了根據(jù)一個(gè)實(shí)施例的基于物聯(lián)網(wǎng)的跨平臺(tái)應(yīng)用程序接口調(diào)用方法的流程圖,其具體包括以下步驟:
步驟101:當(dāng)服務(wù)端接收到來(lái)自客戶端的連接請(qǐng)求時(shí),所述服務(wù)端建立與所述客戶端的連接。
圖2示出了該實(shí)施例的示例性實(shí)施過程。
具體地,如圖2所示,客戶端10向服務(wù)端20請(qǐng)求建立連接。服務(wù)端20監(jiān)聽客戶端10的連接,當(dāng)服務(wù)端20監(jiān)聽到客戶端10請(qǐng)求建立連接時(shí),將客戶端10加入到在線的客戶端鏈接表中并進(jìn)行保存,通過這種方式建立與客戶端10的連接。當(dāng)服務(wù)端20與客戶端10的連接建立成功,服務(wù)端20發(fā)送建立連接成功的信息至客戶端10。
在一個(gè)示例中,服務(wù)端20通過Socket網(wǎng)絡(luò)接口監(jiān)聽客戶端的連接。
步驟102:在所述客戶端與所述服務(wù)端建立連接之后,所述服務(wù)端基于所述客戶端的打開串口請(qǐng)求打開運(yùn)行所述服務(wù)端的設(shè)備與硬件模塊連接的串口。
具體地,如圖2所示,客戶端10向服務(wù)端20請(qǐng)求打開串口。當(dāng)服務(wù)端20打開串口成功,其發(fā)送打開串口成功的信息至客戶端10。
步驟103:在所述串口打口之后,所述服務(wù)端基于來(lái)自所述客戶端的串口通信請(qǐng)求進(jìn)行串口通信。
在一個(gè)示例中,串口通信可以包括:不返回?cái)?shù)據(jù)的串口通信,將包含在不返回?cái)?shù)據(jù)的串口通信請(qǐng)求中的數(shù)據(jù)指令發(fā)送給硬件模塊30以實(shí)現(xiàn)對(duì)硬件模塊30的控制;以及返回?cái)?shù)據(jù)的串口通信,服務(wù)端20通過客戶端10請(qǐng)求的通信方式和串口從相應(yīng)的串口操作線程中獲取硬件模塊30的數(shù)據(jù)并將所獲得的數(shù)據(jù)返回給客戶端10。
在一個(gè)示例中,返回?cái)?shù)據(jù)的串口通信可以包括:同步返回?cái)?shù)據(jù)的串口通信;異步獲取數(shù)據(jù)的串口通信;以及異步自動(dòng)上報(bào)數(shù)據(jù)的串口通信。
可選地,同步返回?cái)?shù)據(jù)的串口通信可以包括以下步驟:服務(wù)端20將包含在同步返回?cái)?shù)據(jù)的串口通信請(qǐng)求中的數(shù)據(jù)指令發(fā)送至硬件模塊30,并請(qǐng)求獲取硬件模塊30的數(shù)據(jù);服務(wù)端20同步獲取硬件模塊30的數(shù)據(jù);以及服務(wù)端20將所獲取的硬件模塊30的數(shù)據(jù)同步返回至客戶端10。
硬件模塊30通過串口與服務(wù)端20進(jìn)行通信。在通信過程中,每個(gè)串口開啟一個(gè)線程進(jìn)行異步操作。
具體地,如圖2所示,服務(wù)端20在接收到來(lái)自客戶端10的同步返回?cái)?shù)據(jù)的串口通信請(qǐng)求時(shí),其將包含在該表求中的數(shù)據(jù)指令發(fā)送至硬件模塊30,實(shí)現(xiàn)對(duì)硬件模塊30的控制,并且服務(wù)端20將獲取硬件模塊30的數(shù)據(jù)的請(qǐng)求發(fā)送至硬件模塊30,通過該串口通信請(qǐng)求所要求的通信方式和串口同步地從相應(yīng)的串口操作線程中獲取硬件模塊30的數(shù)據(jù),并將該數(shù)據(jù)同步返回至客戶端10。
可選地,所述異步獲取數(shù)據(jù)的串口通信可以包括以下步驟:服務(wù)端20將包含在異步獲取數(shù)據(jù)的串口通信請(qǐng)求中的數(shù)據(jù)指令發(fā)送至硬件模塊30,并請(qǐng)求獲取硬件模塊30的數(shù)據(jù);服務(wù)端20異步獲取硬件模塊30的數(shù)據(jù);以及服務(wù)端20將獲取的硬件模塊30的數(shù)據(jù)異步上報(bào)至客戶端10。
具體地,如圖2所示,服務(wù)端20在接收到來(lái)自客戶端10的異步獲取數(shù)據(jù)的串口通信請(qǐng)求時(shí),其將包含在該表求中的數(shù)據(jù)指令發(fā)送至硬件模塊30,實(shí)現(xiàn)對(duì)硬件模塊30的控制,并且服務(wù)端20將獲取硬件模塊30的數(shù)據(jù)的請(qǐng)求發(fā)送至硬件模塊30,通過該串口通信請(qǐng)求所要求的通信方式和串口異步地從相應(yīng)的串口操作線程中獲取硬件模塊30的數(shù)據(jù),并將該數(shù)據(jù)異步上報(bào)至客戶端10。
可選地,所述異步自動(dòng)上報(bào)數(shù)據(jù)的串口通信可以包括以下步驟:服務(wù)端20將包含在異步自動(dòng)上報(bào)數(shù)據(jù)的串口通信請(qǐng)求中的數(shù)據(jù)指令發(fā)送至硬件模塊30,并重復(fù)請(qǐng)求獲取硬件模塊30的數(shù)據(jù);在每一次請(qǐng)求之后服務(wù)端20異步獲取硬件模塊30的數(shù)據(jù);以及服務(wù)端20將所在每一次請(qǐng)求之后獲取的硬件模塊30的數(shù)據(jù)異步自動(dòng)上報(bào)至客戶端10。
具體地,如圖2所示,服務(wù)端20在接收到來(lái)自客戶端10的異步自動(dòng)上報(bào)數(shù)據(jù)的串口通信請(qǐng)求時(shí),其將包含在該表求中的數(shù)據(jù)指令發(fā)送至硬件模塊30,實(shí)現(xiàn)對(duì)硬件模塊30的控制,并且服務(wù)端20反復(fù)發(fā)送獲取硬件模塊30的數(shù)據(jù)的請(qǐng)求至硬件模塊30?;诿看伟l(fā)送的獲取硬件模塊30的數(shù)據(jù)的請(qǐng)求,服務(wù)端20通過該串口通信請(qǐng)求所要求的通信方式和串口異步地從相應(yīng)的串口操作線程中獲取硬件模塊30的數(shù)據(jù),并將該數(shù)據(jù)異步自動(dòng)上報(bào)至客戶端10。重復(fù)發(fā)送獲取硬件模塊30的請(qǐng)求、獲取數(shù)據(jù)并異步自動(dòng)上報(bào)步驟直到客戶端10發(fā)送停止自動(dòng)上報(bào)數(shù)據(jù)的請(qǐng)求,服務(wù)端20停止自動(dòng)上報(bào)數(shù)據(jù)。
在一個(gè)示例中,客戶端所請(qǐng)求的通信方式可以為Zigbee、IPV6、藍(lán)牙、Wifi、3G/4G中的一種。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,客戶端可以請(qǐng)求任意適當(dāng)?shù)耐ㄐ欧绞竭M(jìn)行服務(wù)端與硬件模塊件的數(shù)據(jù)傳輸。
步驟104:如果所述客戶端獲得所述串口通信的結(jié)果,則對(duì)所述結(jié)果進(jìn)行解析并在界面上更新顯示。
具體地,如圖2所示,在進(jìn)行返回?cái)?shù)據(jù)的串口通信的情況下,客戶端10獲得硬件模塊30的數(shù)據(jù),其對(duì)該數(shù)據(jù)進(jìn)行解析并在界面上更新顯示。
步驟105:當(dāng)所述服務(wù)端接收到來(lái)自所述客戶端的斷開連接請(qǐng)求時(shí),所述服務(wù)端斷開與所述客戶端的連接。
具體地,如圖2所示,當(dāng)服務(wù)端20監(jiān)聽到客戶端10請(qǐng)求斷開連接時(shí),服務(wù)端20關(guān)閉與客戶端10的連接并將客戶端10從在線客戶端鏈表中刪除。在服務(wù)端20與客戶端10的連接斷開之后,服務(wù)端20發(fā)送斷開連接成功的信息至客戶端10。
在一個(gè)示例中,服務(wù)端20可以為L(zhǎng)inux或Android系統(tǒng)。在該實(shí)施例的方法中,服務(wù)端程序支持在Linux或Android系統(tǒng)下運(yùn)行,通過靜態(tài)編譯生成可執(zhí)行文件。
在一個(gè)示例中,硬件模塊30可以為ZigBee模塊、IPv6模塊、藍(lán)牙模塊、WiFi模塊、3G/4G模塊中的一種或多種。
在一個(gè)示例中,客戶端10的應(yīng)用程序可以為Windows應(yīng)用程序、Android應(yīng)用程序、Linux應(yīng)用程序、Mac應(yīng)用程序中的一種。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,客戶端的應(yīng)用程序可以為任意適合的應(yīng)用程序。
根據(jù)該實(shí)施例的基于物聯(lián)網(wǎng)的跨平臺(tái)應(yīng)用程序接口調(diào)用方法的調(diào)用方法具體如下:將編譯后生成的可執(zhí)行程序下載到Linux或Android系統(tǒng)的物聯(lián)網(wǎng)網(wǎng)關(guān)中,然后將接口程序加入到系統(tǒng)的開機(jī)啟動(dòng)腳本中,最后將網(wǎng)關(guān)重啟,該接口程序即可運(yùn)行,客戶端只需要根據(jù)網(wǎng)關(guān)的IP和提供服務(wù)的端口連接到服務(wù)端程序,然后按照通訊協(xié)議進(jìn)行調(diào)用。
以上已經(jīng)描述了本發(fā)明的各實(shí)施例,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實(shí)施例。在不偏離所說明的各實(shí)施例的范圍和精神的情況下,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說許多修改和變更都是顯而易見的。