Compare commits
3 Commits
0ac7db0b0d
...
master
Author | SHA1 | Date | |
---|---|---|---|
9531e180c8 | |||
8359c8f9b9 | |||
2033cc1137 |
50
endpoint.py
50
endpoint.py
@@ -163,7 +163,7 @@ class Endpoint(Thread):
|
|||||||
database=self.config["database"]["db-name"]
|
database=self.config["database"]["db-name"]
|
||||||
) as connection:
|
) as connection:
|
||||||
query = f"insert into `{self.db_table}` ({self.db_col_names}) values ({vals_str});"
|
query = f"insert into `{self.db_table}` ({self.db_col_names}) values ({vals_str});"
|
||||||
journal.log(f"Executing query: {query}")
|
journal.log(f"[{self.config['database']['db-user']}:{self.db_table}] Executing query: {query}")
|
||||||
with connection.cursor() as cursor:
|
with connection.cursor() as cursor:
|
||||||
cursor.execute(query)
|
cursor.execute(query)
|
||||||
|
|
||||||
@@ -179,41 +179,37 @@ class Endpoint(Thread):
|
|||||||
last_row = None
|
last_row = None
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
# время следующего опроса
|
try:
|
||||||
need_time = last_query + scan_rate
|
row = self.__mb_read_all_regs()
|
||||||
|
|
||||||
while True:
|
if self.log_type == LOG_TYPE_ON_SCAN:
|
||||||
try:
|
self.__insert_db_row(row)
|
||||||
row = self.__mb_read_all_regs()
|
last_row = row
|
||||||
|
else:
|
||||||
if self.log_type == LOG_TYPE_ON_SCAN:
|
equal = True
|
||||||
|
if last_row is None:
|
||||||
|
equal = False
|
||||||
|
else:
|
||||||
|
for i in range(0, len(last_row)):
|
||||||
|
if last_row[i] != row[i]:
|
||||||
|
equal = False
|
||||||
|
break
|
||||||
|
if not equal:
|
||||||
self.__insert_db_row(row)
|
self.__insert_db_row(row)
|
||||||
last_row = row
|
last_row = row
|
||||||
else:
|
except Exception as ex:
|
||||||
equal = True
|
journal.log(f"[{self.config['database']['db-user']}:{self.db_table}] Exception: {ex}")
|
||||||
if last_row is None:
|
|
||||||
equal = False
|
|
||||||
else:
|
|
||||||
for i in range(0, len(last_row)):
|
|
||||||
if last_row[i] != row[i]:
|
|
||||||
equal = False
|
|
||||||
break
|
|
||||||
if not equal:
|
|
||||||
self.__insert_db_row(row)
|
|
||||||
last_row = row
|
|
||||||
|
|
||||||
last_query = need_time
|
|
||||||
break
|
|
||||||
except Exception as ex:
|
|
||||||
journal.log(f"Exception: {ex}")
|
|
||||||
time.sleep(1) # небольшая задержка, чтоб не спамить запросами
|
|
||||||
need_time = datetime.now() + scan_rate
|
|
||||||
|
|
||||||
# вычислим время до следующего опроса и подождем
|
# вычислим время до следующего опроса и подождем
|
||||||
|
# время следующего опроса
|
||||||
|
need_time = last_query + scan_rate
|
||||||
curr_time = datetime.now()
|
curr_time = datetime.now()
|
||||||
if need_time > curr_time:
|
if need_time > curr_time:
|
||||||
delta = need_time - curr_time
|
delta = need_time - curr_time
|
||||||
time.sleep(delta.seconds + (delta.microseconds / 1000000))
|
time.sleep(delta.seconds + (delta.microseconds / 1000000))
|
||||||
|
last_query = need_time
|
||||||
|
else:
|
||||||
|
last_query = datetime.now()
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
# запускаем клиента модбас
|
# запускаем клиента модбас
|
||||||
|
Reference in New Issue
Block a user