Select Git revision
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
ModeliRpc.proto 3.98 KiB
// Language defintion
syntax = "proto3";
// Will be the default namespace
package ModeliRpc;
// Service must be offered by a ModeliChart Backend
// Default Port ist 52062
service ModeliBackend {
// Play the simulation infinetly in realtime
rpc Play (PlayRequest) returns (PlayResponse);
// Play the simulation as fast as possible (fast forwad)
rpc PlayFast (PlayFastRequest) returns (PlayFastResponse);
// Pause the simulation without resetting it
rpc Pause (PauseRequest) returns (PauseResponse);
// Halt and reset the simulation
rpc Stop (StopRequest) returns (StopResponse);
// Add a new Fmu to the simulation, transfer it via chunks
rpc AddFmu (stream AddFmuRequest) returns (AddFmuResponse);
// Remove a Fmu from the simulation
rpc RemoveFmu (RemoveFmuRequest) returns (RemoveFmuResponse);
// Add a ChannelLink to the simulation
rpc AddChannelLink (AddChannelLinkRequest) returns (AddChannelLinkResponse);
// Remove a ChannelLink from the simulation
rpc RemoveChannelLink (RemoveChannelLinkRequest) returns (RemoveChannelLinkResponse);
// Set int values in one of the fmus
rpc SetInt (SetIntRequest) returns (SetIntResponse);
// Set real values in one of the fmus
rpc SetReal (SetRealRequest) returns (SetRealResponse);
// Set bool values in one of the fmus
rpc SetBool (SetBoolRequest) returns (SetBoolResponse);
// Set string values in one of the fmus
rpc SetString (SetStringRequest) returns (SetStringResponse);
// Stream simulation results to the client
rpc NewValues (NewValuesRequest) returns (stream NewValuesResponse);
// Stream log messages to the client
rpc Log (LogRequest) returns (stream LogResponse);
}
// The metadata of a ChannelLink
message ChannelLink {
string master_instance_name = 1;
string slave_instance_name = 2;
uint32 master_vr = 3;
uint32 slave_vr = 4;
double factor = 5;
double offset = 6;
}
// Request & Response definitions
message PlayRequest {}
message PlayResponse {
int32 status = 1;
}
message PlayFastRequest {
double time = 1;
}
message PlayFastResponse {
int32 status = 1;
}
message PauseRequest {}
message PauseResponse {}
message StopRequest {}
message StopResponse {
int32 status = 1;
}
message AddFmuRequest {
string instance_name = 1;
bytes chunk = 2;
}
message AddFmuResponse {
bool success = 1;
}
message RemoveFmuRequest {
string instance_name = 1;
}
message RemoveFmuResponse {
bool success = 1;
}
message AddChannelLinkRequest {
ChannelLink channel_link = 1;
}
message AddChannelLinkResponse {
bool success = 1;
}
message RemoveChannelLinkRequest {
ChannelLink channel_link = 1;
}
message RemoveChannelLinkResponse {
bool success = 1;
}
message IntValues {
repeated uint32 vrs = 1;
repeated int32 values = 2;
}
message SetIntRequest {
string instance_name = 1;
IntValues values = 2;
}
message SetIntResponse {
int32 status = 1;
}
message RealValues {
repeated uint32 vrs = 1;
repeated double values = 2;
}
message SetRealRequest {
string instance_name = 1;
RealValues values = 2;
}
message SetRealResponse {
int32 status = 1;
}
message BoolValues {
repeated uint32 vrs = 1;
repeated int32 values = 2;
}
message SetBoolRequest {
string instance_name = 1;
BoolValues values = 2;
}
message SetBoolResponse {
int32 status = 1;
}
message StringValues {
repeated uint32 vrs = 1;
repeated string values = 2;
}
message SetStringRequest {
string instance_name = 1;
StringValues values = 2;
}
message SetStringResponse {
int32 status = 1;
}
message NewValuesRequest {}
message NewValuesResponse {
double timestamp = 1;
IntValues int_values = 2;
RealValues real_values = 3;
BoolValues bool_values = 4;
StringValues string_values = 5;
string instance_name = 6;
}
message LogRequest {}
message LogResponse {
string instance_name = 1;
int32 status = 2;
string message = 3;
}