def __init__(self, socketio, rtklib_path=None, enable_led=True, log_path=None): if rtklib_path is None: rtklib_path = "/home/reach/RTKLIB" if log_path is None: log_path = "/home/reach/logs" # default state for RTKLIB is "rover single" self.state = "rover" # we need this to broadcast stuff self.socketio = socketio # these are necessary to handle rover mode self.rtkc = RtkController(rtklib_path) self.conm = ConfigManager(rtklib_path) # this one handles base settings self.s2sc = Str2StrController(rtklib_path) # take care of serving logs self.logm = LogManager(rtklib_path, log_path) # basic synchronisation to prevent errors self.semaphore = Semaphore() # we need this to send led signals self.enable_led = enable_led if self.enable_led: self.led = ReachLED() # broadcast satellite levels and status with these self.server_not_interrupted = True self.satellite_thread = None self.coordinate_thread = None self.conversion_thread = None self.system_time_correct = False self.time_thread = Thread(target=self.setCorrectTime) self.time_thread.start()