define member variables with capital letters
This commit is contained in:
@@ -19,8 +19,8 @@ from datetime import datetime as dt
|
||||
# - third element of wind data tuple: wind speed (KT)
|
||||
class DwdCrawler():
|
||||
def __init__(self):
|
||||
self.updateTime = None
|
||||
self.windData = None
|
||||
self.UpdateTime = None
|
||||
self.WindData = None
|
||||
|
||||
def parseGaforAreas(areas : str):
|
||||
areas = areas.replace(':', '')
|
||||
@@ -125,8 +125,8 @@ class DwdCrawler():
|
||||
return nextUpdate, windInformation
|
||||
|
||||
def receiveWindData(self):
|
||||
self.updateTime = None
|
||||
self.windData = None
|
||||
self.UpdateTime = None
|
||||
self.WindData = None
|
||||
|
||||
with urllib.request.urlopen('https://www.dwd.de/DE/fachnutzer/luftfahrt/teaser/luftsportberichte/luftsportberichte_node.html') as site:
|
||||
data = site.read().decode('utf-8')
|
||||
@@ -141,17 +141,17 @@ class DwdCrawler():
|
||||
pages.append('https://www.dwd.de/' + link['href'].split(';')[0])
|
||||
|
||||
# receive the wind data
|
||||
self.updateTime = None
|
||||
self.windData = []
|
||||
self.UpdateTime = None
|
||||
self.WindData = []
|
||||
for page in pages:
|
||||
next, wind = self.parseGaforPage(page)
|
||||
if None != next:
|
||||
if None == self.updateTime or self.updateTime > next:
|
||||
self.updateTime = next
|
||||
self.windData.extend(wind)
|
||||
if None == self.UpdateTime or self.UpdateTime > next:
|
||||
self.UpdateTime = next
|
||||
self.WindData.extend(wind)
|
||||
|
||||
# indicate that new wind data is available
|
||||
if None != self.updateTime:
|
||||
if None != self.UpdateTime:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
@@ -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.ReceiverThread:
|
||||
self.ReceiverThread.stopThread()
|
||||
self.ReceiverThread.join()
|
||||
self.ReceiverThread = None
|
||||
|
||||
if None != self.receiverSocket:
|
||||
self.receiverSocket.close()
|
||||
self.receiverSocket = None
|
||||
if None != self.ReceiverSocket:
|
||||
self.ReceiverSocket.close()
|
||||
self.ReceiverSocket = None
|
||||
|
||||
if None != self.notificationSocket:
|
||||
self.notificationSocket.close()
|
||||
self.notificationSocket = None
|
||||
if None != self.NotificationSocket:
|
||||
self.NotificationSocket.close()
|
||||
self.NotificationSocket = None
|
||||
|
||||
self.Context = None
|
||||
|
||||
@@ -14,19 +14,19 @@ class Weather(Thread):
|
||||
def __init__(self):
|
||||
Thread.__init__(self)
|
||||
|
||||
self.nextUpdate = None
|
||||
self.lastUpdateTried = None
|
||||
self.stopThread = False
|
||||
self.provider = None
|
||||
self.NextUpdate = None
|
||||
self.LastUpdateTried = None
|
||||
self.StopThread = False
|
||||
self.Provider = None
|
||||
|
||||
def acquire(self, config : aman.config.Weather.Weather):
|
||||
self.nextUpdate = dt.utcfromtimestamp(int(time.time()))
|
||||
self.lastUpdateTried = None
|
||||
self.stopThread = False
|
||||
self.provider = None
|
||||
self.NextUpdate = dt.utcfromtimestamp(int(time.time()))
|
||||
self.LastUpdateTried = None
|
||||
self.StopThread = False
|
||||
self.Provider = None
|
||||
|
||||
if 'DWD' == config.Provider.upper():
|
||||
self.provider = DwdCrawler()
|
||||
self.Provider = DwdCrawler()
|
||||
else:
|
||||
sys.stderr.write('Invalid or unknown weather-provider defined')
|
||||
sys.exit(-1)
|
||||
@@ -34,7 +34,7 @@ class Weather(Thread):
|
||||
self.start()
|
||||
|
||||
def release(self):
|
||||
self.stopThread = True
|
||||
self.StopThread = True
|
||||
self.join()
|
||||
|
||||
def currentClock():
|
||||
@@ -42,15 +42,15 @@ class Weather(Thread):
|
||||
return clock
|
||||
|
||||
def run(self):
|
||||
while False == self.stopThread and None != self.provider:
|
||||
while False == self.StopThread and None != self.Provider:
|
||||
now = Weather.currentClock()
|
||||
|
||||
# check if an update is required
|
||||
if None != self.provider.updateTime and self.provider.updateTime > now:
|
||||
if None != self.Provider.UpdateTime and self.Provider.UpdateTime > now:
|
||||
time.sleep(1)
|
||||
continue
|
||||
|
||||
if None == self.lastUpdateTried or self.lastUpdateTried <= now:
|
||||
if True == self.provider.receiveWindData():
|
||||
self.nextUpdate = self.provider.updateTime
|
||||
if None == self.LastUpdateTried or self.LastUpdateTried <= now:
|
||||
if True == self.Provider.receiveWindData():
|
||||
self.NextUpdate = self.Provider.UpdateTime
|
||||
print('Received new wind data')
|
||||
Reference in New Issue
Block a user