File size: 2,484 Bytes
9f40d47
 
 
 
 
 
50eb5ac
 
 
 
 
9f40d47
 
 
50eb5ac
 
9f40d47
50eb5ac
 
 
9f40d47
 
50eb5ac
 
 
 
 
 
 
 
 
9f40d47
50eb5ac
 
9f40d47
50eb5ac
 
9f40d47
50eb5ac
 
 
 
 
 
 
 
 
 
 
 
4524afd
50eb5ac
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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 недель