robo / graf.py
DmitrMakeev's picture
Update graf.py
4524afd verified
raw
history blame
2.48 kB
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 = f'week_{current_week}_data.json'
with open(filename, 'w') as f:
json.dump(combined_data, f, indent=4)
combined_data = [] # Очищаем список для новой недели
# Пауза на час перед следующей итерацией
time.sleep(60) # 3600 секунд = 60 минут * 60 секунд
# Проверяем, не прошло ли 30 недель
if globs["wek"] > 30:
break # Выходим из цикла после 30 недель