|
@@ -16,20 +16,20 @@ from threading import Thread, _active
|
|
|
class ReceiverThread(Thread):
|
|
|
def __init__(self, socket, aman):
|
|
|
Thread.__init__(self)
|
|
|
- self.socket = socket
|
|
|
- self.aman = aman
|
|
|
+ self.Socket = socket
|
|
|
+ self.AMAN = aman
|
|
|
|
|
|
def run(self):
|
|
|
while True:
|
|
|
try:
|
|
|
- msg = self.socket.recv(zmq.NOBLOCK)
|
|
|
+ msg = self.Socket.recv(zmq.NOBLOCK)
|
|
|
|
|
|
# parse the received message
|
|
|
report = AircraftReport_pb2.AircraftReport()
|
|
|
report.ParseFromString(msg)
|
|
|
|
|
|
# try to associate the received aircraft to an airport
|
|
|
- self.aman.updateAircraftReport(report)
|
|
|
+ self.AMAN.updateAircraftReport(report)
|
|
|
|
|
|
except zmq.ZMQError as error:
|
|
|
if zmq.EAGAIN == error.errno:
|
|
@@ -54,10 +54,10 @@ class ReceiverThread(Thread):
|
|
|
# @brief Receives and sends messages to EuroScope plugins
|
|
|
class Euroscope:
|
|
|
def __init__(self):
|
|
|
- self.context = None
|
|
|
- self.receiverSocket = None
|
|
|
- self.receiverThread = None
|
|
|
- self.notificationSocket = None
|
|
|
+ self.Context = None
|
|
|
+ self.ReceiverSocket = None
|
|
|
+ self.ReceiverThread = None
|
|
|
+ self.NotificationSocket = None
|
|
|
|
|
|
def __del__(self):
|
|
|
self.release()
|
|
@@ -65,7 +65,7 @@ class Euroscope:
|
|
|
# @brief Initializes the ZMQ socket
|
|
|
# @param[in] config The server configuration
|
|
|
def acquire(self, configPath : str, config : Server, aman):
|
|
|
- self.context = zmq.Context()
|
|
|
+ self.Context = zmq.Context()
|
|
|
|
|
|
# find the key directories
|
|
|
serverKeyPath = os.path.join(os.path.join(configPath, 'keys'), 'server')
|
|
@@ -88,34 +88,36 @@ class Euroscope:
|
|
|
keyPair = zmq.auth.load_certificate(keyPairPath[0])
|
|
|
|
|
|
# initialize the receiver
|
|
|
- self.receiverSocket = zmq.Socket(self.context, zmq.SUB)
|
|
|
- self.receiverSocket.setsockopt(zmq.CURVE_PUBLICKEY, keyPair[0])
|
|
|
- self.receiverSocket.setsockopt(zmq.CURVE_SECRETKEY, keyPair[1])
|
|
|
- self.receiverSocket.setsockopt(zmq.CURVE_SERVER, True)
|
|
|
- self.receiverSocket.bind('tcp://' + config.Address + ':' + str(config.PortReceiver))
|
|
|
- self.receiverSocket.setsockopt(zmq.SUBSCRIBE, b'')
|
|
|
- self.receiverThread = ReceiverThread(self.receiverSocket, aman)
|
|
|
- self.receiverThread.start()
|
|
|
+ self.ReceiverSocket = zmq.Socket(self.Context, zmq.SUB)
|
|
|
+ self.ReceiverSocket.setsockopt(zmq.CURVE_PUBLICKEY, keyPair[0])
|
|
|
+ self.ReceiverSocket.setsockopt(zmq.CURVE_SECRETKEY, keyPair[1])
|
|
|
+ self.ReceiverSocket.setsockopt(zmq.CURVE_SERVER, True)
|
|
|
+ self.ReceiverSocket.bind('tcp://' + config.Address + ':' + str(config.PortReceiver))
|
|
|
+ self.ReceiverSocket.setsockopt(zmq.SUBSCRIBE, b'')
|
|
|
+ self.ReceiverThread = ReceiverThread(self.ReceiverSocket, aman)
|
|
|
+ self.ReceiverThread.start()
|
|
|
print('Listening to tcp://' + config.Address + ':' + str(config.PortReceiver))
|
|
|
|
|
|
# initialize the notification
|
|
|
- self.notificationSocket = zmq.Socket(self.context, zmq.PUB)
|
|
|
- self.notificationSocket.setsockopt(zmq.CURVE_PUBLICKEY, keyPair[0])
|
|
|
- self.notificationSocket.setsockopt(zmq.CURVE_SECRETKEY, keyPair[1])
|
|
|
- self.notificationSocket.setsockopt(zmq.CURVE_SERVER, True)
|
|
|
- self.notificationSocket.bind('tcp://' + config.Address + ':' + str(config.PortNotification))
|
|
|
+ self.NotificationSocket = zmq.Socket(self.Context, zmq.PUB)
|
|
|
+ self.NotificationSocket.setsockopt(zmq.CURVE_PUBLICKEY, keyPair[0])
|
|
|
+ self.NotificationSocket.setsockopt(zmq.CURVE_SECRETKEY, keyPair[1])
|
|
|
+ self.NotificationSocket.setsockopt(zmq.CURVE_SERVER, True)
|
|
|
+ self.NotificationSocket.bind('tcp://' + config.Address + ':' + str(config.PortNotification))
|
|
|
print('Publishing to tcp://' + config.Address + ':' + str(config.PortNotification))
|
|
|
|
|
|
def release(self):
|
|
|
- if None != self.receiverThread:
|
|
|
- self.receiverThread.stopThread()
|
|
|
- self.receiverThread.join()
|
|
|
- self.receiverThread = None
|
|
|
-
|
|
|
- if None != self.receiverSocket:
|
|
|
- self.receiverSocket.close()
|
|
|
- self.receiverSocket = None
|
|
|
-
|
|
|
- if None != self.notificationSocket:
|
|
|
- self.notificationSocket.close()
|
|
|
- self.notificationSocket = None
|
|
|
+ if None != self.ReceiverThread:
|
|
|
+ self.ReceiverThread.stopThread()
|
|
|
+ self.ReceiverThread.join()
|
|
|
+ self.ReceiverThread = None
|
|
|
+
|
|
|
+ if None != self.ReceiverSocket:
|
|
|
+ self.ReceiverSocket.close()
|
|
|
+ self.ReceiverSocket = None
|
|
|
+
|
|
|
+ if None != self.NotificationSocket:
|
|
|
+ self.NotificationSocket.close()
|
|
|
+ self.NotificationSocket = None
|
|
|
+
|
|
|
+ self.Context = None
|