DLT10376协议的netty decoder

发布时间:2026/7/10 23:04:40

DLT10376协议的netty decoder
应该有人会找这个吧谁用留个评论packagecom.wisdompoint.wpbuilder.io.zt.nettyserver.message;importcn.hutool.core.util.ArrayUtil;importcn.hutool.core.util.ByteUtil;importio.netty.buffer.ByteBuf;importio.netty.buffer.Unpooled;importio.netty.channel.ChannelHandlerContext;importio.netty.handler.codec.ByteToMessageDecoder;importorg.apache.commons.lang3.ArrayUtils;importjava.nio.ByteOrder;importjava.util.Arrays;importjava.util.List;publicclassDLT10376DecoderextendsByteToMessageDecoder{privatestaticfinalbyteHEADER0x68;privatestaticfinalbyteFOOTER0x16;/** * 起始字符 68H * 长度 3A01 * 长度 3A01 * 起始字符 68H * 控制域C * 地址域A * 链路用户数据 * 校验和CS * 结束字符 16H * * 长度 是控制域、地址域、链路用户数据之和 * */Overrideprotectedvoiddecode(ChannelHandlerContextchannelHandlerContext,ByteBufin,ListObjectout)throwsException{while(in.isReadable()){in.markReaderIndex();byteheaderBytein.readByte();if(headerByte!HEADER){continue;}byte[]headBytesnewbyte[5];in.readBytes(headBytes);byte[]L1ArrArrayUtils.subarray(headBytes,0,2);byte[]L2ArrArrayUtils.subarray(headBytes,2,4);bytesecondHeaderheadBytes[4];if(!Arrays.equals(L1Arr,L2Arr)||secondHeader!HEADER){continue;}// 小端序转 short (16位)shortlittleEndianValByteUtil.bytesToShort(L1Arr,ByteOrder.LITTLE_ENDIAN);// 右移2位intlength(littleEndianVal0xFFFF)2;// 78intreadableBytesin.readableBytes();if(readableByteslength2){in.resetReaderIndex();//可读数据不够 重置索引继续读取数据return;}byte[]restBytesnewbyte[length2];in.readBytes(restBytes);//判断最后一个if(restBytes[restBytes.length-1]!FOOTER){continue;}//组合整个报文帧byte[]framenewbyte[]{headerByte};frameArrayUtil.addAll(frame,headBytes,restBytes);booleanbvalidateFrame(frame);if(b){out.add(Unpooled.wrappedBuffer(frame));}}}/** * 计算报文帧的校验和 * param frame * return */booleanvalidateFrame(byte[]frame){if(frame[0]!HEADER){returnfalse;}intcsframe[frame.length-2]0xFF;intsum0;for(inti6;iframe.length-2;i){sum(sumframe[i])0xFF;}returncssum;}}

相关新闻

2026株洲黄金回收白银回收铂金回收旧料回收怎么选?五家高实价铂金白银线下门店测评清单 + 联系方式

2026株洲黄金回收白银回收铂金回收旧料回收怎么选?五家高实价铂金白银线下门店测评清单 + 联系方式

2026/7/7 17:46:55

株洲街头巷尾的黄金铂金白银回收店铺鳞次栉比,门面招牌参差不齐,报价更是五花八门,市民想要甄别靠谱变现渠道实属不易。小编此番实地走访,踏遍城区核心商圈,逐一核验各家资质与口碑,最终筛选出五家正规回收…

SQLServer

SQLServer

2026/7/7 17:46:55

1. 数据库简介是一款关系新数据库系统数据库(4个内置库,不能删除)master:存储所有登录账号、实例配置、数据库清单,实例核心model:新建数据库模板,所有自建库继承model配置msdb:定时…

MediaTek Genio 360(MT8366)芯片介绍

MediaTek Genio 360(MT8366)芯片介绍

2026/7/7 17:46:55

1. 产品核心定位Genio 360 是6nm 入门级边缘生成式 AI IoT 平台,主打「平价设备本地跑 2B 参数大模型」,填补中低端工业 / 商用 IoT 无原生端侧 GenAI 的市场空白,对标高通、瑞昱同价位边缘方案,核心卖点:低功耗 6nm、…

IaC 3.0使用实践总结

IaC 3.0使用实践总结

2026/7/10 23:01:58

基础设施即代码(Infrastructure as Code,简称IaC)理念的核心,是将基础设施的配置、部署和管控逻辑以代码形式固化,实现基础设施的自动化、可复用和可追溯。IaC 3.0是这一理念在2026年的最新实践形态,它不再…

数据可视化实战:D3 力导向图的大规模节点渲染与交互优化

数据可视化实战:D3 力导向图的大规模节点渲染与交互优化

2026/7/10 23:01:58

数据可视化实战:D3 力导向图的大规模节点渲染与交互优化 一、风控图谱上线后第三天,浏览器就崩了 某风控团队去年上线条目聚类图。灰度时段就遇到事故:节点刚过 2500,节点拖动时整页掉到 5 帧,IE 浏览器直接弹"脚…

2026多端抠图操作全解:手机,App、在线网站、电脑软件完整实操教程

2026多端抠图操作全解:手机,App、在线网站、电脑软件完整实操教程

2026/7/10 23:01:58

随着图片素材使用需求提升,抠图已经成为日常修图、电商作图、海报设计、证件照制作的基础操作。2026 年市面上可实现抠图的工具覆盖手机、网页、专业电脑软件、微信小程序四大渠道,不同工具适配不同使用场景,下文按使用设备分类整理完整分步操…

Ultimate ASI Loader终极指南:5分钟让任何游戏变身你的私人定制版

Ultimate ASI Loader终极指南:5分钟让任何游戏变身你的私人定制版

2026/7/10 23:01:58

Ultimate ASI Loader终极指南:5分钟让任何游戏变身你的私人定制版 【免费下载链接】Ultimate-ASI-Loader The Ultimate ASI Loader is a proxy DLL that loads custom .asi libraries into any game process. 项目地址: https://gitcode.com/gh_mirrors/ul/Ultima…

Terragrunt:TerraformOpenTofu 的编排利器

Terragrunt:TerraformOpenTofu 的编排利器

2026/7/10 23:01:58

文章目录Terragrunt:Terraform/OpenTofu 的编排利器解决什么问题核心能力现状和生态Terragrunt:Terraform/OpenTofu 的编排利器 Gruntwork 开源的 Terragrunt,Star 数 9691。这是一款基础设施编排工具,定位是让 Terraform 和 Ope…

酸度梯度控制的原理---(应用案例)

酸度梯度控制的原理---(应用案例)

2026/7/10 22:51:58

一、高压反应釜全流程系统概述 1.1 七段式预热-反应-闪蒸系统 印尼红土镍矿HPAL项目的高压反应釜系统通常由七段组成,形成完整的预热-反应-闪蒸热力循环: 段位 名称 温度范围 压力范围 功能 S1 低温预热段 60-120℃ 常压-0.2MPa 矿浆初步加热…

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

2026/7/10 22:32:48

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

6个月转型AI工程师:实战路径与核心技能

6个月转型AI工程师:实战路径与核心技能

2026/7/9 18:28:30

1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公…

YOLOv5模型剪枝与量化实战:边缘设备部署优化

YOLOv5模型剪枝与量化实战:边缘设备部署优化

2026/7/10 6:57:56

1. 项目背景与核心价值在计算机视觉领域,YOLOv5因其出色的实时检测性能成为工业界宠儿。但当我们尝试将其部署到边缘设备(如树莓派、Jetson Nano或手机终端)时,立刻会遇到两个致命问题:模型体积庞大(原始YO…

终极原神FPS解锁器完整指南:轻松突破60帧限制

终极原神FPS解锁器完整指南:轻松突破60帧限制

2026/7/10 0:00:42

终极原神FPS解锁器完整指南:轻松突破60帧限制 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 原神FPS解锁器是一款专为《原神》玩家设计的开源工具,通过先进的Wri…

YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?[特殊字符]

YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?[特殊字符]

2026/7/10 0:00:42

YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?🎵 【免费下载链接】YesPlayMusic 高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron: 项目地址: https://gitcode.com/gh_mirrors/ye/YesPlayMusic…

从零实现红黑树:手写C++的set与map容器

从零实现红黑树:手写C++的set与map容器

2026/7/10 0:00:42

1. 项目概述:从STL容器到自研轮子在C的日常开发中,std::set和std::map是我们再熟悉不过的伙伴了。它们一个负责管理不重复的集合,一个负责维护键值对映射,底层都依赖一颗高效的红黑树来保证数据的有序性和操作的性能。但你是否曾想…