一种模拟设备自动发送和响应数据的方法及装置与流程

文档序号:35982850发布日期:2023-11-10 02:43阅读:31来源:国知局
一种模拟设备自动发送和响应数据的方法及装置与流程

本发明涉及物联网终端设备模拟器,尤其涉及一种模拟设备自动发送和响应数据的方法及装置。


背景技术:

1、在物联网开发过程中,终端设备接入到不同的云平台是工作量比较大的一块,一方面终端设备上的开发环境多为嵌入式开发,另外平台的稳定性和功能完整性需要并行开发,因此终端设备模拟器是非常有必要的,模拟器不仅可以提前发现平台或者业务的功能设计缺陷,同时为终端设备的接入开发可以提供独立的接入模块。

2、通过物联网终端设备模拟器用户模拟任意设备的平台接触模拟,可以提前测试平台功能、稳定性、接入性能等。通过手动添加设备,设置发送模拟数据,可以测试物联网平台与设备之间的通信功能,并定位问题。

3、然而,物联网平台由于调试设备的特殊性,很多时候都没有真机调试,在开发数据分析这块功能的时候非常苦恼。目前在阿里云物联网平台上,虽然提供了模拟器这个功能,但却很不友好。在同一个窗口下,同一时间,阿里云物联网平台只支持一个模拟器在线调试,不能并行启动调试多个设备,用户想同时监测多个设备的上报数据的情况很难做到,既耗费了人力又耗费了调试的时间。此外,有时并不需要实时关注调试窗口,只需要查看调试结果证明设备正常上报和响应即可。

4、因此,需要开发出一种既能够节省时间又能够准确高效的调试接入物联网设备的方案,可支持批量设备发送上报数据策略和响应回复策略。


技术实现思路

1、为了解决上述问题,本发明提出一种模拟设备自动发送和响应数据的方法及装置,可以多设备同时在线调试,提前设置好属性、事件自动上报策略,设置好设备的属性和事件自动发送的默认值或随机值(只针对数值类型参数),同时也可对服务下发设置参数自动回复响应参数默认值。在多设备同时在线调试时,设备在提前设置好的调试时段内就可按设置的间隔时间自动按之前设置好的参数默认值或随机值做出自动上报数据和服务自动回复的响应,无需人工干预调试,对于短连接的协议设备可在上报时进行自动触发连接请求,最后用户只需要根据输出日志查看调试的结果就行,完全实现了模拟器无人值守自动运行的目标。

2、为了实现上述目的,本发明提供如下技术方案:

3、一方面,本发明提供一种模拟设备自动发送和响应数据的方法,包括以下步骤:

4、步骤s1:初始化模拟设备参数,包括初始化设备基本信息、设备物模型信息、自动上报或响应策略配置信息;所述设备基本信息通过设备模块获取,包括设备标识、设备类型和加密传输方式;所述设备物模型信息通过设备物模型模块获取的符合物联网标准协议的设备独有的资源,包括设备的上报属性、服务和事件,并针对每种资源做出数据格式最大值、最小值和步长的配置;所述自动上报或响应策略配置信息包括与设备物模型信息相对应的数据上报或响应周期的相关规则;

5、步骤s2:使用设备物模型模块获取设备物模型信息进入步骤s3;同时,使用设备数据下发监听器模块配置设备数据下发监听器,设备数据下发监听器模块接收到服务端响应数据时,进入步骤s43进行数据响应处理;

6、步骤s3:创建虚拟设备客户端,按照物联网标准协议在服务端上进行注册连接;

7、步骤s4:使用数据上报模块判断是否启动定时策略,如不启动则进入步骤s5,如启动则进行以下步骤:

8、s41:调用定时策略模块启动多线程定时器程序;

9、s42:定时策略模块验证当前时间是否可执行资源自动上报,如是则进入s43,否则结束此次定时器;

10、s43:定时策略模块验证虚拟设备是否定义此资源并进行自动上报或响应,如是则进入步骤s5,如否则结束此次任务;

11、步骤s5:数据上报模块对缓存的虚拟客户端进行判断,确认客户端是否处于在线状态,如在线则进入步骤s6,如未在线则进行以下步骤:

12、s51:数据上报模块调用设备基本信息模块获取自动重新连接次数阈值aotureconn字段进行判断模拟设备是否允许自动重新连接;

13、s52:数据上报模块调用设备基本信息模块获取自动重新连接次数阈值aotureconn、自动重新连接次数当前值aotureconncurr来判断自动重连连接次数是否大于0,如是则进行自动重新连接,跳转至步骤s2,如否则停止继续上报;

14、步骤s6:数据上报模块进行数据上报或响应;

15、步骤s7:数据上报模块记录设备调试日志。

16、进一步地,上述的模拟设备自动发送和响应数据的方法,步骤s1中,所述设备基本信息存储在关系型数据库sqlite中,其数据结构为:device=[设备名称,设备类型,产品key,设备key,认证方式,安全密钥,加密方式,imei号,ca证书,自动重新连接次数阈值aotureconn,自动重新连接次数当前值aotureconncurr]。

17、进一步地,上述的模拟设备自动发送和响应数据的方法,步骤s1中,所述物模型信息存储在非关系型数据库lowdb中,其数据以json格式进行存储和操作:physicalmodel={设备标识,物模型基本参数,[{属性标识,属性上报参数,属性响应参数}],[{事件标识,事件上报参数,事件响应参数}],[{服务标识,服务上报参数,服务响应参数}]}。

18、进一步地,上述的模拟设备自动发送和响应数据的方法,步骤s1中,所述相关规则包括如下方式:固定值上报、随机数上报、范围内步长递增上报。

19、进一步地,上述的模拟设备自动发送和响应数据的方法,步骤s1中,所述自动上报或响应策略配置信息存储在非关系型数据库lowdb中,其数据以json格式进行存储和操作:autostrategy={设备标识,[资源标识,开始时间,结束时间,上报类型,取值类型,上报值/范围,步长]},其中,资源标识为属性标识、事件标识或服务标识,上报类型为上报或响应,取值类型为固定值、随机或步长增长。

20、进一步地,上述的模拟设备自动发送和响应数据的方法,步骤s41中,多线程定时器程序具体包括:

21、(1)配置线程池参数,包括核心线程数、最大线程数、线程空闲数量;

22、(2)项目启动后构建本地全局常量map,用于缓存所有创建的线程;

23、(3)在模拟设备注册上线后,根据配置的上报策略针对每一个资源使用scheduledexecutorservice类创建一个线程,设置延迟、定时周期时间参数,在线程中实现run()方法完成自动上报逻辑;创建完成后,启动线程并且以<设备标识+资源标识>为key值,线程实例为value添加到全局map中;

24、(4)当设备下线时,使用全局map查询出此设备创建的所有线程,并逐一调用stop()方法停止线程。

25、另一方面,本发明提供一种模拟设备自动发送和响应数据的装置,包括以下功能模块以实现上述任一项所述的方法:

26、设备模块:用于记录和获取设备基本信息;

27、设备物模型模块:用于记录和获取设备物模型信息;

28、数据上报模块:用于判断是否启动定时策略、判断缓存的虚拟客户端是否处于在线状态、判断模拟设备是否允许自动重新连接,以及进行数据上报或响应;

29、设备数据下发监听器模块:用于配置设备数据下发监听器以监听服务端下发数据并对服务端进行响应;

30、自动上报或响应策略配置模块:用于设置与设备物模型信息相对应的数据上报或响应周期的相关规则;

31、定时策略模块:用于对多线程定时器进行管理和操作,执行和停止自动上报或响应策略配置模块的任务。

32、与现有技术相比,本发明的有益效果为:

33、本发明提出的模拟设备自动发送和响应数据的方法及装置,通过用线程池+定时器方式来实现自动上报或响应数据,使模拟设备具有自动发送和响应数据的能力,既可以在同一窗口同一时间下调试运行多个设备,还能轻松监控设备运行状态,记录设备日志,避免同一时间只能监控运行一个设备,既节省了时间,又提高测试的效率。在这种设计机制下,所有数据上报操作在独立的线程中完成,所有任务以动态链表和红黑树的结构存储在内存中,可以对多个设备同时展开调试,快速发现问题,定位问题,大大提高了接入物联网平台设备的调试效率。同时,多个任务均在并行运行,定时触发,互不干扰,避免彼此等待,有效利用系统资源,提高数据上报的效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1