/* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * java mavlink generator tool. It should not be modified by hand. */ package com.MAVLink.Messages; import java.nio.ByteBuffer; public class MAVLinkPayload { private static final byte UNSIGNED_BYTE_MIN_VALUE = 0; private static final short UNSIGNED_BYTE_MAX_VALUE = Byte.MAX_VALUE - Byte.MIN_VALUE; private static final short UNSIGNED_SHORT_MIN_VALUE = 0; private static final int UNSIGNED_SHORT_MAX_VALUE = Short.MAX_VALUE - Short.MIN_VALUE; private static final int UNSIGNED_INT_MIN_VALUE = 0; private static final long UNSIGNED_INT_MAX_VALUE = (long) Integer.MAX_VALUE - Integer.MIN_VALUE; private static final long UNSIGNED_LONG_MIN_VALUE = 0; public static final int MAX_PAYLOAD_SIZE = 255; public final ByteBuffer payload; public int index; public MAVLinkPayload(int payloadSize) { if(payloadSize > MAX_PAYLOAD_SIZE) { payload = ByteBuffer.allocate(MAX_PAYLOAD_SIZE); } else { payload = ByteBuffer.allocate(payloadSize); } } public ByteBuffer getData() { return payload; } public int size() { return payload.position(); } public void add(byte c) { payload.put(c); } public void resetIndex() { index = 0; } public byte getByte() { byte result = 0; result |= (payload.get(index + 0) & 0xFF); index += 1; return result; } public short getUnsignedByte(){ short result = 0; result |= payload.get(index + 0) & 0xFF; index+= 1; return result; } public short getShort() { short result = 0; result |= (payload.get(index + 1) & 0xFF) << 8; result |= (payload.get(index + 0) & 0xFF); index += 2; return result; } public int getUnsignedShort(){ int result = 0; result |= (payload.get(index + 1) & 0xFF) << 8; result |= (payload.get(index + 0) & 0xFF); index += 2; return result; } public int getInt() { int result = 0; result |= (payload.get(index + 3) & 0xFF) << 24; result |= (payload.get(index + 2) & 0xFF) << 16; result |= (payload.get(index + 1) & 0xFF) << 8; result |= (payload.get(index + 0) & 0xFF); index += 4; return result; } public long getUnsignedInt(){ long result = 0; result |= (payload.get(index + 3) & 0xFFL) << 24; result |= (payload.get(index + 2) & 0xFFL) << 16; result |= (payload.get(index + 1) & 0xFFL) << 8; result |= (payload.get(index + 0) & 0xFFL); index += 4; return result; } public long getLong() { long result = 0; result |= (payload.get(index + 7) & 0xFFL) << 56; result |= (payload.get(index + 6) & 0xFFL) << 48; result |= (payload.get(index + 5) & 0xFFL) << 40; result |= (payload.get(index + 4) & 0xFFL) << 32; result |= (payload.get(index + 3) & 0xFFL) << 24; result |= (payload.get(index + 2) & 0xFFL) << 16; result |= (payload.get(index + 1) & 0xFFL) << 8; result |= (payload.get(index + 0) & 0xFFL); index += 8; return result; } public long getUnsignedLong(){ return getLong(); } public long getLongReverse() { long result = 0; result |= (payload.get(index + 0) & 0xFFL) << 56; result |= (payload.get(index + 1) & 0xFFL) << 48; result |= (payload.get(index + 2) & 0xFFL) << 40; result |= (payload.get(index + 3) & 0xFFL) << 32; result |= (payload.get(index + 4) & 0xFFL) << 24; result |= (payload.get(index + 5) & 0xFFL) << 16; result |= (payload.get(index + 6) & 0xFFL) << 8; result |= (payload.get(index + 7) & 0xFFL); index += 8; return result; } public float getFloat() { return Float.intBitsToFloat(getInt()); } public void putByte(byte data) { add(data); } public void putUnsignedByte(short data){ if(data < UNSIGNED_BYTE_MIN_VALUE || data > UNSIGNED_BYTE_MAX_VALUE){ throw new IllegalArgumentException("Value is outside of the range of an unsigned byte: " + data); } putByte((byte) data); } public void putShort(short data) { add((byte) (data >> 0)); add((byte) (data >> 8)); } public void putUnsignedShort(int data){ if(data < UNSIGNED_SHORT_MIN_VALUE || data > UNSIGNED_SHORT_MAX_VALUE){ throw new IllegalArgumentException("Value is outside of the range of an unsigned short: " + data); } putShort((short) data); } public void putInt(int data) { add((byte) (data >> 0)); add((byte) (data >> 8)); add((byte) (data >> 16)); add((byte) (data >> 24)); } public void putUnsignedInt(long data){ if(data < UNSIGNED_INT_MIN_VALUE || data > UNSIGNED_INT_MAX_VALUE){ throw new IllegalArgumentException("Value is outside of the range of an unsigned int: " + data); } putInt((int) data); } public void putLong(long data) { add((byte) (data >> 0)); add((byte) (data >> 8)); add((byte) (data >> 16)); add((byte) (data >> 24)); add((byte) (data >> 32)); add((byte) (data >> 40)); add((byte) (data >> 48)); add((byte) (data >> 56)); } public void putUnsignedLong(long data){ if(data < UNSIGNED_LONG_MIN_VALUE){ throw new IllegalArgumentException("Value is outside of the range of an unsigned long: " + data); } putLong(data); } public void putFloat(float data) { putInt(Float.floatToIntBits(data)); } }