easymodbus4j开发_easymodbus4j 日志工具类

本文介绍了easymodbus4j库中的ModbusFrameUtil工具类,用于处理Modbus帧的日志记录。通过展示如何使用该工具类将Modbus帧转换为不同格式的日志输出,包括Hex、BitSet、数值类型等,并提供了详细的日志格式示例。
摘要由CSDN通过智能技术生成

easymodbus4j 日志工具类

easymodbus4j 日志工具类

```

maven:

easymodbus4j-core

com.github.zengfr

0.0.1

```

public class ModbusFrameUtil {

private static String splitLine = PadUtil.padLeft("-", 128, '-');

public static void showFrameLog(InternalLogger logger, Channel channel, ModbusFrame frame) {

byte[] bytes = ByteBufUtil.toBytes(frame.encode());

String v1 = HexUtil.bytesToHexString(bytes, " ");

String v2 = frame.toString();

StringBuilder sBuilder = new StringBuilder();

sBuilder.append(String.format("%s", getChannelAddress(channel)));

sBuilder.append(String.format("\r\n%s", splitLine));

sBuilder.append(String.format("\r\n%s", v1));

sBuilder.append(String.format("\r\n%s", v2));

sBuilder.append(String.format("\r\n%s", splitLine));

if (frame.getFunction().toString().contains("Response")) {

byte[] valuesArray = ModbusFunctionUtil.getFunctionValues(frame.getFunction());

sBuilder.append(String.format("\r\nhex :%s",HexUtil.bytesToHexString(valuesArray, " ")));

sBuilder.append(String.format("\r\nbitset :%s",BitSet.valueOf(valuesArray)));

sBuilder.append(String.format("\r\nbyte :%s", StringUtils.join(valuesArray, ',')));

sBuilder.append(String.format("\r\nshort :%s", StringUtils.join(ByteUtil.toShortArray(valuesArray), ',')));

sBuilder.append(String.format("\r\nint :%s", StringUtils.join(ByteUtil.toIntArray(valuesArray), ',')));

sBuilder.append(String.format("\r\nlong b:%s", StringUtils.join(ByteUtil.toLongArray(valuesArray), ',')));

sBuilder.append(String.format("\r\nfloat b:%s", StringUtils.join(ByteUtil.toFloatArray(valuesArray), ',')));

sBuilder.append(String.format("\r\ndouble b:%s", StringUtils.join(ByteUtil.toDoubleArray(valuesArray), ',')));

sBuilder.append(String.format("\r\nchar b:%s", StringUtils.join(ByteUtil.toCharArray(valuesArray), ',')));

sBuilder.append(String.format("\r\nlong l:%s", StringUtils.join(ByteUtil.toLongArray(valuesArray,false), ',')));

sBuilder.append(String.format("\r\nfloat l:%s", StringUtils.join(ByteUtil.toFloatArray(valuesArray,false), ',')));

sBuilder.append(String.format("\r\ndouble l:%s", StringUtils.join(ByteUtil.toDoubleArray(valuesArray,false), ',')));

sBuilder.append(String.format("\r\nchar l:%s", StringUtils.join(ByteUtil.toCharArray(valuesArray,false), ',')));

sBuilder.append(String.format("\r\n%s", splitLine));

}

logger.info(sBuilder.toString());

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值