def __init__(self, localConfig, logger): self.localConfig = localConfig self.logger = logger self.periphController = PeripheralController() self.commandProcessor = CommandProcessor(logger, self.periphController, self.localConfig)
class DiversityMain: port = None name = None logger = None main_thread = None listenerSocket = None senderSocket = None localConfig = None periphController = None commandProcessor = None def __init__(self, localConfig, logger): self.localConfig = localConfig self.logger = logger self.periphController = PeripheralController() self.commandProcessor = CommandProcessor(logger, self.periphController, self.localConfig) def start(self): self.event = threading.Event() self.main_thread = Thread(target=self.startMainThread, args=("test",)) self.main_thread.start() self.periphController.startThread() def startMainThread(self, teset): self.startReportingTimer() self.event.wait() self.logger.write("reporttimer", "out") def startReportingTimer(self): if self.event.isSet(): self.logger.write("reporttimer", "Not restarting") else: self.timer = Timer(1, self.doReport, args=["WOW"]) self.timer.start() freqcounter = 0 reportAtStartup = True def doReport(self, message): global localConfig freq = int(localConfig.connectfreq) # self.logger.write("main_thread","reporting") self.freqcounter += 1 if self.freqcounter >= freq or self.commandProcessor.wantPostNow() == True or self.reportAtStartup == True: self.reportAtStartup = False self.freqcounter = 0 self.postalive() self.startReportingTimer() def join(self): self.main_thread.join() def stop(self): self.periphController.stopThread() self.timer.cancel() self.event.set() def postalive(self): postdata = {"cid": localConfig.clientid, "psw": localConfig.password} self.commandProcessor.postAlive()