syntax = "proto3";
package RSI.RapidSequencer;
import "rapidgrpc.proto";
service RapidSequencerService {
rpc EngineStart(EngineStartRequest) returns (EngineStartResponse) {}
rpc EngineStop(EngineStopRequest) returns (EngineStopResponse) {}
rpc EngineStatusGet(EngineStatusRequest) returns (EngineStatusResponse) {}
rpc EngineTaskListGet(EngineTaskListRequest) returns (EngineTaskListResponse) {}
rpc NameGet(NameGetRequest) returns (NameGetResponse) {}
rpc NameSet(NameSetRequest) returns (NameSetResponse) {}
rpc FunctionListGet(FunctionListGetRequest) returns (stream FunctionListGetResponse) {}
rpc GlobalVariableListGet(GlobalVariableListGetRequest) returns (GlobalVariableListGetResponse) {}
rpc GlobalVariableGet(GlobalVariableGetRequest) returns (GlobalVariableGetResponse) {}
rpc GlobalVariableSet(GlobalVariableSetRequest) returns (GlobalVariableSetResponse) {}
rpc Compile(CompileRequest) returns (CompileResponse) {}
rpc Run(RunRequest) returns (RunResponse) {}
rpc CommandLine(CommandLineRequest) returns (CommandLineResponse) {}
rpc TaskStop(TaskID) returns (TaskStopResponse) {}
rpc TaskPause(TaskID) returns (TaskPauseResponse) {}
rpc TaskResume(TaskID) returns (TaskResumeResponse) {}
rpc TaskStatusGet(TaskID) returns (TaskStatusGetResponse) {}
rpc TaskOutputGet(TaskID) returns (TaskOutputGetResponse) {}
rpc TaskRemove(TaskID) returns (TaskRemoveResponse) {}
rpc DebugCommand(DebugRequest) returns (DebugResponse) {}
rpc BreakpointsGet(BreakpointsGetRequest) returns (BreakpointsGetResponse) {}
}
message ShutdownRequest {
RSI.RapidServer.RequestHeader header = 1;
}
message ShutdownResponse {
RSI.RapidServer.ResponseHeader header = 1;
}
message EngineStartRequest {
RSI.RapidServer.RequestHeader header = 1;
string rmp_node = 2;
string rmp_path = 3;
}
message EngineStartResponse {
RSI.RapidServer.ResponseHeader header = 1;
}
message EngineStopRequest {
RSI.RapidServer.RequestHeader header = 1;
}
message EngineStopResponse {
RSI.RapidServer.ResponseHeader header = 1;
}
message EngineStatusRequest {
RSI.RapidServer.RequestHeader header = 1;
}
enum SequencerType {
WINDOWS_UNSPECIFIED = 0;
REAL_TIME = 1;
}
message EngineStatusResponse {
RSI.RapidServer.ResponseHeader header = 1;
bool running = 2;
SequencerType type = 3;
uint64 task_count = 4;
}
message EngineTaskListRequest {
RSI.RapidServer.RequestHeader header = 1;
}
message EngineTaskListResponse {
RSI.RapidServer.ResponseHeader header = 1;
repeated TaskInfo tasks = 2;
}
message NameGetRequest {
RSI.RapidServer.RequestHeader header = 1;
}
message NameGetResponse {
RSI.RapidServer.ResponseHeader header = 1;
string name = 2;
}
message NameSetRequest {
RSI.RapidServer.RequestHeader header = 1;
string name = 2;
}
message NameSetResponse {
RSI.RapidServer.ResponseHeader header = 1;
}
message FunctionParameter {
string name = 1;
string type = 2;
}
message PluginInfo {
string name = 1;
string path = 2;
}
message FunctionInfo {
string name = 1;
string description = 2;
string returns = 3;
PluginInfo plugin_info = 4;
repeated FunctionParameter parameters = 5;
}
message FunctionListGetRequest {
RSI.RapidServer.RequestHeader header = 1;
}
message FunctionListGetResponse {
RSI.RapidServer.ResponseHeader header = 1;
FunctionInfo function = 2;
}
message GlobalVariableData {
uint64 host_address = 1;
uint64 size = 2;
string name = 3;
oneof value {
bool bool = 4;
uint32 char = 5;
int32 int16 = 6;
uint32 uint16 = 7;
int32 int32 = 8;
uint32 uint32 = 9;
int64 int64 = 10;
uint64 uint64 = 11;
double double = 12;
}
uint32 firmware_address = 13;
uint32 index = 14;
}
message GlobalVariableListGetRequest {
RSI.RapidServer.RequestHeader header = 1;
bool skip_values = 2;
}
message GlobalVariableListGetResponse {
RSI.RapidServer.ResponseHeader header = 1;
uint64 startaddr = 2;
uint64 size = 3;
repeated GlobalVariableData data = 4;
}
enum VariableAccessStatus {
SUCCESS_UNSPECIFIED = 0;
INVALID_NAME = 1;
INVALID_VARIABLE_TYPE = 2;
}
message GlobalVariableGetRequest {
RSI.RapidServer.RequestHeader header = 1;
string name = 2;
}
message GlobalVariableGetResponse {
RSI.RapidServer.ResponseHeader header = 1;
VariableAccessStatus result = 2;
oneof value {
bool bool = 3;
uint32 char = 4;
int32 int16 = 5;
uint32 uint16 = 6;
int32 int32 = 7;
uint32 uint32 = 8;
int64 int64 = 9;
uint64 uint64 = 10;
double double = 11;
}
uint64 host_address = 12;
uint32 firmware_address = 13;
uint32 index = 14;
}
message GlobalVariableSetRequest {
RSI.RapidServer.RequestHeader header = 1;
string name = 2;
oneof value {
bool bool = 3;
uint32 char = 4;
int32 int16 = 5;
uint32 uint16 = 6;
int32 int32 = 7;
uint32 uint32 = 8;
int64 int64 = 9;
uint64 uint64 = 10;
double double = 11;
}
}
message GlobalVariableSetResponse {
RSI.RapidServer.ResponseHeader header = 1;
VariableAccessStatus result = 2;
}
message CompileRequest {
RSI.RapidServer.RequestHeader header = 1;
string path = 2;
string entry_point = 3;
string exception_handler = 4;
}
message CompilerWarning {
string compiler_text = 1;
uint64 compiler_line = 2;
uint64 compiler_start = 3;
uint64 compiler_end = 4;
string compiler_message = 5;
string source_function = 6;
uint64 source_line = 7;
}
message CompileError {
string compiler_text = 1;
uint64 compiler_line = 2;
uint64 compiler_start = 3;
uint64 compiler_end = 4;
string compiler_message = 5;
string source_function = 6;
uint64 source_line = 7;
}
message CompileSuccess {
string info = 1;
string bin_path = 2;
string entry = 3;
string exception_handler = 4;
}
message CompileResponse {
RSI.RapidServer.ResponseHeader header = 1;
oneof result {
CompileSuccess compile_success = 2;
CompileError compile_failure = 3;
string general_failure = 4;
}
repeated CompilerWarning warnings = 5;
}
message RunRequest {
RSI.RapidServer.RequestHeader header = 1;
CompileSuccess compiled = 2;
bool block = 3;
repeated uint64 breakpoints = 4;
}
message RunResponse {
RSI.RapidServer.ResponseHeader header = 1;
bool success = 2;
TaskID task = 3;
CompileSuccess compiled = 4;
}
message TaskID {
string id = 1;
}
message TaskInfo {
TaskID id = 1;
CompileSuccess info = 2;
}
message CommandLineRequest {
RSI.RapidServer.RequestHeader header = 1;
string command = 2;
}
message CommandLineResponse {
RSI.RapidServer.ResponseHeader header = 1;
repeated string result = 2;
}
message TaskStopResponse {
RSI.RapidServer.ResponseHeader header = 1;
TaskID task = 2;
}
message TaskPauseResponse {
RSI.RapidServer.ResponseHeader header = 1;
}
message TaskResumeResponse {
RSI.RapidServer.ResponseHeader header = 1;
}
enum TaskState {
UNINITIALIZED_UNSPECIFIED = 0;
RUNNING = 1;
IDLE = 2;
PAUSED = 3;
}
message TaskStatusGetResponse {
RSI.RapidServer.ResponseHeader header = 1;
TaskState state = 2;
uint64 line_number = 3;
uint64 counter = 4;
}
message TaskOutputGetResponse {
RSI.RapidServer.ResponseHeader header = 1;
repeated string result = 2;
}
message TaskRemoveResponse {
RSI.RapidServer.ResponseHeader header = 1;
bool result = 2;
}
enum DebugAction {
RESUME_UNSPECIFIED = 0;
PAUSE = 1;
STEP = 2;
STEP_IN = 3;
STEP_OUT = 4;
BREAKPOINT_SET = 5;
BREAKPOINT_UNSET = 6;
}
message DebugRequest {
RSI.RapidServer.RequestHeader header = 1;
TaskID task = 2;
DebugAction action = 3;
oneof optional_line_number {
int32 line_number = 4;
}
}
message DebugResponse {
RSI.RapidServer.ResponseHeader header = 1;
bool success = 2;
}
message BreakpointsGetRequest {
RSI.RapidServer.RequestHeader header = 1;
TaskID task = 2;
}
message BreakpointsGetResponse {
RSI.RapidServer.ResponseHeader header = 1;
repeated uint64 breakpoints = 2;
}