CN111736894B - 一种基于配置的传感器数据解析处理方法 - Google Patents
一种基于配置的传感器数据解析处理方法 Download PDFInfo
- Publication number
- CN111736894B CN111736894B CN202010597853.3A CN202010597853A CN111736894B CN 111736894 B CN111736894 B CN 111736894B CN 202010597853 A CN202010597853 A CN 202010597853A CN 111736894 B CN111736894 B CN 111736894B
- Authority
- CN
- China
- Prior art keywords
- data
- configuration
- message
- sensor data
- constructing
- 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.)
- Active
Links
- 238000007405 data analysis Methods 0.000 title claims abstract description 14
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000004458 analytical method Methods 0.000 claims abstract description 6
- 238000012544 monitoring process Methods 0.000 claims abstract description 3
- 238000012423 maintenance Methods 0.000 abstract description 3
- 238000003491 array Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Abstract
本发明公开了一种基于配置的传感器数据解析处理方法,初始化系统环境,加载相应的软件环境;并将文件中的配置读取出来;初始化主线程组与从线程组;构建数据接收进程引导器,并进行相关设置;构建拦截器,并将其挂载到数据接收进程引导器;构建主拦截器,用于接收传感器数据进行解析,并对该数据做回应处理,并将其挂载到数据接收进程引导器;利用所构建的数据接收进程引导器来绑定进程端口,并监听相应的端口发送的传感器数据。本发明可以实现通过编写配置,即可实现变更传感器数据解析处理程序的功能。而配置的编写,可以交给运维人员来编写,并不需要程序员的介入。因此,相比于现有技术,本发明具有一定的实用性和易用性。
Description
技术领域
本发明涉及一种数据解析处理方法,具体涉及是一种大规模传感器数据的解析处理方法。
背景技术
在当前,物联网技术已经广泛的应用到环保、消防、交通、测绘等多个领域。在这些应用中,传感器数据扮演了一个至关重要的角色。传感器数据一般通过无线网络发送至主机的TCP端口,以协议规范传感器和主机之间的信息传输,并在主机端根据协议解析处理传感器数据。
当传感器数据的内容发生变化时,主机端的传感器数据解析处理程序要做相应的变化,这种变化通常是以重新编写代码的方式进行的。考虑到传感器数据内容频繁发生变化的应用场景,相对应的变更程序要付出代价。因此,需要一种方法,可以实现对频繁变化的传感器数据,无需变更程序即可进行解析处理。
发明内容
发明目的:为了解决现有技术的不足,本发明提供了一种基于配置的传感器数据解析处理方法,本发明解决的技术问题即针对大规模传感器数据的解析处理方法,当传感器数据解析处理功能需求发生变更时,通过变更配置,即可实现相应解析处理功能的改变。
技术方案:一种基于配置的传感器数据解析处理方法,包括如下步骤:
步骤一:初始化系统环境,加载相应的软件环境;并将文件中的配置读取出来;
步骤二:初始化类型为NioEventLoopGroup的主线程组与从线程组bossLoopGroup和workLoopGroup;
步骤三:构建类型为ServerBootstrap的数据接收进程引导器,并进行相关设置;
步骤四:构建拦截器,用于将多条传感器数据一一分割开来,避免网络数据包半包粘包,并将其挂载到数据接收进程引导器;
步骤五:构建主拦截器,用于接收传感器数据进行解析,并对该数据做回应处理,并将其挂载到数据接收进程引导器;
步骤六:利用步骤三中所构建的数据接收进程引导器来绑定进程端口,并监听相应的端口发送的传感器数据。
进一步的,所述步骤三中相关设置具体包括:
a)将主、从线程组bossLoopGroup和workLoopGroup与数据接收器进程引导器Server-Bootstrap进行关联;
b)设置主、从线程组的通道类型为NioServerSocketChannel。
进一步的,所述步骤五中主拦截器的具体实现步骤为:
a)根据消息配置对数据的各个部分进行解析;
b)展示数据,若数据为关键数据,将数据存入缓存队列中;
c)根据消息配置构建回应数据并对其进行发送。
进一步的,关于主拦截器的实现,所述步骤a的具体实现步骤为:解析传感器数据的消息ID,并根据消息ID查找对应的消息配置(一条消息配置中包含若干属性配置);开始一个循环,循环次数为属性配置的个数,按序根据属性配置读取消息中的属性信息并将属性信息存储。
进一步的,关于主拦截器的实现,所述步骤c的具体实现步骤为:根据消息ID查找回应消息的消息配置(一条回应消息的消息配置中包含若干属性配置);开始一个循环,循环次数为属性配置的个数,按序根据属性配置构建回应消息并将其发送。
有益效果:本发明可以实现通过编写配置,即可实现变更传感器数据解析处理程序的功能。而配置的编写,可以交给运维人员来编写,并不需要程序员的介入。因此,相比于现有技术,本发明具有一定的实用性和易用性。
附图说明
图1是本发明的访问当前属性的流程示意图;
图2是本发明的构建当前属性的流程示意图。
具体实施方式
下面结合附图并通过实施例对本发明做进一步的详细说明,以下实施例是对本发明的解释,但是本发明并不局限于以下实施例。实施例中除已注明自定义类之外,其余类皆为netty或者java的原生类。
实施例
本发明实现的一种基于配置的传感器数据解析处理方法,包含以下步骤:
步骤1:初始化系统环境,系统环境的设置包括jre的加载、缓存队列kafka的初始化以及netty类库的加载;将配置从C:\\myXml.xml中读取出来并将配置存至开始符startFlag、结束符endFLag以及自定义类型BeanDefinition组成的链表中。
步骤2:初始化类型为NioEventLoopGroup的主线程组与从线程组bossLoopGroup和workLoopGroup。
步骤3:构建类型为ServerBootstrap的数据接收进程引导器,并进行相关设置;相关设置具体包括:
3.1将主、从线程组bossLoopGroup和workLoopGroup与数据接收器进程引导器ServerBootstrap进行关联;
3.2设置主、从线程组的通道类型为NioServerSocketChannel。
步骤4:构建拦截器,用于将多条传感器数据一一分割开来,避免网络数据包半包粘包,并将其挂载到数据接收进程引导器;
4.1构建拦截器的方法如下:以startFlag和endFlag为起止构建分隔符拦截器;
4.2挂载拦截器的方法如下:构建一个内隐类,继承类型为ChannelInitializer<SocketChannel>的类,并重载其方法initChannel,在该方法中对所在通道添加拦截器。
其中,步骤2-4的相关代码为:
步骤5:构建主拦截器,用于接收传感器数据进行解析,并对该数据做回应处理,并将其挂载到数据接收进程引导器;
5.1构建主拦截器的方法包含如下步骤:
5.1.1根据消息配置对数据的各个部分进行解析
消息配置对应的属性配置集propertiesSet的总个数为totalCount,开始一个for循环,循环次数为totalCount。在for循环中,如附图1所示,访问当前属性,判断当前属性是否为byte、short、int、BCD数组以及BCD数组(时间)类型,若为其中类型,则对该属性做相应的读取操作,并将属性名和读取出来的属性值存至fieldMap中,而后访问下一个属性。
5.1.2展示数据,并将关键数据存至缓存队列kafka中
由fieldMap构建JSON格式的描述字符串,并在日志系统打印出来;判断该数据是否为关键数据,若为关键数据,则将该数据存至缓存队列kakfa中。
5.1.3根据消息配置构建回应数据并对其进行发送
消息配置对应的属性配置集propertiesSet2的总个数为totalCount2,开始一个for循环,循环次数为totalCount2。在for循环中,如附图2所示,构建当前属性,判断该属性是否为byte、short、int、BCD数组和BCD数组(时间)类,若为其中类型,则对该属性做对应的构建操作,并构建下一条属性。待所有属性构建完成,整合为消息,并将消息发送出去。
5.2挂载主拦截器的方法同步骤4中挂载拦截器的方法。
步骤6:利用步骤3中所构建的数据接收进程引导器来绑定进程端口8081,并监听发送至8081端口的传感器数据。
本发明可以实现通过编写配置,即可实现变更传感器数据解析处理程序的功能。而配置的编写,可以交给运维人员来编写,并不需要程序员的介入。因此,相比于现有技术,本发明具有一定的实用性和易用性。
Claims (2)
1.一种基于配置的传感器数据解析处理方法,其特征在于:包括如下步骤:
步骤一:初始化系统环境,加载相应的软件环境;并将文件中的配置读取出来;
步骤二:初始化类型为NioEventLoopGroup的主线程组与从线程组bossLoopGroup和workLoopGroup;
步骤三:构建类型为ServerBootstrap的数据接收进程引导器,并进行相关设置;
步骤四:构建拦截器,用于将多条传感器数据一一分割开来,避免网络数据包半包粘包,并将其挂载到数据接收进程引导器;
步骤五:构建主拦截器,用于接收传感器数据进行解析,并对该数据做回应处理,并将其挂载到数据接收进程引导器;
步骤六:利用步骤三中所构建的数据接收进程引导器来绑定进程端口,并监听相应的端口发送的传感器数据;
所述的步骤五中主拦截器的具体实现步骤为:
a)根据消息配置对数据的各个部分进行解析;
b)展示数据,若数据为关键数据,将数据存入缓存队列中;
c)根据消息配置构建回应数据并对其进行发送;
所述的步骤五中关于主拦截器的实现,所述步骤a的具体实现步骤为:
解析传感器数据的消息ID,并根据消息ID查找对应的消息配置,一条消息配置中包含若干属性配置;开始一个循环,循环次数为属性配置的个数,按序根据属性配置读取消息中的属性信息并将属性信息存储;
所述的步骤五中关于主拦截器的实现,所述步骤c的具体实现步骤为:
根据消息ID查找回应消息的消息配置,一条回应消息的消息配置中包含若干属性配置;开始一个循环,循环次数为属性配置的个数,按序根据属性配置构建回应消息并将其发送。
2.根据权利要求1所述的基于配置的传感器数据解析处理方法,其特征在于:所述的步骤三中的相关设置具体包括:
a)将主、从线程组bossLoopGroup和workLoopGroup与数据接收器进程引导器Server-Bootstrap进行关联;
b)设置主、从线程组的通道类型为NioServerSocketChannel。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010597853.3A CN111736894B (zh) | 2020-06-28 | 2020-06-28 | 一种基于配置的传感器数据解析处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010597853.3A CN111736894B (zh) | 2020-06-28 | 2020-06-28 | 一种基于配置的传感器数据解析处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111736894A CN111736894A (zh) | 2020-10-02 |
CN111736894B true CN111736894B (zh) | 2024-04-19 |
Family
ID=72651404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010597853.3A Active CN111736894B (zh) | 2020-06-28 | 2020-06-28 | 一种基于配置的传感器数据解析处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111736894B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102625087A (zh) * | 2012-03-30 | 2012-08-01 | 浙江工业大学 | 无线视频监控系统的设备端 |
CN106790347A (zh) * | 2016-11-11 | 2017-05-31 | 南通大学 | 一种基于netty的大规模并发数据转发方法 |
CN107070809A (zh) * | 2017-04-11 | 2017-08-18 | 南通大学 | 一种大规模传感器数据的实时转发方法 |
CN108762953A (zh) * | 2018-05-25 | 2018-11-06 | 连云港杰瑞电子有限公司 | 一种消息队列实现方法 |
CN110175239A (zh) * | 2019-04-23 | 2019-08-27 | 成都数联铭品科技有限公司 | 一种知识图谱的构建方法及系统 |
CN110868349A (zh) * | 2019-11-27 | 2020-03-06 | 河钢数字技术股份有限公司 | 物联网环境下分布式高并发数据采集与处理方法及系统 |
-
2020
- 2020-06-28 CN CN202010597853.3A patent/CN111736894B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102625087A (zh) * | 2012-03-30 | 2012-08-01 | 浙江工业大学 | 无线视频监控系统的设备端 |
CN106790347A (zh) * | 2016-11-11 | 2017-05-31 | 南通大学 | 一种基于netty的大规模并发数据转发方法 |
CN107070809A (zh) * | 2017-04-11 | 2017-08-18 | 南通大学 | 一种大规模传感器数据的实时转发方法 |
CN108762953A (zh) * | 2018-05-25 | 2018-11-06 | 连云港杰瑞电子有限公司 | 一种消息队列实现方法 |
CN110175239A (zh) * | 2019-04-23 | 2019-08-27 | 成都数联铭品科技有限公司 | 一种知识图谱的构建方法及系统 |
CN110868349A (zh) * | 2019-11-27 | 2020-03-06 | 河钢数字技术股份有限公司 | 物联网环境下分布式高并发数据采集与处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111736894A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111083225B (zh) | 在物联网平台中的数据处理方法、装置及物联网平台 | |
CN109842629B (zh) | 基于协议解析框架的自定义协议的实现方法 | |
CN111404883B (zh) | 一种物联网设备通用协议的解析方法及装置 | |
CN104050080B (zh) | 用户态调试linux内核的方法及系统 | |
CN111683066B (zh) | 异构系统集成方法、装置、计算机设备和存储介质 | |
US20100023545A1 (en) | Data logging system and method thereof for heterogeneous data | |
CN112714047A (zh) | 基于工控协议流量的测试方法、装置、设备及存储介质 | |
CN110912782B (zh) | 一种数据采集方法、装置及存储介质 | |
WO2013165180A1 (ko) | 로그 모니터링 방법, 그 서버 및 기록 매체 | |
CN106790347B (zh) | 一种基于netty的大规模并发数据转发方法 | |
CN109492181A (zh) | 页面跳转方法、装置、计算机设备和存储介质 | |
CN107025115B (zh) | 一种适配多种接口采集的方法 | |
CN103378994A (zh) | 一种通信设备的测试方法及终端 | |
CN111736894B (zh) | 一种基于配置的传感器数据解析处理方法 | |
US8572569B2 (en) | Modified implementation of a debugger wire protocol and command packet | |
CN110347567B (zh) | 一种基于协议匹配的二进制数据日志分析方法和系统 | |
CN107977440B (zh) | 一种解析数据文件的方法、装置和系统 | |
CN116107873A (zh) | 一种仿真测试平台及其自动生成方法 | |
CN113076233B (zh) | 一种io性能检测方法、装置、设备及存储介质 | |
CN114827967A (zh) | 软件更新方法、蓝牙设备及存储介质 | |
CN112181670B (zh) | 进程间通讯方法及装置和Linux设备 | |
CN113347196A (zh) | 一种对网络数据进行解析的解析方法、装置、电子设备以及存储介质 | |
CN105335153A (zh) | 一种自动生成动态脚本的方法 | |
CN113285904A (zh) | 基于rdp的磁盘映射文件信息的解析方法 | |
CN115543755B (zh) | 一种性能监管方法、装置、系统、设备和介质 |
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 |