CN114938400B - 一种解析物联感知设备上报的数据的方法 - Google Patents
一种解析物联感知设备上报的数据的方法 Download PDFInfo
- Publication number
- CN114938400B CN114938400B CN202210874003.2A CN202210874003A CN114938400B CN 114938400 B CN114938400 B CN 114938400B CN 202210874003 A CN202210874003 A CN 202210874003A CN 114938400 B CN114938400 B CN 114938400B
- Authority
- CN
- China
- Prior art keywords
- internet
- data
- protocol
- things
- things sensing
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
本发明公开了一种解析物联感知设备上报的数据的方法,涉及物联感知设备数据解析技术领域,解决现有物联网平台不支持TCP协议的数据接入以及数据解析难以维护且易出错的问题,包括以下步骤:针对物联感知设备将数据解析逻辑进行封装,生成格式为jar的解析协议包,解析协议包里的内容包括多个方法parse及对应的实现类、接口Parse和注解@ParseFlag;上传解析协议包;将物联感知设备和解析协议包绑定;对TCP协议下的数据进行文本化处理,对物联感知设备上报的数据进行解析得到结构化数据,然后对解析后的结构化数据进行持久化处理;本发明具有解析方法易扩展维护、出错率低且适用于TCP协议的优点。
Description
技术领域
本发明涉及物联感知设备数据解析技术领域,更具体的是涉及一种解析物联感知设备上报的数据的方法技术领域。
背景技术
物联感知层是物联网的基础,是联系物理世界与信息世界的重要纽带。感知层是由大量的具有感知、通信、识别能力的智能物体与感知网络组成。随着工业化芯片和网络基础设施的普及,越来越多的设备可以被改造成物联感知设备,同时物联网相关软件技术也在迅速发展。
在实际应用中,物联网平台普遍通过配置物模型,将设备上报的数据进行解析,但是这种方式仅适用于mqtt协议和http协议,也就是消息队列遥测传输协议和超文本传输协议,对于通过TCP协议,即传输控制协议上报的数据,由于不具有结构化的数据,大部分物联网平台要么不支持TCP协议接入,要么就是通过配置脚本的方式来进行解析,操作起来比较麻烦并且错误率较高。除此之外,由于解析逻辑是非结构化数据,其维护和扩展都较为繁琐,且容易出错。
因此,配置一种便于扩展和维护的数据解析方法,可以使得物联感知平台的数据传输和维护变得简单,并且还可以降低数据解析的出错率。
发明内容
本发明的目的在于:解决现有物联网平台不支持TCP协议的数据接入以及数据解析难以维护且易出错的问题。为了解决上述技术问题,本发明提供一种解析物联感知设备上报的数据的方法。
本发明为了实现上述目的具体采用以下技术方案:
一种解析物联感知设备上报的数据的方法,包括以下步骤:
针对物联感知设备将数据解析逻辑进行封装,生成格式为jar的解析协议包,所述解析协议包里的内容包括多个方法parse及对应的实现类、接口Parse和注解@ParseFlag;
所述接口Parse用于扩展和调用所述方法parse及对应的实现类,所述注解@ParseFlag为所述方法parse的标识,每个实现类上标记有一个注解@ParseFlag;
在所述物联感知设备所在的物联网平台上传所述解析协议包;
通过配置网络组件将所述物联感知设备和所述解析协议包绑定,网络组件中的通信协议为TCP协议或MQTT协议或HTTP协议;
若通信协议为TCP协议,则将来自TCP协议下的物联感知设备的数据做文本化处理,将文本化处理后的数据作为所述物联感知设备的上报数据;若为其他通信协议,则将来自所述物联感知设备的数据直接作为所述物联感知设备的上报数据;
根据所述物联感知设备及其上报数据选择适用的方法parse,并分别通过注解@ParseFlag和接口Parse找到和调用对应的所述实现类;通过对应的所述实现类对物联感知设备的上报数据进行解析得到结构化数据,然后对解析后的结构化数据进行持久化处理。
优选地,所述通过配置网络组件将所述物联感知设备和所述解析协议包绑定的方法包括:
进行业务***配置;
进行网络IP配置。
优选地,所述进行业务***配置包括以下步骤:
创建产品并绑定相应的所述通信协议,所述产品为一类所述物联感知设备的总和;
根据所述产品创建或导入对应的所述物联感知设备;
创建网络组件并绑定相应的所述通信协议和通信端口;
激活网络组件。
优选地,所述激活网络组件的方法为:分配内部kafka监听topic并绑定所述通信协议;
判断所述通信协议是否为TCP协议,若是TCP协议则通过k8S提供的api启动service,若不是TCP协议则不作操作。
优选地,所述进行网络IP配置的方法包括以下步骤:
将公网ip和虚拟ip进行绑定;
将所述虚拟ip和k8s的service进行绑定;
将公网ip和k8s的service端口提供给所述物联感知设备。
优选地,所述对物联感知设备的上报数据进行解析得到结构化数据的方法为:
通过java的动态加载机制加载所述解析协议包;
根据需要的所述方法parse,遍历所述解析协议包中的所述实现类,通过所述注解@ParseFlag和所述接口Parse找到并调用所述实现类;
将解析物联感知设备上报的数据作为参数,通过java反射机制,动态执行所述实现类以得到解析后的所述结构化数据。
优选地,所述对解析后的结构化数据进行持久化处理的方法为:将所述结构化数据存到数据库。
优选地,所述将来自TCP协议下的物联感知设备的数据做文本化处理的方法为:通过调用netty服务指定端口直接接收TCP协议下的物联感知设备的数据,然后将其转成文本格式。
本发明的有益效果如下:
本发明通过将非结构化的数据解析逻辑封装成一个解析包,直接通过其中的接口Parse便可很方便地对解析逻辑进行扩展,例如针对不同的设备,可以扩展实现其需要的解析逻辑;本发明的解析逻辑便于维护,且由于可扩展性,可以将TCP协议的数据解析方法扩展封装进解析包,在能够解析其他协议的数据的同时可以准确解析TCP协议的数据;在配置网络组件针对不同通信协议进行专门的配置,保证TCP,MQTT和HTTP下的数据解析都正常运行。
附图说明
图1是本发明的方法流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,本实施例提供一种解析物联感知设备上报的数据的方法,包括以下步骤:
针对物联感知设备将数据解析逻辑进行封装,生成格式为jar的解析协议包,所述解析协议包里的内容包括多个方法parse及对应的实现类、接口Parse和注解@ParseFlag;
所述接口Parse用于扩展和调用所述方法parse及对应的实现类,所述注解@ParseFlag为所述方法parse的标识,每个实现类上标记有一个注解@ParseFlag;
在所述物联感知设备所在的物联网平台上传所述解析协议包;
通过配置网络组件将所述物联感知设备和所述解析协议包绑定,网络组件中的通信协议为TCP协议或MQTT协议或HTTP协议;
若通信协议为TCP协议,则将来自TCP协议下的物联感知设备的数据做文本化处理,将文本化处理后的数据作为所述物联感知设备的上报数据;若为其他通信协议,则将来自所述物联感知设备的数据直接作为所述物联感知设备的上报数据;
根据所述物联感知设备及其上报数据选择适用的方法parse,并分别通过注解@ParseFlag和接口Parse找到和调用对应的所述实现类;通过对应的所述实现类对物联感知设备的上报数据进行解析得到结构化数据,然后对解析后的结构化数据进行持久化处理。
也就是说,通过解析协议包可以实现动态对上传不同数据的物联设备进行适配,具体根据物联感知设备上报的数据构成决定采取哪个方法parse,即确定该数据的类型和需要解析成的结构化数据的结构,然后通过对应的实现类实现解析逻辑。
作为本实施例的案例,对以下来自车辆尾气设备的数据进行解析:
##0176QN=20180102030405123;ST=91;CN=2011;PW=123456;MN=100000000;CP=&&DataTime=20180102030405;JD-Rtd=22.123456;WD-Rtd=110.123456;TT-Rtd=18.9;SD-Rtd=18;T1-Rtd=50;P1-Rtd=8;20-Rtd=1.21&&5500
在解析时通过实现类实现解析逻辑,具体如下:
通过正则表达式“##(\d{4})(.*CP=&&.*&&).{4}”拿到CP具体内容“DataTime=20180102030405;JD-Rtd=22.123456;WD-Rtd=110.123456;TT-Rtd=18.9;SD-Rtd=18;T1-Rtd=50;P1-Rtd=8;20-Rtd=1.21”,然后通过分号和等号对数据做进一步分割,并将字段名进行映射,例如将JD-Rtd映射成longitude;
最后得到的解析后的结构化数据为:
{
"duration": "18.9",
"monitorTime": "2018-01-02 03:04:05",
"latitude": "110.123456",
"temperature": "50",
"concentration": "1.21",
"pressure": "8",
"deviceId": "100000000",
"speed": "18",
"longitude": "22.123456"
};
作为本实施例的优选方案,所述通过配置网络组件将所述物联感知设备和所述解析协议包绑定的方法包括:
进行业务***配置;
进行网络IP配置。
在本实施例中,所述进行业务***配置包括以下步骤:
创建产品并绑定相应的所述通信协议,所述产品为一类所述物联感知设备的总和;也就是说,产品是一类具有共同属性的设备的分类,一个产品对应多种物联感知设备;
根据所述产品创建或导入对应的所述物联感知设备;
创建网络组件并绑定相应的所述通信协议和通信端口;
激活网络组件。
进一步地,所述激活网络组件的方法为:分配内部kafka监听topic并绑定所述通信协议;
判断所述通信协议是否为TCP协议,若是TCP协议则通过k8S提供的api启动service,若不是TCP协议则不作操作。
另一方面,所述进行网络IP配置的方法包括以下步骤:
将公网ip和虚拟ip进行绑定;
将所述虚拟ip和k8s的service进行绑定;
将公网ip和k8s的service端口提供给所述物联感知设备。
优选地,所述对上报的数据进行解析得到结构化数据的方法为:
通过java的动态加载机制加载所述解析协议包;
根据需要的所述方法parse,遍历所述解析协议包中的所述实现类,通过所述注解@ParseFlag和所述接口Parse找到并调用所述实现类;
将解析物联感知设备上报的数据作为参数,通过java反射机制,动态执行所述实现类以得到解析后的所述结构化数据。
特别说明的是,所述对解析后的结构化数据进行持久化处理的方法为:将所述结构化数据存到数据库。
最后,所述将来自TCP协议下的物联感知设备的数据做文本化处理的方法优选为:通过调用netty服务指定端口直接接收TCP协议下的物联感知设备的数据,然后将其转成文本格式,文本化处理后的数据形式与本实施例前面的案例中带解析的数据形式相同。
总的来说,本实施例将非结构化的数据解析逻辑封装成一个格式为jar的解析协议包,实际接入时,通过接口jar即可实现配置解析包就能支持对设备数据的动态解析,对于物联网平台的运维人员来说,事情就变得简单且方便,还不容易出错。同时还便于实现对TCP协议的数据的接入和解析。
实施例2
本实施例基于实施例1的实施方案,以其他数据作为案例进行说明。
本实施例提供一种解析物联感知设备上报的数据的方法,包括以下步骤:
针对物联感知设备将数据解析逻辑进行封装,生成格式为jar的解析协议包,所述解析协议包里的内容包括多个方法parse及对应的实现类、接口Parse和注解@ParseFlag;
所述接口Parse用于扩展和调用所述方法parse及对应的实现类,所述注解@ParseFlag为所述方法parse的标识,每个实现类上标记有一个注解@ParseFlag;
在所述物联感知设备所在的物联网平台上传所述解析协议包;
通过配置网络组件将所述物联感知设备和所述解析协议包绑定,网络组件中的通信协议为TCP协议或MQTT协议或HTTP协议;
若通信协议为TCP协议,则将来自TCP协议下的物联感知设备的数据做文本化处理,将文本化处理后的数据作为所述物联感知设备的上报数据;若为其他通信协议,则将来自所述物联感知设备的数据直接作为所述物联感知设备的上报数据;
根据所述物联感知设备及其上报数据选择适用的方法parse,并分别通过注解@ParseFlag和接口Parse找到和调用对应的所述实现类;通过对应的所述实现类对物联感知设备的上报数据进行解析得到结构化数据,然后对解析后的结构化数据进行持久化处理。
也就是说,具体根据物联感知设备上报的数据构成决定采取哪个方法parse,即确定该数据的类型和需要解析成的结构化数据的结构,然后通过对应的实现类实现解析逻辑。
作为本实施例的案例,对以下来自空气微站设备的数据进行解析:
##0293QN=20210602000000000;ST=22;CN=2011;PW=123456;MN=010003110830052012090014;Flag=5;CP=&&DataTime=20210602000000;a34002-Rtd=0.131,a34002-Flag=N;a34004-Rtd=24.3,a34004-Flag=N;a01002-Rtd=75.7,a01002-Flag=N;a01006-Rtd=94.780,a01006-Flag=N;a01007-Rtd=0.1,a01007-Flag=N;a01008-Rtd=162.2,a01008-Flag=N&&F9C1
在解析时通过实现类实现解析逻辑,具体如下:
通过正则表达式“##(\d{4})(.*CP=&&.*&&).{4}”拿到CP具体内容“DataTime=20210602000000;a34002-Rtd=0.131,a34002-Flag=N;a34004-Rtd=24.3,a34004-Flag=N;a01002-Rtd=75.7,a01002-Flag=N;a01006-Rtd=94.780,a01006-Flag=N;a01007-Rtd=0.1,a01007-Flag=N;a01008-Rtd=162.2,a01008-Flag=N”,然后通过分号和等号对数据做进一步分割,并将字段名进行映射,例如将a34002映射成pm10;
最后得到的解析后的结构化数据为:
{
"humidity_flag": "N",
"pm25_flag": "N",
"pm10": "0.131",
"station_code": "010003110830052012090014",
"wind_direction": "162.2",
"pressure": "94.780",
"wind_speed_flag": "N",
"pm25": "24.3",
"data_time": 1622563200000,
"humidity": "75.7",
"pm10_flag": "N",
"wind_speed": "0.1",
"pressure_flag": "N",
"wind_direction_flag": "N"
}
与实施例1其他相同的优选方案不再赘述。
实施例3
本实施例基于实施例1的实施方案,以其他数据作为案例进行说明。
本实施例提供一种解析物联感知设备上报的数据的方法,包括以下步骤:
针对物联感知设备将数据解析逻辑进行封装,生成格式为jar的解析协议包,所述解析协议包里的内容包括多个方法parse及对应的实现类、接口Parse和注解@ParseFlag;
所述接口Parse用于扩展和调用所述方法parse及对应的实现类,所述注解@ParseFlag为所述方法parse的标识,每个实现类上标记有一个注解@ParseFlag;
在所述物联感知设备所在的物联网平台上传所述解析协议包;
通过配置网络组件将所述物联感知设备和所述解析协议包绑定,网络组件中的通信协议为TCP协议或MQTT协议或HTTP协议;
若通信协议为TCP协议,则将来自TCP协议下的物联感知设备的数据做文本化处理,将文本化处理后的数据作为所述物联感知设备的上报数据;若为其他通信协议,则将来自所述物联感知设备的数据直接作为所述物联感知设备的上报数据;
根据所述物联感知设备及其上报数据选择适用的方法parse,并分别通过注解@ParseFlag和接口Parse找到和调用对应的所述实现类;通过对应的所述实现类对物联感知设备的上报数据进行解析得到结构化数据,然后对解析后的结构化数据进行持久化处理。
也就是说,具体根据物联感知设备上报的数据构成决定采取哪个方法parse,即确定该数据的类型和需要解析成的结构化数据的结构,然后通过对应的实现类实现解析逻辑。
作为本实施例的案例,对以下来自地表水质监测设备的数据进行解析:
##0255QN=20210602000544014;ST=21;CN=2011;PW=123456;MN=hgyzqqs0000001;Flag=9;CP=&&DataTime=20210602000000;w01010-Rtd=24.73,w01010-Flag=N;w01001-Rtd=8.05,w01001-Flag=N;w01009-Rtd=6.781,w01009-Flag=N;w01003-Rtd=39.55,w01003-Flag=N;w01014-Rtd=295.18,w01014-Flag=N&&17C0
在解析时通过实现类实现解析逻辑,具体如下:
通过正则表达式“##(\d{4})(.*CP=&&.*&&).{4}”拿到CP具体内容“DataTime=20210602000000;w01010-Rtd=24.73,w01010-Flag=N;w01001-Rtd=8.05,w01001-Flag=N;w01009-Rtd=6.781,w01009-Flag=N;w01003-Rtd=39.55,w01003-Flag=N;w01014-Rtd=295.18,w01014-Flag=N”,然后通过分号和等号对数据做进一步分割,并将字段名进行映射,例如将w01010-Rtd映射成sw424;
最后得到的解析后的结构化数据为:
{
"sw383": "N",
"sw394": "39.55",
"datetime": 1622563544014,
"device_id": "hgyzqqs0000001",
"sw453": "N",
"sw374": "8.05",
"sw414": "6.781",
"sw403": "N",
"sw424": "24.73",
"sw423": "N",
"sw433": "N",
"sw444": "295.18"
};
与实施例1其他相同的优选方案不再赘述。
实施例4
本实施例基于实施例1的实施方案,以其他数据作为案例进行说明。
本实施例提供一种解析物联感知设备上报的数据的方法,包括以下步骤:
针对物联感知设备将数据解析逻辑进行封装,生成格式为jar的解析协议包,所述解析协议包里的内容包括多个方法parse及对应的实现类、接口Parse和注解@ParseFlag;
所述接口Parse用于扩展和调用所述方法parse及对应的实现类,所述注解@ParseFlag为所述方法parse的标识,每个实现类上标记有一个注解@ParseFlag;
在所述物联感知设备所在的物联网平台上传所述解析协议包;
通过配置网络组件将所述物联感知设备和所述解析协议包绑定,网络组件中的通信协议为TCP协议或MQTT协议或HTTP协议;
若通信协议为TCP协议,则将来自TCP协议下的物联感知设备的数据做文本化处理,将文本化处理后的数据作为所述物联感知设备的上报数据;若为其他通信协议,则将来自所述物联感知设备的数据直接作为所述物联感知设备的上报数据;
根据所述物联感知设备及其上报数据选择适用的方法parse,并分别通过注解@ParseFlag和接口Parse找到和调用对应的所述实现类;通过对应的所述实现类对物联感知设备的上报数据进行解析得到结构化数据,然后对解析后的结构化数据进行持久化处理。
也就是说,具体根据物联感知设备上报的数据构成决定采取哪个方法parse,即确定该数据的类型和需要解析成的结构化数据的结构,然后通过对应的实现类实现解析逻辑。
作为本实施例的案例,对以下来自TVOC检测设备的数据进行解析:
##0358QN=20210602000000000;ST=27;CN=2011;PW=123456;MN=010003110830052012090015;Flag=4;CP=&&DataTime=20210602000000;a99054-Rtd=0.131,a99054-Flag=N;a01001-Rtd=24.3,a01001-Flag=N;a01002-Rtd=75.7,a01002-Flag=N;a01006-Rtd=94.780,a01006-Flag=N;a01007-Rtd=0.1,a01007-Flag=N;a01008-Rtd=162.2,a01008-Flag=N;a01666-Rtd=0.000,a01666-Flag=D;i22001-Rtd=8FFFFFF5,i22001-Flag=N&&F9C1;
在解析时通过实现类实现解析逻辑,具体如下:
通过正则表达式“##(\d{4})(.*CP=&&.*&&).{4}”拿到CP具体内容“DataTime=20210602000000;a99054-Rtd=0.131,a99054-Flag=N;a01001-Rtd=24.3,a01001-Flag=N;a01002-Rtd=75.7,a01002-Flag=N;a01006-Rtd=94.780,a01006-Flag=N;a01007-Rtd=0.1,a01007-Flag=N;a01008-Rtd=162.2,a01008-Flag=N;a01666-Rtd=0.000,a01666-Flag=D;i22001-Rtd=8FFFFFF5,i22001-Flag=N”,然后通过分号和等号对数据做进一步分割,并将字段名进行映射,例如将a01008-Rtd映射成v52;
最后得到的解析后的结构化数据为:
{
"device_id": "010003110830052012090015",
"v61": "N",
"v71": "D",
"v52": "162.2",
"v41": "N",
"datetime": 1622563200000,
"v62": "0.000",
"v51": "N",
"v21": "N",
"v32": "94.780",
"v42": "0.1",
"v31": "N",
"v12": "24.3",
"v22": "75.7",
"v11": "N",
"v2": "0.131"
};
与实施例1其他相同的优选方案不再赘述。
实施例5
本实施例基于实施例1的实施方案,以其他数据作为案例进行说明。
本实施例提供一种解析物联感知设备上报的数据的方法,包括以下步骤:
针对物联感知设备将数据解析逻辑进行封装,生成格式为jar的解析协议包,所述解析协议包里的内容包括多个方法parse及对应的实现类、接口Parse和注解@ParseFlag;
所述接口Parse用于扩展和调用所述方法parse及对应的实现类,所述注解@ParseFlag为所述方法parse的标识,每个实现类上标记有一个注解@ParseFlag;
在所述物联感知设备所在的物联网平台上传所述解析协议包;
通过配置网络组件将所述物联感知设备和所述解析协议包绑定,网络组件中的通信协议为TCP协议或MQTT协议或HTTP协议;
若通信协议为TCP协议,则将来自TCP协议下的物联感知设备的数据做文本化处理,将文本化处理后的数据作为所述物联感知设备的上报数据;若为其他通信协议,则将来自所述物联感知设备的数据直接作为所述物联感知设备的上报数据;
根据所述物联感知设备及其上报数据选择适用的方法parse,并分别通过注解@ParseFlag和接口Parse找到和调用对应的所述实现类;通过对应的所述实现类对物联感知设备的上报数据进行解析得到结构化数据,然后对解析后的结构化数据进行持久化处理。
也就是说,具体根据物联感知设备上报的数据构成决定采取哪个方法parse,即确定该数据的类型和需要解析成的结构化数据的结构,然后通过对应的实现类实现解析逻辑。
作为本实施例的案例,对以下来自企业用电量监测设备的数据进行解析:
##0756QN=20210730160007614;ST=59;CN=2011;PW=123456;MN=010000A890000591011C104;Flag=5;CP=&&DataTime=20210730160007;D7-Rtd=30.00,D7-Flag=N;D8-Rtd=1.00,D8-Flag=N;D4107-Rtd=23300.10,D4107-Flag=N;D4117-Rtd=6886.50,D4117-Flag=N;D8193-Rtd=382.60,D8193-Flag=N;D8195-Rtd=380.90,D8195-Flag=N;D8197-Rtd=382.40,D8197-Flag=N;D8205-Rtd=31.44,D8205-Flag=N;D8207-Rtd=33.93,D8207-Flag=N;D8209-Rtd=19.68,D8209-Flag=N;D8211-Rtd=15834.00,D8211-Flag=N;D8213-Rtd=6237.00,D8213-Flag=N;D8215-Rtd=6528.00,D8215-Flag=N;D8217-Rtd=3066.00,D8217-Flag=N;D8219-Rtd=1644.00,D8219-Flag=N;D8221-Rtd=1419.00,D8221-Flag=N;D8223-Rtd=2271.00,D8223-Flag=N;D8225-Rtd=-2046.00,D8225-Flag=N;D8235-Rtd=0.86,D8235-Flag=N;D8237-Rtd=0.91,D8237-Flag=N;D8239-Rtd=0.89,D8239-Flag=N;D8241-Rtd=0.72,D8241-Flag=N&&6240;
在解析时通过实现类实现解析逻辑,具体如下:
通过正则表达式“##(\d{4})(.*CP=&&.*&&).{4}”拿到CP具体内容“DataTime=20210730160007;D7-Rtd=30.00,D7-Flag=N;D8-Rtd=1.00,D8-Flag=N;D4107-Rtd=23300.10,D4107-Flag=N;D4117-Rtd=6886.50,D4117-Flag=N;D8193-Rtd=382.60,D8193-Flag=N;D8195-Rtd=380.90,D8195-Flag=N;D8197-Rtd=382.40,D8197-Flag=N;D8205-Rtd=31.44,D8205-Flag=N;D8207-Rtd=33.93,D8207-Flag=N;D8209-Rtd=19.68,D8209-Flag=N;D8211-Rtd=15834.00,D8211-Flag=N;D8213-Rtd=6237.00,D8213-Flag=N;D8215-Rtd=6528.00,D8215-Flag=N;D8217-Rtd=3066.00,D8217-Flag=N;D8219-Rtd=1644.00,D8219-Flag=N;D8221-Rtd=1419.00,D8221-Flag=N;D8223-Rtd=2271.00,D8223-Flag=N;D8225-Rtd=-2046.00,D8225-Flag=N;D8235-Rtd=0.86,D8235-Flag=N;D8237-Rtd=0.91,D8237-Flag=N;D8239-Rtd=0.89,D8239-Flag=N;D8241-Rtd=0.72,D8241-Flag=N”,然后通过分号和等号对数据做进一步分割,并将字段名进行映射,例如将D8205-Rtd映射成yd165;
最后得到的解析后的结构化数据为:
{
"yd52": "N",
"yd244": "N",
"yd222": "N",
"yd144": "N",
"yd31": "N",
"yd166": "N",
"datetime": 1627632007614,
"yd76": "N",
"yd165": "31.44",
"yd241": "30.00",
"yd142": "19.68",
"yd55": "0.86",
"yd34": "0.89",
"yd327": "6886.50",
"yd206": "N",
"yd326": "N",
"yd91": "1644.00",
"yd205": "382.40",
"yd106": "3066.00",
"yd92": "N",
"yd104": "N",
"yd71": "2271.00",
"yd126": "6237.00",
"yd224": "382.60",
"yd125": "N",
"device_id": "010000A890000591011C104",
"yd41": "N",
"yd63": "N",
"yd111": "6528.00",
"yd133": "N",
"yd21": "0.72",
"yd43": "0.91",
"yd153": "N",
"yd151": "33.93",
"yd26": "N",
"yd317": "23300.10",
"yd336": "N",
"yd115": "N",
"yd236": "N",
"yd235": "1.00",
"yd136": "15834.00",
"yd213": "N",
"yd83": "1419.00",
"yd212": "380.90",
"yd62": "-2046.00",
"yd84": "N"
};
与实施例1其他相同的优选方案不再赘述。
Claims (8)
1.一种解析物联感知设备上报的数据的方法,其特征在于,包括以下步骤:
针对物联感知设备将数据解析逻辑进行封装,生成格式为jar的解析协议包,所述解析协议包里的内容包括多个方法parse及对应的实现类、接口Parse和注解@ParseFlag;
所述接口Parse用于扩展和调用所述方法parse及对应的实现类,所述注解@ParseFlag为所述方法parse的标识,每个实现类上标记有一个注解@ParseFlag;
在所述物联感知设备所在的物联网平台上传所述解析协议包;
通过配置网络组件将所述物联感知设备和所述解析协议包绑定,网络组件中的通信协议为TCP协议或MQTT协议或HTTP协议;
若通信协议为TCP协议,则将来自TCP协议下的物联感知设备的数据做文本化处理,将文本化处理后的数据作为所述物联感知设备的上报数据;若为其他通信协议,则将来自所述物联感知设备的数据直接作为所述物联感知设备的上报数据;
根据所述物联感知设备及其上报数据选择适用的方法parse,并分别通过注解@ParseFlag和接口Parse找到和调用对应的所述实现类;通过对应的所述实现类对物联感知设备的上报数据进行解析得到结构化数据,然后对解析后的结构化数据进行持久化处理。
2.根据权利要求1所述的一种解析物联感知设备上报的数据的方法,其特征在于,所述通过配置网络组件将所述物联感知设备和所述解析协议包绑定的方法包括:
进行业务***配置;
进行网络IP配置。
3.根据权利要求2所述的一种解析物联感知设备上报的数据的方法,其特征在于,所述进行业务***配置包括以下步骤:
创建产品并绑定相应的所述通信协议,所述产品为一类所述物联感知设备的总和;
根据所述产品创建或导入对应的所述物联感知设备;
创建网络组件并绑定相应的所述通信协议和通信端口;
激活网络组件。
4.根据权利要求3所述的一种解析物联感知设备上报的数据的方法,其特征在于,所述激活网络组件的方法为:分配内部kafka监听topic并绑定所述通信协议;
判断所述通信协议是否为TCP协议,若是TCP协议则通过k8S提供的api启动service,若不是TCP协议则不作操作。
5.根据权利要求4所述的一种解析物联感知设备上报的数据的方法,其特征在于,所述进行网络IP配置的方法包括以下步骤:
将公网ip和虚拟ip进行绑定;
将所述虚拟ip和k8s的service进行绑定;
将公网ip和k8s的service端口提供给所述物联感知设备。
6.根据权利要求1所述的一种解析物联感知设备上报的数据的方法,其特征在于,所述对物联感知设备的上报数据进行解析得到结构化数据的方法为:
通过java的动态加载机制加载所述解析协议包;
根据需要的所述方法parse,遍历所述解析协议包中的所述实现类,通过所述注解@ParseFlag和所述接口Parse找到并调用所述实现类;
将解析物联感知设备上报的数据作为参数,通过java反射机制,动态执行所述实现类以得到解析后的所述结构化数据。
7.根据权利要求6所述的一种解析物联感知设备上报的数据的方法,其特征在于,所述对解析后的结构化数据进行持久化处理的方法为:将所述结构化数据存到数据库。
8.根据权利要求1所述的一种解析物联感知设备上报的数据的方法,其特征在于,所述将来自TCP协议下的物联感知设备的数据做文本化处理的方法为:通过调用netty服务指定端口直接接收TCP协议下的物联感知设备的数据,然后将其转成文本格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210874003.2A CN114938400B (zh) | 2022-07-25 | 2022-07-25 | 一种解析物联感知设备上报的数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210874003.2A CN114938400B (zh) | 2022-07-25 | 2022-07-25 | 一种解析物联感知设备上报的数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114938400A CN114938400A (zh) | 2022-08-23 |
CN114938400B true CN114938400B (zh) | 2022-11-25 |
Family
ID=82869103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210874003.2A Active CN114938400B (zh) | 2022-07-25 | 2022-07-25 | 一种解析物联感知设备上报的数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114938400B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095835A (zh) * | 2013-01-17 | 2013-05-08 | 成都理想科技开发有限公司 | 基于报警***通信数据包的合理构造与正确解析的实现方法 |
CN103336813A (zh) * | 2013-06-27 | 2013-10-02 | 南京邮电大学 | 一种基于中间件架构的物联网数据集成管理方案 |
CN110505111A (zh) * | 2019-07-09 | 2019-11-26 | 杭州电子科技大学 | 基于流量重放的工控协议模糊测试方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9826071B2 (en) * | 2015-08-26 | 2017-11-21 | Barefoot Networks, Inc. | Configuring a switch for extracting packet header fields |
US10757230B2 (en) * | 2017-12-11 | 2020-08-25 | Mellanox Technologies Tlv Ltd. | Efficient parsing of extended packet headers |
-
2022
- 2022-07-25 CN CN202210874003.2A patent/CN114938400B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095835A (zh) * | 2013-01-17 | 2013-05-08 | 成都理想科技开发有限公司 | 基于报警***通信数据包的合理构造与正确解析的实现方法 |
CN103336813A (zh) * | 2013-06-27 | 2013-10-02 | 南京邮电大学 | 一种基于中间件架构的物联网数据集成管理方案 |
CN110505111A (zh) * | 2019-07-09 | 2019-11-26 | 杭州电子科技大学 | 基于流量重放的工控协议模糊测试方法 |
Non-Patent Citations (1)
Title |
---|
《XML开发技术教程》;桂浩;《XML开发技术教程》;20080930;第341-347页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114938400A (zh) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102202093B (zh) | 一种实现传感器适配的方法和*** | |
CN111083161A (zh) | 数据传输的处理方法及装置、物联网设备 | |
CN112511218B (zh) | 一种基于微服务的卫星地面站监控*** | |
CN108038207A (zh) | 一种日志数据处理***、方法和服务器 | |
CN111294235B (zh) | 数据处理方法、装置、网关及可读存储介质 | |
CN106453334A (zh) | 一种通信协议切换方法、装置和*** | |
CN110851252A (zh) | 一种基于tsn架构的规约转换设备和规约转换方法 | |
CN112671697A (zh) | 综合监控***的数据处理方法、装置和*** | |
CN114189274A (zh) | 一种基于微服务的卫星地面站监控*** | |
CN111970230A (zh) | 基于云端识别的工业现场协议自动解析的方法及*** | |
CN110502538A (zh) | 画像标签生成逻辑映射的方法、***、设备及存储介质 | |
CN110380775B (zh) | 一种大规模多业务卫星星座运管***及其工作方法 | |
CN114938400B (zh) | 一种解析物联感知设备上报的数据的方法 | |
CN111190875A (zh) | 基于容器平台的日志聚合方法及装置 | |
CN111131219B (zh) | 基于FlatBuffers的物联网高效数据传输方法 | |
CN108712306A (zh) | 一种信息***自动化巡检平台和巡检方法 | |
CN104217314A (zh) | 路由信息抓取方法和装置 | |
CN107592359A (zh) | 一种基于rpc协议的服务端响应方法、装置及介质 | |
CN102868559A (zh) | 网络日志数据生成方法及*** | |
CN113992644B (zh) | 一种基于无服务技术的物联网关***及其数据处理方法 | |
CN112764945B (zh) | 消息中心服务中间件*** | |
CN112866294B (zh) | 一种多协议适配方法、装置及可读存储介质 | |
CN103107903A (zh) | 一种资源数据共享方法和资源数据共享设备 | |
CN108737525A (zh) | 一种基于REST架构的Web服务*** | |
CN115314572B (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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Wang Song Inventor before: Liu Haibing Inventor before: Wang Song |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |