From 8b99d8ffa66b28ae53b6944c6392eaad227161c3 Mon Sep 17 00:00:00 2001 From: cgbsat Date: Sun, 14 Jul 2019 12:31:46 +0000 Subject: [PATCH] Fix bug with priority scheduling --- schedule_single_station.py | 8 ++++---- utils.py | 14 ++++++++------ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/schedule_single_station.py b/schedule_single_station.py index 36f1375..6dedb09 100755 --- a/schedule_single_station.py +++ b/schedule_single_station.py @@ -56,8 +56,8 @@ class satellite: self.mode = mode def __repr__(self): - return "%s %s %d %d %d %s" % (self.id, self.transmitter, self.success_rate, self.good_count, - self.data_count, self.name) + return "%s %s %d %d %d %s %s" % (self.id, self.transmitter, self.success_rate, self.good_count, + self.data_count, self.mode, self.name) def _log_level_string_to_int(log_level_string): @@ -280,7 +280,7 @@ def main(): passes = find_passes(satellites, observer, tmin, tmax, minimum_altitude, min_pass_duration) priorities, favorite_transmitters = read_priorities_transmitters(priority_filename) - + # List of scheduled passes scheduledpasses = get_scheduled_passes_from_network(ground_station_id, tmin, tmax) logging.info("Found %d scheduled passes between %s and %s on ground station %d" % @@ -309,7 +309,7 @@ def main(): schedule_needed = False logging.info("GS | Sch | NORAD | Start time | End time | El | " + - "Priority | Transmitter UUID | Satellite name ") + "Priority | Transmitter UUID | Mode | Satellite name ") for satpass in sorted(scheduledpasses, key=lambda satpass: satpass['tr']): logging.info( "%3d | %3.d | %05d | %s | %s | %3.0f | %4.6f | %s | %-10s | %s" % diff --git a/utils.py b/utils.py index bae5694..3a4e34f 100644 --- a/utils.py +++ b/utils.py @@ -309,14 +309,16 @@ def get_priority_passes(passes, priorities, favorite_transmitters, only_priority priority = [] normal = [] for satpass in passes: - # Get user defined priorities + # Is this satellite a priority satellite? if satpass['id'] in priorities: - satpass['priority'] = priorities[satpass['id']] - if satpass['id'] in favorite_transmitters: + # Is this transmitter a priority transmitter? + if satpass['uuid'] == favorite_transmitters[satpass['id']]: + satpass['priority'] = priorities[satpass['id']] satpass['uuid'] = favorite_transmitters[satpass['id']] - # Add if priority is high enough - if satpass['priority'] >= min_priority: - priority.append(satpass) + + # Add if priority is high enough + if satpass['priority'] >= min_priority: + priority.append(satpass) elif only_priority: # Find satellite transmitter with highest number of good observations max_good_count = max([s['good_count'] for s in passes if s["id"] == satpass["id"]])