CN114553978B - 一种传感器报文数据处理方法、电子设备及存储介质 - Google Patents

一种传感器报文数据处理方法、电子设备及存储介质 Download PDF

Info

Publication number
CN114553978B
CN114553978B CN202210448739.3A CN202210448739A CN114553978B CN 114553978 B CN114553978 B CN 114553978B CN 202210448739 A CN202210448739 A CN 202210448739A CN 114553978 B CN114553978 B CN 114553978B
Authority
CN
China
Prior art keywords
message
data
acquiring
byte
steps
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
Application number
CN202210448739.3A
Other languages
English (en)
Other versions
CN114553978A (zh
Inventor
张晓春
万志红
丘建栋
阚倩
刘星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Urban Transport Planning Center Co Ltd
Original Assignee
Shenzhen Urban Transport Planning Center Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Urban Transport Planning Center Co Ltd filed Critical Shenzhen Urban Transport Planning Center Co Ltd
Priority to CN202210448739.3A priority Critical patent/CN114553978B/zh
Publication of CN114553978A publication Critical patent/CN114553978A/zh
Application granted granted Critical
Publication of CN114553978B publication Critical patent/CN114553978B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Abstract

本发明提出一种传感器报文数据处理方法,属于数据处理技术领域。首先,在云平台配置产品物模型,所述协议包体内容包括N个字段;其次,封装公用的消息解析相关工具类,包括构建消息解析组件和消息封装,所述构建消息解析组件和消息封装需要根据协议字段赋值;再次,基于Netty框架搭建通用适配器组件,具体包括:继承指定类型的消息自定义处理类和继承消息编解码类;最后,启用TCP服务端。本发明解决现有技术中存在的适配组件过多,系统产生大量冗余、成本高的技术问题,实现了适配器组件通用,有效减少系统冗余;开发人员无需编写代码、手动重启服务即可实现服务可插拔。

Description

一种传感器报文数据处理方法、电子设备及存储介质
技术领域
本申请涉及报文数据处理方法,尤其涉及一种传感器报文数据处理方法、电子设备及存储介质,属于数据处理技术领域。
背景技术
在物联网监控云平台中,需接入大量的传感器设备,部分传感器设备是采用TCP通讯的直连设备。这类设备通常采用高效率传输的4G/5G通信技术,消息交互采用十六进制报文数据传输。云平台设备消息接收分发中心往往针对的是JSON半结构化数据,便于统一处理。而每接入一类新的品牌型号的直连设备,需为这类设备创建一个新的适配组件,进行协议转换、数据处理与分发。因此,存在很多缺点,例如,每对接一类新的设备时,需创建新的适配组件,容易造成适配组件过多,系统产生大量冗余;相对于JSON数据而言,十六进制报文数据处理对开发人员技术要求更高,花费时间成本更多;无论是初始对接新设备,还是后期协议变更,都需要手动修改代码重启服务。
发明内容
在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
鉴于此,为解决现有技术中存在的适配组件过多,系统产生大量冗余、成本高的技术问题,本发明提供一种传感器报文数据处理方法、电子设备及存储介质。
方案一、一种传感器报文数据处理方法,包括以下步骤:
S1、在云平台配置产品物模型;
S2、封装公用的消息解析相关工具类;
S3、基于Netty框架创建继承指定类型的消息自定义处理服务和继承消息编解码服务;
S4、启用TCP服务端。
优选的,所述产品物模型定义了设备协议包体内容和服务启动相关参数;所述协议包体内容包括N个字段。
优选的,所述封装公用的消息解析相关工具类具体包括:构建消息解析组件和消息封装。
优选的,所述构建消息解析组件具体包括以下步骤:
S210、从缓存中获取协议包体内容;
S211、若包体内容存在开始/结束字,校验开始/结束字是否与期望值相等,不等则返回错误信息,否则继续下一步;
S212、若包体内容存在校验字,获取不校验下标和校验类型,得到期望校验字,判断当前校验字与期望校验字是否相等,不等则返回错误信息,否则继续下一步;
S213、获取设备标识、序列号和固定字节内容,若配置期望值,则判断当前值是否与期望值,不等则返回错误信息,否则继续下一步;
S214、获取消息类型,根据消息类型获取对应的上报报文内容格式,得到相应的数据包;
S215、解析完毕返回JSON数据。
优选的,所述消息封装具体包括以下步骤:
S220、从缓存中获取协议包体内容;
S221、根据消息类型键值获取对应的可变字节内容,计算可变字节总长度;
S222、可变字节总长度加调整长度即为数据包长度;
S223、初始化字节数组,数组大小为数据包长度加固定长度;
S224、将开始字、结束字、设备标识、序列号、固定字节、可变字节以及数据长度值依次赋值成字节数组;
S225、获取不校验下标、校验类型,根据字节数组内容计算得到校验字,赋值给字节数组;
S226、封装完毕返回字节数组byte数据;
优选的,所述构建消息解析组件和消息封装需要根据协议字段赋值。
所述构建消息解析组件赋值包括以下步骤:
S2101、获取当前字段数据类型,得到相应的处理类;
S2102、获取当前字段下标和长度,调用处理类将字节数组转换成其它类型的值;
S2103、判断当前字段是否配有期望值,若配有期望值则判断是否相等,不等则返回错误信息,否则继续下一步;
S2104、获取当前字段属性键,将计算值赋值给属性键;
S2105、判断当前是否有子属性,若有子属性,遍历子属性,重复上面操作,最后将列表数据赋值给子属性键。
所述消息封装协议字段赋值包括以下步骤:
S2201、获取当前字段数据类型,得到相应的处理类;
S2202、获取当前字段下标和长度,调用处理类将json某个属性值转换成字节数组;
S2203、判断当前是否有子属性,若有子属性,遍历子属性,重复上面操作,最后将列表数据转换成字节数组。
优选的,所述继承指定类型的消息自定义处理服务用于实现通道激活、通道失效、用户事件触发和读取消息;
所述通道激活的方法:终端设备连上云平台时,生成UUID唯一标识,绑定到当前通道后,加入缓存;
所述通道失效的方法:终端设备断开连接时,获取当前通道的UUID唯一标识,从缓存中移除;
所述用户事件触发的方法:在产品物模型中配置了读取超时时间,若服务端长时间没有收到客户端的心跳消息,判断读写事件超时,服务端主动断开与客户端的连接;
所述读取消息的方法:终端设备发送消息到服务端,消息经过解码器时,此时获取到的数据已经是JSON数据;获取应答消息,若存在应答消息则发送应答消息给编码器,最终传到终端设备并且将JSON数据推送给Kafka消息队列;获取当前消息序列号,根据序列号获取下发消息任务,若存在下发任务则唤醒任务,将结果推送到RabbitMq消息队列;
所述继承消息编解码服务用于实现消息编码和消息解码;
所述消息编码的方法:调用S2所述封装好的公用的消息解析相关工具类将JSON数据转为字节数组;
所述消息解码的方法:调用S2所述封装好的公用的消息解析相关工具类将字节数组转为JSON数据。
优选的,所述启用TCP服务端具体包括以下步骤:
S410、先判断端口号有没有被占用,占用返回错误提示,否则继续下一步;
S420、创建一个服务端,绑定线程组;
S430、设置Option参数;
S440、设置ChannelPipeline过滤器添加处理器,例如读取消息超时时间、消息编解码类、消息自定义处理类以及自定义长度解码器;
S450、绑定端口号,启动服务。
方案二、 一种基于TCP通讯协议下的传感器报文数据处理系统,包括API基础服务模块、 TCP通讯通用适配器组件服务模块和设备总线服务模块;所述API基础服务模块用于提供表增删改查功能;所述TCP通讯通用适配器组件服务模块用于对消息进行解析、封装和转发;所述设备总线服务模块用于实现消息接收分发、数据分析处理和存储。
方案三、一种电子设备,包括存储器和处理器,存储器存储有计算机程序,所述的处理器执行所述计算机程序时实现方案一所述的一种传感器报文数据处理方法的步骤。
方案四、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现方案一所述的一种传感器报文数据处理方法。
本发明的有益效果如下:本发明引入基于TCP通讯的通用适配器组件服务,减少系统冗余。该组件服务负责报文数据解析、封装及转发,开发人员只需按厂商提供的协议在云平台配置产品物模型,点击开启服务即可,无需编写代码手动重启服务,大大节省了开发成本,提高了开发效率,对开发人员技术要求相对更低。本发明解决现有技术中存在的适配组件过多,系统产生大量冗余、成本高的技术问题,实现了适配器组件通用,有效减少系统冗余;开发人员无需编写代码、手动重启服务即可实现服务可插拔。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为方法流程示意图;
图2为协议包体内容示意图;
图3为系统架构示意图;
图4为上下行消息执行序列示意图。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例1、参照图1-图2说明本实施方式,一种传感器报文数据处理方法,包括以下步骤:
S1、在云平台配置产品物模型;所述产品物模型定义了设备协议包体内容和服务启动相关参数;所述协议包体内容包括N个字段、内容、应答内容和其他内容。
1、字段:
字段类型:需转换的类型,byte、short、int、long、float、double、hex、bit等,必填项;
字段描述:属性中文描述,例如温度、湿度,必填项;
字段键值:属性英文描述,用于后期赋值操作。例如temperature、humidity,必填项;
开始下标:负数代表从末尾开始读取数据,必填项;
数据长度:需要读取的数据长度,必填项;
期望值:例如开始结束字是固定的需要校验是否合法,非必填项;
子属性集合:常见协议上报多条数据时前面会有1-2字节表示此次上报的数据条数,需遍历的数据集合,非必填项;
子属性键值:遍历的数据赋值的字段属性,非必填项。
2、内容:
开始/结束字:报文的起始字和结束字,通常是固定字节;
校验字:校验报文的合法性;
校验类型:和校验、异或校验、CRC16校验等;
不校验下标:负数代表从末尾开始计数,一般校验内容排除开始、结束、校验字;
数据长度:该报文的总字节长度;
设备标识:当前报文是哪个设备上报的数据/平台往哪个设备下发数据;
消息序列号:消息唯一标识,用来请求应答匹配;
消息类型:上报/下发消息类型,例定时数据上报、故障上报、重启命令等;
其它固定字节内容:例软硬件版本号、剩余电量、上报时间等;
可变字节内容:具体的数据包,不同的消息业务类型其数据包也不一样,可根据需要配置消息类型,每种消息类型至少配置上报报文内容、下发报文内容中的一项。
3、应答内容包括:设置为固定值的字节内容,其它不变部分可不设置,若应答逻辑比较复杂不满足要求,可采用Groovy 脚本实现动态代码注入执行。
4、其它内容包括:TCP服务端端口号、大小端模式、初始化长度、可调整长度、固定长度、最大长度,读取客户端超时时间、下发报文超时时间及重试次数。
在云平台配置产品物模型,开发人员只需按厂商提供的协议在云平台配置产品物模型,点击开启服务即可,无需编写代码手动重启服务,大大节省了开发成本,提高了开发效率,对开发人员技术要求相对更低。
S2、封装公用的消息解析相关工具类;具体包括构建消息解析组件和消息封装。
具体的,所述构建消息解析组件和消息封装需要根据协议字段赋值。
所述构建消息解析组件具体包括以下步骤:
S210、从缓存中获取协议包体内容;
S211、若包体内容存在开始/结束字,校验开始/结束字是否与期望值相等,不等则返回错误信息,否则继续下一步;
S212、若包体内容存在校验字,获取不校验下标和校验类型,得到期望校验字,判断当前校验字与期望校验字是否相等,不等则返回错误信息,否则继续下一步;
S213、获取设备标识、序列号和其它固定字节内容,若配置期望值,则判断当前值是否与期望值,不等则返回错误信息,否则继续下一步;
S214、获取消息类型,根据消息类型获取对应的上报报文内容格式,得到相应的数据包;
S215、解析完毕返回JSON数据。
所述构建消息解析组件根据协议字段赋值具体包括以下步骤:
S2101、获取当前字段数据类型,得到相应的处理类;
S2102、获取当前字段下标和长度,调用处理类将字节数组转换成其它类型的值;
S2103、判断当前字段是否配有期望值,若配有期望值则判断是否相等,不等则返回错误信息,否则继续下一步;
S2104、获取当前字段属性键,将计算值赋值给属性键;
S2105、判断当前是否有子属性,若有子属性,遍历子属性,重复上面操作,最后将列表数据赋值给子属性键。
所述消息封装具体包括以下步骤:
S220、从缓存中获取协议包体内容;
S221、根据消息类型键值获取对应的可变字节内容,计算可变字节总长度;
S222、可变字节总长度加调整长度即为数据包长度;
S223、初始化字节数组,数组大小为数据包长度加固定长度;
S224、将开始字、结束字、设备标识、序列号、其它固定字节、可变字节以及数据长度值依次赋值成字节数组;
S225、获取不校验下标、校验类型,根据字节数组内容计算得到校验字,赋值给字节数组;
S226、封装完毕返回字节数组byte数据;
所述消息封装协议字段赋值具体包括以下步骤:
S2201、获取当前字段数据类型,得到相应的处理类;
S2202、获取当前字段下标和长度,调用处理类将json某个属性值转换成字节数组;
S2203、判断当前是否有子属性,若有子属性,遍历子属性,重复上面操作,最后将列表数据转换成字节数组。
S3、基于Netty框架创建继承指定类型的消息自定义处理服务和继承消息编解码服务。
所述继承指定类型的消息自定义处理服务用于实现通道激活、通道失效、用户事件触发和读取消息;
所述通道激活的方法:终端设备连上云平台时,生成UUID唯一标识,绑定到当前通道后,加入缓存;
所述通道失效的方法:终端设备断开连接时,获取当前通道的UUID唯一标识,从缓存中移除;
所述用户事件触发的方法:在产品物模型中配置了读取超时时间,若服务端长时间没有收到客户端的心跳消息,判断读写事件超时,服务端主动断开与客户端的连接;
所述读取消息的方法:终端设备发送消息到服务端,消息经过解码器时,此时获取到的数据已经是JSON数据;获取应答消息,若存在应答消息则发送应答消息给编码器,最终传到终端设备并且将JSON数据推送给Kafka消息队列;获取当前消息序列号,根据序列号获取下发消息任务,若存在下发任务则唤醒任务,将结果推送到RabbitMq消息队列;
所述继承消息编解码服务用于实现消息编码和消息解码;
所述消息编码的方法:调用S2所述封装好的公用的消息解析相关工具类将JSON数据转为字节数组;
所述消息解码的方法:调用S2所述封装好的公用的消息解析相关工具类将字节数组转为JSON数据。
S4、启用TCP服务端,包括以下步骤:
S410、先判断端口号有没有被占用,占用返回错误提示,否则继续下一步;
S420、创建一个服务端,绑定线程组;
S430、设置Option参数,例如SO_BACKLOG、TCP_NODELAY、ALLOCATOR等;
S440、设置ChannelPipeline过滤器添加处理器,例如读取消息超时时间、消息编解码类、消息自定义处理类以及自定义长度解码器(解决TCP粘包黏包问题);
S450、绑定端口号,启动服务。
实施例2、参照图3-图4说明本实施方式,一种基于TCP通讯协议下的传感器报文数据处理系统,包括API基础服务模块、 TCP通讯通用适配器组件服务模块和设备总线服务模块;所述API基础服务模块用于提供表增删改查功能;所述TCP通讯通用适配器组件服务模块用于对消息进行解析、封装和转发;所述设备总线服务模块用于实现消息接收分发、数据分析处理和存储。
所述TCP通讯通用适配器组件服务模块与多台直连设备实现双向通信;
所述TCP通讯通用适配器组件服务模块发送消息至设备总线服务器;设备总线服务器上行消息存储至数据库,下行消息发送至消息队列反馈回TCP通讯通用适配器组件服务模块;
所述API基础服务模块接收操作云平台的操作消息至设备总线服务模块,并反馈信息至操作云平台,具体的,结合图4说明上下行消息执行序列:
1)终端设备上报报文消息到Netty服务端;
2)上行消息通过自定义长度解码器(LengthFieldBasedFrameDecoder)拆包;
3)拆包完毕后调用消息编解码器(ByteToMessageCodec)解码方法进行解码;
4)消息编解码器解码方法内部调用已封装好的消息解析方法(BytesToJsonParseUtil)进行消息解码,将字节数据转为Json数据;
5)入站处理类(SimpleChannelInboundHandler)读取上行消息(Json数据);
6)获取应答消息,若需要应答,则往通道写入并刷新;
7)调用息编解码器(ByteToMessageCodec)编码方法进行编码;
8)消息编解码器编码方法内部调用已封装好的消息编码方法(JsonToBytesParseUtil)进行消息编码,将Json数据转为字节数据;
9)将字节数据写入缓存通道最终发送到终端设备;
10)消息应答完毕后,若上行消息是终端设备回复云平台下发指令结果,则将上行消息发送给RabbitMq消息队列,更新指令下发结果;否则将上行消息发送给Kafka消息队列,消息接收中心接收到消息后统一处理消息并入库。
具体的,API基础服务包括用户服务、系统服务和产品设备服务等,提供表的基本增删改查功能;
TCP通讯通用适配器组件服务模块负责消息解析、封装、转发;其它通用适配器组件服务,例如MQTT、NBIOT、LORA等,本实施例不做陈述;
设备总线服务模块实现消息接收分发中心,数据分析、处理、存储。
本系统的实现过程:
每对接一类新设备,在云平台配置好产品物模型,指定一个TCP服务端端口。点击“开启”后,后台自动创建一个TCP服务,该TCP服务会调用通用的适配器组件服务模块对消息进行解析/封装、处理及转发;点击“停用”后,后台自动关闭服务,销毁进程。
本说明书及说明书附图中出现的名词含义及功能:
RabbitMQ:消息队列;
LengthFieldBasedFrameDecoder:自定义长度帧解码器,解决TCP粘包问题;
SendMessageTask:发送消息;
Kafka:消息队列;
ByteToMessageCodec:字节到消息编解码器;
BytesToJsonParseUtil:上行消息解析工具类,将十六进制报文数据转为Json半结构化数据(云平台消息接收中心可识别)。
SimpleChannelInboundHandler:入站处理器类,完成对底层事件就绪的处理,连接建立断开、消息读取等。
JsonToBytesParseUtil:下行消息封装工具类,将Json半结构化数据转为十六进制报文数据(终端设备可识别)。
本发明的计算机装置可以是包括有处理器以及存储器等装置,例如包含中央处理器的单片机等。并且,处理器用于执行存储器中存储的计算机程序时实现上述的基于CREO软件的可修改由关系驱动的推荐数据的推荐方法的步骤。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
计算机可读存储介质实施例
本发明的计算机可读存储介质可以是被计算机装置的处理器所读取的任何形式的存储介质,包括但不限于非易失性存储器、易失性存储器、铁电存储器等,计算机可读存储介质上存储有计算机程序,当计算机装置的处理器读取并执行存储器中所存储的计算机程序时,可以实现上述的基于CREO软件的可修改由关系驱动的建模数据的建模方法的步骤。
所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

Claims (7)

1.一种传感器报文数据处理方法,其特征在于,包括以下步骤:
S1、在云平台配置产品物模型,物模型定义设备协议包体内容和服务启动相关参数;所述协议包体内容包括N个字段、内容、应答内容和其他内容;
S2、封装公用的消息解析相关工具类,包括:构建消息解析组件和消息封装;具体包括以下步骤:
S210、从缓存中获取协议包体内容;
S211、若包体内容存在开始/结束字,校验开始/结束字是否与期望值相等,不等则返回错误信息,否则继续下一步;
S212、若包体内容存在校验字,获取不校验下标和校验类型,得到期望校验字,判断当前校验字与期望校验字是否相等,不等则返回错误信息,否则继续下一步;
S213、获取设备标识、序列号和固定字节内容,若配置期望值,则判断当前值是否与期望值,不等则返回错误信息,否则继续下一步;
S214、获取消息类型,根据消息类型获取对应的上报报文内容格式,得到相应的数据包;
S215、解析完毕返回JSON数据;
所述构建消息解析组件需要根据协议字段赋值,所述构建消息解析组件赋值包括以下步骤:
S2101、获取当前字段数据类型,得到相应的处理类;
S2102、获取当前字段下标和长度,调用处理类将字节数组转换成其它类型的值;
S2103、判断当前字段是否配有期望值,若配有期望值则判断是否相等,不等则返回错误信息,否则继续下一步;
S2104、获取当前字段属性键,将计算值赋值给属性键;
S2105、判断当前是否有子属性,若有子属性,遍历子属性,重复上面操作,最后将列表数据赋值给子属性键;
S3、基于Netty框架创建继承指定类型的消息自定义处理服务、继承消息编解码服务;
S4、启用TCP服务端。
2.根据权利要求1所述的一种传感器报文数据处理方法,其特征在于,所述消息封装具体包括以下步骤:
S220、从缓存中获取协议包体内容;
S221、根据消息类型键值获取对应的可变字节内容,计算可变字节总长度;
S222、可变字节总长度加调整长度即为数据包长度;
S223、初始化字节数组,数组大小为数据包长度加固定长度;
S224、将开始字、结束字、设备标识、序列号、固定字节、可变字节以及数据长度值依次赋值成字节数组;
S225、获取不校验下标、校验类型,根据字节数组内容计算得到校验字,赋值给字节数组;
S226、封装完毕返回字节数组byte数据;
所述消息封装需要根据协议字段赋值,所述消息封装协议字段赋值包括以下步骤:
S2201、获取当前字段数据类型,得到相应的处理类;
S2202、获取当前字段下标和长度,调用处理类将json某个属性值转换成字节数组;
S2203、判断当前是否有子属性,若有子属性,遍历子属性,重复上面操作,最后将列表数据转换成字节数组。
3.根据权利要求2所述的一种传感器报文数据处理方法,其特征在于,所述继承指定类型的消息自定义处理服务用于实现通道激活、通道失效、用户事件触发和读取消息;
所述通道激活的方法:终端设备连上云平台时,生成UUID唯一标识,绑定到当前通道后,加入缓存;
所述通道失效的方法:终端设备断开连接时,获取当前通道的UUID唯一标识,从缓存中移除;
所述用户事件触发的方法:在产品物模型中配置了读取超时时间,若服务端长时间没有收到客户端的心跳消息,判断读写事件超时,服务端主动断开与客户端的连接;
所述读取消息的方法:终端设备发送消息到服务端,消息经过解码器时,此时获取到的数据已经是JSON数据;获取应答消息,若存在应答消息则发送应答消息给编码器,最终传到终端设备并且将JSON数据推送给Kafka消息队列;获取当前消息序列号,根据序列号获取下发消息任务,若存在下发任务则唤醒任务,将结果推送到RabbitMq消息队列;
所述继承消息编解码服务用于实现消息编码和消息解码;
所述消息编码的方法:调用S2封装好的公用的消息解析相关工具类将JSON数据转为字节数组;
所述消息解码的方法:调用S2封装好的公用的消息解析相关工具类将字节数组转为JSON数据。
4.根据权利要求3所述的一种传感器报文数据处理方法,其特征在于,所述启用TCP服务端具体包括以下步骤:
S410、先判断端口号有没有被占用,占用返回错误提示,否则继续下一步;
S420、创建一个服务端,绑定线程组;
S430、设置Option参数;
S440、设置ChannelPipeline过滤器添加处理器;
S450、绑定端口号,启动服务。
5.一种基于TCP通讯协议下的传感器报文数据处理系统,其特征在于,用于实现权利要求1-4任一项所述一种传感器报文数据处理方法的系统,包括API基础服务模块、 TCP通讯通用适配器组件服务模块和设备总线服务模块;所述API基础服务模块用于提供表增删改查功能;所述TCP通讯通用适配器组件服务模块用于对消息进行解析、封装和转发;所述设备总线服务模块用于实现消息接收分发、数据分析处理和存储;
所述TCP通讯通用适配器组件服务模块与多台直连设备实现双向通信;
所述TCP通讯通用适配器组件服务模块发送消息至设备总线服务器;设备总线服务器上行消息存储至数据库,下行消息发送至消息队列反馈回TCP通讯通用适配器组件服务模块;
所述API基础服务模块接收操作云平台的操作消息至设备总线服务模块,并反馈信息至操作云平台,上下行消息执行序列的方法:
1)终端设备上报报文消息到Netty服务端;
2)上行消息通过自定义长度解码器拆包;
3)拆包完毕后调用消息编解码器解码方法进行解码;
4)消息编解码器解码方法内部调用已封装好的消息解析方法进行消息解码,将字节数据转为Json数据,所述已封装好的消息解析方法为S2所述封装公用的消息解析相关工具类;
5)入站处理类读取上行消息;
6)获取应答消息,若需要应答,则往通道写入并刷新;
7)调用息编解码器编码方法进行编码;
8)消息编解码器编码方法内部调用已封装好的消息编码方法进行消息编码,将Json数据转为字节数据,所述已封装好的消息编码方法为S2所述封装公用的消息解析相关工具类;
9)将字节数据写入缓存通道最终发送到终端设备;
消息应答完毕后,若上行消息是终端设备回复云平台下发指令结果,则将上行消息发送给RabbitMq消息队列,更新指令下发结果;否则将上行消息发送给Kafka消息队列,消息接收中心接收到消息后统一处理消息并入库。
6.一种电子设备,其特征在于,包括存储器和处理器,存储器存储有计算机程序,所述的处理器执行所述计算机程序时实现权利要求1至4任一项所述的一种传感器报文数据处理方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述的一种传感器报文数据处理方法。
CN202210448739.3A 2022-04-24 2022-04-24 一种传感器报文数据处理方法、电子设备及存储介质 Active CN114553978B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210448739.3A CN114553978B (zh) 2022-04-24 2022-04-24 一种传感器报文数据处理方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210448739.3A CN114553978B (zh) 2022-04-24 2022-04-24 一种传感器报文数据处理方法、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN114553978A CN114553978A (zh) 2022-05-27
CN114553978B true CN114553978B (zh) 2022-08-23

Family

ID=81667728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210448739.3A Active CN114553978B (zh) 2022-04-24 2022-04-24 一种传感器报文数据处理方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114553978B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114928663A (zh) * 2022-06-02 2022-08-19 蜂助手股份有限公司 一种识别回调报文的方法及装置
CN115072502B (zh) * 2022-07-01 2023-11-07 猫岐智能科技(上海)有限公司 电梯终端服务器系统及控制方法
CN116028508B (zh) * 2023-03-27 2023-07-21 青岛鼎信通讯股份有限公司 一种上报存储方法、装置、电能表设备以及存储介质
CN116614565B (zh) * 2023-07-18 2023-10-10 河北六联通信科技有限公司 用于场景执法的多协议融合通信方法、平台、系统及介质
CN116934271B (zh) * 2023-08-08 2024-02-02 上海中汇亿达金融信息技术有限公司 业务处理方法、装置、电子设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111970353A (zh) * 2020-08-12 2020-11-20 北京轻停网络科技有限公司 云计算平台物联网中异构设备的数据处理方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110088011A1 (en) * 2009-10-14 2011-04-14 Vermeg Sarl Automated Enterprise Software Development
CN108667807B (zh) * 2018-04-11 2020-12-11 华南师范大学 一种基于监控云平台与网关的协议自适应方法及系统
CN109309599B (zh) * 2018-09-06 2020-09-22 华南理工大学 一种基于路灯硬件平台实现物联网设备高并发通信的方法
CN111404883B (zh) * 2020-03-02 2022-10-14 青岛聚好联科技有限公司 一种物联网设备通用协议的解析方法及装置
CN111683069B (zh) * 2020-05-28 2022-11-01 杭州隐捷适生物科技有限公司 一种基于netty框架的自定义通信协议及服务方法
CN112020034B (zh) * 2020-10-30 2021-02-19 深圳市爱夫卡科技股份有限公司 一种4G/5G T-Box车联网环保监测服务器、系统及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111970353A (zh) * 2020-08-12 2020-11-20 北京轻停网络科技有限公司 云计算平台物联网中异构设备的数据处理方法及装置

Also Published As

Publication number Publication date
CN114553978A (zh) 2022-05-27

Similar Documents

Publication Publication Date Title
CN114553978B (zh) 一种传感器报文数据处理方法、电子设备及存储介质
WO2018059137A1 (zh) 物联网终端接入装置及方法和计算机存储介质
CN111694797B (zh) 一种文件上传及解析方法、装置、服务器及介质
CN108984567B (zh) 一种业务数据管理系统及方法
CN112738216B (zh) 一种设备适配方法、装置、设备和计算机可读存储介质
CN112788128B (zh) 业务信息的推送方法、装置、存储介质及电子装置
CN109889894A (zh) 媒体文件解码方法、装置及存储介质
CN111552838A (zh) 数据处理方法及装置、计算机设备、存储介质
CN109861998B (zh) 一种基于北斗短报文协议的插件式动态解析系统及方法
CN111651140B (zh) 基于工作流的服务方法及装置
CN114416075A (zh) 业务处理方法及装置
CN110333916B (zh) 请求消息处理方法、装置、计算机系统及可读存储介质
CN109358845B (zh) 基于xmpp协议编写js代码的方法、工具及存储介质
CN107040613A (zh) 一种报文传输方法及系统
CN113794999A (zh) 一种短信分发方法、装置及存储介质
CN114024821A (zh) 一种北向接口的管理方法及装置
CN111176641B (zh) 流程节点执行方法、装置、介质及电子设备
CN112084099B (zh) 基于主机获取报警状态值的方法、装置、设备及存储介质
CN115052054A (zh) 通信报文配置方法、装置、可读存储介质及设备
CN113626001A (zh) 一种基于脚本的api动态编排方法及装置
CN111399842B (zh) 一种代码编译方法及装置
CN114785847B (zh) 网络控制软件开发配置方法、终端及存储介质
CN116954620A (zh) 数据处理方法、装置、电子设备和计算机可读存储介质
CN113296745B (zh) 数据的处理方法及装置、计算机可读存储介质、处理器
CN111399809B (zh) 一种rn和h5页面进行通信的方法、系统、装置、介质

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