From 1bf9a2d40adebdd6029740defd901169033b806c Mon Sep 17 00:00:00 2001 From: weitang Date: Tue, 27 May 2025 16:25:26 +0800 Subject: [PATCH] =?UTF-8?q?iec104=E5=8D=8F=E8=AE=AE=E5=AF=BC=E5=8C=85?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iec104/client/IIEC104Service.java | 3 +- .../iec104/client/MasterSysDataHandler.java | 2 +- .../iec104/common/BasicInstruction104.java | 4 +- .../iec104/core/ControlManageUtil.java | 2 +- .../component/iec104/core/Decoder104.java | 4 +- .../component/iec104/core/Encoder104.java | 4 +- .../iec104/message/MessageDetail.java | 3 +- .../server/handler/Check104Handler.java | 5 +- .../iec104/server/handler/DataDecoder.java | 10 +- .../iec104/server/handler/DataEncoder.java | 6 +- .../server/handler/SysSframeHandler.java | 4 +- .../handler/SysUframeClientHandler.java | 4 +- .../slave/handler/SysUframeServerHandler.java | 4 +- .../component/iec104/util/ByteUtil.java | 102 +++++++++--------- .../component/iec104/util/Iec104Util.java | 2 +- 15 files changed, 78 insertions(+), 81 deletions(-) diff --git a/riis-system/src/main/java/com/yfd/platform/component/iec104/client/IIEC104Service.java b/riis-system/src/main/java/com/yfd/platform/component/iec104/client/IIEC104Service.java index b94ad21..e7c0f71 100644 --- a/riis-system/src/main/java/com/yfd/platform/component/iec104/client/IIEC104Service.java +++ b/riis-system/src/main/java/com/yfd/platform/component/iec104/client/IIEC104Service.java @@ -10,6 +10,7 @@ import com.yfd.platform.component.iec104.message.MessageDetail; import com.yfd.platform.component.iec104.message.MessageInfo; import com.yfd.platform.component.iec104.server.master.BootNettyClientChannel; import com.yfd.platform.component.iec104.server.master.BootNettyClientChannelCache; +import com.yfd.platform.component.iec104.util.Iec104Util; import com.yfd.platform.modules.auxcontrol.domain.DeviceSignal; import com.yfd.platform.modules.auxcontrol.domain.GatewayDevice; import com.yfd.platform.modules.auxcontrol.domain.MeterDevice; @@ -101,7 +102,7 @@ public class IIEC104Service { // 发送序号 short send = 0; //控制欲 - byte[] control = com.ydl.iec.util.Iec104Util.getIcontrol(accept, send); + byte[] control = Iec104Util.getIcontrol(accept, send); //类型标识 2D TypeIdentifierEnum typeIdentifierEnum = null; // 消息地址 总召唤地址为0 diff --git a/riis-system/src/main/java/com/yfd/platform/component/iec104/client/MasterSysDataHandler.java b/riis-system/src/main/java/com/yfd/platform/component/iec104/client/MasterSysDataHandler.java index 36388ba..127dbfd 100644 --- a/riis-system/src/main/java/com/yfd/platform/component/iec104/client/MasterSysDataHandler.java +++ b/riis-system/src/main/java/com/yfd/platform/component/iec104/client/MasterSysDataHandler.java @@ -1,13 +1,13 @@ package com.yfd.platform.component.iec104.client; import cn.hutool.core.util.ObjUtil; -import com.ydl.iec.util.ByteUtil; import com.yfd.platform.component.iec104.message.MessageDetail; import com.yfd.platform.component.iec104.message.MessageInfo; import com.yfd.platform.component.iec104.server.handler.ChannelHandler; import com.yfd.platform.component.iec104.server.handler.DataHandler; import com.yfd.platform.component.iec104.server.master.BootNettyClientChannel; import com.yfd.platform.component.iec104.server.master.BootNettyClientChannelCache; +import com.yfd.platform.component.iec104.util.ByteUtil; import com.yfd.platform.modules.auxcontrol.service.IDeviceSignalService; import com.yfd.platform.modules.auxcontrol.service.IDeviceWorkDataService; import com.yfd.platform.modules.auxcontrol.service.IGatewayDeviceService; diff --git a/riis-system/src/main/java/com/yfd/platform/component/iec104/common/BasicInstruction104.java b/riis-system/src/main/java/com/yfd/platform/component/iec104/common/BasicInstruction104.java index 877577b..f2874af 100644 --- a/riis-system/src/main/java/com/yfd/platform/component/iec104/common/BasicInstruction104.java +++ b/riis-system/src/main/java/com/yfd/platform/component/iec104/common/BasicInstruction104.java @@ -7,8 +7,8 @@ import com.yfd.platform.component.iec104.message.MessageInfo; import com.yfd.platform.component.iec104.enums.QualifiersEnum; import com.yfd.platform.component.iec104.enums.TypeIdentifierEnum; import com.yfd.platform.component.iec104.enums.UControlEnum; -import com.ydl.iec.util.ByteUtil; -import com.ydl.iec.util.Iec104Util; +import com.yfd.platform.component.iec104.util.ByteUtil; +import com.yfd.platform.component.iec104.util.Iec104Util; import java.io.IOException; import java.text.SimpleDateFormat; diff --git a/riis-system/src/main/java/com/yfd/platform/component/iec104/core/ControlManageUtil.java b/riis-system/src/main/java/com/yfd/platform/component/iec104/core/ControlManageUtil.java index 8bc0c1b..81f4094 100644 --- a/riis-system/src/main/java/com/yfd/platform/component/iec104/core/ControlManageUtil.java +++ b/riis-system/src/main/java/com/yfd/platform/component/iec104/core/ControlManageUtil.java @@ -2,7 +2,7 @@ package com.yfd.platform.component.iec104.core; import com.yfd.platform.component.iec104.common.Iec104Constant; import com.yfd.platform.component.iec104.message.MessageDetail; -import com.ydl.iec.util.Iec104Util; +import com.yfd.platform.component.iec104.util.Iec104Util; import com.yfd.platform.component.utils.OptimizedThreadPool; import io.netty.channel.ChannelHandlerContext; import org.slf4j.Logger; diff --git a/riis-system/src/main/java/com/yfd/platform/component/iec104/core/Decoder104.java b/riis-system/src/main/java/com/yfd/platform/component/iec104/core/Decoder104.java index 40016f1..ff916d8 100644 --- a/riis-system/src/main/java/com/yfd/platform/component/iec104/core/Decoder104.java +++ b/riis-system/src/main/java/com/yfd/platform/component/iec104/core/Decoder104.java @@ -1,11 +1,11 @@ package com.yfd.platform.component.iec104.core; -import com.ydl.iec.util.Iec104Util; import com.yfd.platform.component.iec104.message.MessageDetail; import com.yfd.platform.component.iec104.message.MessageInfo; import com.yfd.platform.component.iec104.enums.QualifiersEnum; import com.yfd.platform.component.iec104.enums.TypeIdentifierEnum; -import com.ydl.iec.util.ByteUtil; +import com.yfd.platform.component.iec104.util.ByteUtil; +import com.yfd.platform.component.iec104.util.Iec104Util; import java.text.SimpleDateFormat; import java.util.ArrayList; diff --git a/riis-system/src/main/java/com/yfd/platform/component/iec104/core/Encoder104.java b/riis-system/src/main/java/com/yfd/platform/component/iec104/core/Encoder104.java index 010f6da..943af72 100644 --- a/riis-system/src/main/java/com/yfd/platform/component/iec104/core/Encoder104.java +++ b/riis-system/src/main/java/com/yfd/platform/component/iec104/core/Encoder104.java @@ -4,8 +4,8 @@ import com.yfd.platform.component.iec104.enums.QualifiersEnum; import com.yfd.platform.component.iec104.enums.TypeIdentifierEnum; import com.yfd.platform.component.iec104.message.MessageDetail; import com.yfd.platform.component.iec104.message.MessageInfo; -import com.ydl.iec.util.ByteUtil; -import com.ydl.iec.util.Iec104Util; +import com.yfd.platform.component.iec104.util.ByteUtil; +import com.yfd.platform.component.iec104.util.Iec104Util; import java.io.ByteArrayOutputStream; import java.io.IOException; diff --git a/riis-system/src/main/java/com/yfd/platform/component/iec104/message/MessageDetail.java b/riis-system/src/main/java/com/yfd/platform/component/iec104/message/MessageDetail.java index d4839e4..59bd53e 100644 --- a/riis-system/src/main/java/com/yfd/platform/component/iec104/message/MessageDetail.java +++ b/riis-system/src/main/java/com/yfd/platform/component/iec104/message/MessageDetail.java @@ -1,8 +1,7 @@ package com.yfd.platform.component.iec104.message; - -import com.ydl.iec.util.Iec104Util; import com.yfd.platform.component.iec104.enums.QualifiersEnum; import com.yfd.platform.component.iec104.enums.TypeIdentifierEnum; +import com.yfd.platform.component.iec104.util.Iec104Util; import lombok.Data; import java.util.ArrayList; diff --git a/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/Check104Handler.java b/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/Check104Handler.java index 4f3aa5b..8d78261 100644 --- a/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/Check104Handler.java +++ b/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/Check104Handler.java @@ -3,9 +3,8 @@ package com.yfd.platform.component.iec104.server.handler; import com.yfd.platform.component.iec104.common.Iec104Constant; import com.yfd.platform.component.iec104.server.master.BootNettyClientChannel; import com.yfd.platform.component.iec104.server.master.BootNettyClientChannelCache; -import com.ydl.iec.util.ByteUtil; +import com.yfd.platform.component.iec104.util.ByteUtil; import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.util.ReferenceCountUtil; @@ -39,7 +38,7 @@ public class Check104Handler extends ChannelInboundHandlerAdapter { result.readBytes(bytes); BootNettyClientChannel Channel= BootNettyClientChannelCache.get(ctx.channel().id().asShortText()); String slave_ip= Channel.getCode(); - LOGGER.info( String.format("接收到从站[%s]发送的报文: %s", slave_ip,ByteUtil.byteArrayToHexString(bytes) )); + LOGGER.info( String.format("接收到从站[%s]发送的报文: %s", slave_ip, ByteUtil.byteArrayToHexString(bytes) )); if (bytes.length < Iec104Constant.APCI_LENGTH || bytes[0] != Iec104Constant.HEAD_DATA) { LOGGER.error("报文无效"); ReferenceCountUtil.release(result); diff --git a/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/DataDecoder.java b/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/DataDecoder.java index cfb0023..d6e8ba5 100644 --- a/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/DataDecoder.java +++ b/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/DataDecoder.java @@ -1,16 +1,14 @@ package com.yfd.platform.component.iec104.server.handler; -import com.yfd.platform.component.iec104.core.Iec104ThreadLocal; -import com.ydl.iec.util.Iec104Util; + import com.yfd.platform.component.iec104.core.Decoder104; +import com.yfd.platform.component.iec104.core.Iec104ThreadLocal; import com.yfd.platform.component.iec104.message.MessageDetail; -import com.ydl.iec.util.ByteUtil; +import com.yfd.platform.component.iec104.util.ByteUtil; +import com.yfd.platform.component.iec104.util.Iec104Util; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; -import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.handler.codec.ByteToMessageDecoder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.util.List; diff --git a/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/DataEncoder.java b/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/DataEncoder.java index 26ea196..bba098f 100644 --- a/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/DataEncoder.java +++ b/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/DataEncoder.java @@ -2,10 +2,10 @@ package com.yfd.platform.component.iec104.server.handler; import com.yfd.platform.component.iec104.core.Iec104ThreadLocal; -import com.ydl.iec.util.Iec104Util; import com.yfd.platform.component.iec104.core.Encoder104; import com.yfd.platform.component.iec104.message.MessageDetail; -import com.ydl.iec.util.ByteUtil; +import com.yfd.platform.component.iec104.util.ByteUtil; +import com.yfd.platform.component.iec104.util.Iec104Util; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToByteEncoder; @@ -35,7 +35,7 @@ public class DataEncoder extends MessageToByteEncoder { } bytes[10] = terminalAddressBytes[0]; bytes[11] = terminalAddressBytes[1]; - String hexString=ByteUtil.byteArrayToHexString(bytes); + String hexString= ByteUtil.byteArrayToHexString(bytes); log.info(hexString); out.writeBytes(bytes); diff --git a/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/SysSframeHandler.java b/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/SysSframeHandler.java index d0758ee..11a8833 100644 --- a/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/SysSframeHandler.java +++ b/riis-system/src/main/java/com/yfd/platform/component/iec104/server/handler/SysSframeHandler.java @@ -1,8 +1,8 @@ package com.yfd.platform.component.iec104.server.handler; import com.yfd.platform.component.iec104.common.Iec104Constant; -import com.ydl.iec.util.Iec104Util; -import com.ydl.iec.util.ByteUtil; +import com.yfd.platform.component.iec104.util.ByteUtil; +import com.yfd.platform.component.iec104.util.Iec104Util; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; diff --git a/riis-system/src/main/java/com/yfd/platform/component/iec104/server/master/handler/SysUframeClientHandler.java b/riis-system/src/main/java/com/yfd/platform/component/iec104/server/master/handler/SysUframeClientHandler.java index f392fca..e7bb219 100644 --- a/riis-system/src/main/java/com/yfd/platform/component/iec104/server/master/handler/SysUframeClientHandler.java +++ b/riis-system/src/main/java/com/yfd/platform/component/iec104/server/master/handler/SysUframeClientHandler.java @@ -4,8 +4,8 @@ import com.yfd.platform.component.iec104.core.Iec104ThreadLocal; import com.yfd.platform.component.iec104.enums.UControlEnum; import com.yfd.platform.component.iec104.server.master.BootNettyClientChannel; import com.yfd.platform.component.iec104.server.master.BootNettyClientChannelCache; -import com.ydl.iec.util.ByteUtil; -import com.ydl.iec.util.Iec104Util; +import com.yfd.platform.component.iec104.util.ByteUtil; +import com.yfd.platform.component.iec104.util.Iec104Util; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; diff --git a/riis-system/src/main/java/com/yfd/platform/component/iec104/server/slave/handler/SysUframeServerHandler.java b/riis-system/src/main/java/com/yfd/platform/component/iec104/server/slave/handler/SysUframeServerHandler.java index 55cb175..aef4353 100644 --- a/riis-system/src/main/java/com/yfd/platform/component/iec104/server/slave/handler/SysUframeServerHandler.java +++ b/riis-system/src/main/java/com/yfd/platform/component/iec104/server/slave/handler/SysUframeServerHandler.java @@ -1,9 +1,9 @@ package com.yfd.platform.component.iec104.server.slave.handler; import com.yfd.platform.component.iec104.common.BasicInstruction104; -import com.ydl.iec.util.Iec104Util; import com.yfd.platform.component.iec104.enums.UControlEnum; -import com.ydl.iec.util.ByteUtil; +import com.yfd.platform.component.iec104.util.ByteUtil; +import com.yfd.platform.component.iec104.util.Iec104Util; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; diff --git a/riis-system/src/main/java/com/yfd/platform/component/iec104/util/ByteUtil.java b/riis-system/src/main/java/com/yfd/platform/component/iec104/util/ByteUtil.java index 0a84074..2422a39 100644 --- a/riis-system/src/main/java/com/yfd/platform/component/iec104/util/ByteUtil.java +++ b/riis-system/src/main/java/com/yfd/platform/component/iec104/util/ByteUtil.java @@ -1,25 +1,25 @@ -package com.ydl.iec.util; +package com.yfd.platform.component.iec104.util; import java.io.ByteArrayOutputStream; import java.util.Calendar; import java.util.Date; /** - * -* @ClassName: ByteUtil -* @Description: byte 工具类 -* @author YDL + * +* @ClassName: ByteUtil +* @Description: byte 工具类 +* @author YDL * @date 2020年5月13日 */ public class ByteUtil { - + /** - * - * @Title: intToByteArray - * @Description: int 转换成 byte数组 + * + * @Title: intToByteArray + * @Description: int 转换成 byte数组 * @param @param i - * @param @return - * @return byte[] + * @param @return + * @return byte[] * @throws */ public static byte[] intToByteArray(int i) { @@ -30,13 +30,13 @@ public class ByteUtil { result[3] = (byte) (i & 0xFF); return result; } - + /** - * @Title: shortToByteArray - * @Description: short 转换成 byte[] + * @Title: shortToByteArray + * @Description: short 转换成 byte[] * @param @param val - * @param @return - * @return byte[] + * @param @return + * @return byte[] * @throws */ public static byte[] shortToByteArray(short val) { @@ -45,14 +45,14 @@ public class ByteUtil { b[1] = (byte) (val & 0xff); return b; } - + /** - * - * @Title: byteArrayToInt + * + * @Title: byteArrayToInt * @Description: byte[] 转换成 int * @param @param bytes - * @param @return - * @return int + * @param @return + * @return int * @throws */ public static int byteArrayToInt(byte[] bytes) { @@ -63,14 +63,14 @@ public class ByteUtil { } return value; } - + /** - * - * @Title: byteArrayToShort - * @Description: byte[] 转换成short + * + * @Title: byteArrayToShort + * @Description: byte[] 转换成short * @param @param bytes - * @param @return - * @return short + * @param @return + * @return short * @throws */ public static short byteArrayToShort(byte[] bytes) { @@ -81,15 +81,15 @@ public class ByteUtil { } return value; } - - + + // /** -// * -// * @Title: listToBytes -// * @Description: TODO +// * +// * @Title: listToBytes +// * @Description: TODO // * @param @param byteList -// * @param @return -// * @return byte[] +// * @param @return +// * @return byte[] // * @throws // */ // public static byte[] listToBytes(List byteList) { @@ -100,40 +100,40 @@ public class ByteUtil { // } // return bytes; // } - + /** - * - * @Title: date2HByte + * + * @Title: date2HByte * @Description: 日期转换成 CP56Time2a * @param @param date - * @param @return - * @return byte[] + * @param @return + * @return byte[] * @throws */ public static byte[] date2Hbyte(Date date) { ByteArrayOutputStream bOutput = new ByteArrayOutputStream(); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); - // 毫秒需要转换成两个字节其中 低位在前高位在后 + // 毫秒需要转换成两个字节其中 低位在前高位在后 // 先转换成short int millisecond = calendar.get(Calendar.SECOND) * 1000 + calendar.get(Calendar.MILLISECOND); - + // 默认的高位在前 byte[] millisecondByte = intToByteArray(millisecond); bOutput.write((byte) millisecondByte[3]); bOutput.write((byte) millisecondByte[2]); - - // 分钟 只占6个比特位 需要把前两位置为零 + + // 分钟 只占6个比特位 需要把前两位置为零 bOutput.write((byte) calendar.get(Calendar.MINUTE)); // 小时需要把前三位置零 bOutput.write((byte) calendar.get(Calendar.HOUR_OF_DAY)); - // 星期日的时候 week 是0 + // 星期日的时候 week 是0 int week = calendar.get(Calendar.DAY_OF_WEEK); if (week == Calendar.SUNDAY) { week = 7; } else { week--; - } + } // 前三个字节是 星期 因此需要将星期向左移5位 后五个字节是日期 需要将两个数字相加 相加之前需要先将前三位置零 bOutput.write((byte) (week << 5) + (calendar.get(Calendar.DAY_OF_MONTH))); // 前四字节置零 @@ -141,15 +141,15 @@ public class ByteUtil { bOutput.write((byte) (calendar.get(Calendar.YEAR) - 2000)); return bOutput.toByteArray(); } - - + + /** - * - * @Title: date2HByte + * + * @Title: date2HByte * @Description:CP56Time2a转换成 时间 * @param @param date - * @param @return - * @return byte[] + * @param @return + * @return byte[] * @throws */ public static Date byte2Hdate(byte[] dataByte) { diff --git a/riis-system/src/main/java/com/yfd/platform/component/iec104/util/Iec104Util.java b/riis-system/src/main/java/com/yfd/platform/component/iec104/util/Iec104Util.java index 1a7363c..e838c61 100644 --- a/riis-system/src/main/java/com/yfd/platform/component/iec104/util/Iec104Util.java +++ b/riis-system/src/main/java/com/yfd/platform/component/iec104/util/Iec104Util.java @@ -1,4 +1,4 @@ -package com.ydl.iec.util; +package com.yfd.platform.component.iec104.util; import com.yfd.platform.component.iec104.message.MessageDetail; import com.yfd.platform.component.iec104.enums.TypeIdentifierEnum;