Segredos do WindowsUm joystick não precisa ser um microondas

Raymond Chen

Recentemente, eu estava lendo uma postagem feita em um blog por um colega meu, o Audio Fool, e me lembrei de um erro que cometi há muitos anos e que continuava a me incomodar. Quando a interface do joystick com force feedback DirectInput® estava sendo desenvolvida, os fabricantes de joysticks foram convidados a uma visita aos escritórios da Microsoft em Redmond, estado de Washington, para discutir os detalhes da interface proposta e oferecer alguns comentários.

Muitos problemas foram discutidos durante essas reuniões, mas o que ficou gravado em minha mente foi uma desavença sobre as forças periódicas, se devem ser expressas como um período ou como uma freqüência. Um dos fornecedores presentes estava criando uma confusão porque sua empresa já tinha escrito um driver que especificava suas forças periódicas em termos de freqüência e ele não queria ter de mudar isso. Considerando que essa era uma reunião para a discussão dos detalhes de uma interface novíssima, como qualquer fornecedor poderia esperar deixar o recinto sem ter de fazer qualquer alteração em seu driver?

Mas esse fornecedor reclamou tanto que nós finalmente desistimos e concordamos em usar freqüência em vez de período na especificação da taxa de forças periódicas. Afinal, isso não importava muito. Uma força com uma freqüência de 10 oscilações por segundo é igual a uma força com um período de um décimo de segundo. Período e freqüência são apenas o inverso uma da outra.

Ops, isso não é totalmente verdadeiro. O período é expresso em milissegundos, o que oferece um intervalo dinâmico de 1 ms para uma tonalidade em 50 dias. Um período de 50 dias é imperceptível em uma escala de tempo humano e um período de 1 ms é tão rápido que não é nem registrado como um fenômeno periódico — em vez disso, é percebido como um tom musical.

Por outro lado, a freqüência é expressa em hertz, o que oferece um intervalo dinâmico de 1 Hz para 4 bilhões de ciclos por segundo. Você acha que é estranho reproduzir música com o seu joystick? Imagine gerar forças cujo intervalo suba até a banda de freqüência de microondas!

O problema é que o poder expressivo praticamente inútil do topo do intervalo da freqüência veio às custas da extremidade inferior. Acontece que simuladores de vôo são grandes fãs de forças periódicas com períodos comparativamente longos. Eu não conheço a física por trás disso, mas me disseram que um dos efeitos com que os pilotos têm de lidar é uma força periódica lenta sobre o controle na ordem de alguns minutos. O avião tem uma tendência natural de viajar em uma curva senóide vertical muito lenta e os pilotos precisam tomar medidas para neutralizar essa tendência para manter o vôo nivelado. Se a taxa da força fosse expressa por seu período, o programa simulador de vôo poderia especificar um período de 120.000 milissegundos. No entanto, como freqüência, isso seria 0,0083 hertz, que é bem mais lento do que a menor freqüência que pode ser expressa na interface do driver — ou seja, 1 Hz. Portanto, a força mais lenta que um simulador de vôo pode solicitar é aquela repetida a cada segundo, o que é bem rápido em relação ao efeito físico que ele deseja imitar.

Já que esse erro continuava a me incomodar após todos esses anos, recentemente examinei a documentação do force feedback. Para a minha surpresa, parece que a estrutura DIPERIODIC usa período em vez de freqüência para expressar efeitos periódicos (e, além disso, utiliza microssegundos, o que significa que agora você pode reproduzir músicas ou pilotar um avião). Ou o problema foi corrigido ou estou ficando senil e a minha memória está pregando peças em mim. De qualquer forma, não preciso mais me preocupar com esse erro — se é que ele aconteceu mesmo.

Raymond Chenpossui um site, The Old New Thing (A velha novidade), e escreveu um livro homônimo (Addison-Wesley, 2007) para tratar da história do Windows e da programação Win32. Esta cor fica ótima em você.

© 2008 Microsoft Corporation e CMP Media, LLC. Todos os direitos reservados. A reprodução parcial ou completa sem autorização é proibida..