update 电单车协议

This commit is contained in:
Guoqs
2024-08-03 16:02:50 +08:00
parent 397353c7e5
commit b535eba509
5 changed files with 53 additions and 45 deletions

View File

@@ -1,5 +1,6 @@
package com.jsowell.netty.server.electricbicycles;
import com.jsowell.common.util.BytesUtil;
import com.jsowell.netty.domain.ChargingPileMessage;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
@@ -8,10 +9,12 @@ import io.netty.channel.ChannelInboundHandlerAdapter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.swing.*;
import java.net.InetSocketAddress;
import java.time.Instant;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
@ChannelHandler.Sharable
@@ -47,48 +50,48 @@ public class ChargingPileHandler extends ChannelInboundHandlerAdapter {
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) {
log.info("加载客户端报文=== channelId:{}, mag:{}", ctx.channel().id(), msg.toString());
log.info("加载客户端报文=== channelId:{}, mag:{}", ctx.channel().id(), BytesUtil.binary((byte[]) msg, 16));
// if (!(msg instanceof ChargingPileMessage)) {
// return;
// }
ChargingPileMessage message = (ChargingPileMessage) msg;
byte command = message.getCommand();
switch (command) {
case 0x11:
handleHeartbeat(ctx, message);
break;
case 0x12:
handleTimeRequest(ctx, message);
break;
case 0x15:
handleFirmwareUpgradeRequest(ctx, message);
break;
case (byte) 0xFA:
handleFirmwareUpgradeResponse(ctx, message);
break;
case 0x31:
handleReboot(ctx, message);
break;
case 0x32:
handleCommunicationModuleReboot(ctx, message);
break;
case 0x33:
handleClearUpgradeData(ctx, message);
break;
case 0x34:
handleChangeIPAddress(ctx, message);
break;
case 0x35:
handleSubdeviceVersionUpload(ctx, message);
break;
case 0x3B:
handleFSKParameterRequest(ctx, message);
break;
default:
log.info("Unknown command: " + String.format("0x%02X", command));
}
// ChargingPileMessage message = (ChargingPileMessage) msg;
// byte command = message.getCommand();
//
// switch (command) {
// case 0x11:
// handleHeartbeat(ctx, message);
// break;
// case 0x12:
// handleTimeRequest(ctx, message);
// break;
// case 0x15:
// handleFirmwareUpgradeRequest(ctx, message);
// break;
// case (byte) 0xFA:
// handleFirmwareUpgradeResponse(ctx, message);
// break;
// case 0x31:
// handleReboot(ctx, message);
// break;
// case 0x32:
// handleCommunicationModuleReboot(ctx, message);
// break;
// case 0x33:
// handleClearUpgradeData(ctx, message);
// break;
// case 0x34:
// handleChangeIPAddress(ctx, message);
// break;
// case 0x35:
// handleSubdeviceVersionUpload(ctx, message);
// break;
// case 0x3B:
// handleFSKParameterRequest(ctx, message);
// break;
// default:
// log.info("Unknown command: " + String.format("0x%02X", command));
// }
}
private void handleHeartbeat(ChannelHandlerContext ctx, ChargingPileMessage message) {

View File

@@ -1,9 +1,7 @@
package com.jsowell.netty.server.electricbicycles;
import com.jsowell.netty.decoder.ChargingPileDecoder;
import com.jsowell.netty.decoder.ProtocolDnyDecoder;
import com.jsowell.netty.decoder.StartAndLengthFieldFrameDecoder;
import com.jsowell.netty.decoder.StartAndLengthFieldFrameDecoder2;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.SocketChannel;
@@ -26,7 +24,7 @@ public class ElectricBicyclesServerChannelInitializer extends ChannelInitializer
@Override
protected void initChannel(SocketChannel channel) throws Exception {
ChannelPipeline pipeline = channel.pipeline();
pipeline.addLast("frameDecoder", new ChargingPileDecoder());
pipeline.addLast("frameDecoder", new StartAndLengthFieldFrameDecoder());
pipeline.addLast("decoder", new ByteArrayDecoder());
pipeline.addLast("encoder", new ByteArrayDecoder());
//读超时时间设置为10s0表示不监控