Example #1
0
    def run(self):
        logging.basicConfig(level=logging.INFO)
        self.dsn = DSN()
        self.dsn.data_callback = self.data_callback

        try:
            with open("./state.pickle", "r") as f:
                self.state, self.last_updates = pickle.load(f)
        except IOError:
            self.log.exception("Failure loading state file, resetting")

        self.log.info("Running")
        try:
            self.dsn.run()
        finally:
            self.log.info("Saving state...")
            with open("./state.pickle", "w") as f:
                pickle.dump((self.state, self.last_updates), f,
                            pickle.HIGHEST_PROTOCOL)
            self.log.info("Shut down.")
Example #2
0
 def main(self):
     self.dsn = DSN()
     self.dsn.data_callback = self.data_callback
     self.dsn.run()
Example #3
0
def to_GHz(freq):
    if freq is None:
        return None
    return str(round(float(freq) / 10**9, 4))


def update_callback(antenna, old, new):
    if len(new['down_signal']) == 0:
        return
    for i in range(0, len(new['down_signal'])):
        signal = new['down_signal'][i]

        if len(old['down_signal']) > i:
            old_signal = old['down_signal'][i]
            if (to_GHz(signal['frequency']) == to_GHz(old_signal['frequency'])
                    and signal['debug'] == old_signal['debug']
                    and signal['spacecraft'] == old_signal['spacecraft']):
                # No change, don't print anything
                return

        print(
            "%s channel %s\ttracking %s\tstatus: %s\tinfo: %s\tfrequency: %sGHz"
            % (antenna, i, signal['spacecraft'], signal['type'],
               signal['debug'], to_GHz(signal['frequency'])))


logging.basicConfig()
dsn = DSN()
dsn.update_callback = update_callback
dsn.run()