From 2ff27a652d7c625314ccf072caaef7ea502f58e3 Mon Sep 17 00:00:00 2001 From: Laika Date: Sat, 3 Jul 2021 11:38:27 -0400 Subject: [PATCH] moved heartbeat and location functions to modules --- satsim/heartbeat.py | 33 +++++++++++++++++++++++++++++++++ satsim/location.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 satsim/heartbeat.py create mode 100644 satsim/location.py diff --git a/satsim/heartbeat.py b/satsim/heartbeat.py new file mode 100644 index 0000000..7c17c80 --- /dev/null +++ b/satsim/heartbeat.py @@ -0,0 +1,33 @@ +from module import module + +class heartbeat_module(module): + def __init__(self): + super().__init__("heartbeat") + self.fields["MTE"] = 0 + self.fields["kill"] = 0 + self.writable = ["kill"] + + def mod_get(self, field="none"): + if field not in self.fields: + return (-1, "GET FATAL: field '" + field + "'' does not exist in module: " + self.fields["name"]) + return (self.fields[field], "GET OK") + + def mod_set(self, field="none", value="none"): + if field not in self.fields: + return (-1, "SET FATAL: field '" + field + "'' does not exist in module: " + self.fields["name"]) + if field not in self.writable: + return (-1, "SET FATAL: field '" + field + "' is not writable in module: " + self.fields["name"]) + try: + self.fields[field] = int(value) + return (0, "SET OK") + except: + return (-1, "SET FATAL: field '" + field + "' in module: " + self.fields["name"] + " takes int") + + def mod_exe(self): + pass + + def mod_not(self): + pass + + def mod_update(self): + self.fields["MTE"] += 1 \ No newline at end of file diff --git a/satsim/location.py b/satsim/location.py new file mode 100644 index 0000000..d6ae70d --- /dev/null +++ b/satsim/location.py @@ -0,0 +1,28 @@ +from module import module +class location_module(module): + id_c = 0 + def __init__(self): + super().__init__("location") + self.fields["coords"] = "space" + + def mod_get(self, field="none"): + if field not in self.fields: + return (-1, "GET FATAL: field '" + field + "'' does not exist in module: " + self.fields["name"]) + return (self.fields[field], "GET OK") + + def mod_set(self, field="none", value="none"): + if field not in self.fields: + return (-1, "SET FATAL: field '" + field + "'' does not exist in module: " + self.fields["name"]) + if field not in self.writable: + return (-1, "SET FATAL: field '" + field + "' is not writable in module: " + self.fields["name"]) + try: + self.fields[field] = int(value) + return (0, "SET OK") + except: + return (-1, "SET FATAL: field '" + field + "' in module: " + self.fields["name"] + " takes int") + + def mod_not(self): + print("[!] NOT CALLED ON PRIMITIVE MODULE") + + def mod_update(self): + pass \ No newline at end of file