🔹 RPCs
rpc MultiAxis (MultiAxisRequest) returns (MultiAxisResponse) {};
rpc MultiAxisBatch (MultiAxisBatchRequest) returns (MultiAxisBatchResponse) {};
🔹 Request
message MultiAxisRequest {
RSI.RapidServer.RequestHeader header = 1;
int32 index = 2;
optional MultiAxisConfig config = 3;
optional MultiAxisAction action = 4;
}
🔹 Response
message MultiAxisResponse {
RSI.RapidServer.ResponseHeader header = 1;
int32 index = 2;
optional MultiAxisConfig config = 3;
optional MultiAxisAction action = 4;
optional MultiAxisInfo info = 5;
optional MultiAxisStatus status = 6;
}
🔹 Batch Request and Response
message MultiAxisBatchRequest {
RSI.RapidServer.RequestHeader header = 1;
repeated MultiAxisRequest requests = 2;
}
message MultiAxisBatchResponse {
RSI.RapidServer.ResponseHeader header = 1;
repeated MultiAxisResponse responses = 2;
}
🔹 Config
message MultiAxisConfig {
repeated int32 axes_indices = 1;
optional string user_label = 2;
optional double feed_rate = 3;
optional double stop_time = 4;
optional double e_stop_time = 5;
}
🔹 Action
message MultiAxisAction {
optional Abort abort = 1;
optional EStopAbort e_stop_abort = 2;
optional EStopModifyAbort e_stop_modify_abort = 3;
optional EStopModify e_stop_modify = 4;
optional EStop e_stop = 5;
optional TriggeredModify triggered_modify = 6;
optional Stop stop = 7;
optional Resume resume = 8;
optional ClearFaults clear_faults = 9;
optional AmpEnable amp_enable = 10;
optional AmpDisable amp_disable = 11;
optional Move move = 12;
optional RemoveAxes remove_axes = 13;
optional Unmap unmap = 14;
optional Map map = 15;
optional AxisAdd axis_add = 16;
message Abort {}
message EStopAbort {}
message EStopModifyAbort{}
message EStopModify{}
message EStop {}
message TriggeredModify {}
message Stop {}
message Resume {}
message ClearFaults {}
message AmpEnable {
optional int32 timeout_milliseconds = 1;
optional int32 duration = 2;
}
message AmpDisable {}
message Move {
oneof move {
MultiAxisMovePointToPoint point_to_point = 3;
MultiAxisMoveVelocity velocity = 4;
MoveStreaming streaming = 5;
}
optional uint32 motion_id = 6;
optional MotionHold motion_hold = 7;
bool blocking = 8;
message MultiAxisMovePointToPoint {
repeated AxisMovePointToPoint axis_move_point_to_points = 1;
bool relative = 2;
}
message MultiAxisMoveVelocity {
repeated AxisMoveVelocity axis_move_velocities = 1;
}
}
message RemoveAxes {}
message Unmap {}
message Map {}
message AxisAdd {
int32 axis_index = 1;
}
}
🔹 Info
message MultiAxisInfo {
int32 index = 1;
int32 motion_supervisor_index = 2;
repeated AddressInfo addresses = 3;
}
🔹 Status
message MultiAxisStatus {
string source_name = 3;
bool amp_enabled = 4;
MotionStatusBits motion_status_bits = 5;
repeated AxisStatus axis_statuses = 6;
bool is_mapped = 7;
message MotionStatusBits {
bool done = 1;
bool start = 2;
bool modify = 3;
bool at_velocity = 4;
bool out_of_frames = 5;
}
}