homework definition

This commit is contained in:

View File

@@ -49,7 +49,7 @@
- [x] Создайте экземпляр умного дома и выведете отчёт о его содержимом.
- [x] Для уже созданного экземпляра дома выключите умную розетку в одной из комнат. Снова выведите отчёт.
**Критерии оценки**:
**Критерии оценки:**
- Package успешно собирается.
- Приложение-пример успешно выполняется и выводит отчёт о доме.
@@ -101,9 +101,56 @@
отдельной комнате, отдельном устройстве.
- [x] Продемонстрировать возможность обработки ошибок.
**Критерии оценки**:
**Критерии оценки:**
- Package успешно собирается.
- Приложение-пример успешно выполняется и выводит отчёт о доме.
- Команды cargo clippy и cargo fmt --check не выводят ошибок и предупреждений.
- Присутствуют и успешно выполняются модульные тесты.
## ДЗ 2026-02-12
Дорабатываем умные устройства
### Цель:
Описать для умной розетки и умного термометра логику взаимодействия с удалённым устройством и написать имитаторы устройств для тестирования.
### Срок:
Сдать до: **2026-03-04**
### Описание/Пошаговая инструкция выполнения домашнего задания:
Для типа умной розетки:
- [ ] Функционал не изменяется: включение/выключение + запрос мощности.
- [ ] Взаимодействие организовано синхронно, через TCP.
- [ ] Розетка может использовать как реальный TCP-обмен, так и имитировать реальную работу (для тестов).
Для имитатора умной розетки:
- [ ] Читает адрес для приёма TCP-соединений из аргументов командной строки.
- [ ] Реализован с использованием неблокирующего сетевого взаимодействия.
- [ ] Хранит состояние розетки.
- [ ] Позволяет управлять розеткой множеству клиентов одновременно.
Для умного термометра:
- [ ] Функционал не изменяется: возвращает температуру.
- [ ] Получает значения температуры в виде UDP-пакетов в параллельном потоке.
- [ ] Параллельный поток запускается при создании объекта термометра и завершается при уничтожении этого объекта.
- [ ] Объект термометра возвращает последнее полученное значение температуры.
- [ ] Термометр может имитировать удалённое получение данных о температуре (для тестов).
Для имитатора умного термометра:
- [ ] Реализован с использованием неблокирующего сетевого взаимодействия.
- [ ] Читает адрес для отправки UDP-пакетов и временной период отправки из файла.
- [ ] Отправляет произвольное значение температуры на указанный адрес с указанной периодичностью.
Добавлен дополнительный пример умного дома с розетками и термометрами, которые работают с имитаторами. Данный пример должен запускаться и:
- [ ] Выводить отчёт о состоянии дома, если имитаторы запущены.
- [ ] Сообщать об ошибке, если устройству не удалось получить данные.
**Критерии оценки:**
- Package успешно собирается.
- Приложение-пример успешно выполняется.
- Команды cargo clippy и cargo fmt --check не выводят ошибок и предупреждений.
- Присутствуют и успешно выполняются модульные тесты.