From 5e21da954b3638b3087f0a4ca327d299508acce3 Mon Sep 17 00:00:00 2001 From: Lemon Date: Tue, 29 Apr 2025 16:10:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=200xDB=E5=8D=8F=E8=AE=AE?= =?UTF-8?q?=E8=A7=A3=E6=9E=90Handler?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/domain/ykc/YKCFrameTypeCode.java | 2 + .../UploadPileFaultRecordHandler.java | 71 +++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/UploadPileFaultRecordHandler.java diff --git a/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/YKCFrameTypeCode.java b/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/YKCFrameTypeCode.java index 696065e59..0c4d2dd29 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/YKCFrameTypeCode.java +++ b/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/YKCFrameTypeCode.java @@ -102,6 +102,8 @@ public enum YKCFrameTypeCode { SETTING_PILE_WORK_PARAMS_CODE(0x28, " 平台设置工作参数"), SETTING_PILE_WORK_PARAMS_ANSWER_CODE(0x29, "平台设置工作参数回复"), + UPLOAD_PILE_FAULT_RECORD_CODE(0xDB, "上传桩端故障记录"), + // 自定义FrameType PILE_LOG_OUT(9999, "充电桩退出"), diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/UploadPileFaultRecordHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/UploadPileFaultRecordHandler.java new file mode 100644 index 000000000..c11626e33 --- /dev/null +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/UploadPileFaultRecordHandler.java @@ -0,0 +1,71 @@ +package com.jsowell.netty.handler.yunkuaichong; + +import com.jsowell.common.core.domain.ykc.YKCDataProtocol; +import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode; +import com.jsowell.common.util.BytesUtil; +import com.jsowell.common.util.YKCUtils; +import com.jsowell.netty.factory.YKCOperateFactory; +import io.netty.channel.ChannelHandlerContext; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 0xDB + * 上传桩端故障记录 + * + * @author Lemon + * @Date 2025/4/29 15:09:13 + */ +@Slf4j +@Component +public class UploadPileFaultRecordHandler extends AbstractYkcHandler{ + private final String type = YKCUtils.frameType2Str(YKCFrameTypeCode.UPLOAD_PILE_FAULT_RECORD_CODE.getBytes()); + + @Override + public void afterPropertiesSet() throws Exception { + YKCOperateFactory.register(type, this); + } + + @Override + public byte[] supplyProcess(YKCDataProtocol ykcDataProtocol, ChannelHandlerContext channel) { + // 获取消息体 + byte[] msgBody = ykcDataProtocol.getMsgBody(); + // log.info("上传实时数据msgBody:{}", BytesUtil.bcd2Str(msgBody)); + int startIndex = 0; + int length = 7; + + // 桩编码 + byte[] pileSnByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + String pileSn = BytesUtil.bcd2Str(pileSnByteArr); + + startIndex += length; + // 自定义参数 + byte[] params = BytesUtil.copyBytes(msgBody, startIndex, msgBody.length - 7); + String paramsStr = BytesUtil.bin2HexStr(params); + + log.info("【==接收到桩端故障记录==】, 桩编号:{}, 自定义参数:{}", pileSn, paramsStr); + + return null; + } + + public static void main(String[] args) { + String msg = "88240000010058c001e907041d0209320d5e0250354633594230300500000005000000e90040004f010000000055504e511080"; + // 获取消息体 + byte[] msgBody = BytesUtil.str2Bcd(msg); + // log.info("上传实时数据msgBody:{}", BytesUtil.bcd2Str(msgBody)); + int startIndex = 0; + int length = 7; + + // 桩编码 + byte[] pileSnByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + String pileSn = BytesUtil.bcd2Str(pileSnByteArr); + + startIndex += length; + // 自定义参数 + byte[] params = BytesUtil.copyBytes(msgBody, startIndex, msgBody.length - 7); + String paramsStr = BytesUtil.bin2HexStr(params); + + log.info("【==接收到桩端故障记录==】, 桩编号:{}, 自定义参数:{}", pileSn, paramsStr); + } + +}