// Path: src/java/VRE.Vridge.API/VRE.Vridge.API.Client/src/main/java/com/riftcat/vridge/api/client/java/codes/ControllerStateRequestCodes.java
// public class ControllerStateRequestCodes {
//     public static int Disconnect = 255;
//     public static int SendFullState = 1;
//     public static int RecenterHead = 2;
// 
//     public static int Origin_Zero = 0;
// 
// }


import com.riftcat.vridge.api.client.java.codes.ControllerStateRequestCodes;
import com.riftcat.vridge.api.client.java.proto.ControllerStateRequest;
import com.riftcat.vridge.api.client.java.proto.ControllerStateResponse;
import com.riftcat.vridge.api.client.java.proto.HandType;
import com.riftcat.vridge.api.client.java.proto.VRController;
import com.riftcat.vridge.api.client.java.proto.VRControllerAxis_t;
import com.riftcat.vridge.api.client.java.proto.VRControllerState_t;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.TimeoutException;
package com.riftcat.vridge.api.client.java.proxy;



public class ControllerProxy extends ClientProxyBase {

    private int packetNum = 0;

    public ControllerProxy(String endpointAddress){
        super(endpointAddress, true);
    }

    /// <summary>
    /// Send full single VR controller state to VR.
    /// </summary>
    public synchronized void sendControllerState(VRController state) throws TimeoutException {
        ControllerStateRequest data = ControllerStateRequest
                .newBuilder()
// Path: src/java/VRE.Vridge.API/VRE.Vridge.API.Client/src/main/java/com/riftcat/vridge/api/client/java/codes/ControllerStateRequestCodes.java
// public class ControllerStateRequestCodes {
//     public static int Disconnect = 255;
//     public static int SendFullState = 1;
//     public static int RecenterHead = 2;
// 
//     public static int Origin_Zero = 0;
// 
// }


// Path: src/java/VRE.Vridge.API/VRE.Vridge.API.Client/src/main/java/com/riftcat/vridge/api/client/java/proxy/ControllerProxy.java
import com.riftcat.vridge.api.client.java.codes.ControllerStateRequestCodes;
import com.riftcat.vridge.api.client.java.proto.ControllerStateRequest;
import com.riftcat.vridge.api.client.java.proto.ControllerStateResponse;
import com.riftcat.vridge.api.client.java.proto.HandType;
import com.riftcat.vridge.api.client.java.proto.VRController;
import com.riftcat.vridge.api.client.java.proto.VRControllerAxis_t;
import com.riftcat.vridge.api.client.java.proto.VRControllerState_t;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.TimeoutException;

package com.riftcat.vridge.api.client.java.proxy;



public class ControllerProxy extends ClientProxyBase {

    private int packetNum = 0;

    public ControllerProxy(String endpointAddress){
        super(endpointAddress, true);
    }

    /// <summary>
    /// Send full single VR controller state to VR.
    /// </summary>
    public synchronized void sendControllerState(VRController state) throws TimeoutException {
        ControllerStateRequest data = ControllerStateRequest
                .newBuilder()
                .setTaskType(ControllerStateRequestCodes.SendFullState)