Add SlamController stuff

This commit is contained in:
Piv
2020-02-03 19:00:50 +10:30
parent 03f8485bd5
commit 35f35622cf
6 changed files with 522 additions and 3 deletions

View File

@@ -0,0 +1,21 @@
import SlamController_pb2_grpc
import slam_streamer as slam
from threading import Thread
class SlamServicer(SlamController_pb2_grpc.SlamControlServicer):
def __init__(self, lidar_connection):
print('Servicer initialised')
self.slam = slam.SlamStreamer(lidar_connection=lidar_connection)
def start_map_streaming(self, request, context):
if not hasattr(self, 'slamThread'):
# Don't bother creating and starting slam more than once.
self.slam.port = request.port
self.slam.map_pixels = request.map_size_pixels
self.slam.map_meters = request.map_size_meters
slamThread = Thread(target=self.slam.start)
slamThread.start()
def stop_streaming(self, request, context):
if hasattr(self, 'slamThread'):
self.slam.stop_scanning()