import json | |
import time | |
# Предполагаем, что глобальные переменные уже обновлены в другом месте кода | |
# и доступны для использования здесь | |
globs = { | |
"dey": 1, # День недели, который должен обновляться с устройства | |
"wek": 1, # Неделя | |
"v_hid": 0, # Час | |
"v_min": 0, # Минута | |
"ph": 7.0 # pH-значение | |
} | |
# Функция для создания JSON-объекта из глобальных переменных | |
def create_json_from_globals(week, day, hour, ph): | |
return { | |
"week": week, | |
"day": day, | |
"hour": hour, | |
"ph": ph | |
} | |
# Переменные для отслеживания текущей недели и дня | |
current_week = globs["wek"] | |
current_day = globs["dey"] | |
current_hour = globs["v_hid"] | |
# Список для хранения данных обеих недель | |
combined_data = [] | |
# Бесконечный цикл, который каждый час создает JSON-объект | |
while True: | |
# Проверяем, изменилась ли неделя или день | |
if globs["wek"] != current_week or globs["dey"] != current_day or globs["v_hid"] != current_hour: | |
current_week = globs["wek"] | |
current_day = globs["dey"] | |
current_hour = globs["v_hid"] | |
# Создание JSON-объекта с текущими значениями глобальных переменных | |
json_data = create_json_from_globals(current_week, current_day, current_hour, globs["ph"]) | |
# Добавление данных в общий список | |
combined_data.append(json_data) | |
# Если началась новая неделя, создаем новый JSON-файл | |
if current_hour == 0 and current_day == 1: | |
filename = 'combined_data.json' | |
with open(filename, 'w') as f: | |
json.dump(combined_data, f, indent=4) | |
combined_data = [] # Очищаем список для новой недели | |
# Пауза на минуту перед следующей итерацией | |
time.sleep(60) # 60 секунд = 1 минута | |
# Проверяем, не прошло ли 30 недель | |
if globs["wek"] > 30: | |
break # Выходим из цикла после 30 недель |