Устройство аппаратного согласования (УАС).
Рисунок 7.4. Устройство аппаратного согласования (УАС).

Большие проблемы были при согласовании системы с существующим лифтовым оборудованием. Чего только стоил симплексный режим работы лифтовой связи... И это уже не говоря о севших динамиках времен "перестройки", странных проводах, и т.п...
В небольшой серии цена устройства составила более $20 из-за дороговизны реле и гальванической развязки.
Из недостатков надо отметить опять таки неудачно расположенные разъемы. Проблема с топологией и типами разъемов стала заметной только на этапе окончательной компоновки блока, и может быть легко решена в следующих сериях.
7. Звуковая плата.
Можно было использовать практически любую современную звуковую плату. По крайней мере на машинах пентиум. На платах 486 наблюдались некоторые проблемы, связанные с плохой реализацией технологии plug and play. Каких-либо особых требований система к звуковой плате не предъявляет.
Ориентировочная стоимость $8
8-9. Усилитель и блок питания аналоговой части был использован от недорогих компьютерных колонок. Такое решение было принято из-за недостатка времени. Нельзя сказать, что оно было удачным. Звуковой тракт дешевого усилителя в промышленных условиях оказался подвержен наводкам, а небольшой блок питания оказался недостаточно мощным для большого количества датчиков. Тем не менее, с некоторыми оговорками, это не мешало нормальной работе системы.
Конечно, создание своего усилителя не представляет особого труда. Стоимость колонок около $15
Программная часть.
Клиентский софт загружается с bootrom, по DHCP получает IP, по TFTP вытягивает ядро (собрано из linux-2.2.12), дальше ещё один BOOTP - запрос на адрес. Потом монтирование файловой системы с NFS сервера. Из процессов остаётся только init и клиентский модуль.
Весь клиентский модуль - на C++, многопотоковый. Один поток на звук. Второй на сканирование датчиков (например раз в секунду, лишь бы не грузил процессор сильно), и входящих управляющих серверных команд. Третий на всякие потребности типа пользовательского ввода для отладки.
Звук идёт без всяких управляющих сообщений, направление определяется эвристически. Частота оцифровки - 8 кб/сек (непринципиально). Задержка определяется только временем передачи пакета.
Серверная часть: интерфейс на TCL/Tk, модуль ввода-вывода на PERL, библиотека работы со звуком - на C++. Ведение журналов. Базы статистики - MySQL (при необходимости - апплет для просмотра либо server-side с PHP). Карта и описание лифтов - в текстовых файлах.