update: send a csv file every 30 seconds

fix: manage_csv_files
This commit is contained in:
kostas 2024-06-07 10:41:38 +02:00
parent 93f5da18f8
commit 9434092b6f
1 changed files with 9 additions and 2 deletions

View File

@ -881,7 +881,10 @@ import random
logging.debug('finished update cycle\n') logging.debug('finished update cycle\n')
return True''' return True'''
start_time = time.time()
def update(modbus, batteries, dbus, signals, csv_signals): def update(modbus, batteries, dbus, signals, csv_signals):
global start_time
# type: (Modbus, Iterable[Battery], DBus, Iterable[Signal]) -> bool # type: (Modbus, Iterable[Battery], DBus, Iterable[Signal]) -> bool
""" """
Main update function Main update function
@ -910,7 +913,11 @@ def update(modbus, batteries, dbus, signals, csv_signals):
#print(update_state_from_dictionaries(current_warnings, current_alarms)) #print(update_state_from_dictionaries(current_warnings, current_alarms))
status_message, alarms_number_list, warnings_number_list = update_state_from_dictionaries(current_warnings, current_alarms, node_numbers) status_message, alarms_number_list, warnings_number_list = update_state_from_dictionaries(current_warnings, current_alarms, node_numbers)
publish_values(dbus, signals, statuses) publish_values(dbus, signals, statuses)
elapsed_time = time.time() - start_time
if elapsed_time >= 30:
create_csv_files(csv_signals, statuses, node_numbers, alarms_number_list, warnings_number_list) create_csv_files(csv_signals, statuses, node_numbers, alarms_number_list, warnings_number_list)
start_time = time.time()
print(f"Elapsed time: {elapsed_time:.2f} seconds")
logging.debug('finished update cycle\n') logging.debug('finished update cycle\n')
return True return True
@ -975,7 +982,7 @@ def get_installation_name(file_path):
return file.read().strip() return file.read().strip()
def manage_csv_files(directory_path, max_files=20): def manage_csv_files(directory_path, max_files=20):
csv_files = [f for f in os.listdir(directory_path)] csv_files = [f for f in os.listdir(directory_path) if os.path.isfile(os.path.join(directory_path, f))]
csv_files.sort(key=lambda x: os.path.getctime(os.path.join(directory_path, x))) csv_files.sort(key=lambda x: os.path.getctime(os.path.join(directory_path, x)))
# Remove oldest files if exceeds maximum # Remove oldest files if exceeds maximum
while len(csv_files) > max_files: while len(csv_files) > max_files: