Впервые за фиг знает сколько времени сделал пример, отсылающий к старым-добрым временам, когда имел какое-то отношение к задачам АСУТП. Пример простенький и к реальности имеющий далекое отношение, но вспомнить молодость приятно.
Пример имитирует управление примитивными станками (machine), в которых есть двигатель (engine) и система охлаждения (cooler). Работающий двигатель нагревается. Когда нагревается выше 70 градусов, то включается система охлаждения. Если после этого двигатель продолжает нагреваться и его температура достигает 95 градусов, то двигатель отключается. Когда двигатель охлаждается до 50 градусов, он включается вновь. Система охлаждения отключается если двигатель охлаждается до 50 градусов (при этом двигатель может быть как включенным, так и выключенным).
В примере имитируется работа четырех таких машин. Каждая машина сообщает о своем состоянии и параметрах пять раз в секунду. Эта информация анализируется и, если нужно, предпринимаются управляющие действия (отсылаются команды на включение/выключение двигателя и/или системы охлаждения). Так же раз в полторы секунды текущее состояние машин отображается на консоль... И вот за этими-то бегущими циферками я могу смотреть чуть ли не десятками минут напролет :)