PREMIUM FEATURE BETA
🔹 RPCs
rpc RTTaskManager (RTTaskManagerRequest) returns (RTTaskManagerResponse) {};
rpc RTTaskManagerBatch(RTTaskManagerBatchRequest) returns (RTTaskManagerBatchResponse) {};
🔹 Request
message RTTaskManagerRequest {
RSI.RapidServer.RequestHeader header = 1;
optional int32 id = 2;
optional RTTaskManagerConfig config = 3;
optional RTTaskManagerAction action = 4;
}
🔹 Response
message RTTaskManagerResponse {
RSI.RapidServer.ResponseHeader header = 1;
optional int32 id = 2;
optional RTTaskManagerConfig config = 3;
optional RTTaskManagerAction action = 4;
optional RTTaskManagerInfo info = 5;
optional RTTaskManagerStatus status = 6;
}
🔹 Batch Request and Response
message RTTaskManagerBatchRequest {
RSI.RapidServer.RequestHeader header = 1;
repeated RTTaskManagerRequest requests = 2;
}
message RTTaskManagerBatchResponse {
RSI.RapidServer.ResponseHeader header = 1;
repeated RTTaskManagerResponse responses = 2;
}
TaskPriority
Enum representing the priority levels for a real-time task.
RTTaskManagerState
Enum representing the possible states of an RTTaskManager.
RTTaskState
Enum representing the possible states of a real-time task.
PlatformType
Enum representing the platform type for an RTTaskManager.
RSINetworkEniResult
NetworkEniGenerate return values.
RSINetworkStartMode
Network start modes.
RSIMotorDisableAction
Action for when a motor is disabled.
RSINetworkStartError
Network start errors.
RSIMultiAxisAddressType
Used to get firmware address used in User Limits, Recorders, etc.
INtimeStatus
INtime status values.
RSIHomeStage
Predefined Homing Stage sections.
RSINetworkType
Type of Network topology.
RSINodeType
Valid Node types.
🔹 Config
message RTTaskManagerConfig {}
🔹 Action
message RTTaskManagerAction {
optional Create create = 1;
optional Discover discover = 2;
optional Shutdown shutdown = 3;
optional TaskSubmit task_submit = 4;
optional TaskRemove task_remove = 5;
repeated GlobalValueSet global_value_sets = 6;
message Create {
RTTaskManagerCreationParameters creation_parameters = 1;
int32 id = 2;
}
message Discover {
repeated int32 manager_ids = 1;
}
message Shutdown {}
message TaskSubmit {
RTTaskCreationParameters task_creation_parameters = 1;
optional int32 task_id = 2;
}
message TaskRemove {
int32 task_id = 1;
}
message GlobalValueSet {
FirmwareValue value = 1;
string name = 2;
optional string library_name = 3;
optional string library_directory = 4;
}
}
🔹 Info
message RTTaskManagerInfo {
int32 id = 1;
Constants constants = 2;
RTTaskManagerCreationParameters creation_parameters = 3;
message Constants {
int32 rt_task_manager_count_maximum = 1;
int32 rt_task_count_maximum = 2;
string rt_task_manager_executable_name = 3;
CreationParameterConstants creation_parameters = 4;
message CreationParameterConstants {
int32 directory_length_maximum = 1;
int32 name_length_maximum = 2;
string user_label_default = 3;
}
}
}
🔹 Status
message RTTaskManagerStatus {
repeated int32 task_ids = 1;
map<string, FirmwareValue> global_values = 2;
optional uint64 task_submission_count = 4;
optional int64 cycle_count = 5;
optional uint64 cycle_time_max = 6;
optional uint64 cycle_time_min = 7;
optional double cycle_time_mean = 8;
optional uint64 cycle_time_last = 9;
optional uint64 start_time_delta_last = 10;
optional uint64 start_time_delta_max = 11;
optional double start_time_delta_mean = 12;
}
🔹 Additional Messages
message RTTaskManagerCreationParameters {
optional string rt_task_directory = 1;
optional string node_name = 3;
optional int32 cpu_core = 4;
optional string user_label = 5;
optional bool no_rmp = 6;
}
PlatformTypeUNKNOWN = 0;
PlatformTypeNATIVE = 1;
PlatformTypeINTIME = 2;
PlatformTypeLINUX = 3;
PlatformTypeWINDOWS = 4;
}
RTTaskManagerStateUNKNOWN = 0;
RTTaskManagerStateDEAD = 1;
RTTaskManagerStateRUNNING = 2;
RTTaskManagerStateSTOPPED = 3;
}
message RTTaskCreationParameters {
string function_name = 1;
optional string library_name = 2;
optional string library_directory = 3;
optional string user_label = 4;
optional int32 repeats = 6;
optional int32 period = 7;
optional int32 phase = 8;
optional bool enable_timing = 9;
}
message FirmwareValue {
oneof value {
bool bool_value = 1;
int32 int8_value = 2;
uint32 uint8_value = 3;
int32 int16_value = 4;
uint32 uint16_value = 5;
int32 int32_value = 6;
uint32 uint32_value = 7;
float float_value = 8;
double double_value = 9;
int64 int64_value = 10;
uint64 uint64_value = 11;
}
}