From 2c8f61e8a65b2628b763c0dc3dbca9bc0ff73aef Mon Sep 17 00:00:00 2001 From: Piv <18462828+Piv200@users.noreply.github.com> Date: Wed, 5 Feb 2020 22:16:23 +1030 Subject: [PATCH] FIx Slam protos --- app/build.gradle | 1 - .../java/com/example/carcontroller/LidarView.java | 1 - .../com/example/carcontroller/SLAM/SlamView.java | 13 +++++++++++-- app/src/main/proto/Empty.proto | 11 +++++++++++ app/src/main/proto/SlamController.proto | 14 ++++++++------ app/src/main/proto/lidar_tracker.proto | 11 ++++------- build.gradle | 2 +- 7 files changed, 35 insertions(+), 18 deletions(-) create mode 100644 app/src/main/proto/Empty.proto diff --git a/app/build.gradle b/app/build.gradle index 49285c3..516d7c5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -41,7 +41,6 @@ protobuf { } dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' diff --git a/app/src/main/java/com/example/carcontroller/LidarView.java b/app/src/main/java/com/example/carcontroller/LidarView.java index bc9889e..64e15f3 100644 --- a/app/src/main/java/com/example/carcontroller/LidarView.java +++ b/app/src/main/java/com/example/carcontroller/LidarView.java @@ -33,7 +33,6 @@ public class LidarView extends SurfaceView implements Runnable { @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); - } @Override diff --git a/app/src/main/java/com/example/carcontroller/SLAM/SlamView.java b/app/src/main/java/com/example/carcontroller/SLAM/SlamView.java index e217ca0..15450dd 100644 --- a/app/src/main/java/com/example/carcontroller/SLAM/SlamView.java +++ b/app/src/main/java/com/example/carcontroller/SLAM/SlamView.java @@ -7,6 +7,9 @@ import android.view.SurfaceView; import androidx.preference.PreferenceManager; +import com.example.carcontroller.SlamScan; +import com.google.protobuf.InvalidProtocolBufferException; + import org.zeromq.SocketType; import org.zeromq.ZContext; import org.zeromq.ZMQ; @@ -43,17 +46,23 @@ public class SlamView extends SurfaceView implements Runnable { @Override public void run() { // Receive map from zmq and update appropriately. - try (ZMQ.Socket socket = context.createSocket(SocketType.SUB)) { + try (ZMQ.Socket socket = context.createSocket(SocketType.PAIR)) { socket.connect("tcp://" + host + ":" + port); + socket.send("Hi"); while (!Thread.currentThread().isInterrupted()) { byte[] map = socket.recv(); + SlamScan scan = SlamScan.parseFrom(map); + for (Byte b : scan.getMap()) { + } } + } catch (InvalidProtocolBufferException e) { + System.out.println("Invalid map found"); } } - public void stop(){ + public void stop() { // Use grpc to tell the loader to stop. Interrupt the loader thread as well. mapThread.interrupt(); } diff --git a/app/src/main/proto/Empty.proto b/app/src/main/proto/Empty.proto new file mode 100644 index 0000000..ff44b21 --- /dev/null +++ b/app/src/main/proto/Empty.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + +package persontracking; + +option java_multiple_files = true; +option java_package = "com.example.carcontroller"; +option java_outer_classname = "EmptyProto"; + +message Empty{ + +} \ No newline at end of file diff --git a/app/src/main/proto/SlamController.proto b/app/src/main/proto/SlamController.proto index 4de05d5..f9dcf7a 100644 --- a/app/src/main/proto/SlamController.proto +++ b/app/src/main/proto/SlamController.proto @@ -1,5 +1,11 @@ syntax = "proto3"; +option java_multiple_files = true; +option java_package = "com.example.carcontroller"; +option java_outer_classname = "SlamControllerProto"; + +import "Empty.proto"; + message SlamDetails { int32 map_size_pixels = 1; int32 map_size_meters = 2; @@ -20,12 +26,8 @@ message SlamScan{ SlamLocation location = 2; } -message Empty{ - -} - service SlamControl { - rpc start_map_streaming(SlamDetails) returns (Empty) {} + rpc start_map_streaming(SlamDetails) returns (persontracking.Empty) {} - rpc stop_streaming(Empty) returns (Empty) {} + rpc stop_streaming(persontracking.Empty) returns (persontracking.Empty) {} } \ No newline at end of file diff --git a/app/src/main/proto/lidar_tracker.proto b/app/src/main/proto/lidar_tracker.proto index 0567b3e..a1abae6 100644 --- a/app/src/main/proto/lidar_tracker.proto +++ b/app/src/main/proto/lidar_tracker.proto @@ -6,15 +6,12 @@ option java_multiple_files = true; option java_package = "com.example.carcontroller"; option java_outer_classname = "PersonTrackingProto"; +import "Empty.proto"; message Int32Value{ int32 value = 1; } -message Empty{ - -} - message Point{ double angle = 1; int32 distance = 2; @@ -26,9 +23,9 @@ message PointScan{ } service PersonTracking{ - rpc set_tracking_group(Int32Value) returns (Empty) {} + rpc set_tracking_group(Int32Value) returns (persontracking.Empty) {} - rpc stop_tracking(Empty) returns (Empty) {} + rpc stop_tracking(persontracking.Empty) returns (persontracking.Empty) {} - rpc get_scan_data(Empty) returns (PointScan) {} + rpc get_scan_data(persontracking.Empty) returns (PointScan) {} } \ No newline at end of file diff --git a/build.gradle b/build.gradle index beb8018..d4f60f2 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.5.1' + classpath 'com.android.tools.build:gradle:3.5.3' classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.10' // NOTE: Do not place your application dependencies here; they belong