CN113194148A - 一种物联网系统上位机和终端设备的数据交互方法 - Google Patents
一种物联网系统上位机和终端设备的数据交互方法 Download PDFInfo
- Publication number
- CN113194148A CN113194148A CN202110499594.5A CN202110499594A CN113194148A CN 113194148 A CN113194148 A CN 113194148A CN 202110499594 A CN202110499594 A CN 202110499594A CN 113194148 A CN113194148 A CN 113194148A
- Authority
- CN
- China
- Prior art keywords
- function
- data
- command
- upper computer
- sdk
- 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.)
- Pending
Links
Images
Classifications
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y10/00—Economic sectors
- G16Y10/75—Information technology; Communication
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明一种物联网系统上位机和终端设备的数据交互方法,把系统功能都等效成若干个数据交互流程,每个流程分解成多个数据交互操作,每个操作分配一个命令,每个命令都分成主动方和被动方;自定义用户协议;在平台上添加所需的命令,添加SDK并绑定命令,自动生成并下载SDK文件,在上位机端和终端设备端使用SDK文件用于实现数据交互,建立了上位机和设备的线程之间的直接通信通道。用户不需要了解数据传输的过程,不需要解决数据传输过程的问题,用户可以根据系统,定义各种各样的协议,使用同一套SDK传输数据,从而降低开发成本,提高开发效率,降低维护劳动,减少重复劳动。
Description
技术领域
本发明涉及物联网技术领域,尤其涉及一种物联网系统上位机和终端设备的数据交互方法。
背景技术
物联网系统主要包括以PC为主的远程管理设备、服务器和终端设备,其中远程管理设备连接服务器,内部多个线程通过服务器获取数据来完成物联网系统的最基本流程;终端设备连接服务器,内部多个线程从服务器获取数据来完成系统的最基本流程,还要对数据进行编码和解码,需要解决网络不稳定问题和网络设备驱动问题;服务器除了消息转发,还需要解决大规模设备连接服务器问题,消息并发问题。对于功能简单的物联网系统来说,需要知道整个物联网系统的最基本流程是什么,需要解决多线程共享数据问题,需要解决数据编码和解码问题,解决网络不稳定问题,网络设备驱动、大规模连接问题,消息并发问题,这些工作量占了绝大部分。虽然物联网系统终端设备千变万化,系统解决的问题都不同,另外还需要做到适用,因此物联网系统很难做到标准化,但是物联网系统上述工作的技术都大同小异。
有必要通过一种方法来将网络部分的工作标准化,减少重复劳动,降低系统的维护难度。
发明目的
本发明的目的在于提供一种物联网系统上位机和终端设备的数据交互方法,为物联网系统里的设备和上位机提供线程级别的通信,让网络部分工作标准化,使得用户在多线程共享数据、网络设备驱动、数据编码和解码等物联网系统最基本搭建的工作量方面能减少重复劳动,从而降低系统的维护难度。
本发明是一种物联网系统上位机和终端设备的数据交互方法,把系统功能等效成若干个数据交互流程,每个数据交互流程分解成多个数据交互操作,每个数据交互操作分配一个命令,每个命令都属于读、写、通知、请求和上报等五种操作方式中的其中一种,每个命令分成主动方和被动方;包括如下步骤:
步骤1、自定义用户协议:根据当前物联网系统数据交互的操作需求,制定系统需要的数据交互流程,然后确定每一个流程的数据交互操作,给每个操作分配一个命令,再根据用户的数据交互需求制定协议,形成协议文档;同一个命令可以用在不同的流程中;不同的流程可以有相同的操作,相同的操作定义相同的命令;同一个流程里面可以包含一个或多个命令,不能包含相同的命令;
步骤2、用户登录物联网平台,在平台上添加所需的命令,选择命令的操作类型,添加SDK并绑定命令, SDK包含SDK绑定的命令函数外,还包含SDK所需的服务函数;用户在物联网平台上设置完所有的SDK后,自动生成SDK文件,并下载SDK文件;
步骤3、上位机端和终端设备端使用的SDK文件用于实现数据交互:在上位机端和终端设备端分别根据需要创建项目,并将下载的SDK文件添加到所创建的项目里,引入上位机端和终端设备端所需的库代码和相关文件;
设备和上位机的服务函数都根据制作SDK时内部生成的参数连接服务器;当设备的命令函数把数据传输给设备的服务函数,设备的服务函数把数据传输给服务器,并指定目标上位机服务函数,服务器把数据传输给目标上位机的服务函数,上位机的服务函数把数据传输给上位机的目标命令函数;当上位机的命令函数把数据传输给上位机的服务函数,上位机的服务函数把数据传输给服务器,并指定目标设备服务函数,服务器把数据传输给目标设备的服务函数,设备的服务函数把数据传输给设备的目标命令函数;所述命令函数的核心参数只有两个:包号码N和用户数据V,包号码N用于区分不同流程的操作,或者同一个流程不同时间段的操作,用户数据V是用户根据自定义协议生成的数据;所述SDK服务函数完成上位机和设备之间数据交互的所有工作,包括服务器定位、函数定位和数据筛选工作,让数据最终到达目标函数,从而建立了上位机和设备的线程之间的直接通信通道。
所述步骤1中该协议包含对应的命令的命令名、操作方式、用户数据的格式和用户数据的内容。
所述步骤2具体为:
(1)添加命令:用户登录物联网平台,在平台上从步骤1自定义的用户协议中选择所需的命令进行添加,选择命令的操作类型;
(2)设置SDK并绑定命令:先设置SDK名称,点击添加一个SDK,给这个SDK选择需要处理的命令;
(3)自动生成SDK文件:设置完所有的SDK后,点击自动生成SDK文件;
(4)下载SDK文件,SDK文件分为上位机部分和设备部分。
所述步骤2中的SDK包含命令函数和服务函数,每个命令都包含四个命令函数,分别是Send函数、Receive函数、Forward函数、Backward函数,Send函数和Receive函数是命令主动方使用的函数,Forward函数和Backward函数是命令被动方使用函数;命令函数的核心参数只有两个:包号码N和用户数据V,包号码N用于区分不同流程的操作,或者同一个流程不同时间段的操作,用户数据V是用户根据自定义协议生成的数据;
该SDK的服务函数用于实现连接服务器、数据编码和解码、消息分发的工作。
进一步的,添加一个始终和Receive函数一起的Callback函数,给Send函数添加一个指定返回数据到达Receive函数还是Callback函数的参数;当执行Send函数后,若在当前流程里不需要等待返回的数据,那么设置Send函数的参数,让用户数据自动到达Callback函数;Callback函数仅仅在数据输出方式上与Receive函数存在差异,内部实现方式和Receive函数完全一样。
进一步的,在Forward函数中添加是否直接返回数据标识参数和存放返回数据的参数,若Forward函数设置标识参数为直接返回,则把返回结果写入到返回参数里面,不需要额外通过Backward函数返回结果。
所述步骤3中通过使用Receive函数、Send函数、Forward函数、Backward函数这四个函数完成数据交互的操作中收发数据的四个步骤,发起流程的那一方生成一个包号码N,该流程的所有数据交互操作都使用该包号码;每次启动一个流程都生成一个唯一的包号码N给该流程使用;若主动方调用Send函数写入数据,Send函数的数据经过服务函数会到达被动方的Forward函数,然后,被动方再调用Backward函数回复结果,Backward函数的数据经过服务函数,最后主动方使用Receive函数获取该回复结果;每个线程都可以由主动方调用Receive函数和Send函数,从被动方获取数据,多个线程可以同时调用Receive函数和Send函数,从另一方获取数据。
所述步骤2中,物联网系统里可以有多个SDK,每个SDK可以处理相同的或者不同的命令。
进一步的,所述命令函数所对应的命令、函数关键字和包号码N构成数据交互过程中的每一帧数据的唯一标识。
进一步的,绑定命令C的命令函数,可以表达为命令函数_C(N,V)或者命令函数(C,N,V),其中,N为用于区分不同流程的操作或者同一个流程不同时间段的操作的包号码、V为根据用户自定义协议生成的数据。
本发明的主动方调用Send函数,写入数据,数据会到达被动方的Forward函数;被动方调用Backward函数回复结果;主动方使用Receive函数获取回复数据。每个线程都可以主动调用Send函数和Receive函数,从另一方获取数据,多个线程可以同时调用Send函数和Receive函数,从另一方获取数据,解决了多个线程都需要同时从另外一方获取数据的难题。
本发明使用Send函数、Receive函数、Forward函数、Backward函数,构成功能所需的若干个流程,同一个流程里面可以包含一个或多个命令,不能包含相同的命令。发起流程的那一方生成一个包号码N,该流程的所有数据交互操作都使用该包号码。每次启动一个流程都生成一个唯一的包含号码N,然后给该流程使用。命令函数所对应的命令,函数关键字和包号码N构成交互过程中的每一帧数据的唯一标识。若干个流程完成系统功能。这样给用户提供了如何解决物联网系统问题的新思路。
本发明SDK的服务函数实现了连接服务器、编码解码、消息分发的工作,解决大规模系统的硬件连接、消息并发和数据处理问题,使得Send函数的数据直达Forward函数,Backward函数的数据直达Receive函数,从而相当于建立了上位机和设备的线程之间的直接通信通道。用户不需要了解数据传输的过程,不需要解决数据传输过程的问题,用户应用层的逻辑更加直观,更加容易理解,编程的难度更低。用户可以根据系统,定义各种各样的协议,使用同一套SDK传输数据,从而降低开发成本,提高开发效率,降低维护劳动,减少重复劳动。
附图说明
图1为本发明数据交互的原理框图。
以下结合附图和具体实施方式对本发明做进一步详述。
具体实施方式
本发明是一种物联网系统上位机和终端设备的数据交互方法,把系统功能都等效成若干个数据交互流程,每个流程分解成多个数据交互操作,每个操作分配一个命令,每个命令都属于读、写、通知、请求和上报等五种操作方式中的其中一种,每个命令都分成主动方和被动方。具体包括如下步骤:
步骤1、自定义用户协议:根据当前物联网系统数据交互的操作需求,制定系统需要的数据交互流程,然后确定每一个流程的数据交互操作,给每个操作分配一个命令,再根据用户的数据交互需求制定协议,形成协议文档;一条协议对应一个命令,该协议包含对应的命令的命令名、操作方式、用户数据的格式和用户数据的内容;如果用户实现某个功能需要多次交互操作,则给每一个操作定义一个命令;同一个命令可以用在不同的流程中;不同的流程可以有相同的操作,相同的操作定义相同的命令;同一个流程里面可以包含一个或多个命令,不能包含相同的命令。
例如:假设某系统有两个需求,分别是①上位机打开设备的开关;②设备若发现温度过高,马上向上位机上报温度。这两个需求分别有如下特点:上位机向设备下发打开设备开关命令后,设备可能要花很长时间才能完成打开开关的操作;温度过高属于突发事件。根据这两个需求和该需求的特点,用户制定流程和每个流程的操作,最终得出两个流程,分别是:打开设备开关流程;上报温度值流程。打开设备开关流程包括两个数据交互操作,分别是:上位机写设备数据操作;设备上报打开设备开关的结果的操作。上报温度值流程包含一个数据交互操作,分别是:设备上报温度值操作。假设给上位机写设备数据操作、设备上报打开设备开关的结果的操作、设备上报温度值操作分配的命令分别是命令C1、命令C2和命令C3,对应的操作方式分别是:写、上报、上报。
步骤2、用户登录物联网平台,在平台上添加所需的命令,选择命令的操作类型,添加SDK并绑定命令;物联网系统里允许有多个SDK,每个SDK可以处理相同的或者不同的命令;用户在物联网平台上设置完所有的SDK后,点击生成SDK按钮,自动生成SDK文件,点击下载按钮,下载SDK文件。
本发明的SDK包含命令函数和服务函数。每个命令的命令函数都包含四个命令函数,分别是带Send关键字的函数、带Receive关键字的函数、带Forward关键字的函数和带Backward关键字的函数。所有命令的带Send关键字的函数统称为Send函数,其他如此类推。Send函数和Receive函数是命令主动方使用的函数,Forward函数和Backward函数是命令被动方使用函数。读、写和通知的命令主动方是上位机,命令被动方是设备。请求和上报的命令主动方是设备,命令被动方是上位机。Send函数等命令函数的核心参数只有两个:包号码N和用户数据V,包号码N用于区分不同流程的操作,或者同一个流程不同时间段的操作,用户数据V是用户根据自定义协议生成的数据;
流程内部的操作和逻辑的关系可以分成两类:下一个逻辑需要上一个操作的结果;下一个逻辑不需要上一个操作的结果。单个操作可以分成两类:被动方可以马上返回结果;被动需要等待一段时间才能返回结果。根据流程和操作的分类,可以进一步简化流程。方法如下:1、添加一个始终和Receive函数一起的Callback函数,给Send函数添加一个指定返回数据到达Receive函数还是Callback函数的参数;当执行Send函数后,若在当前流程里不需要等待返回的数据,那么设置Send函数的参数,让用户数据自动到达Callback函数;Callback函数仅仅在数据输出方式上与Receive函数存在差异,内部实现方式和Receive函数完全一样;2、Forward函数添加是否直接返回数据标识参数和存放返回数据的参数,若Forward函数设置标识参数为直接返回,把返回结果写入到返回参数里面,不需要额外通过Backward函数返回结果。
SDK的服务函数实现了连接服务器、数据编码和解码、消息分发的工作,解决大规模系统的硬件连接、消息并发和数据处理问题。
具体操作步骤为:
(1)添加命令:用户登录物联网平台,在平台上从步骤1自定义的用户协议中选择所需的命令进行添加,选择命令的操作类型;
假设用户添加了3个命令,命令名分别是:C1、C2和C3,选择的操作类型分别是:写、上报、上报;
(2)设置SDK并绑定命令:先设置SDK名称,点击添加一个SDK,点击“绑定命令”,给这个SDK选择需要处理的命令;物联网系统里可以有多个SDK,每个SDK可以处理相同的或者不同的命令;本发明的SDK包含命令函数和服务函数;
假设只添加了一个SDK,名字是iotsdk,iotsdk绑定了命令C1、C2和C3;
(3)自动生成SDK文件:设置完所有的SDK后,点击“生成SDK”,平台自动生成SDK文件;
(4)下载SDK文件,SDK文件分为上位机部分和设备部分;
通过前面的操作,SDK文件里有名字为iotsdk的SDK。该SDK包含SDK绑定的C1、C2和C3的命令函数,包含SDK所需的服务函数。SDK分上位机部分和设备部分。C1是写操作命令,对于上位机来说是主动命令,对于设备来说是被动命令,Send函数和Receive函数是主动方使用的函数,Forward函数和Backward函数是被动方使用的函数,因此SDK的上位机部分包含Send_C1函数、Receive_C1函数和Callback_C1函数,设备部分包含Forward_C1函数和Backward_C1函数。C2和C3是上报操作命令,对于上位机来说是被动命令,对于设备来说是主动命令,Send函数和Receive函数是主动方使用的函数,Forward函数和Backward函数是被动方使用的函数,因此,SDK的上位机部分包含Forward_C1函数和Backward_C1函数,设备部分包含Send_C1函数、Receive_C1函数和Callback_C1函数。
上述绑定命令C的命令函数,以Send函数为例,可以表达为Send_C(N,V)或者Send(C,N,V)。
步骤3、上位机端和终端设备端使用的SDK文件用于实现数据交互:在上位机端和终端设备端分别根据需要创建项目,并将下载的SDK文件添加到所创建的项目里,引入上位机端和终端设备端所需的库代码和相关文件。
命令函数和SDK服务函数的最基本方法是:根据定义协议前制定的流程,使用命令函数收发数据,然后根据定义好的协议使用用户数据,实现用户的流程逻辑;启动一个线程,不停地执行服务函数;每次启动一个用户的用户流程前,生成一个包号码N,然后整个流程都使用该包号码N。用户可以根据系统,定义各种各样的协议,使用同一套SDK传输数据。
设备和上位机的服务函数都根据制作SDK时,内部生成的参数连接服务器。当设备的命令函数把数据传输给设备的服务函数,设备的服务函数把数据传输给服务器,并指定目标上位机服务函数。服务器把数据传输给目标上位机的服务函数。上位机的服务函数把数据传输给上位机的目标命令函数。当上位机的命令函数把数据传输给上位机的服务函数,上位机的服务函数把数据传输给服务器,并指定目标设备服务函数。服务器把数据传输给目标设备的服务函数。设备的服务函数把数据传输给设备的目标命令函数。本发明通过使用Receive函数、Send函数、Forward函数、Backward函数这四个函数完成数据交互的操作中收发数据的四个步骤,发起流程的那一方生成一个包号码N,该流程的所有数据交互操作都使用该包号码。每次启动一个流程都生成一个唯一的包号码N给该流程使用。命令函数所对应的命令、函数关键字和包号码N构成数据交互过程中的每一帧数据的唯一标识。
若主动方调用Send函数写入数据,Send函数的数据经过服务函数会到达被动方的Forward函数,然后被动方再调用Backward函数回复结果,Backward函数的数据经过服务函数,最后主动方使用Receive函数获取该回复结果。每个线程都可以由主动方调用Receive函数和Send函数,从被动方获取数据,多个线程可以同时调用Receive函数和Send函数,从另一方获取数据,SDK服务函数完成上位机和设备之间数据交互的所有工作,包括服务器定位、函数定位和数据筛选工作,让数据最终到达目标函数,从而相当于建立了上位机和设备的线程之间的直接通信通道。
为了进一步了解命令函数和SDK服务函数的使用方法,下面讲解数据的实际交互流程。
【实施例1】
如图1所示,上位机线程A为了完成打开设备开关功能,主动发起流程1。流程1生成该流程这一次使用的包号码n1。流程1根据用户自定义协议,生成数据v1,然后发起该流程的第一个命令名为C1的操作。流程1调用Send_C1函数,参数N的值为n1,V的值为v1。Send_C1函数执行完成后,数据到达上位机的服务函数。设备的服务函数和上位机的服务函数都根据制作SDK时,内部生成的参数连接服务器。当上位机的服务函数获取到Send_C1函数发过来的数据后,完成数据编码和数据传输,最终把数据发送给服务器,并指定目标设备服务函数。服务器把数据发送给目标设备服务器函数。设备的服务器收到数据后,完成数据传输和解码,然后根据制作SDK时生成的参数和SDK内部逻辑,把数据发给设备的Forward_C1函数。设备的Forward_C1函数收到Send_C1函数发过来的数据v1后,马上启动设备的流程1,根据协议和v1的值生成数据v2。设备的流程1调用Backward_C1函数,参数N的值为n1,V的值为v2。Backward_C1函数执行完成后,数据到达设备的服务函数。当设备的服务函数获取到Backward_C1函数发过来的数据后,完成数据编码和数据传输,最终把数据发送给服务器,并指定目标上位机服务函数。服务器把数据发送给目标上位机服务器函数。上位机的服务器收到数据后,完成数据传输和解码,然后根据制作SDK时生成的参数和SDK内部逻辑,把数据发给上位机的Receive_C1函数。上位机的Receive_C1函数收到数据v2后,流程的第一个操作结束。设备的流程1根据协议和数据v1,完成打开设备开关的操作,生成操作结果数据v3。设备调用Send_C2函数,N的值为n1,V的值为v3。同理,Send_C2函数执行完,数据v3最终到达上位机的Forward_C2。上位机线程B的Forward_C2函数收到Send_C2函数发过来的数据v3后,根据协议和数据v3生成数据v4,然后调用Backward_C2函数,N的值为n1,V的值为v4。同理,Backward_C2函数执行完,数据v4最终到达设备的Receive_C2。设备的流程1的Receive_C2函数收到上位机的回复数据v4后,流程的第二个操作结束,整个流程也全部结束。
【实施例2】
如图1所示,设备线程B为了完成上报温度功能,主动发起设备的流程2。设备的流程2生成该流程这一次使用的包号码n2。设备的流程2根据用户自定义协议,生成用户数据v11,然后发起该流程的第一个也是唯一一个命令名为C3的操作。设备的流程2调用Send_C3函数,参数N的值为n2,V的值为v11。Send_C3函数执行完成后,数据到达设备的服务函数。设备的服务函数和上位机的服务函数都根据制作SDK时,内部生成的参数连接服务器。当设备的服务函数获取到Send_C3函数发过来的数据后,完成数据编码和数据传输,最终把数据发送给服务器,并指定目标上位机服务函数。服务器把数据发送给目标上位机服务器函数。上位机的服务器收到数据后,完成数据传输和解码,然后根据制作SDK时生成的参数和SDK内部逻辑,把数据发给上位机的Forward_C3函数。上位机的线程C的Forward_C3函数收到Send_C3函数发过来的数据v11后,根据协议和数据v11生成数据v12,然后调用Backward_C3函数,N的值为n2,V的值为v12。Backward_C3函数执行完成后,数据到达上位机的服务函数。当上位机的服务函数获取到Backward_C3函数发过来的数据后,完成数据编码和数据传输,最终把数据发送给服务器,并指定目标设备服务函数。服务器把数据发送给目标设备服务器函数。设备的服务器收到数据后,完成数据传输和解码,然后根据制作SDK时生成的参数和SDK内部逻辑,把数据发给设备的Receive_C3函数。设备的流程2的Receive_C3函数收到数据v12后,流程的第一个操作结束,整个流程也全部结束。
以上所述,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (10)
1.一种物联网系统上位机和终端设备的数据交互方法,其特征在于:把系统功能等效成若干个数据交互流程,每个数据交互流程分解成多个数据交互操作,每个数据交互操作分配一个命令,每个命令都属于读、写、通知、请求和上报等五种操作方式中的其中一种,每个命令分成主动方和被动方;包括如下步骤:
步骤1、自定义用户协议:根据当前物联网系统数据交互的操作需求,制定系统需要的数据交互流程,然后确定每一个流程的数据交互操作,给每个操作分配一个命令,再根据用户的数据交互需求制定协议,形成协议文档;同一个命令可以用在不同的流程中;不同的流程可以有相同的操作,相同的操作定义相同的命令;同一个流程里面可以包含一个或多个命令,不能包含相同的命令;
步骤2、用户登录物联网平台,在平台上添加所需的命令,选择命令的操作类型,添加SDK并绑定命令, SDK包含SDK绑定的命令函数外,还包含SDK所需的服务函数;用户在物联网平台上设置完所有的SDK后,自动生成SDK文件,并下载SDK文件;
步骤3、上位机端和终端设备端使用的SDK文件用于实现数据交互:在上位机端和终端设备端分别根据需要创建项目,并将下载的SDK文件添加到所创建的项目里,引入上位机端和终端设备端所需的库代码和相关文件;
设备和上位机的服务函数都根据制作SDK时内部生成的参数连接服务器;当设备的命令函数把数据传输给设备的服务函数,设备的服务函数把数据传输给服务器,并指定目标上位机服务函数,服务器把数据传输给目标上位机的服务函数,上位机的服务函数把数据传输给上位机的目标命令函数,当上位机的命令函数把数据传输给上位机的服务函数,上位机的服务函数把数据传输给服务器,并指定目标设备服务函数,服务器把数据传输给目标设备的服务函数,设备的服务函数把数据传输给设备的目标命令函数;所述命令函数的核心参数只有两个:包号码N和用户数据V,包号码N用于区分不同流程的操作,或者同一个流程不同时间段的操作,用户数据V是用户根据自定义协议生成的数据;所述SDK服务函数完成上位机和设备之间数据交互的所有工作,包括服务器定位、函数定位和数据筛选工作,让数据最终到达目标函数,从而建立了上位机和设备的线程之间的直接通信通道。
2.根据权利要求1所述的一种物联网系统上位机和终端设备的数据交互方法,其特征在于:步骤1中该协议包含对应的命令的命令名、操作方式、用户数据的格式和用户数据的内容。
3.根据权利要求1所述的一种物联网系统上位机和终端设备的数据交互方法,其特征在于步骤2具体为:
(1)添加命令:用户登录物联网平台,在平台上从步骤1自定义的用户协议中选择所需的命令进行添加,选择命令的操作类型;
(2)设置SDK并绑定命令:先设置SDK名称,点击添加一个SDK,给这个SDK选择需要处理的命令;
(3)自动生成SDK文件:设置完所有的SDK后,点击自动生成SDK文件;
(4)下载SDK文件,SDK文件分为上位机部分和设备部分。
4.根据权利要求1所述的一种物联网系统上位机和终端设备的数据交互方法,其特征在于步骤2中的SDK包含命令函数和服务函数,每个命令都包含四个命令函数,分别是Send函数、Receive函数、Forward函数、Backward函数,Send函数和Receive函数是命令主动方使用的函数,Forward函数和Backward函数是命令被动方使用函数;该SDK的服务函数用于实现连接服务器、数据编码和解码、消息分发的工作。
5.根据权利要求4所述的一种物联网系统上位机和终端设备的数据交互方法,其特征在于:添加一个始终和Receive函数一起的Callback函数,给Send函数添加一个指定返回数据到达Receive函数还是Callback函数的参数;当执行Send函数后,若在当前流程里不需要等待返回的数据,那么设置Send函数的参数,让用户数据自动到达Callback函数;Callback函数仅仅在数据输出方式上与Receive函数存在差异,内部实现方式和Receive函数完全一样。
6.根据权利要求4所述的一种物联网系统上位机和终端设备的数据交互方法,其特征在于:在Forward函数中添加是否直接返回数据标识参数和存放返回数据的参数,若Forward函数设置标识参数为直接返回,则把返回结果写入到返回参数里面,不需要额外通过Backward函数返回结果。
7.根据权利要求4所述的一种物联网系统上位机和终端设备的数据交互方法,其特征在于:步骤3中通过使用Receive函数、Send函数、Forward函数、Backward函数这四个函数完成数据交互的操作中收发数据的四个步骤,发起流程的那一方生成一个包号码N,该流程的所有数据交互操作都使用该包号码;每次启动一个流程都生成一个唯一的包号码N给该流程使用;若主动方调用Send函数写入数据,Send函数的数据经过服务函数会到达被动方的Forward函数,然后,被动方再调用Backward函数回复结果,Backward函数的数据经过服务函数,最后主动方使用Receive函数获取该回复结果;每个线程都可以由主动方调用Receive函数和Send函数,从被动方获取数据,多个线程可以同时调用Receive函数和Send函数,从另一方获取数据。
8.根据权利要求1、3、4中所述的任意一种物联网系统上位机和终端设备的数据交互方法,其特征在于步骤2中,物联网系统里可以有多个SDK,每个SDK可以处理相同的或者不同的命令。
9.根据权利要求7所述的一种物联网系统上位机和终端设备的数据交互方法,其特征在于:所述命令函数所对应的命令、函数关键字和包号码N构成数据交互过程中的每一帧数据的唯一标识。
10.根据权利要求1-9所述的任意一种物联网系统上位机和终端设备的数据交互方法,其特征在于:绑定命令C的命令函数,可以表达为命令函数_C(N,V)或者命令函数(C,N,V),其中,N为用于区分不同流程的操作或者同一个流程不同时间段的操作的包号码、V为根据用户自定义协议生成的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110499594.5A CN113194148A (zh) | 2021-05-08 | 2021-05-08 | 一种物联网系统上位机和终端设备的数据交互方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110499594.5A CN113194148A (zh) | 2021-05-08 | 2021-05-08 | 一种物联网系统上位机和终端设备的数据交互方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113194148A true CN113194148A (zh) | 2021-07-30 |
Family
ID=76984510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110499594.5A Pending CN113194148A (zh) | 2021-05-08 | 2021-05-08 | 一种物联网系统上位机和终端设备的数据交互方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113194148A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108377207A (zh) * | 2018-05-19 | 2018-08-07 | 济南浪潮高新科技投资发展有限公司 | 一种物联网平台设备接入和配置方法 |
CN108390895A (zh) * | 2018-04-27 | 2018-08-10 | 南京思拜休通信技术有限公司 | 基于sip的多媒体指挥调度系统及方法 |
US20180322136A1 (en) * | 2017-05-05 | 2018-11-08 | Esoptra NV | Plug-in function platform and methods |
CN110535889A (zh) * | 2019-10-15 | 2019-12-03 | 四川长虹电器股份有限公司 | 一种物联网交互系统 |
CN111416722A (zh) * | 2019-01-04 | 2020-07-14 | 郭洪威 | 通信方法及装置 |
-
2021
- 2021-05-08 CN CN202110499594.5A patent/CN113194148A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180322136A1 (en) * | 2017-05-05 | 2018-11-08 | Esoptra NV | Plug-in function platform and methods |
CN108390895A (zh) * | 2018-04-27 | 2018-08-10 | 南京思拜休通信技术有限公司 | 基于sip的多媒体指挥调度系统及方法 |
CN108377207A (zh) * | 2018-05-19 | 2018-08-07 | 济南浪潮高新科技投资发展有限公司 | 一种物联网平台设备接入和配置方法 |
CN111416722A (zh) * | 2019-01-04 | 2020-07-14 | 郭洪威 | 通信方法及装置 |
CN110535889A (zh) * | 2019-10-15 | 2019-12-03 | 四川长虹电器股份有限公司 | 一种物联网交互系统 |
Non-Patent Citations (1)
Title |
---|
陈丽芬等: "一种多协议互操作智能网关的实现", 《家电科技》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112527528A (zh) | 基于消息队列的数据传输方法、装置及存储介质 | |
US7519950B2 (en) | Method and system for version negotiation of distributed objects | |
CN101925045B (zh) | 一种提供用户业务数据的方法及系统 | |
CN106648940A (zh) | 远程过程调用方法及装置 | |
CN110413418B (zh) | 缓存同步装置及方法,缓存同步系统、电子设备 | |
CN110808948B (zh) | 远程过程调用方法、装置及系统 | |
CN104253808A (zh) | 即时通信系统中的状态呈现方法和状态呈现服务器 | |
CN114885044B (zh) | 面向测控设备异构监控数据包的自适应解析处理方法 | |
CN100479458C (zh) | 调度基于模式的Web服务的方法、系统和装置 | |
US8027435B2 (en) | Method and system for protocol embedded automated test control | |
CN110557321B (zh) | 一种信息传输方法、网络设备及终端 | |
CN107896242B (zh) | 一种服务共享方法及装置 | |
CN109725887A (zh) | 基于消息研发框架的数据交互方法、装置及终端设备 | |
CN105427149A (zh) | 一种基于soa扩展框架的跨境电子商务bpo服务方法及装置 | |
US9143357B2 (en) | Chat apparatus transmitting/receiving information indicating switching of chat | |
CN115550354A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN113194148A (zh) | 一种物联网系统上位机和终端设备的数据交互方法 | |
WO2018058895A1 (zh) | 一种基于rcs消息的终端控制方法及装置 | |
CN115774573B (zh) | 应用集成方法、装置、电子设备和存储介质 | |
CN110865973B (zh) | 一种数据处理方法及设备和相关装置 | |
CN115456446A (zh) | 一种基于配置的业务流处理方法和装置 | |
CN109783066B (zh) | 一种dds内部实体数据关联和处理的实现方法 | |
CN112714181A (zh) | 一种数据传输方法及装置 | |
CN103108001B (zh) | 一种实现视频交互式语音应答业务的方法及业务控制点 | |
CN112559199A (zh) | 在glibc环境下控制安卓蓝牙的装置、方法及终端设备 |
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 | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20230714 |
|
AD01 | Patent right deemed abandoned |