From 8356ebd35ccc95bf74842c8838f4b4113288ccff Mon Sep 17 00:00:00 2001 From: michaelpivato Date: Wed, 12 Feb 2020 12:03:24 +1030 Subject: [PATCH] Bind and start socket in start method, not initialiser. --- SlamController/slam_streamer.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/SlamController/slam_streamer.py b/SlamController/slam_streamer.py index f062a36..ed80ffe 100644 --- a/SlamController/slam_streamer.py +++ b/SlamController/slam_streamer.py @@ -18,7 +18,7 @@ class SlamStreamer: self._map_meters = map_meters self._lidar_connection = lidar_connection self._port = port - self._socket = self._start_socket(self._create_tcp_pub_socket(), port) + self._zmq_context = self._create_context() def start(self): ''' @@ -31,6 +31,8 @@ class SlamStreamer: to calling this method, and changing those values after calling this method will have no effect. ''' + + self._socket = self._start_socket(self._create_socket(self._zmq_context), self._port) # Block until user opens zmq. self._socket.recv() @@ -80,8 +82,8 @@ class SlamStreamer: def _create_context(self): return zmq.Context.instance() - def _create_tcp_pub_socket(self): - return self._create_context().socket(zmq.PAIR) + def _create_socket(self, context): + return context.socket(zmq.PAIR) def _start_socket(self, socket, port): socket.bind('tcp://*:' + str(self._port))