Конфиденциальная информация WindowsДжойстику не нужно быть микроволновой печью

Рэймонд Чен (Raymond Chen)

Недавно я посетил блог моего коллеги по прозвищу Audio Fool, и вспомнил об ошибке, которую я совершил много лет назад и которая до сих пор меня беспокоит. Во времена разработки интерфейса джойстика с силовой обратной связью DirectInput® корпорация Майкрософт пригласила производителей джойстиков в свою штаб-квартиру в Редмонде (штат Вашингтон), чтобы обсудить детали предложенного интерфейса и получить обратную связь от производителей (простите за невольный каламбур).

Во время этих встреч было выявлено множество проблем, но одна проблема, которая не дает мне покоя до сих пор, — это отсутствие соглашения относительно того, каким образом следует выражать периодические силы — через период или частоту. Один из присутствовавших на встречах производителей был против использования периода, поскольку его компания уже создала драйвер, в котором периодические силы были выражены в терминах частоты, и не хотела ничего менять. С учетом того, что целью встречи было прояснение деталей принципиально нового интерфейса, как мог производитель покинуть встречу и не внести изменения в драйвер?

Но этот производитель так много жаловался, что мы в конце концов сдались и согласились на использование частоты вместо периода для указания интенсивности периодических сил. В конце концов, это не имело особого значения. Сила с частотой десять колебаний в секунду эквивалентна силе с периодом в одну десятую долю секунды. Период и частота являются взаимно обратными величинами.

Однако это не совсем так. Период выражается в миллисекундах, что дает динамический диапазон от одной миллисекунды до 50 дней. Период в 50 дней слишком долог для человеческого восприятия, а период в одну миллисекунду слишком краток и воспринимается не как периодическое явление, а как музыкальный тон.

С другой стороны, частота выражается в герцах, что дает динамический диапазон от одного герца до 4 миллиардов колебаний в секунду. Не странно ли это, играть музыку на джойстике? А теперь представьте себе силы, действующие в микроволновом диапазоне!

Проблема заключается в том, что практически бесполезная выразительная сила в верхней части диапазона получается за счет урезания полезной нижней части диапазона. Оказывается, в пилотажных тренажерах интенсивно используются периодические силы со сравнительно долгими периодами. Мне неизвестные законы физики, лежащие в основе этого факта, но мне известно, что один из эффектов, с которыми приходится сталкиваться пилотам, — это периодическая сила, действующая на штурвал примерно раз в несколько минут. Самолет естественным образом движется по крайне медленно изменяющейся вертикальной синусоиде, а пилотам приходится противодействовать этой силе, чтобы поддерживать горизонтальный полет. Если бы интенсивность силы была выражена через период, в программе пилотажного тренажера пришлось бы использовать период в 120000 миллисекунд. Однако частота составила бы всего 0,0083 герца, что намного меньше самого малого значения частоты, которое можно использовать в интерфейсе драйвера — а именно 1 Гц. Следовательно, самая медленная сила, которую можно смоделировать в пилотажном тренажере, — это сила, повторяющаяся каждую секунду, что довольно быстро по сравнению с физическим эффектом, который необходимо имитировать пилотажному тренажеру.

Поскольку эта проблема продолжала беспокоить меня на протяжении всех последних лет, я решил заглянуть в документацию по силовой обратной связи. К моему удивлению, оказалось, что в структуре DIPERIODIC для выражения периодических эффектов используется период, а не частота. (Кроме того, в качестве единицы измерения используется микросекунда, что позволяет и играть музыку, и летать на самолете). Либо ошибка была исправлена, либо я старею и память сыграла со мной злую шутку. В любом случае, я могу не беспокоиться больше об этой ошибке — даже если ее никогда и не было.

**Рэймонд Чен (Raymond Chen)**на своем веб-узле The Old New Thing (Хорошо забытое старое) и в одноименной книге (издательство Addison-Wesley, 2007 г.) рассказывает об истории развития Windows и касается вопросов программирования в среде Win32. Вам очень идет этот цвет.

© 2008 Корпорация Майкрософт и компания CMP Media, LLC. Все права защищены; полное или частичное воспроизведение без разрешения запрещено.