diff --git a/endpoint.py b/endpoint.py index 857cc2a..a60f8f0 100644 --- a/endpoint.py +++ b/endpoint.py @@ -167,12 +167,9 @@ class Endpoint(Thread): last_row = None while True: - # вычислим время до следующего опроса - curr_time = datetime.now() + # время следующего опроса need_time = last_query + scan_rate - if need_time > curr_time: - delta = need_time - curr_time - time.sleep(delta.seconds + (delta.microseconds / 1000000)) + while True: try: row = self.__mb_read_all_regs() @@ -199,6 +196,12 @@ class Endpoint(Thread): time.sleep(0.1) # небольшая задержка, чтоб не спамить запросами need_time = datetime.now() + scan_rate + # вычислим время до следующего опроса и подождем + curr_time = datetime.now() + if need_time > curr_time: + delta = need_time - curr_time + time.sleep(delta.seconds + (delta.microseconds / 1000000)) + def run(self): # запускаем клиента модбас self.mb = ModbusClient(