Create multiproject build, add python grpc build support
This commit is contained in:
2
protobuf/.gitignore
vendored
Normal file
2
protobuf/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/build
|
||||
build
|
||||
48
protobuf/build.gradle
Normal file
48
protobuf/build.gradle
Normal file
@@ -0,0 +1,48 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'com.google.protobuf'
|
||||
id 'idea'
|
||||
}
|
||||
|
||||
configurations {
|
||||
|
||||
// For grpc python codegen.
|
||||
python {
|
||||
canBeResolved = false
|
||||
canBeConsumed = true
|
||||
}
|
||||
}
|
||||
|
||||
protobuf {
|
||||
protoc { artifact = 'com.google.protobuf:protoc:3.11.0' }
|
||||
plugins {
|
||||
grpc {
|
||||
artifact = 'io.grpc:protoc-gen-grpc-java:1.28.1' // CURRENT_GRPC_VERSION
|
||||
}
|
||||
grpc_python { path = "$projectDir/grpc_python_plugin" }
|
||||
}
|
||||
generateProtoTasks {
|
||||
all().each { task ->
|
||||
task.builtins {
|
||||
java { option 'lite' }
|
||||
|
||||
python {}
|
||||
}
|
||||
task.plugins {
|
||||
grpc { // Options added to --grpc_out
|
||||
option 'lite'
|
||||
}
|
||||
grpc_python {
|
||||
outputSubDir = 'python'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'io.grpc:grpc-okhttp:1.28.1' // CURRENT_GRPC_VERSION
|
||||
implementation 'io.grpc:grpc-protobuf-lite:1.28.1' // CURRENT_GRPC_VERSION
|
||||
implementation 'io.grpc:grpc-stub:1.28.1' // CURRENT_GRPC_VERSION
|
||||
implementation 'javax.annotation:javax.annotation-api:1.2'
|
||||
}
|
||||
BIN
protobuf/grpc_python_plugin
Executable file
BIN
protobuf/grpc_python_plugin
Executable file
Binary file not shown.
34
protobuf/src/main/proto/SlamController.proto
Normal file
34
protobuf/src/main/proto/SlamController.proto
Normal file
@@ -0,0 +1,34 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_multiple_files = true;
|
||||
option java_package = "org.vato.carcontroller";
|
||||
option java_outer_classname = "SlamControllerProto";
|
||||
|
||||
import "empty.proto";
|
||||
|
||||
message SlamDetails {
|
||||
int32 map_size_pixels = 1;
|
||||
int32 map_size_meters = 2;
|
||||
int32 port = 3;
|
||||
}
|
||||
|
||||
message SlamRow{
|
||||
repeated int32 points = 1;
|
||||
}
|
||||
|
||||
message SlamLocation{
|
||||
float x = 1;
|
||||
float y = 2;
|
||||
float theta = 3;
|
||||
}
|
||||
|
||||
message SlamScan{
|
||||
bytes map = 1;
|
||||
SlamLocation location = 2;
|
||||
}
|
||||
|
||||
service SlamControl {
|
||||
rpc start_map_streaming(SlamDetails) returns (Empty) {}
|
||||
|
||||
rpc stop_streaming(Empty) returns (Empty) {}
|
||||
}
|
||||
9
protobuf/src/main/proto/empty.proto
Normal file
9
protobuf/src/main/proto/empty.proto
Normal file
@@ -0,0 +1,9 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_multiple_files = true;
|
||||
option java_package = "org.vato.carcontroller";
|
||||
option java_outer_classname = "EmptyProto";
|
||||
|
||||
message Empty{
|
||||
|
||||
}
|
||||
31
protobuf/src/main/proto/lidar_tracker.proto
Normal file
31
protobuf/src/main/proto/lidar_tracker.proto
Normal file
@@ -0,0 +1,31 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package persontracking;
|
||||
|
||||
option java_multiple_files = true;
|
||||
option java_package = "org.vato.carcontroller";
|
||||
option java_outer_classname = "PersonTrackingProto";
|
||||
|
||||
import "empty.proto";
|
||||
|
||||
message Int32Value{
|
||||
int32 value = 1;
|
||||
}
|
||||
|
||||
message Point{
|
||||
double angle = 1;
|
||||
int32 distance = 2;
|
||||
int32 group_number = 3;
|
||||
}
|
||||
|
||||
message PointScan{
|
||||
repeated Point points = 1;
|
||||
}
|
||||
|
||||
service PersonTracking{
|
||||
rpc set_tracking_group(Int32Value) returns (Empty) {}
|
||||
|
||||
rpc stop_tracking(Empty) returns (Empty) {}
|
||||
|
||||
rpc start_tracking(Int32Value) returns (Empty) {}
|
||||
}
|
||||
29
protobuf/src/main/proto/motorService.proto
Normal file
29
protobuf/src/main/proto/motorService.proto
Normal file
@@ -0,0 +1,29 @@
|
||||
syntax = "proto3";
|
||||
|
||||
|
||||
package MotorControl;
|
||||
|
||||
option java_multiple_files = true;
|
||||
option java_package = "org.vato.carcontroller";
|
||||
option java_outer_classname = "MotorServiceProto";
|
||||
|
||||
message ThrottleRequest{
|
||||
float throttle = 1;
|
||||
}
|
||||
|
||||
message ThrottleResponse{
|
||||
bool throttleSet = 1;
|
||||
}
|
||||
|
||||
message SteeringRequest{
|
||||
float steering = 1;
|
||||
}
|
||||
|
||||
message SteeringResponse{
|
||||
bool steeringSet = 1;
|
||||
}
|
||||
|
||||
service CarControl{
|
||||
rpc SetThrottle(ThrottleRequest) returns (ThrottleResponse){}
|
||||
rpc SetSteering(SteeringRequest) returns (SteeringResponse){}
|
||||
}
|
||||
Reference in New Issue
Block a user