Этот пример демонстрирует случай, когда режим невозможно устранить. Режимы изначально присущи сервомоторам и джойстикам управления. Тем не менее, из данной ситуации есть выход. В качестве решения можно предложить следующее: поместить переключатель направления работы сервомоторов внутрь самого летательного аппарата, возможно, сделать его частью самих сервомоторов, и убрать этот переключатель с пульта управления. Обычно внутренняя часть корпуса самолета недоступна, поэтому переключатели могут устанавливаться в нужное положение при сборке аппарата. Правильность настройки будет проверяться сборщиками самолета, затем инспекторами и затем еще раз (как обычно) пилотом перед первым полетом. Хотя этот метод не устраняет полностью возможности крушения, но если первый полет выполнен успешно, то в дальнейшем проблема переключения сервомоторов уже не должна возникать на этом аппарате независимо от того, используется ли данный пульт для управления и другими летательными аппаратами. С точки зрения оператора, режим устранен.
Почти все пульты дистанционного управления моделями летательных аппаратов снабжены переключателями направления работы сервомоторов. Аварии из-за того, что пульт управления находится в неверном режиме, случаются нередко. Еще большие проблемы создает возможность устанавливать на пультах управления и другие режимы с помощью переключателей с длинными ручками, которые можно переставить в неверное положение случайно. В пульте управления, разработанном мною, все эти тумблеры сделаны таким образом, что перед тем как переставить их в другое положение, их ручки требуется сначала вытянуть из пульта (рис. 3.3). Поэтому у меня ни разу не было аварий из-за того, что какой-то тумблер был случайно сдвинут в неверное положение. Таким образом, иногда проблемы с режимами могут быть решены механическим путем.
Рис. 3.3. Такие тумблеры нельзя переключить в другое положение случайно. Перед тем как изменить положение тумблера, его ручку сначала требуется немного вытянуть из пульта
____________
Режимы также ограничивают диапазон действий пользователя. Если жест g вызывает действие a в режиме A, а в режиме B он вызывает действие b, то для того чтобы выполнить действие a, необходимо сначала выйти из режима B (если вы в нем находились) и переустановить интерфейс в режим A. И только после этого вы сможете использовать жест g для выполнения действия a. Разделение интерфейса на ограниченные области является неизбежным следствием наличия режимов. Набор состояний, в которых жест g имеет конкретную интерпретацию, можно назвать диапазоном (range) жеста g. Программное обеспечение, которое продается в виде прикладных программ, например электронные таблицы, обычно включает один или несколько пересекающихся диапазонов. Некоторые диапазоны относительно велики. Например, следующая последовательность выполняет действие вырезания почти во всех приложениях как на платформе Macintosh, так и в Windows:
Command↓ x↑
Бывают и небольшие диапазоны. Например, нижеприведенная последовательность позволяет в некоторых компьютерных играх открывать сундук с сокровищами, если только он находится в пределах видимости:
Command↓ h↑
Группирование команд по разным диапазонам, или, как мы это еще называем, по приложениям, позволяет понять и научиться использовать сложные интерфейсы. Тем не менее, существует возможность организовывать интерфейсы, которые могли бы создавать меньше ограничений, чем режимы. Полностью человекоориентированный интерфейс должен состоять только из одного диапазона.
В случаях когда интерфейс управляется с помощью другого компьютера, можно было бы подумать, что проблема наличия режимов снимается, поскольку машина может легко запомнить необходимое состояние интерфейса, просто-напросто внутренне синхронизируя его с собственным состоянием. Тем не менее, если интерфейс является модальным, и программа, управляющая этим интерфейсом, изначально не получает сведений о текущем состоянии интерфейса, – а это может произойти, если программа подключается после того, как система была запущена, – то для управления в каком-то из режимов системы программа должна быть оснащена средствами тестирования ее текущего состояния. В этом отношении особые трудности создают такие интерфейсные переключатели, для возвращения которых в исходную позицию требуется сделать подряд несколько переключений, изменив состояние системы (затем цикл повторяется сначала).