Скачиваний:
0
Добавлен:
28.09.2026
Размер:
3 Кб
Скачать
☆
# Импорт библиотеки
import pandas as pd

# Импорт классов из модуля sensors.py
from sensors import Sensor, AdvancedSensor, Experiment, Calibrator

##### --- Демонстрация работы системы --- #####

# 1. Создаём датчики
print("Шаг 1: Создание датчиков...")
basic_sensor = Sensor(id="S001", calibration_factor=1.0, unit="°C")
advanced_sensor = AdvancedSensor(
    id="AS002",
    calibration_factor=1.05,
    unit="°C",
    precision=100,
    last_calibration_date="2023-10-01"
)

print("Датчики созданы:")
print(f"  - {basic_sensor}")
print(f"  - {advanced_sensor}")
print()

# 2. Создаём эксперимент
print("Шаг 2: Создание эксперимента...")
exp = Experiment(name="Температурный анализ", start_date="2023-10-15")

# 3. Добавляем датчики в эксперимент
print("Шаг 3: Добавление датчиков в эксперимент...")
exp.add_sensor(basic_sensor)
exp.add_sensor(advanced_sensor)

print(f"Эксперимент '{exp.name}' содержит {len(exp.sensor_list)} датчиков.")
print()

# 4. Калибруем датчик (доп. задание)
print("Шаг 4: Калибровка базового датчика...")
Calibrator.calibrate(basic_sensor, 1.1)

print(f"Новый фактор калибровки для {basic_sensor.id}: {basic_sensor.calibration_factor}")
print()

# 5. Запускаем эксперимент
print("Шаг 5: Запуск эксперимента...")
# Метод run() возвращает список словарей с результатами
results = exp.run(iterations=3)

# 6. Выводим результаты
print("Результаты эксперимента (первые 3 итерации):")
for r in results:
    print(f"  {r}")
print()

# 7. Вычисляем и выводим средние показания
print("Шаг 6: Вычисление средних показаний датчиков...")
averages = exp.get_average_readings()
print("Средние значения:")
for sensor_id, avg in averages.items():
    # Получаем единицу измерения из датчика
    sensor_obj = next((s for s in exp.sensor_list if s.id == sensor_id), None)
    unit = sensor_obj.unit if sensor_obj else "N/A"
    print(f"  Датчик {sensor_id}: {avg:.2f} {unit}")
print()

# 8. Сохраняем результаты в CSV файл
print("Шаг 7: Сохранение результатов в CSV файл...")
df = pd.DataFrame(results)
df.to_csv("experiment_results.csv", index=False)
print("Результаты сохранены в 'experiment_results.csv'.")
Соседние файлы в папке Лабораторная работа №5