Приводы дверных замков

Давайте начнем с приводов дверных замков, так как это самые простые из устройств в нашем списке. Все что нам нужно от драйвера — это возможность разрешить открыть дверь, и возможность не дать ей открыться. Эти требования как раз и определяют те команды, которые должен воспринимать драйвер. Вам нужно будет сообщить драйверу, с каким замком он должен в данный момент работать и нужное состояние замка (открыт или закрыт). Это были бы две единственные команды, которые я бы использовал для начального прототипа программного обеспечения. Позже, чтобы облегчить работу и иметь поддержку нового оборудования, вы можете добавить и другие команды. Но предположим, что у вас есть два типа привода дверных замков. Один, является простым приводом замка, который во включенном состоянии позволяет открыть дверь, а в выключенном не позволяет этого сделать. Второй же, является дверным механизмом с моторизированным приводом, который во включенном состоянии при помощи двигателя открывает дверь, а в выключенном — позволяет двери закрыться. На первый взгляд может показаться, что вам потребуются два различных драйвера с двумя различными интерфейсами. Однако с этими устройствами можно работать при помощи единого интерфейса (но с различными драйверами). Все, что вы хотите сделать (на высоком уровне), это разрешить кому-то пройти через дверь. На самом деле, это означает, что вам требуется какой-то таймер, связанный с открыванием дверей. Когда доступ был разрешен, вы позволите двери оставаться открытой, скажем 20 секунд. Сразу после этого вы запираете дверь. Для разных типов дверей вы захотите увеличить, или уменьшить, это время.

Ключевой вопрос, который здесь возникает, это где поместить этот таймер. Есть три возможных местоположения.

Сам драйвер дверного замка.
Отдельный драйвер — менеджер таймеров, общающийся с драйверами замков.
Сама управляющая программа.

Добавить комментарий