mirror of
https://github.com/Sani7/remote-ui.git
synced 2026-10-26 21:51:13 +01:00
protobuf messages
This commit is contained in:
@@ -28,6 +28,8 @@ add_subdirectory(client)
|
|||||||
# contains an "external" library we will link to
|
# contains an "external" library we will link to
|
||||||
add_subdirectory(external)
|
add_subdirectory(external)
|
||||||
|
|
||||||
|
add_subdirectory(protobuf)
|
||||||
|
|
||||||
# defines the executable
|
# defines the executable
|
||||||
if(NOT EMSCRIPTEN)
|
if(NOT EMSCRIPTEN)
|
||||||
add_subdirectory(server)
|
add_subdirectory(server)
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
find_package(Qt6 REQUIRED COMPONENTS Protobuf Grpc)
|
||||||
|
|
||||||
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
|
add_library(proto-ui STATIC)
|
||||||
|
set_target_properties(
|
||||||
|
proto-ui
|
||||||
|
PROPERTIES
|
||||||
|
AUTOMOC ON
|
||||||
|
POSITION_INDEPENDENT_CODE ON
|
||||||
|
)
|
||||||
|
qt_add_protobuf(proto-ui
|
||||||
|
PROTO_FILES
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/m_ui_items.proto
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/messages.proto
|
||||||
|
)
|
||||||
|
target_link_libraries(proto-ui PUBLIC Qt6::Protobuf)
|
||||||
|
|
||||||
|
add_library(proto-ui-client STATIC)
|
||||||
|
set_target_properties(
|
||||||
|
proto-ui-client
|
||||||
|
PROPERTIES
|
||||||
|
AUTOMOC ON
|
||||||
|
POSITION_INDEPENDENT_CODE ON
|
||||||
|
)
|
||||||
|
qt_add_grpc(proto-ui-client CLIENT
|
||||||
|
PROTO_FILES
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/messages.proto
|
||||||
|
)
|
||||||
|
target_link_libraries(proto-ui-client PUBLIC Qt6::Protobuf Qt6::Grpc proto-ui)
|
||||||
|
|
||||||
|
# add_library(proto-ui-server STATIC)
|
||||||
|
# set_target_properties(
|
||||||
|
# proto-ui-server
|
||||||
|
# PROPERTIES
|
||||||
|
# AUTOMOC ON
|
||||||
|
# POSITION_INDEPENDENT_CODE ON
|
||||||
|
# )
|
||||||
|
# qt_add_grpc(proto-ui-server SERVER
|
||||||
|
# PROTO_FILES
|
||||||
|
# ${CMAKE_CURRENT_LIST_DIR}/messages.proto
|
||||||
|
# )
|
||||||
|
# target_link_libraries(proto-ui-server PUBLIC Qt6::Protobuf Qt6::Grpc proto-ui)
|
||||||
@@ -0,0 +1,131 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
enum UI_type {
|
||||||
|
undef = 0;
|
||||||
|
ui_button = 1;
|
||||||
|
ui_can = 2;
|
||||||
|
ui_checkbox = 3;
|
||||||
|
ui_combobox = 4;
|
||||||
|
ui_dial = 5;
|
||||||
|
ui_double_spinbox = 6;
|
||||||
|
ui_hex_spinbox = 7;
|
||||||
|
ui_label = 8;
|
||||||
|
ui_led = 9;
|
||||||
|
ui_plot = 10;
|
||||||
|
ui_slider = 11;
|
||||||
|
ui_spinbox = 12;
|
||||||
|
ui_stacked_widget = 13;
|
||||||
|
ui_status_bar = 14;
|
||||||
|
ui_tab_widget = 15;
|
||||||
|
ui_table = 16;
|
||||||
|
ui_textbox = 17;
|
||||||
|
ui_thermo = 18;
|
||||||
|
}
|
||||||
|
|
||||||
|
message CAN_Frame_m {
|
||||||
|
uint32 sid = 1;
|
||||||
|
int64 dlc = 2;
|
||||||
|
bytes payload = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UI_color {
|
||||||
|
uint32 fg_color = 1;
|
||||||
|
uint32 bg_color = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UI_label_m {
|
||||||
|
UI_color color = 1;
|
||||||
|
string text = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UI_can_m {
|
||||||
|
UI_color color = 1;
|
||||||
|
repeated CAN_Frame_m send_frames = 2;
|
||||||
|
repeated CAN_Frame_m recv_frames = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UI_checkbox_m {
|
||||||
|
UI_color color = 1;
|
||||||
|
string text = 2;
|
||||||
|
bool checked = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UI_combobox_m {
|
||||||
|
int64 selected = 1;
|
||||||
|
repeated string options = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UI_range_m {
|
||||||
|
double min = 1;
|
||||||
|
double max = 2;
|
||||||
|
double value = 3;
|
||||||
|
string unit = 4;
|
||||||
|
string text = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UI_spinbox_m {
|
||||||
|
double min = 1;
|
||||||
|
double max = 2;
|
||||||
|
double value = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UI_plot_m {
|
||||||
|
UI_color color = 1;
|
||||||
|
string text = 2;
|
||||||
|
string x_label = 3;
|
||||||
|
string y_label = 4;
|
||||||
|
repeated double x_vals = 5;
|
||||||
|
repeated double y_vals = 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UI_stacked_widget_m {
|
||||||
|
int64 tab_count = 1;
|
||||||
|
int64 current_tab = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UI_tab_widget_m {
|
||||||
|
int64 selecte_tab = 1;
|
||||||
|
repeated string tab_names = 2;
|
||||||
|
repeated bool tab_visible = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UI_status_bar_m {
|
||||||
|
uint64 timeout = 1;
|
||||||
|
string message = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UI_table_m {
|
||||||
|
int64 row_count = 1;
|
||||||
|
int64 column_count = 2;
|
||||||
|
repeated string row_labels = 3;
|
||||||
|
repeated string column_labels = 4;
|
||||||
|
repeated string table = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UI_textbox_m {
|
||||||
|
UI_color color = 1;
|
||||||
|
string text = 2;
|
||||||
|
string hint = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UI_item_m {
|
||||||
|
uint64 id = 1;
|
||||||
|
UI_type type = 2;
|
||||||
|
bool enabled = 3;
|
||||||
|
bool visible = 4;
|
||||||
|
|
||||||
|
oneof kind {
|
||||||
|
UI_label_m label = 5;
|
||||||
|
UI_can_m can = 6;
|
||||||
|
UI_checkbox_m checkbox = 7;
|
||||||
|
UI_combobox_m combobox = 8;
|
||||||
|
UI_range_m range = 9;
|
||||||
|
UI_spinbox_m spinbox = 10;
|
||||||
|
UI_plot_m plot = 11;
|
||||||
|
UI_stacked_widget_m stacked_widget = 12;
|
||||||
|
UI_tab_widget_m tab_widget = 13;
|
||||||
|
UI_status_bar_m status_bar = 14;
|
||||||
|
UI_table_m table = 15;
|
||||||
|
UI_textbox_m textbox = 16;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
import "m_ui_items.proto";
|
||||||
|
|
||||||
|
message Empty {}
|
||||||
|
|
||||||
|
message UI_id_m { uint32 id = 1; }
|
||||||
|
message UI_items_m { repeated UI_item_m item = 1; }
|
||||||
|
|
||||||
|
message Simulator_m { string simuator = 1;}
|
||||||
|
|
||||||
|
message Simulators_m { repeated string simulator = 1; }
|
||||||
|
|
||||||
|
message Clicked_m {}
|
||||||
|
|
||||||
|
message Value_changed_m { double value = 1; }
|
||||||
|
|
||||||
|
message Text_changed_m { string text = 1; }
|
||||||
|
|
||||||
|
message Selected_m { uint32 selected = 1; }
|
||||||
|
|
||||||
|
message CAN_send_m { CAN_Frame_m frame = 1; }
|
||||||
|
|
||||||
|
message Clear_m {}
|
||||||
|
|
||||||
|
message Event_m {
|
||||||
|
uint32 id = 1;
|
||||||
|
oneof kind {
|
||||||
|
Clicked_m clicked = 2;
|
||||||
|
Value_changed_m value_changed = 3;
|
||||||
|
Text_changed_m text_changed = 4;
|
||||||
|
Selected_m selected = 5;
|
||||||
|
CAN_send_m can_send = 6;
|
||||||
|
Clear_m clear = 7;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
service RemoteUiService {
|
||||||
|
// Commands
|
||||||
|
rpc Command_get_ui_element (UI_id_m) returns (UI_items_m);
|
||||||
|
rpc Command_get_ui_elements (Empty) returns (UI_items_m);
|
||||||
|
rpc Command_switch_simulator (Simulator_m) returns (Empty);
|
||||||
|
rpc Command_get_active_simulator (Empty) returns (Simulator_m);
|
||||||
|
rpc Command_get_simulators (Empty) returns (Simulators_m);
|
||||||
|
|
||||||
|
// Events
|
||||||
|
rpc SendEvent (Event_m) returns (Empty);
|
||||||
|
|
||||||
|
// Broadcasting
|
||||||
|
rpc SubscribeUIChanges (Empty) returns (stream UI_items_m);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user