syntax = "proto3";

package cmvr.api;

import "cmvr/api/common.proto";
import "cmvr/api/arm_command.proto";

service ArmService {
  rpc torqueOff(CommandHeader.Request) returns (CommandHeader.Feedback);
  rpc torqueOn(CommandHeader.Request) returns (CommandHeader.Feedback);
  rpc moveJ(MoveJ.Request) returns (MoveJ.Response);
  rpc moveL(MoveL.Request) returns (MoveL.Response);
  rpc speedJ(SpeedJ.Request) returns (SpeedJ.Response);
  rpc speedL(SpeedL.Request) returns (SpeedL.Response);
  rpc servoJ(ServoJ.Request) returns (ServoJ.Response);
  rpc stopMotion(CommandHeader.Request) returns (CommandHeader.Feedback);
  rpc getJointState(JointRequest) returns (JointResponse);
  rpc getPose(GetPose.Request) returns (GetPose.Response);
  rpc calibrateZeroQ(CalibrateZeroQ.Request) returns (CalibrateZeroQ.Response);
  rpc getPoseMatrix(GetPoseMatrix.Request) returns (GetPoseMatrix.Response);
  rpc computeForwardKinematics(ComputeForwardKinematics.Request) returns (ComputeForwardKinematics.Response);
}
