CN114979296A - 物联网通信方法及相关终端、存储介质 - Google Patents
物联网通信方法及相关终端、存储介质 Download PDFInfo
- Publication number
- CN114979296A CN114979296A CN202210549525.5A CN202210549525A CN114979296A CN 114979296 A CN114979296 A CN 114979296A CN 202210549525 A CN202210549525 A CN 202210549525A CN 114979296 A CN114979296 A CN 114979296A
- Authority
- CN
- China
- Prior art keywords
- iot terminal
- iot
- data packet
- coding format
- json
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004891 communication Methods 0.000 title claims abstract description 250
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000005540 biological transmission Effects 0.000 claims abstract description 196
- 238000001514 detection method Methods 0.000 claims description 13
- 238000004806 packaging method and process Methods 0.000 claims description 11
- 230000006855 networking Effects 0.000 claims description 6
- 238000005538 encapsulation Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 8
- 239000010410 layer Substances 0.000 description 88
- 230000004044 response Effects 0.000 description 52
- 230000006870 function Effects 0.000 description 24
- 238000005516 engineering process Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 230000008859 change Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000002085 persistent effect Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 238000005316 response function Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 239000002355 dual-layer Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Communication Control (AREA)
Abstract
本申请实施例公开了一种物联网通信方法及相关终端、存储介质,可以提高物联网设备业务拓展和业务实现能力,同时提高开发人员对通信接口的可维护性,缩短项目代码的开发周期。该物联网通信方法包括:第一物联网IOT终端检测调用IOT设备通信接口的发送请求,发送请求用于指示向第二物联网IOT终端发送通信协议数据,IOT设备通信接口是基于IOT终端的物模型生成,IOT终端的物模型是基于物模型描述语言TSL定义;针对发送请求,第一IOT终端按照目标编码格式编码通信协议数据得到第一数据包,目标编码格式是根据当前传输链路层的传输带宽确定;第一IOT终端根据链路协议封装第一数据包,生成封装后的第二数据包;第一IOT终端通过IOT设备通信接口向第二IOT终端发送第二数据包。
Description
技术领域
本申请涉及物联网通信技术领域,尤其涉及一种物联网通信方法及相关终端、存储介质。
背景技术
在相关物联网(internet of thing,IOT)通信技术中,相应的接口通常采用JS对象简谱(JavaScript Object Notation,JSON)编码格式将通信协议数据编码后通过通信协议如TCP/IP协议在网络中进行传输。
目前,通过Wi-Fi或者4G-LTE等高带宽的通信技术,经过JSON编码格式的数据包可以即时且可靠的传输,但是该编码格式无法兼容BLE或者Zigbee等低带宽的通信技术,往往需要为IOT设备重新定义利用紧凑得多的协议编码的接口例如用TLV格式编码协议数据,且因为IOT设备接口与业务强耦合,接口需要敏捷响应业务的变更,导致了开发人员疲于维护多套接口;由于接口的不统一,限制了IOT设备的业务拓展能力,进而限制了上层业务的拓展。
发明内容
基于此,有必要针对上述问题,本申请提出了一种物联网通信方法及相关终端、存储介质,可以提高物联网设备业务拓展和业务实现能力,同时提高开发人员对通信接口的可维护性,缩短项目代码的开发周期。
第一方面,本申请提供了一种物联网通信方法,包括:
第一物联网IOT终端检测调用IOT设备通信接口的发送请求,发送请求用于指示向第二物联网IOT终端发送通信协议数据,IOT设备通信接口是基于IOT终端的物模型生成,IOT终端的物模型是基于物模型描述语言TSL定义;
针对发送请求,第一IOT终端按照目标编码格式编码通信协议数据得到第一数据包,目标编码格式是根据当前传输链路层的传输带宽确定;
第一IOT终端根据链路协议封装第一数据包,生成封装后的第二数据包,链路协议与当前传输链路层对应;
第一IOT终端通过IOT设备通信接口向第二IOT终端发送第二数据包。
可选的,在第一方面的一种可能的实现方式中,目标编码格式包括JSON编码格式或Protobuf编码格式;
当当前传输链路层的传输带宽为高带宽时,目标编码格式为JSON编码格式;
当当前传输链路层的传输带宽为低带宽时,目标编码格式为Protobuf编码格式。
可选的,在第一方面的一种可能的实现方式中,第一IOT终端按照目标编码格式编码通信协议数据得到第一数据包,包括:
第一IOT终端通过RPC框架代码库根据通信协议数据生成JSON对象,其中JSON对象是按照JSON编码格式生成,RPC框架代码库是根据IOT设备通信接口生成;
在确定目标编码格式为JSON编码格式的情况下,第一IOT终端通过RPC框架代码库将JSON对象序列化为二进制字节流;
第一IOT终端根据高带宽通信传输协议将二进制字节流打包成第一数据包。
可选的,在第一方面的一种可能的实现方式中,第一IOT终端按照目标编码格式编码通信协议数据得到第一数据包,包括:
第一IOT终端通过RPC框架代码库根据通信协议数据生成JSON对象,其中JSON对象是按照JSON编码格式生成的,RPC框架代码库是根据IOT设备通信接口生成;
在确定目标编码格式为Protobuf编码格式的情况下,第一IOT终端通过RPC框架代码库将JSON对象转换为Protobuf对象,其中Protobuf对象与Protobuf编码格式相对应;
第一IOT终端通过RPC框架代码库将Protobuf对象序列化为二进制字节流;
第一IOT终端根据低带宽通信传输协议将二进制字节流打包成第一数据包。
第二方面,本申请还提供了一种物联网通信方法,包括:
在第二物联网IOT终端检测到IOT设备通信接口接收第一物联网IOT终端发送的第二数据包情况下,第二IOT终端根据链路协议解析第二数据包得到第一数据包,其中IOT设备通信接口是基于IOT终端的物模型生成,IOT终端的物模型是基于物模型描述语言TSL定义,链路协议与当前传输链路层对应;
第二IOT终端按照目标编码格式解码第一数据包得到通信协议数据,目标编码格式是根据当前传输链路层的传输带宽确定的。
可选的,在第二方面的一种可能的实现方式中,目标编码格式包括JSON编码格式或Protobuf编码格式;
当当前传输链路层的传输带宽为高带宽时,目标编码格式为JSON编码格式;
当当前传输链路层的传输带宽为低带宽时,目标编码格式为Protobuf编码格式。
可选的,在第二方面的一种可能的实现方式中,第二IOT终端按照目标编码格式解码第一数据包得到通信协议数据,包括:
当当前传输链路层的传输带宽为高带宽时,第二IOT终端根据高带宽通信传输协议将第一数据包解析为二进制字节流;
第二IOT终端通过RPC框架代码库将二进制字节流反序列化为JSON对象,RPC框架代码库是根据IOT设备通信接口生成,JSON对象与JSON编码格式相对应;
第二IOT终端通过RPC框架代码库将JSON对象解码得到通信协议数据。
可选的,在第二方面的一种可能的实现方式中,第二IOT终端按照目标编码格式解码第一数据包得到通信协议数据,包括:
当当前传输链路层的传输带宽为低带宽时,第二IOT终端根据低带宽通信传输协议将第一数据包解析为二进制字节流;
第二IOT终端通过RPC框架代码库将二进制字节流反序列化为Protobuf对象,RPC框架代码库是根据IOT设备通信接口生成,Protobuf对象与Protobuf编码格式相对应;
第二IOT终端通过RPC框架代码库将Protobuf对象转换为JSON对象;
第二IOT终端通过RPC框架代码库将JSON对象解码得到通信协议数据。
第三方面,本申请提供了一种物联网IOT终端,IOT终端终端为第一IOT终端包括:检测模块、编码模块、封装模块和通信模块;
检测模块检测调用IOT设备通信接口的发送请求,发送请求用于指示向第二物联网IOT终端发送通信协议数据,IOT设备通信接口是基于IOT终端的物模型生成,IOT终端的物模型是基于物模型描述语言TSL定义;
针对发送请求,编码模块按照目标编码格式编码通信协议数据得到第一数据包,目标编码格式是根据当前传输链路层的传输带宽确定;
封装模块根据链路协议封装第一数据包,生成封装后的第二数据包,链路协议与当前传输链路层对应;
通信模块通过IOT设备通信接口向第二IOT终端发送第二数据包。
第四方面,本申请提供了一种物联网IOT终端,IOT终端终端为第二IOT终端包括:检测模块、解析模块和解码模块;
在检测模块检测到IOT设备通信接口接收第一物联网IOT终端发送的第二数据包情况下,解析模块根据链路协议解析第二数据包得到第一数据包,其中IOT设备通信接口是基于IOT终端的物模型生成,IOT终端的物模型是基于物模型描述语言TSL定义,链路协议与当前传输链路层对应;
解码模块按照目标编码格式解码第一数据包得到通信协议数据,目标编码格式是根据当前传输链路层的传输带宽确定的。
第五方面,本申请提供了一种物联网IOT终端,该IOT终端终端为第一IOT终端包括:
处理器;以及
存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一方面及其任意一种实现方式中的物联网通信方法。
第六方面,本申请还提供了一种物联网IOT终端,该IOT终端终端为第二IOT终端包括:
处理器;以及
存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第二方面及其任意一种实现方式中的物联网通信方法。
第七方面,本申请提供一种计算机可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一方面及其任意一种实现方式中的物联网通信方法。
第八方面,本申请还提供一种计算机可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第二方面及其任意一种实现方式中的物联网通信方法。
本申请提供的技术方案具有以下有益效果:
本申请技术方案中,首先第一物联网IOT终端检测调用IOT设备通信接口的发送请求,其次针对发送请求,第一IOT终端按照目标编码格式编码通信协议数据得到第一数据包,最后第一IOT终端通过根据IOT设备的物模型生成的IOT设备通信接口。由于IOT设备通信接口是对一种基于TSL定义IOT设备的物模型统一定义的,使用统一的IOT设备通信接口能兼容不同编码格式对数据包进行编码传输,可以提高IOT设备的业务拓展和业务实现能力。
进一步的,第一IOT终端使用RPC框架代码库根据当前传输链路的传输带宽确定目标编码格式为Protobuf或JSON编码方式,RPC框架代码库是根据IOT设备通信接口生成的。由于统一的IOT设备通信接口能兼容不同编码格式对数据包进行编码传输,基于IOT设备通信接口生成的RPC框架代码库可以兼容多端设备和多种编程语言,可以提高开发人员对IOT设备通信接口的可维护性,缩短项目代码的开发周期。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
通过结合附图对本申请示例性实施方式进行更详细的描述,本申请的上述以及其它目的、特征和优势将变得更加明显,其中,在本申请示例性实施方式中,相同的参考标号通常代表相同部件。
图1为本申请实施例中物联网通信方法中发送流程对应的一个流程示意图;
图2为本申请实施例中基于智能灯的物模型生成IOT设备通信接口的一个示意图;
图3为本申请实施例中物联网通信方法中接收流程对应的一个流程示意图;
图4为本申请实施例中RPC框架代码库的一个实施例流程示意图;
图5为本申请实施例中第一物联网IOT终端的一个结构示意图;
图6为本申请实施例中第二物联网IOT终端的一个结构示意图;
图7为本申请实施例中第一物联网IOT终端的另一个结构示意图;
图8为本申请实施例中第二物联网IOT终端的另一个结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施方式。虽然附图中显示了本申请的实施方式,然而应该理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本申请更加透彻和完整,并且能够将本申请的范围完整地传达给本领域的技术人员。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
为了便于理解本申请技术方案,适用于物联网(internet of thing,IOT)通信技术中,通过物模型描述语言(thing special language,TSL)定义IOT设备的物模型定义新的通信接口以及远程过程调用(remote procedure call,RPC)框架代码库,可以提高物联网设备业务拓展和业务实现能力,同时提高开发人员对通信接口的可维护性,缩短项目代码的开发周期。
为便于理解本申请中技术方案,下面结合附图对本申请中物联网通信方法进行详细说明。
图1为本申请实施例中物联网通信方法中发送流程对应的一个流程示意图。
如图1所示,本申请实施例中物联网通信方法中发送流程对应的实施例,包括:
101、第一IOT终端检测调用IOT设备通信接口的发送请求。
其中发送请求用于指示向第二物联网IOT终端发送通信协议数据,IOT设备通信接口是基于IOT终端的物模型生成,IOT终端的物模型是基于物模型描述语言TSL定义。
上述通信协议数据为第一IOT终端向第二IOT终端之间的传输数据,具体的,通信数据包括但不限于请求数据或响应数据。例如第一IOT终端向第二IOT终端发送请求数据,第二IOT终端在接收到请求数据之后,第二IOT终端将相应的响应数据发送至第一IOT终端。
TSL定义的物模型是从属性、服务和事件三个维度对物理空间中的实体进行数字化表示,其中该实体可以包括智能灯、传感器和车载装置等。
示例性的,以智能灯为例,对基于IOT终端的物模型生成IOT设备通信接口进行说明,具体如下:
图2为本申请实施例中基于智能灯的物模型生成IOT设备通信接口的一个示意图。
如图2所述,将智能灯输入IOT设备模型中,IOT设备模型分别设备属性、设备动作和设备事件三方面通过TSL描述定义得到智能灯的物模型,最终根据TSL描述定义的智能灯的物模型生成统一的接口即IOT设备通信接口。应理解,对于智能灯来说,设备服务即是智能灯的设备动作。举例来说:
通过TSL描述智能灯的设备属性包括:1、开关,2、亮度;
通过TSL描述智能灯的设备动作包括:1、设置开关属性,2、读取开关属性,3、设置亮度属性,4、读取亮度属性;
通过TSL描述智能灯的设备事件包括:1、商标开关变化,2、上报亮度变化。
进一步,基于上述TSL描述的智能灯物模型生成的统一的接口包括:1、请求设置开关属性,2、响应设置开关属性,3、请求设置亮度属性,4、响应设置亮度属性,5、请求上报开关变化,6、响应上报开关变化,7、请求上报亮度变化,8、响应上报亮度变化。
102、针对发送请求,第一IOT终端按照目标编码格式编码通信协议数据得到第一数据包。
编码格式用于对数据进行编码,以便于传输。上述目标编码格式可以包括但不限于JS对象简谱(javascript object notation,JSON)编码格式或跨平台的序列化数据结构的协议(protocol buffer,Protobuf)编码格式。
进一步的Protobuf和JSON两种编码方式的本质上对于数据的编码方式不同之处在于:1、对于Protobuf这种数据编码方式,数据结构对象被序列化成二进制数据后,二进制大小会比JSON的编码方式更加的经济,通常会是JSON的编码方式得到的二进制数据的15%-70%。2、对于JSON这种数据编码方式,数据结构对象序列化后的二进制数据是明文,这对APP或者Web开发来说会更加友好,JSON数据的解析在调试阶段也更加的方便。
由于JSON编码格式和Protobuf编码格式的自身的编码特性,本申请发现JSON编码格式适用于Wi-Fi或者4G-LTE等高带宽的通信技术传输的通信协议数据进行编码时,以及Protobuf编码格式适用于通过低功耗蓝牙BLE或者Zigbee等低带宽的通信技术传输的通信协议数据进行编码时,可以有效地保证通信传输效率和可靠性。
可选的,在本申请实施例的一种实施方式中,当当前传输链路层的传输带宽为高带宽时,目标编码格式为JSON编码格式;当当前传输链路层的传输带宽为低带宽时,目标编码格式为Protobuf编码格式。
由于目标编码格式的不同,上述第一IOT终端按照目标编码格式编码通信协议数据得到第一数据包的具体实现方式也有所不同。本申请中可以通过RPC框架代码库来实现上述操作,其中该RPC框架代码库是根据IOT设备通信接口生成。具体来说,第一IOT终端在检测到上述发送请求之后,通过调用函数调用RPC框架代码库中的IOT设备通信接口后按照目标编码格式编码通信协议数据得到第一数据包。可选的,该IOT设备通信接口包括请求接口和响应接口。
进一步具体可选的,在本申请实施例的一种实施方式中,在当前传输链路层的传输带宽为高带宽时,第一IOT终端按照目标编码格式编码通信协议数据得到第一数据包具体可以执行以下操作:
第一IOT终端通过RPC框架代码库根据通信协议数据生成JSON对象,其中JSON对象是按照JSON编码格式生成,RPC框架代码库是根据IOT设备通信接口生成;
在确定目标编码格式为JSON编码格式的情况下,第一IOT终端通过RPC框架代码库将JSON对象序列化为二进制字节流;
第一IOT终端根据高带宽通信传输协议将二进制字节流打包成第一数据包。从上述操作可知,在当前传输链路层的传输带宽为高带宽的情况下,通过RPC框架代码库将通信协议数据生成的JSON对象直接序列化为二进制字节流,进而对该二进制字节流打包成第一数据包。
示例性的,当当前传输链路层处于高带宽的情况时,RPC框架代码库会直接通过JSON序列化与反序列化器将JSON对象序列化为二进制字节流,之后把通信协议数据(如请求数据或响应数据)的二进制字节流传递给协议传输层,协议传输层将该二进制字节流打包成完整的第一数据包。其中,RPC框架代码库中包括上述JSON序列化与反序列化器对应的程序代码。
进一步具体可选的,在本申请实施例的一种实施方式中,在当前传输链路层的传输带宽为低带宽时,第一IOT终端按照目标编码格式编码通信协议数据得到第一数据包具体可以执行以下操作:
第一IOT终端通过RPC框架代码库根据通信协议数据生成JSON对象,其中JSON对象是按照JSON编码格式生成的,RPC框架代码库是根据IOT设备通信接口生成;
在确定目标编码格式为Protobuf编码格式的情况下,第一IOT终端通过RPC框架代码库将JSON对象转换为Protobuf对象,其中Protobuf对象与Protobuf编码格式相对应;
第一IOT终端通过RPC框架代码库将Protobuf对象序列化为二进制字节流;
第一IOT终端根据低带宽通信传输协议将二进制字节流打包成第一数据包。
类似的,从上述操作可知,在当前传输链路层的传输带宽为低带宽的情况下,首先通过RPC框架代码库将通信协议数据生成的JSON对象先转换为Protobuf对象,其次将Protobuf对象序列化为二进制字节流,最后对该二进制字节流打包成第一数据包。
示例性的,当当前传输链路层处于低带宽的情况时,RPC框架代码库首先会通过JSON与Protobuf相互转换器把通信协议数据(如请求数据或者响应数据)的JSON对象转化为Protobuf对象;其次通过Protobuf序列化与反序列化器将Protobuf对象通过Protobuf序列化与反序列化器序列化为二进制字节流,最后,将该通信协议数据的二进制字节流传递给协议传输层,协议传输层将二进制字节流打包成完整的第一数据包。其中,RPC框架代码库中包括上述JSON与Protobuf相互转换器和Protobuf序列化与反序列化器对应的程序代码。
RPC框架代码库会统一管理底层的传输链路接口,根据传输链路的可用性选择具体的当前传输链路接口,从而使得RPC框架代码库获知当前传输链路的传输带宽。例如,当前配置给RPC框架的有Wi-Fi、4G-LTE和BLE三种底层传输链路;当4G-LTE(高带宽)断开时,RPC框架选择Wi-Fi(高带宽),当Wi-Fi也断开的时候,RPC框架选择BLE(低带宽)。
应理解,上述第一IOT终端根据高或低带宽通信传输协议将二进制字节流打包成第一数据包是在传输协议层完成的。
103、第一IOT终端根据链路协议封装第一数据包,生成封装后的第二数据包。
链路协议与当前传输链路层对应,用于对数据包进行封装以确保数据传输的可靠性。具体来说,第一IOT终端根据当前传输链路层将第一数据包序列化后打包成完整的对应链路协议的第二数据包。
具体来说,在高带宽传输情况下,通过Wi-Fi或者4G-LTE等高带宽的通信技术进行传输,此时,第一IOT终端通过传输链路层将第一数据包序列后打包成完整的与Wi-Fi或者4G-LTE等低带宽的通信技术的链路协议对应的第二数据包。
在低带宽传输情况下,通过BLE或者Zigbee等低带宽的通信技术进行传输,此时,第一IOT终端通过传输链路层将第一数据包序列后打包成完整的与BLE或者Zigbee等低带宽的通信技术的链路协议对应的第二数据包。
104、第一IOT终端通过IOT设备通信接口向第二IOT终端发送第二数据包。
在打包得到第二数据包之后,第一IOT终端通过IOT设备通信接口向第二IOT终端发送第二数据包。
具体的,在当前传输链路为高带宽时,第一终端使用Wi-Fi或者4G-LTE等高带宽的通信技术并通过IOT设备通信接口向第二IOT终端发送第二数据包。
类似的,在当前传输链路为低带宽时,第一终端使用BLE或者Zigbee等低带宽的通信技术并通过IOT设备通信接口向第二IOT终端发送第二数据包。
综上所述,本申请实施例中,首先第一物联网IOT终端检测调用IOT设备通信接口的发送请求,其次针对发送请求,第一IOT终端按照目标编码格式编码通信协议数据得到第一数据包,最后第一IOT终端通过根据IOT设备的物模型生成的IOT设备通信接口。由于IOT设备通信接口是对一种基于TSL定义IOT设备的物模型统一定义的,使用统一的IOT设备通信接口能兼容不同编码格式对数据包进行编码传输,可以提高IOT设备的业务拓展和业务实现能力。
进一步的,第一IOT终端使用RPC框架代码库根据当前传输链路的传输带宽确定目标编码格式为Protobuf或JSON编码方式,RPC框架代码库是根据IOT设备通信接口生成的。由于统一的IOT设备通信接口能兼容不同编码格式对数据包进行编码传输,基于IOT设备通信接口生成的RPC框架代码库可以兼容多端设备和多种编程语言,可以提高开发人员对IOT设备通信接口的可维护性,缩短项目代码的开发周期。
应理解,上述图1对应的实施例中将第一IOT终端作为发送端,第二IOT终端作为接收端对本申请中的物联网通信方式进行说明,具体来说,上述图1对应的实施例中对发送端的技术方案进行了说明,下面将结合附图对接收端的技术方案进行说明。
图3为本申请实施例中物联网通信方法中接收流程对应的一个流程示意图。
如图3所示,本申请实施例中物联网通信方法中接收流程对应的实施例,包括:
301、在检测模块检测到IOT设备通信接口接收第一物联网IOT终端发送的第二数据包情况下第二IOT终端根据链路协议解析第二数据包得到第一数据包。
其中IOT设备通信接口是基于IOT终端的物模型生成,IOT终端的物模型是基于物模型描述语言TSL定义,链路协议与当前传输链路层对应。
具体的,第二IOT终端根据当前传输链路层对应的链路协议解析第二数据包得到第一数据包。进而,解析后的第一数据包进入协议传输层。
在高带宽传输情况下,通过Wi-Fi或者4G-LTE等高带宽的通信技术进行传输,此时,第二IOT终端通过传输链路层根据Wi-Fi或者4G-LTE等高带宽的通信技术的链路协议对第二数据包进行解析得到第一数据包。
在低带宽传输情况下,通过BLE或者Zigbee等低带宽的通信技术进行传输,此时,第二IOT终端通过传输链路层根据BLE或者Zigbee等低带宽的通信技术的链路协议对第二数据包进行解析得到第一数据包。
302、第二IOT终端按照目标编码格式解码第一数据包得到通信协议数据。
在解析后的第一数据包进入协议传输层之后,第二IOT终端按照目标编码格式解码第一数据包得到通信协议数据。
具体的,该目标编码格式可以包括但不限于:JSON编码格式或Protobuf编码格式。此两种编码格式的区别及其详细介绍详见上述步骤102中相关部分的描述,此次不再赘述。
与发送流程相对应,本申请中第二IOT终端也可以通过RPC框架代码库来实现上述操作,其中该RPC框架代码库是根据IOT设备通信接口生成。具体来说,第二IOT终端可以通过调用函数调用RPC框架代码库中的IOT设备通信接口后按照目标编码格式解码第一数据包得到通信协议数据。同样可选的,该IOT设备通信接口包括请求接口和响应接口。
类似可选的,在本申请实施例的一种实施方式中,当当前传输链路层的传输带宽为高带宽时,目标编码格式为JSON编码格式;当当前传输链路层的传输带宽为低带宽时,目标编码格式为Protobuf编码格式。
进一步具体可选的,在本申请实施例的一种实施方式中,在当前传输链路层的传输带宽为高带宽时,第二IOT终端按照目标编码格式解码第一数据包得到通信协议数据具体可以执行以下操作:
当当前传输链路层的传输带宽为高带宽时,第二IOT终端根据高带宽通信传输协议将第一数据包解析为二进制字节流;
第二IOT终端通过RPC框架代码库将二进制字节流反序列化为JSON对象,RPC框架代码库是根据IOT设备通信接口生成,JSON对象与JSON编码格式相对应;
第二IOT终端通过RPC框架代码库将JSON对象解码得到通信协议数据。
示例性的,当当前传输链路层处于高带宽的情况时,首先,第二IOT终端根据高带宽通信传输协议(如Wi-Fi或者4G-LTE)将第一数据包解析为二进制字节流;其次,第二IOT终端使用调用函数调用RPC框架代码库中的JSON序列化与反序列化器将该二进制字节流反序列化为JSON对象;最后,第二IOT终端使用调用函数调用RPC框架代码库中的代码对JSON对象进行解码得到通信协议数据。
进一步具体可选的,在本申请实施例的一种实施方式中,在当前传输链路层的传输带宽为低带宽时,第二IOT终端按照目标编码格式解码第一数据包得到通信协议数据具体可以执行以下操作:
当当前传输链路层的传输带宽为低带宽时,第二IOT终端根据低带宽通信传输协议将第一数据包解析为二进制字节流;
第二IOT终端通过RPC框架代码库将二进制字节流反序列化为Protobuf对象,RPC框架代码库是根据IOT设备通信接口生成,Protobuf对象与Protobuf编码格式相对应;
第二IOT终端通过RPC框架代码库将Protobuf对象转换为JSON对象;
第二IOT终端通过RPC框架代码库将JSON对象解码得到通信协议数据。
示例性的,当当前传输链路层处于低带宽的情况时,首先,第二IOT终端根据高带宽通信传输协议(如Wi-Fi或者4G-LTE)将第一数据包解析为二进制字节流;其次,第二IOT终端使用调用函数调用RPC框架代码库中的Protobuf序列化与反序列化器将该二进制字节流反序列化为Protobuf对象;再次,第二IOT终端使用调用函数调用RPC框架代码库中的JSON与Protobuf相互转换器将Protobuf对象转换为JSON对象;最后,第二IOT终端使用调用函数调用RPC框架代码库中的代码对JSON对象进行解码得到通信协议数据。
综上所述,在本申请实施例中,首先第二物联网IOT终端检测到IOT设备通信接口接收第一物联网IOT终端发送的第二数据包情况下,第二IOT终端根据当前传输链路层解析第二数据包得到第一数据包,最后第二IOT终端按照目标编码格式解码第一数据包得到通信协议数据。由于IOT设备通信接口是对一种基于TSL定义IOT设备的物模型统一定义的,使用统一的IOT设备通信接口能兼容不同编码格式对数据包进行编码传输,可以提高IOT设备的业务拓展和业务实现能力。
进一步的,第二IOT终端使用RPC框架代码库根据当前传输链路的传输带宽确定目标编码格式为Protobuf或JSON编码方式,进而第二IOT终端按照目标编码格式解码第一数据包得到通信协议数据,RPC框架代码库是根据IOT设备通信接口生成的。由于统一的IOT设备通信接口能兼容不同编码格式对数据包进行编码传输,基于IOT设备通信接口生成的RPC框架代码库可以兼容多端设备和多种编程语言,可以提高开发人员对IOT设备通信接口的可维护性,缩短项目代码的开发周期。
从上述图1和图3所述的实施例中可以看出,第一IOT终端按照目标编码格式编码通信协议数据得到第一数据包,和第二IOT终端按照目标编码格式解码第一数据包得到通信协议数据均可以通过RPC框架代码库实现,下面将对通过基于IOT设备通信接口生成的RPC框架代码库进行说明。
图4为本申请实施例中RPC框架代码库的一个实施例流程示意图。
如图4所示,本申请实施例中RPC框架代码库包括:接口传输数据打包模块、请求功能模块和响应功能模块,其中上述三个模块中均包括相应的功能模块,这个功能模块均可通过程序代码实现。
RPC框架代码库是根据IOT通信设备接口生成的。示例性的,如图4所示,基于上述图2中智能灯的物模型生成统一的接口生成图4所示的RPC框架代码库,智能灯的物模型生成统一的接口包括:1、设置开关属性接口,该接口具体为图2中的请求设置开关属性和响应设置开关属性;2、设置亮度属性接口,该接口具体为图2中的请求设置亮度属性和响应设置亮度属性;3、上报开关属性接口,该接口具体为图2中的请求上报开关变化和响应上报开关变化;4、上报亮度变化接口,该接口具体为图2中的请求上报亮度变化和响应上报亮度变化。
接口传输数据打包模块中包括以下功能单元:JSON数据结构图示Schema、Protobuf数据结构图示Schema、JSON与Protobuf相互转换器、JSON序列化与反序列化器和Protobuf序列化与反序列化器。其中JSON Schema用于生成JSON对象,Protobuf Schema用于生成Protobuf对象,JSON与Protobuf相互转换器用于将JSON对象转换为Protobuf对象或者将Protobuf对象转换为JSON对象,JSON序列化与反序列化器用于将JSON对象序列化为二进制字节流或者将二进制字节流反序列化为JSON对象,Protobuf序列化与反序列化器用于将Protobuf对象序列化为二进制字节流或者将二进制字节流反序列化为Protobuf对象。
在通过调用函数调用请求接口的情况下,请求功能模块将请求数据生成对应的JSON对象(即请求数据JSON对象),进而选择将请求数据JSON对象通过JSON与Protobuf相互转换器转换为Protobuf对象的方式传递给协议传输层或者直接传递给协议传输层。
类似的,在通过调用函数调用相应接口的情况下,响应功能模块将响应数据生成对应的JSON对象(即响应数据JSON对象),进而选择将响应数据JSON对象通过JSON与Protobuf相互转换器转换为Protobuf对象的方式传递给协议传输层或者直接传递给协议传输层。
下面结合图4分别对请求数据的发送与接收过程,和请求数据的发送与接收过程进行描述,具体如下:
一、第一IOT终端通过调用函数调用请求接口向第二IOT终端发送请求数据
第一IOT终端检测调用IOT设备通信接口的发送请求,针对该发送请求,第一IOT终端通过调用函数调用RPC框架代码库中请求功能模块中的请求接口执行以下请求数据的发送流程,具体如下:
1、当第一IOT终端调用请求接口时,使用RPC框架代码库中的JSON Schema将请求数据生成请求数据JSON对象。
使用RPC框架代码库根据当前传输链路层的带宽情况,选择将请求数据JSON对象通过JSON与Protobuf相互转换器转换为Protobuf对象还是直接传递给协议传输层:
2.1、当当前传输链路层处于低带宽的情况时,使用RPC框架中的JSON与Protobuf相互转换器把请求数据JSON对象转化为请求数据Protobuf对象。
2.1.1、使用Protobuf序列化与反序列化器将请求数据Protobuf对象序列化为二进制字节流,之后把请求数据的二进制字节流传递给协议传输层,在协议传输层打包成完整的协议数据包即第一请求数据包。
2.2、当当前传输链路层处于高带宽的情况时,使用RPC框架代码库中JSON序列化与反序列化器直接将请求数据JSON对象序列化为二进制字节流,之后把请求数据的二进制字节流传递给协议传输层,在协议传输层打包成完整的协议数据包即第一请求数据包。
3、使用RPC框架代码库中的协议传输层将第一请求数据包序列化后打包成完整的对应传输链路层中链路协议的第二请求数据包。
4、利用RPC框架代码库中的传输链路层将第二请求数据包通过Wi-Fi或者BLE传输给第二IOT终端。
具体的,高带宽传输时使用Wi-Fi,低带宽传输时使用BLE。
二、第二IOT终端通过调用函数调用响应接口接收第一IOT终端发送的请求数据
在第二物联网IOT终端检测到IOT设备通信接口接收第一物联网IOT终端发送的第二请求数据包情况下,第二IOT终端通过调用函数调用RPC框架代码库中响应功能模块中的响应接口执行以下请求数据的接收流程,具体如下:
5、使用RPC框架代码库中响应功能模块的传输链路层解析链路协议对应的第二请求数据包得到第一请求数据包,并将第一请求数据包返回给响应功能模块的协议传输层。
在协议传输层中将第一请求数据包解析为请求数据的二进制字节流。
使用RPC框架代码库中的Protobuf序列化与反序列化器将请求数据的二进制字节流反序列化为Protobuf对象,或使用RPC框架代码库中的JSON序列化与反序列化器将请求数据的二进制字节流反序列化为JSON对象:
6.1、在低带宽传输情况下,使用RPC框架代码库中的Protobuf序列化与反序列化器将请求数据的二进制字节流反序列化为请求数据Protobuf对象。
6.1.1使用RPC框架代码库中的JSON与Protobuf相互转换器将请求数据Protobuf对象转换为请求数据JSON对象。
6.2、在高带宽传输情况下,使用RPC框架代码库中的JSON序列化与反序列化器将请求数据的二进制字节流反序列化为请求数据JSON对象。
7、使用RPC框架代码库中响应接口将请求数据JSON对象回调给第二IOT终端处理。
第二IOT终端根据请求数据生成相应的响应数据。
三、第二IOT终端通过调用IOTRPC框架代码库中响应功能模块中的响应接口执行以下响应数据的发送流程,具体如下:
8、当第二IOT终端调用响应接口时,使用RPC框架代码库中的JSON Schema将请求数据生成请求数据JSON对象。
使用RPC框架代码库根据当前传输链路层的带宽情况,选择将响应数据JSON对象通过JSON与Protobuf相互转换器转换为Protobuf对象还是直接传递给协议传输层:
9.1、当当前传输链路层处于低带宽的情况时,使用RPC框架中的JSON与Protobuf相互转换器把响应数据JSON对象转化为响应数据Protobuf对象。
9.1.1、使用Protobuf序列化与反序列化器将响应数据Protobuf对象序列化为二进制字节流,之后把响应数据的二进制字节流传递给协议传输层,在协议传输层打包成完整的协议数据包即第一响应数据包。
9.2、当当前传输链路层处于高带宽的情况时,使用RPC框架代码库中JSON序列化与反序列化器直接将响应数据JSON对象序列化为二进制字节流,之后把响应数据的二进制字节流传递给协议传输层,在协议传输层打包成完整的协议数据包即第一响应数据包。
10、使用RPC框架代码库中的协议传输层将第一响应数据包序列化后打包成完整的对应传输链路层中链路协议的第二响应数据包。
11、利用RPC框架代码库中的传输链路层将第二数据包通过Wi-Fi或者BLE传输给第二IOT终端。
具体的,高带宽传输时使用Wi-Fi,低带宽传输时使用BLE。
四、第一IOT终端通过调用函数调用请求接口接收第二IOT终端发送的响应数据
在第一物联网IOT终端检测到IOT设备通信接口接收第二物联网IOT终端发送的第二响应数据包情况下,第一IOT终端通过调用函数调用RPC框架代码库中请求功能模块中的请求接口执行以下响应数据的接收流程,具体如下:
12、使用RPC框架代码库中请求功能模块的传输链路层解析链路协议对应的第二响应数据包得到第一响应数据包,并将第一响应数据包返回给请求功能模块的协议传输层。
在协议传输层中将第一响应数据包解析为响应数据的二进制字节流。
使用RPC框架代码库中的Protobuf序列化与反序列化器将响应数据的二进制字节流反序列化为Protobuf对象,或使用RPC框架代码库中的JSON序列化与反序列化器将响应数据的二进制字节流反序列化为JSON对象:
13.1、在低带宽传输情况下,使用RPC框架代码库中的Protobuf序列化与反序列化器将响应数据的二进制字节流反序列化为响应数据Protobuf对象。
13.1.1、使用RPC框架代码库中的JSON与Protobuf相互转换器将响应数据Protobuf对象转换为响应数据JSON对象。
13.2、在高带宽传输情况下,使用RPC框架代码库中的JSON序列化与反序列化器将响应数据的二进制字节流反序列化为响应数据JSON对象。
14、使用RPC框架代码库中响应接口将响应数据JSON对象回调给第一IOT终端处理。
第一IOT终端处理通过对响应数据JSON对象解码得到响应数据。
与前述应用功能实现方法实施例相对应,本申请还提供了相关终端及相应的实施例。
图5本申请实施例中第一物联网IOT终端的一个结构示意图。
如图5所示,本本申请实施例中第一物联网IOT终端50包括:检测模块501、编码模块502、封装模块503和通信模块504;
检测模块501检测调用IOT设备通信接口的发送请求,发送请求用于指示向第二物联网IOT终端发送通信协议数据,IOT设备通信接口是基于IOT终端的物模型生成,IOT终端的物模型是基于物模型描述语言TSL定义;
针对发送请求,编码模块502按照目标编码格式编码通信协议数据得到第一数据包,目标编码格式是根据当前传输链路层的传输带宽确定;
封装模块503根据链路协议封装第一数据包,生成封装后的第二数据包,链路协议与当前传输链路层对应;
通信模块504通过IOT设备通信接口向第二IOT终端发送第二数据包。
可选的,在本申请实施例的一个实施方式中,目标编码格式包括JSON编码格式或Protobuf编码格式;
当当前传输链路层的传输带宽为高带宽时,目标编码格式为JSON编码格式;
当当前传输链路层的传输带宽为低带宽时,目标编码格式为Protobuf编码格式。
可选的,在本申请实施例的一个实施方式中,编码模块502按照目标编码格式编码通信协议数据得到第一数据包,编码模块502具体可以执行以下操作:
首先,通过RPC框架代码库根据通信协议数据生成JSON对象,其中JSON对象是按照JSON编码格式生成,RPC框架代码库是根据IOT设备通信接口生成;
其次,在确定目标编码格式为JSON编码格式的情况下,通过RPC框架代码库将JSON对象序列化为二进制字节流;
最后,根据高带宽通信传输协议将二进制字节流打包成第一数据包。
可选的,在本申请实施例的一个实施方式中,编码模块502按照目标编码格式编码通信协议数据得到第一数据包,编码模块502还可以执行以下操作:
首先,通过RPC框架代码库根据通信协议数据生成JSON对象,其中JSON对象是按照JSON编码格式生成的,RPC框架代码库是根据IOT设备通信接口生成;
其次,在确定目标编码格式为Protobuf编码格式的情况下,通过RPC框架代码库将JSON对象转换为Protobuf对象,其中Protobuf对象与Protobuf编码格式相对应;
再次,通过RPC框架代码库将Protobuf对象序列化为二进制字节流;
最终,根据低带宽通信传输协议将二进制字节流打包成第一数据包。
图6为本申请实施例中第二物联网IOT终端的一个结构示意图。
如图6所示,本申请实施例中第二物联网IOT终端60包括:检测模块601、解析模块602和解码模块603;
在检测模块601检测到IOT设备通信接口接收第一物联网IOT终端发送的第二数据包情况下,解析模块602根据链路协议解析第二数据包得到第一数据包,其中IOT设备通信接口是基于IOT终端的物模型生成,IOT终端的物模型是基于物模型描述语言TSL定义,链路协议与当前传输链路层对应;
解码模块603按照目标编码格式解码第一数据包得到通信协议数据,目标编码格式是根据当前传输链路层的传输带宽确定的。
可选的,在本申请实施例的一个实施方式中,目标编码格式包括JSON编码格式或Protobuf编码格式;
当当前传输链路层的传输带宽为高带宽时,目标编码格式为JSON编码格式;
当当前传输链路层的传输带宽为低带宽时,目标编码格式为Protobuf编码格式。
可选的,在本申请实施例的一个实施方式中,解码模块603按照目标编码格式解码第一数据包得到通信协议数据,解码模块603具体可以执行以下操作:
首先,当当前传输链路层的传输带宽为高带宽时,根据高带宽通信传输协议将第一数据包解析为二进制字节流;
其次,通过RPC框架代码库将二进制字节流反序列化为JSON对象,RPC框架代码库是根据IOT设备通信接口生成,JSON对象与JSON编码格式相对应;
最终,通过RPC框架代码库将JSON对象解码得到通信协议数据。
可选的,在本申请实施例的一个实施方式中,解码模块603按照目标编码格式解码第一数据包得到通信协议数据,解码模块603还可以执行以下操作:
首先,当当前传输链路层的传输带宽为低带宽时,根据低带宽通信传输协议将第一数据包解析为二进制字节流;
其次,通过RPC框架代码库将二进制字节流反序列化为Protobuf对象,RPC框架代码库是根据IOT设备通信接口生成,Protobuf对象与Protobuf编码格式相对应;
再次,通过RPC框架代码库将Protobuf对象转换为JSON对象;
最终,通过RPC框架代码库将JSON对象解码得到通信协议数据。
综上所述,本申请实施例中的IOT终端,由于IOT设备通信接口是对一种基于TSL定义IOT设备的物模型统一定义的,使用统一的IOT设备通信接口能兼容不同编码格式对数据包进行编码传输,可以提高IOT设备的业务拓展和业务实现能力。
进一步的,IOT终端使用RPC框架代码库根据当前传输链路的传输带宽确定目标编码格式为Protobuf或JSON编码方式,RPC框架代码库是根据IOT设备通信接口生成的。由于统一的IOT设备通信接口能兼容不同编码格式对数据包进行编码传输,基于IOT设备通信接口生成的RPC框架代码库可以兼容多端设备和多种编程语言,可以提高开发人员对IOT设备通信接口的可维护性,缩短项目代码的开发周期。
关于上述图5或图6实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
图7为本申请实施例中第一物联网IOT终端的另一个结构示意图。
如图7所示,本申请实施例中第一物联网IOT终端70包括存储器701和处理器702。存储器上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行上述任一实施例中的方法。
处理器702可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器701可以包括各种类型的存储单元,例如***内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器702或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。***内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。***内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器701可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器701可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器701上存储有可执行代码,当可执行代码被处理器702处理时,可以使处理器702执行上文述及的方法中的部分或全部。
图8为本申请实施例中第二物联网IOT终端的另一个结构示意图。
如图8所示,本申请实施例中第二物联网IOT终端80包括存储器801和处理器802。存储器上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行上述任一实施例中的方法。
处理器802可以是CPU,还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器801可以包括各种类型的存储单元,例如***内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器802或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。***内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。***内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器801可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器801可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器801上存储有可执行代码,当可执行代码被处理器802处理时,可以使处理器802执行上文述及的方法中的部分或全部。
此外,根据本申请的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本申请的上述方法中部分或全部步骤的计算机程序代码指令。
或者,本申请还可以实施为一种计算机可读存储介质(或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当可执行代码(或计算机程序、或计算机指令代码)被物联网IOT终端(或电子设备、服务器等)的处理器执行时,使处理器执行根据本申请的上述方法的各个步骤的部分或全部。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (12)
1.一种物联网通信方法,其特征在于,包括:
第一物联网IOT终端检测调用IOT设备通信接口的发送请求,所述发送请求用于指示向第二物联网IOT终端发送通信协议数据,所述IOT设备通信接口是基于IOT终端的物模型生成,所述IOT终端的物模型是基于物模型描述语言TSL定义;
针对所述发送请求,所述第一IOT终端按照目标编码格式编码所述通信协议数据得到第一数据包,所述目标编码格式是根据当前传输链路层的传输带宽确定;
所述第一IOT终端根据链路协议封装所述第一数据包,生成封装后的第二数据包,所述链路协议与所述当前传输链路层对应;
所述第一IOT终端通过所述IOT设备通信接口向所述第二IOT终端发送所述第二数据包。
2.根据权利要求1所述的物联网通信方法,其特征在于,所述目标编码格式包括JSON编码格式或Protobuf编码格式;
当所述当前传输链路层的传输带宽为高带宽时,所述目标编码格式为所述JSON编码格式;
当所述当前传输链路层的传输带宽为低带宽时,所述目标编码格式为所述Protobuf编码格式。
3.根据权利要求2所述的物联网通信方法,其特征在于,所述第一IOT终端按照目标编码格式编码所述通信协议数据得到第一数据包,包括:
所述第一IOT终端通过RPC框架代码库根据所述通信协议数据生成JSON对象,其中所述JSON对象是按照所述JSON编码格式生成,所述RPC框架代码库是根据所述IOT设备通信接口生成;
在确定所述目标编码格式为所述JSON编码格式的情况下,所述第一IOT终端通过所述RPC框架代码库将所述JSON对象序列化为二进制字节流;
所述第一IOT终端根据高带宽通信传输协议将所述二进制字节流打包成所述第一数据包。
4.根据权利要求2所述的物联网通信方法,其特征在于,所述第一IOT终端按照目标编码格式编码所述通信协议数据得到第一数据包,包括:
所述第一IOT终端通过RPC框架代码库根据所述通信协议数据生成JSON对象,其中所述JSON对象是按照所述JSON编码格式生成的,所述RPC框架代码库是根据所述IOT设备通信接口生成;
在确定所述目标编码格式为Protobuf编码格式的情况下,所述第一IOT终端通过所述RPC框架代码库将所述JSON对象转换为Protobuf对象,其中所述Protobuf对象与Protobuf编码格式相对应;
所述第一IOT终端通过所述RPC框架代码库将所述Protobuf对象序列化为二进制字节流;
所述第一IOT终端根据低带宽通信传输协议将所述二进制字节流打包成所述第一数据包。
5.一种物联网通信方法,其特征在于,包括:
在第二物联网IOT终端检测到IOT设备通信接口接收所述第一物联网IOT终端发送的第二数据包情况下,所述第二IOT终端根据链路协议解析所述第二数据包得到第一数据包,其中所述IOT设备通信接口是基于IOT终端的物模型生成,所述IOT终端的物模型是基于物模型描述语言TSL定义,所述链路协议与当前传输链路层对应;
所述第二IOT终端按照目标编码格式解码所述第一数据包得到通信协议数据,所述目标编码格式是根据所述当前传输链路层的传输带宽确定的。
6.根据权利要求5所述的物联网通信方法,其特征在于,所述目标编码格式包括JSON编码格式或Protobuf编码格式;
当所述当前传输链路层的传输带宽为高带宽时,所述目标编码格式为所述JSON编码格式;
当所述当前传输链路层的传输带宽为低带宽时,所述目标编码格式为所述Protobuf编码格式。
7.根据权利要求6所述的物联网通信方法,其特征在于,所述第二IOT终端按照目标编码格式解码所述第一数据包得到通信协议数据,包括:
当所述当前传输链路层的传输带宽为高带宽时,所述第二IOT终端根据高带宽通信传输协议将所述第一数据包解析为二进制字节流;
所述第二IOT终端通过RPC框架代码库将所述二进制字节流反序列化为JSON对象,所述RPC框架代码库是根据所述IOT设备通信接口生成,所述JSON对象与JSON编码格式相对应;
所述第二IOT终端通过所述RPC框架代码库将所述JSON对象解码得到所述通信协议数据。
8.根据权利要求6所述的物联网通信方法,其特征在于,所述第二IOT终端按照目标编码格式解码所述第一数据包得到通信协议数据,包括:
当所述当前传输链路层的传输带宽为低带宽时,所述第二IOT终端根据低带宽通信传输协议将所述第一数据包解析为二进制字节流;
所述第二IOT终端通过所述RPC框架代码库将所述二进制字节流反序列化为Protobuf对象,所述RPC框架代码库是根据所述IOT设备通信接口生成,所述Protobuf对象与Protobuf编码格式相对应;
所述第二IOT终端通过所述RPC框架代码库将所述Protobuf对象转换为JSON对象;
所述第二IOT终端通过所述RPC框架代码库将所述JSON对象解码得到所述通信协议数据。
9.一种物联网IOT终端,其特征在于,所述IOT终端为第一IOT终端,包括:检测模块、编码模块、封装模块和通信模块;
所述检测模块检测调用IOT设备通信接口的发送请求,所述发送请求用于指示向第二物联网IOT终端发送通信协议数据,所述IOT设备通信接口是基于IOT终端的物模型生成,所述IOT终端的物模型是基于物模型描述语言TSL定义;
针对所述发送请求,所述编码模块按照目标编码格式编码所述通信协议数据得到第一数据包,所述目标编码格式是根据当前传输链路层的传输带宽确定;
所述封装模块根据链路协议封装所述第一数据包,生成封装后的第二数据包,所述链路协议与所述当前传输链路层对应;
所述通信模块通过所述IOT设备通信接口向所述第二IOT终端发送所述第二数据包。
10.一种物联网IOT终端,其特征在于,所述IOT终端为第二IOT终端,包括:检测模块、解析模块和解码模块;
在所述检测模块检测到IOT设备通信接口接收所述第一物联网IOT终端发送的第二数据包情况下,所述解析模块根据链路协议解析所述第二数据包得到第一数据包,其中所述IOT设备通信接口是基于IOT终端的物模型生成,所述IOT终端的物模型是基于物模型描述语言TSL定义,所述链路协议与当前传输链路层对应;
所述解码模块按照目标编码格式解码所述第一数据包得到通信协议数据,所述目标编码格式是根据所述当前传输链路层的传输带宽确定的。
11.一种物联网IOT终端,其特征在于,包括:
处理器和存储器;
所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-4中任一项所述的物联网通信方法;或者,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求5-8中任一项所述的物联网通信方法;。
12.一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-4中任一项所述的物联网通信方法;或者,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求5-8中任一项所述的物联网通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210549525.5A CN114979296B (zh) | 2022-05-20 | 2022-05-20 | 物联网通信方法及相关终端、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210549525.5A CN114979296B (zh) | 2022-05-20 | 2022-05-20 | 物联网通信方法及相关终端、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114979296A true CN114979296A (zh) | 2022-08-30 |
CN114979296B CN114979296B (zh) | 2024-05-10 |
Family
ID=82986027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210549525.5A Active CN114979296B (zh) | 2022-05-20 | 2022-05-20 | 物联网通信方法及相关终端、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114979296B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117395142A (zh) * | 2023-12-12 | 2024-01-12 | 江西飞尚科技有限公司 | 物模型抽象控制方法、***、存储介质及计算机 |
CN117978668A (zh) * | 2024-04-01 | 2024-05-03 | 北京大学 | 异质物联网信息传递方法、装置及非易失性存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170083386A1 (en) * | 2015-09-17 | 2017-03-23 | Salesforce.Com, Inc. | PROCESSING EVENTS GENERATED BY INTERNET OF THINGS (IoT) |
CN110073301A (zh) * | 2017-08-02 | 2019-07-30 | 强力物联网投资组合2016有限公司 | 工业物联网中具有大数据集的数据收集环境下的检测方法和*** |
US20200225655A1 (en) * | 2016-05-09 | 2020-07-16 | Strong Force Iot Portfolio 2016, Llc | Methods, systems, kits and apparatuses for monitoring and managing industrial settings in an industrial internet of things data collection environment |
CN112068817A (zh) * | 2020-08-19 | 2020-12-11 | 天翼物联科技有限公司 | 物联网终端侧的代码生成方法、***、装置及介质 |
CN112235326A (zh) * | 2020-12-15 | 2021-01-15 | 长沙树根互联技术有限公司 | 物联网设备数据的解析方法、装置和电子设备 |
CN113364882A (zh) * | 2021-06-25 | 2021-09-07 | 京东方科技集团股份有限公司 | 物联网终端及其数据传输方法、相关设备 |
CN113391791A (zh) * | 2020-03-12 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及存储介质 |
CN214429551U (zh) * | 2021-03-29 | 2021-10-19 | 南京工程学院 | 一种物联网数据采集终端 |
-
2022
- 2022-05-20 CN CN202210549525.5A patent/CN114979296B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170083386A1 (en) * | 2015-09-17 | 2017-03-23 | Salesforce.Com, Inc. | PROCESSING EVENTS GENERATED BY INTERNET OF THINGS (IoT) |
US20200225655A1 (en) * | 2016-05-09 | 2020-07-16 | Strong Force Iot Portfolio 2016, Llc | Methods, systems, kits and apparatuses for monitoring and managing industrial settings in an industrial internet of things data collection environment |
CN110073301A (zh) * | 2017-08-02 | 2019-07-30 | 强力物联网投资组合2016有限公司 | 工业物联网中具有大数据集的数据收集环境下的检测方法和*** |
CN113391791A (zh) * | 2020-03-12 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及存储介质 |
CN112068817A (zh) * | 2020-08-19 | 2020-12-11 | 天翼物联科技有限公司 | 物联网终端侧的代码生成方法、***、装置及介质 |
CN112235326A (zh) * | 2020-12-15 | 2021-01-15 | 长沙树根互联技术有限公司 | 物联网设备数据的解析方法、装置和电子设备 |
CN214429551U (zh) * | 2021-03-29 | 2021-10-19 | 南京工程学院 | 一种物联网数据采集终端 |
CN113364882A (zh) * | 2021-06-25 | 2021-09-07 | 京东方科技集团股份有限公司 | 物联网终端及其数据传输方法、相关设备 |
Non-Patent Citations (2)
Title |
---|
I.I.LYSOGOR: "Energy efficient method of data transmission in a heterogeneous network of the Internet of Things for remote areas", 《2019 INTERNATIONAL SIBERIAN CONFERENCE ON CONTROL AND COMMUNICATIONS》, 6 June 2019 (2019-06-06) * |
李腾飞: "智慧管廊***服务调用中间件的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》, 15 May 2021 (2021-05-15) * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117395142A (zh) * | 2023-12-12 | 2024-01-12 | 江西飞尚科技有限公司 | 物模型抽象控制方法、***、存储介质及计算机 |
CN117395142B (zh) * | 2023-12-12 | 2024-03-12 | 江西飞尚科技有限公司 | 物模型抽象控制方法、***、存储介质及计算机 |
CN117978668A (zh) * | 2024-04-01 | 2024-05-03 | 北京大学 | 异质物联网信息传递方法、装置及非易失性存储介质 |
CN117978668B (zh) * | 2024-04-01 | 2024-06-04 | 北京大学 | 异质物联网信息传递方法、装置及非易失性存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114979296B (zh) | 2024-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114979296B (zh) | 物联网通信方法及相关终端、存储介质 | |
JP7284528B2 (ja) | CoAPによるOPC UAメッセージの伝送方法及びサーバ | |
TWI699988B (zh) | 資訊的處理方法、裝置、設備及系統 | |
CN109815025B (zh) | 一种业务模型调用方法、装置及存储介质 | |
CN108681488B (zh) | 一种物联网平台终端数据上报方法 | |
CN110297944B (zh) | 分布式xml数据处理方法及*** | |
CN109815107B (zh) | 自动化测试的方法和装置 | |
CN111026982A (zh) | 智能合约处理方法、计算机设备及存储介质 | |
US10817460B2 (en) | RDMA data sending and receiving methods, electronic device, and readable storage medium | |
CN110324405B (zh) | 消息发送方法、装置、***及计算机可读存储介质 | |
CN109217983B (zh) | 一种工业物联网的作业终端通信协议设计方法 | |
CN107040613B (zh) | 一种报文传输方法及*** | |
KR20110002881A (ko) | 메시지들을 프로세싱하기 위한 방법 및 장치 | |
US8375399B2 (en) | Method, apparatus and computer program to perform dynamic selection of serialization processing schemes | |
CN109327435B (zh) | 媒体资源获取方法、装置及网关设备 | |
CN114020272A (zh) | 一种序列化编码、解码方法、装置及电子设备 | |
CN112788104A (zh) | 一种远程过程调用方法及装置 | |
CN103647763A (zh) | 一种移动终端广告调用方法和*** | |
CN113595966B (zh) | 串口通信控制、配置、测试方法、装置、电子设备和存储介质 | |
CN113992644B (zh) | 一种基于无服务技术的物联网关***及其数据处理方法 | |
CN112953547A (zh) | 一种数据处理方法、装置及*** | |
CN113065077B (zh) | 一种水平扩展的中台业务处理*** | |
CN110548285B (zh) | 游戏通信控制方法及装置、介质及电子设备 | |
CN113918245A (zh) | 一种数据调用方法、装置、设备及计算机可读存储介质 | |
CN114268675B (zh) | 一种基于iec61850模型的通信方法、***及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |