package net.virtuemed.jt808.util;

import io.netty.buffer.ByteBuf;

/**
 * @Author: Zpsw
 * @Date: 2019-05-15
 * @Description:
 * @Version: 1.0
 */
public class JT808Util {

    /**
     * 根据byteBuf的readerIndex和writerIndex计算校验码
     * 校验码规则:从消息头开始,同后一字节异或,直到校验码前一个字节,占用 1 个字节
     * @param byteBuf
     * @return
     */
    public static byte XorSumBytes(ByteBuf byteBuf) {
        byte sum = byteBuf.getByte(byteBuf.readerIndex());
        for (int i = byteBuf.readerIndex() + 1; i < byteBuf.writerIndex(); i++) {
            sum = (byte) (sum ^ byteBuf.getByte(i));
        }
        return sum;
    }

}