自动化立体仓库 - WCS系统
zhangc
2025-03-11 d5449236ef0b3adafb3e4cc872f50479efa0ce7b
src/main/java/com/zy/core/netty/handle/ProtocolDecoder.java
@@ -19,7 +19,7 @@
    private final SnowflakeIdWorker snowflakeIdWorker;
    public ProtocolDecoder(SnowflakeIdWorker snowflakeIdWorker){
    public ProtocolDecoder(SnowflakeIdWorker snowflakeIdWorker) {
        this.snowflakeIdWorker = snowflakeIdWorker;
    }
@@ -27,11 +27,11 @@
    @Override
    protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> list) throws Exception {
        int startMark = indexOfStartMark(in);
        if (startMark == -1){
        if (startMark == -1) {
            return;
        }
        // 去除无用前缀报文
        if (startMark != 0){
        if (startMark != 0) {
            in.readerIndex(startMark);
            in.discardReadBytes();
        }
@@ -46,7 +46,7 @@
        list.add(analyzeProtocol(pac));
    }
    public ChPackage analyzeProtocol(ChPackage pac){
    public ChPackage analyzeProtocol(ChPackage pac) {
        ByteBuf byteBuf = pac.getSourceBuff();
@@ -84,14 +84,14 @@
    }
    // 获取标识位下标
    private int indexOfStartMark(ByteBuf inputBuffer){
    private int indexOfStartMark(ByteBuf inputBuffer) {
        int length = inputBuffer.writerIndex();
        // 报文长度至少大于2
        if (length < 2) {
            return -1;
        }
        int readerIndex = inputBuffer.readerIndex();
        for(int i = readerIndex; i < length - 1; i ++) {
        for (int i = readerIndex; i < length - 1; i++) {
            byte b1 = inputBuffer.getByte(i);
            // "#" = b1
            if (0x23 == b1) {