package com.its.pis.xnettcp.center.protocol;

import com.its.pis.xnettcp.vds.protocol.VdsProtocol;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;

public class CenterResProtocol {

    public static ByteBuffer getImageHeader1() {
        ByteBuffer byteBuffer = ByteBuffer.allocate(10);
        byteBuffer.order(ByteOrder.BIG_ENDIAN);
        byteBuffer.put((byte)0x00); // 송신시스템-운영단말
        byteBuffer.put((byte)0x00); // 수신시스템-VDS 서버
        byteBuffer.put((byte)0x00); // 전체프레임개수
        byteBuffer.put((byte)0x00); // 현재프레임번호
        byteBuffer.put((byte)0x00); // Reserved
        byteBuffer.put(VdsProtocol.vds_Image);     // OP Code
        byteBuffer.putInt(0);  // 데이터 길이

        return byteBuffer;
    }
    public static ByteBuffer getResponse(byte opCode, byte result) {
        ByteBuffer byteBuffer = ByteBuffer.allocate(10);
        byteBuffer.order(ByteOrder.BIG_ENDIAN);
        byteBuffer.put((byte)0x24); // 송신시스템-운영단말
        byteBuffer.put((byte)0x04); // 수신시스템-VDS 서버
        byteBuffer.put((byte)0x01); // 전체프레임개수
        byteBuffer.put((byte)0x01); // 현재프레임번호
        byteBuffer.put(result); // Reserved
        byteBuffer.put(opCode);     // OP Code
        byteBuffer.putInt(0);  // 데이터 길이

        return byteBuffer;
    }

    public static ByteBuffer getImageHeader2(int length) {
        ByteBuffer byteBuffer = ByteBuffer.allocate(172);
        byteBuffer.order(ByteOrder.BIG_ENDIAN);
        for (int ii = 0; ii < 159; ii++) {
            byteBuffer.put((byte)0x00);
        }
        byteBuffer.putInt(length);  // 데이터 길이
        for (int ii = 163; ii < 172; ii++) {
            byteBuffer.put((byte)0x00);
        }
        return byteBuffer;
    }

    public static ByteBuffer getImageData(byte[] data) {
        ByteBuffer byteBuffer = ByteBuffer.wrap(data);
        byteBuffer.order(ByteOrder.BIG_ENDIAN);
        return byteBuffer;
    }

}
