package org.squidy.nodes.reactivision.remote.control; import java.util.HashMap; import java.util.Map; public enum OpCode { //server OpCodes (most significant bit = 0) GET_GRID((byte)0x00), SET_GRID((byte)0x01), GET_CAMERA_SETTINGS((byte)0x10), SET_CAMERA_SETTINGS_FRAMERATE((byte)0x11), SET_CAMERA_SETTINGS_EXPOSURE_TIME((byte)0x12), SET_CAMERA_SETTINGS_PIXEL_CLOCK((byte)0x13), SET_CAMERA_SETTINGS_HARDWARE_GAIN((byte)0x14), SET_CAMERA_SETTINGS_EDGE_ENHANCEMENT((byte)0x15), SET_CAMERA_SETTINGS_GAMMA((byte)0x16), //camera START_CAMERA_FEED((byte)0x20), STOP_CAMERA_FEED((byte)0x21), //fiducial engine GET_FIDUCIAL_SET((byte)0x30), SET_FIDUCIAL_SET((byte)0x31), //client OpCodes (most significant bit = 1) SEND_GRID((byte)0x80), SEND_CAMERA_SETTINGS((byte)0x81), SEND_FIDUCIAL_FINDER((byte)0xb0); private final byte value; private static Map<Byte, OpCode> mapping; static { mapping = new HashMap<Byte, OpCode>(); for (OpCode o : values()) mapping.put(o.value, o); } private OpCode(byte value) { this.value = value; } public boolean equals(OpCode o) { if (this.value == o.value) return true; return false; } public String toString() { String output = "<OpCode: "; switch (valueOf(value)) { case GET_GRID: output += "GET_GRID"; break; case SET_GRID: output += "SET_GRID"; break; case GET_CAMERA_SETTINGS: output += "GET_CAMERA_SETTINGS"; break; case SET_CAMERA_SETTINGS_FRAMERATE: output += "SET_CAMERA_SETTINGS_FRAMERATE"; break; case SET_CAMERA_SETTINGS_EXPOSURE_TIME: output += "SET_CAMERA_EXPOSURE_TIME"; break; case SET_CAMERA_SETTINGS_PIXEL_CLOCK: output += "SET_CAMERA_SETTINGS_PIXEL_CLOCK"; break; case SET_CAMERA_SETTINGS_HARDWARE_GAIN: output += "SET_CAMERA_SETTINGS_HARDWARE_GAIN"; break; case SET_CAMERA_SETTINGS_EDGE_ENHANCEMENT: output += "SET_CAMERA_SETTINGS_EDGE_ENHANCEMENT"; break; case SET_CAMERA_SETTINGS_GAMMA: output += "SET_CAMERA_SETTINGS_GAMMA"; break; case START_CAMERA_FEED: output += "START_FEED"; break; case STOP_CAMERA_FEED: output += "STOP_FEED"; break; case SET_FIDUCIAL_SET: output += "SET_FIDUCIAL_SET"; break; case GET_FIDUCIAL_SET: output += "GET_FIDUCIAL_SET"; break; case SEND_GRID: output += "SEND_GRID"; break; case SEND_CAMERA_SETTINGS: output += "SEND_CAMERA_SETTINGS"; break; default: output += "unknown"; } return output + ">"; } public final byte value() { return value; } public static final OpCode valueOf(byte value) { return mapping.get(value); } }