21 lines
850 B
Python
21 lines
850 B
Python
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() |