|
|
|
@ -43,7 +43,7 @@ def do_full_report(config):
|
|
|
|
|
|
|
|
|
|
|
|
# Audio
|
|
|
|
# Audio
|
|
|
|
handler = AudioHandler(config)
|
|
|
|
handler = AudioHandler(config)
|
|
|
|
wav_file = handler.generate_audio(text, "report.gsm")
|
|
|
|
wav_file = handler.generate_audio(text, "report.ul")
|
|
|
|
|
|
|
|
|
|
|
|
# Play
|
|
|
|
# Play
|
|
|
|
nodes = config.get('audio', {}).get('nodes', [])
|
|
|
|
nodes = config.get('audio', {}).get('nodes', [])
|
|
|
|
@ -54,17 +54,20 @@ def monitor_loop(config):
|
|
|
|
known_alerts = set()
|
|
|
|
known_alerts = set()
|
|
|
|
|
|
|
|
|
|
|
|
loc_svc = LocationService(config)
|
|
|
|
loc_svc = LocationService(config)
|
|
|
|
lat, lon = loc_svc.get_coordinates()
|
|
|
|
|
|
|
|
prov_code = config.get('location', {}).get('provider')
|
|
|
|
|
|
|
|
provider = get_provider_instance(CountryCode=prov_code, Lat=lat, Lon=lon, Config=config)
|
|
|
|
|
|
|
|
narrator = Narrator()
|
|
|
|
narrator = Narrator()
|
|
|
|
handler = AudioHandler(config)
|
|
|
|
handler = AudioHandler(config)
|
|
|
|
nodes = config.get('audio', {}).get('nodes', [])
|
|
|
|
nodes = config.get('audio', {}).get('nodes', [])
|
|
|
|
|
|
|
|
prov_code = config.get('location', {}).get('provider')
|
|
|
|
|
|
|
|
|
|
|
|
logger.info("Starting Alert Monitor...")
|
|
|
|
logger.info("Starting Alert Monitor...")
|
|
|
|
|
|
|
|
|
|
|
|
while True:
|
|
|
|
while True:
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
|
|
|
|
# Update location each interval for mobile nodes
|
|
|
|
|
|
|
|
lat, lon = loc_svc.get_coordinates()
|
|
|
|
|
|
|
|
# Re-init provider with new coords
|
|
|
|
|
|
|
|
provider = get_provider_instance(CountryCode=prov_code, Lat=lat, Lon=lon, Config=config)
|
|
|
|
|
|
|
|
|
|
|
|
alerts = provider.get_alerts(lat, lon)
|
|
|
|
alerts = provider.get_alerts(lat, lon)
|
|
|
|
current_ids = {a.id for a in alerts}
|
|
|
|
current_ids = {a.id for a in alerts}
|
|
|
|
|
|
|
|
|
|
|
|
@ -78,7 +81,7 @@ def monitor_loop(config):
|
|
|
|
if new_alerts:
|
|
|
|
if new_alerts:
|
|
|
|
logger.info(f"New Alerts detected: {len(new_alerts)}")
|
|
|
|
logger.info(f"New Alerts detected: {len(new_alerts)}")
|
|
|
|
text = narrator.announce_alerts(new_alerts)
|
|
|
|
text = narrator.announce_alerts(new_alerts)
|
|
|
|
wav = handler.generate_audio(text, "alert.gsm")
|
|
|
|
wav = handler.generate_audio(text, "alert.ul")
|
|
|
|
handler.play_on_nodes(wav, nodes)
|
|
|
|
handler.play_on_nodes(wav, nodes)
|
|
|
|
|
|
|
|
|
|
|
|
# Cleanup expired from known
|
|
|
|
# Cleanup expired from known
|
|
|
|
|