基於物聯網的跨平臺應用程式接口調用方法與流程
2024-03-29 04:27:05

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