Хотелось бы выделить только нужные файлы для работы дистиллятора и увидеть их взаимодействие, а так же последовательность исполнения.Jarik_G, 26 Марта 20, 06:13
Прошу учесть, что проект живой и пока я в нём единственный разработчик, поэтому в github попадает может и что-то лишнее.
Попробую описать состав проекта.
distibot.conf - файл конфигурации по умолчанию, можно указать другой файл: distibot.py --conf=<другой файл>
Проект использует ряд внешних модулей, которые должны быть установлены с помощью утилиты pip:
pip install -r requirements.txt
В файле distibot.py перечислены (кроме системных и внешних) импортируемые модули:
from cooker import Cooker
import valve
import heads_sensor
import tsensor
from flow_sensor import FlowSensor
Соответственно, из файлов:
cooker.py
valve.py
heads_sensor.py
tsensor.py
flow_sensor.py
Каждый из этих файлов, кроме того, что предоставляет объекты для импорта в основной проект distibot.py,
ещё и предоставляет функции тестирования. Каждый из них перед стартом процесса перегонки я в консоли запускаю для тестирования оборудования. Были случаи обрыва контакта, которые удалось выявить на этапе тестирования, а иначе потерял бы ночь: процесс был бы прерван.
tsensor.py читает distibot.conf и считывает показания указанных в файле конфигурации датчиков, выводя полученные значения на экран.
cooker.py читает distibot.conf и cooker.play (этот файл не рудимент, как я раньше написал, а сценарий для тестирования плитки).
Сверяя табло плитки с выводом в консоль, я убеждаюсь, что всё работает штатно. Однажды помогло выявить обрыв контакт в кабеле между Дистиботом и плиткой.
Аналогично остальные модули при запуске в консоли с соответствующими параметрами позволяют протестировать оборудование.
После успешных тестов, я стартую distibot.py, например, для отбора тела из СС так:
nohup ./distibot.py --play=dib-body-from-low-wine.play &
После этого можно отслеживать протокол работы так:
tail -f distibot.log
Сам distibot.py предоставляет импортируемый класс для другого модуля run-distibot.py, который реализует web-интерфейс, а запускает основную процедуру temperature_loop из distibot.py в отдельном потоке.