- 博客(30)
- 收藏
- 关注
原创 基于Netty的CJT188协议解析与实现
CJT188(城镇建设行业标准)是用于热量表、水表、燃气表等计量仪表的通信协议标准,在物联网表示领域广泛应用。协议特点:1.基于主从结构的半双工通信2.采用DL/T645-2007扩展协议框架3.数据帧采用定长+变长结构4.支持多种数据类型的编码。
2025-03-14 13:41:06
280
原创 Zookeeper与Kafka学习笔记
采用层次化数据模型(Znode树结构),每个节点可存储<1MB数据。Topic逻辑分类,Partition物理分片(提升并发能力)环境要求:JDK8+、Zookeeper集群(建议3/5节点)数据变更通过版本号(Version)控制,实现乐观锁机制。ISR(In-Sync Replicas)机制保障高可用。分布式协调服务,用于维护配置/命名/同步等元数据。:解耦/削峰/异步通信,支持顺序性与回溯消费。:持久化存储+多副本机制,数据保留策略可配置。服务节点,负责消息持久化存储与副本同步。
2025-03-10 15:08:38
767
原创 IEC104协议解析
IEC104(IEC 60870-5-104)是电力系统中广泛使用的通信协议,基于TCP/IP实现主从站(SCADA与RTU/变电站设备)的实时数据交互。其核心功能包括:1.四遥操作:遥测(YC):采集电压、电流等模拟量数据(如类型标识0x0D)。遥信(YX):监测开关状态等数字量信号(如M_SP_NA_1单点遥信)。遥控(YK):远程控制断路器分合闸(如C_SC_NA_1指令)。遥调(YT):参数调节(如变压器分接头调整)。2.协议分层:APCI(应用协议控制信息):包含启动字
2025-03-07 13:33:51
296
原创 codewave初识
在开发的过程中需要对所写页面的效果查看,逻辑调试都可以通过ide自带的debug来进行调试,这个调试跟原来的debug是相同的,但是比较简陋,没有那么强大。优势:页面就是之前前端的一个个vue页面,他们这个平台方便之处就是将常用的页面组件都进行了封装,只需要对数据进行绑定便可以进行展示。在他们的ide上做开发前后端同时开发,页面通过拖动组件的方式编写,后端也是以可视化组件的形式拖动构建,所见即所得。每个页面或者页面组件的类似于之前的style、function、等功能,用于调整样式,绑定数据,触发事件。
2025-03-03 16:21:46
346
原创 CSS编程基础学习
1. CSS简介1. CSS简介1.1.CSS概念及作用HTML即超文本标记语言(HyperText Markup Language),是网页制作的基础,通过HTML,开发者可以定义网页的标题、段落、链接、图像、列表、表格、表单等元素。引入CSS 可以针对 HTML 里的各种元素进行样式的设置,让网页变得更加美观、易读、好用。可以理解为HTML 是整个web网页的骨架,CSS 就是网页的装饰,两者配合起来能做出好看又实用的网页。
2025-02-24 09:36:29
947
原创 电动汽车GB/T32960-2016协议介绍开发
在GB/T32960-2016协议中规定了电动汽车远程服务于管理系统中协议结构、通信连接、数据包结构与定义、数据单元格式与定义。本协议采用大端模式的网络字节序来传递字和双字。协议中传输的数据类型如下:通讯包结构组成如下:起始字节定义数据类型描述及要求0起始符STRING固定为ASCII字符‘##’,用“0x23,0x23”表示。2命令单元命令标识BYTE命令单元定义见后续说明。3应答标志BYTE4唯一识别码STRING。
2025-02-21 10:27:09
651
原创 HJ212环境监测数据传输协议
HJ212-2017协议采用ASCII码进行数据传输,数据包由多个字段组成,每个字段以分号(;)分隔。协议的基本结构如下:ST=xx;CN=xx;PW=xx;MN=xx;Flag=xx;CP=xx;CRC=xx\r\n系统类型,表示数据来源的系统类型。命令编号,表示数据包的类型。密码,用于身份验证。设备编号,唯一标识设备。标志位,表示数据的传输状态。数据段,包含具体的监测数据。校验码,用于数据完整性校验。
2025-02-14 16:07:58
563
原创 电能表DLT645协议解析
DLT645-2007协议是由中国电力公司发布的一种用于电能表与外部设备(如集抄终端)之间通信的标准协议。每帧数据包含起始符、地址域、控制域、数据域和校验码等信息。如下所示的是智能DLT645-2007通信时的控制码格式,通过不同的控制码,可以实现对电表进行写入或读取电表的数据信息。在DLT645-2007协议中,所有数据的传输都需要校验和控制,确保数据的正确性和可靠性。校验码:用于校验数据的完整性,通常采用LRC(纵向冗余校验)。数据域:包含实际传输的数据,长度可变。起始符:一般为“0x68”字节。
2025-02-08 15:30:46
450
原创 水文SL651协议解析
SL 651是国家水文局制定的用于水文监测数据通信的协议,它规定了水文监测数据采集与传输的格式、内容、传输方式等技术参数,支持通过TCP(安全性低,不推荐)和TLS两种方式接入设备。本文重点介绍通过TCP方式接入使用HEX格式传输报文方式的协议解析。由示例可看出每条报文头部固定为起始符、中心站、遥测站、密码;尾部固定为结束符、crc校验。每条报文包含的数据由功能码决定。我们在解析时根据功能码进行对不同报文的不同解析。以上便是我们对水文SL651协议的解析。如有出入之处欢迎大家指导交流。
2025-01-17 14:16:29
683
原创 使用Flink-JDBC将数据同步到Doris
Apache Flink和Doris是两个强大的工具,分别用于实时数据处理和大规模并行处理(MPP)SQL数据库。2、Doris:Doris(原百度Palo)是一个基于MPP架构的高性能、实时分析型数据库。1、Apache Flink:Flink是一个开源流处理框架,用于处理无界和有界数据流。4、依赖库:使用flink-connector-jdbc和Doris的JDBC驱动。1、安装Flink:确保你的环境中已经安装了Apache Flink。2、安装Doris:确保你的环境中已经安装并配置了Doris。
2025-01-13 10:28:31
725
原创 JT/T808 协议解析
在车辆安全方面,通过实时监控和追踪,可以及时发现车辆异常情况,如变更路线、事故等,以便及时采取应对措施。一旦接入成功,车载终端就可以向监控平台发送位置、状态、报警等信息,并接收来自监控平台的控制指令。通过以上步骤,车载终端可以成功通过JT/T808协议接入到监控平台,实现远程监管和服务的功能。车载终端会根据预设的上报间隔,定期向监控平台发送数据,包括位置信息、状态信息、报警信息等。监控平台在接收到注册信息后,会验证这些信息的有效性,并分配一个唯一的终端ID给车载终端。
2025-01-10 15:08:32
1078
原创 环保HJ212-2017协议介绍开发
新建类com.yanboot.iot.protocol.hj212.tcp.HJ212ProtocolCodec,根据SDK包开发规范完成协议报文的解析工作。实现com.yanboot.iot.sdk.protocol.ProtocolCodec接口,重写support方法,指定协议的唯一标识、名称、特性等内容。实现com.yanboot.iot.sdk.protocol.ProtocolCodec接口的decode方法,完成协议的解码工作。其中,数据段是整个通讯的核心数据,数据段是由。
2025-01-03 14:34:16
602
原创 flink+kafka实现流数据处理学习
在应用系统的建设过程中,通常都会遇到需要实时处理数据的场景,处理实时数据的框架有很多,本文将以一个示例来介绍flink+kafka在流数据处理中的应用。:是flink内置的kafka连接器,它允许Flink应用轻松地从Kafka中读取数据流(Source)或将数据流写入到Kafka(Sink)。flink作为kafka消费者,从kafka中消费数据并将消费到的数据转换为flink数据流;flink对处理之后的数据再次写入到kafka中,实现数据的流动。flink对获取到的数据流进行计算、聚合等操作;
2024-12-24 13:48:31
2353
原创 基于CentOS7系统初步搭建hadoop
Hadoop 是一个开源的分布式计算框架,广泛应用于大数据的存储与处理。在这篇文章中,小编将介绍如何在本地机器上搭建一个 Hadoop 环境,帮助你快速了解 Hadoop 的基本使用。在本教程中,我们将重点讲解如何安装和配置 Hadoop,并简单介绍如何使用它进行数据存储和处理。Hadoop 节点之间需要通过 SSH 进行通信,即使是单节点集群,也需要配置 SSH。一个用于处理大规模数据的计算模型,通过将任务分解成小的子任务并分发到集群中进行处理。提供更高层次的抽象和工具,用于简化大数据的处理和查询。
2024-12-04 09:07:26
922
原创 构建智慧工厂基石:深入剖析工业物联网常见传输协议
服务段收到FIN后,回复一个带有ACK标志的数据包给客户端,表示收到关闭请求,服务端再完成数据发送后也会给客户端发送一个FIN标志的数据包,表时服务端也准备关闭连接,客户端收到服务器的FIN后会返回一个ACK给服务端,表示收到。UDP通信的过程相对简单,不需要建立连接和进行数据包的顺序传输,因此它的传输速度较快,适用于对实时性要求较高的应用。HTTP是基于TCP的封装,并且规定了请求、响应的报文格式,HTTP是无状态协议,每个请求都是独立的,即服务端不需要记录客户端的状态。如果设备支持,可优先选用。
2024-11-27 16:47:39
787
原创 流式计算在工业物联网中的使用场景
这次给大家分享的是一款开源的时序库TDengine,它自带的流计算引擎提供了实时处理写入的数据流的能力,使用 SQL 定义实时流变换,当数据被写入流的源表后,数据会被以定义的方式自动处理,并根据定义的触发模式向目的表推送结果。在工业物联网应用场景中,在处理时序数据且不需要做过多的复杂处理时通过TDengine的流计算功能是一个轻量级且高效的解决方案,可以在开发过程中占用更少资源以更合适的方式处理流数据。当有数据流入到表t_ds中时符合流计算中定义的窗口数据会实时的统计到流计算创建的表t_ds_s_t中。
2024-11-22 11:34:50
921
原创 揭秘JDK21虚拟线程:十分钟掌握未来并发编程新利器!
虚拟线程是由JVM调度的,而不是操作系统。因此,在密集 IO 的场景,虚拟线程可以大幅提高线程的执行效率,减少线程资源的创建以及上下文切换。JVM 是一个多线程环境,它通过 java.lang.Thread 提供了对操作系统线程的抽象,但是Java中的线程都只是对操作系统线程的一种简单封装,可以称之为“平台线程”。虚拟线程则是通过平台线程(载体线程)来管理,一个平台线程可以在不同的时间执行不同的虚拟线程(多个虚拟线程挂载在一个平台线程上),当虚拟线程被阻塞或等待时,平台线程可以切换到执行另一个虚拟线程。
2024-11-19 15:27:33
335
原创 速成秘籍:十分钟掌握一种分布式实时监控类库
在我们的平台开发到一定阶段之时,线上的机器越来越多,接口调用也越来越频繁,此时就需要一些监控,从服务器资源,以及业务指标监控.经过一些相关文档的查询最终选择了Metric度量类库来作为完成监控工作的工具。以上两种则是我在近期的工作中所使用到的两种度量工具,用于统计接口的TPS或者一些需要计数的场景.至于其他三种工具感兴趣的朋友可以自行测试用法与上面两种用法相同,通过容器的获取然后调用即可触发监控。通过度量容器获得可以在调用的地方统计接口的请求数TPS,查询的次数QOS,并且根据时间来进行计算获取每秒的值。
2024-11-13 10:59:28
466
原创 AviatorScript学习文档
通过灵活的表达式配置可以应用在规则判断、公式计算、动态脚本控制以及数据ETL场合中,也能够应用在一些边缘计算的场景,根据提前定义好的条件规则对数据进行提前一步的处理。对象来给脚本中的变量赋值,可以实现根据用户填报的条件给变量进行不同赋值获取动态的运算结果,这样就极大给我们省了很多的代码编写,条件的比较过程我们可以交给。可以满足我们绝大多数场景下的使用需求,它非常的轻量,支持灵活的扩展,应用在项目中可以提高业务的灵活性,降低开发的工作量。同样的,我们也可以通过构建不同的。对象,对一个表达式进行反复求值。
2024-10-23 10:27:42
537
原创 工业物联网中的流式计算
在设备监控方面,Flink 利用其高效的流处理能力,通过工业物联网统一接入系统实时传来的设备数据,为企业的生产运营提供实时反馈。在事件时间与处理时间的处理上,Flink引入了水印(Watermarks)和时间窗口(Time Window)的概念,允许用户在事件时间语义下进行计算,即使在数据乱序到达的情况下也能保证结果的准确性。首先,在数据模型方面,Flink通过其核心的DataStream API支持流处理,该API基于轻量级的分布式快照算法,可以在保持状态一致性的同时,实现对无界流数据的实时处理。
2024-10-17 16:27:31
882
原创 SnailJob - 分布式任务重试与调度平台
服务端的负载均衡也是基于组 把不同的组分配到不同的服务端集群的其中一个节点。我们配置的为切片类型,因此在配置完定时任务后,我们启动两个不同端口的客户端,分组名为job_demo,点击执行该定时任务,两个客户端会收到不同的分片参数,如图所示。覆盖策略: 覆盖策略是指当新的任务批次产生时,如果上一个任务批次仍在处理中,将产生一个新的批次覆盖掉正在处理的批次,系统开始处理新的批次。丢弃策略: 丢弃策略是一种简单的阻塞策略,当处理速度无法跟上任务批次的产生速度时,新产生任务批次将被直接丢弃,从而保持系统的稳定性。
2024-10-15 14:30:31
1529
原创 Neuron在工业物联网统一接入系统中的使用
topic中的node_name是北向应用的名称,消息中的node和group为南向设备的名称和其中的分组,因为可能某些设备不支持读取单个点位,所以neuron优化了读取,每次读取一组点位.Neuron 是一款开源的、轻量级工业协议网关软件,支持数十种工业协议的一站式设备连接、数据接入、MQTT 协议转换,为工业设备赋予工业 4.0 时代关键的物联网连接能力。通过往固定的topic”/neuron/{node_name}/read/req”发送消息,来读取指定的设备,指定点位的数据。
2024-10-11 16:15:01
1084
原创 大数据开源技术-Hadoop学习笔记
想象一下,在原来只采集一栋楼宇的电量用度、温度变化时一天可能只会有少量的数据,现在随着发展在整个城市中都部署有大量的采集器,这时候数据的生成就不是一开始的时候可以想到的了,也不能通过传统的系统再去采集这么大量的数据。我们对采集到大量的数据进行建模分析,从中挖掘更深层的价值,比如通过对某地近两年来河流的水流量采集可以更好的预测汛期,发出更精准的预警,从而避免造成损失。随着发展可能由原来单一的结构化的数据变化为多样的数据,比如说通过摄像头采集到的视频信息、通过用户通过不同途径上传的文件等。
2024-10-08 11:02:11
1048
原创 Sa-Token
这里针对如下环境来讲一下32依赖关系他们分别对应有如下依赖。33sa-token-servlet仅仅是实现了前面context章节的SaStorage、SaRequest、SaResponse接口,并定义了一些错误码。34sa-token-spring-boot-starter也很简单,关于SpringBoot的自动装配原理就不多讲了,这里看resource/META-INF/spring.factories文件,其实SpringBoot2.7之后就换了,下面会提到。
2024-09-29 15:09:39
886
原创 Modbus TCP通信协议介绍及示例详解
Modbus是一种广泛应用于工业自动化领域的通信协议, Modbus提供了通用的语言在设备之间建立主从式的通信,Modbus协议简单、开放、易于实现,且支持多种物理层通信介质(RS232、RS485、TCP/IP网络等),因此成为了工业领域通信协议的业界标准之一。Modbus TCP是Modbus协议在以太网上的一种实现,它保留了Modbus协议的核心功能和数据模型,但对消息封装进行了调整,使其符合TCP/IP的要求。事务标识符:占2个字节,一次通信的过程中主站和从站的报文帧的事务标识符是一致的。
2024-09-25 12:09:28
19787
2
原创 Netty如何解决TCP粘包/拆包问题?
TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是所谓的TCP粘包和拆包问题。造成TCP协议粘包/拆包问题的原因是TCP协议数据传输是基于字节流的,它不包含消息、数据包等概念,是无界的,需要应用层协议自己设计消息的边界,即消息帧(Message Framing)。1.消息长度固定,累计读取到长度和为定长LEN的报文后,就认为读取到了一个完整的信息。
2024-09-23 13:14:07
738
原创 PowerJob进阶—MapProcessor
此处理器则是在MapProcessor处理器基础上,添加了reduce()方法,在实现该接口时除了需要重写process方法外还需要重写reduce方法.reduce方法则是根据process()方法的返回值,对子任务的执行状态进行统计,方便后续对子任务的计算操作,单此处理器在执行计算统计时,需要对数据库进行全量扫描,对节点内存压力过大,谨慎使用,如果只是简单的对任务进行拆分,不需要后续再对子任务处理结果进行计算操作,MapProcessor即可进行处理。此时则需要检查,创建任务的参数是否填选正确。
2024-09-19 10:32:56
999
原创 netty菜鸟入门秘籍
可以理解为数据在客户端和服务器之间的通道。打个比喻,每个 Channel 是一个产品的加工车间,Pipeline 是车间中的流水线,ChannelHandler 就是流水线上的各道工序,而后面要讲的 ByteBuf 是原材料,经过很多工序的加工:先经过一道道入站工序,再经过一道道出站工序最终变成产品。(2) 协议支持:工业物联网中常用的通信协议有 MQTT、CoAP、AMQP 等,而 Netty 提供了灵活的网络编程接口和丰富的协议支持,可以轻松地实现对这些协议的解析和处理,从而实现设备之间的可靠通信。
2024-09-13 12:05:43
965
原创 PowerJob——实现接入设备的定时任务调度
(2)广播处理器:广播执行的策略下,所有机器都会被调度执行该任务。如上图所示,拉取工程之后其中powerjob-server是调度服务器,提供任务调度以及web端管理页面功能,powerjob-worker-samples,为官方已经编写好的实例程序不做过多赘述,其中powerjob-work是我们需要编写辨析任务逻辑的模块。(3) 并行处理器:MapReduce 是最复杂也是最强大的一种执行器,它允许开发者完成任务的拆分,将子任务派发到集群中其他Worker 执行,是执行大批量处理任务的不二之选。
2024-09-11 10:10:44
665
原创 MQTT协议介绍及Java教程
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅模式的"轻量级"通讯协议,它和 Modbus TCP 一样都是基于 TCP/IP 之上的应用层协议。QoS=1:最少发送一次,订阅方接收到消息之后发送响应给发布方,如果发布方没收到响应会重新发送消息,直到接收到响应为止,消息可能会重复。在发布的时候不能用通配符下发到多个主题中。QoS=0:最多发送一次,订阅方不会发送接收到消息的响应,发布方也不会重新发送消息,消息可能会丢失。
2024-09-05 14:47:58
1048
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人