API акселерометра для ноутбуков

В большинстве ноутбуков IBM (и некоторых Dell) есть встроенные акселерометры для остановки любых движущихся частей во время внезапного падения, но мне не удалось найти стандартизованный Windows API для доступа к этим данным. Я предполагаю, что каждый производитель предоставит драйвер для взаимодействия с датчиком.

  • Какие популярные бренды ноутбуков поставляются со стандартными акселерометрами, доступными из API и какие библиотеки я должен использовать для доступа к данным?
  • Существует ли API * для абстрагирования различий между разными производителями? Я знаю API-интерфейс Windows 7 Sensor, но я бы хотел поддерживать XP и ранее.

Ответ 1

Большинство известных производителей ноутбуков имеют акселерометры для парковки головки жесткого диска, если ноутбук случайно упал или внезапно воздействует другим объектом (т.е. когда превышен определенный порог ускорения). Например, у моего HP есть "HP 3D DriveGuard". Однако эта технология встроена в низкоуровневую, она работает, даже если ОС не загружена, поэтому я полагаю, что она находится в BIOS. Я полагаю, что он раскрывает только способ ACPI включить или отключить эту технологию. Таким образом, даже в Windows 7 со стандартными API-интерфейсами датчиков он недоступен как стандартный акселерометр, как в смартфоне. Может быть, в будущем, если рынок потребует этого (но я так не думаю).

Ответ 2

Это не сработает для всех производителей, но после долгих поисков (я тоже хотел эту функцию) я нашел кого-то, кто написал драйвер обертка для акселерометров в ноутбуках HP. Если ваш ноутбук поддерживает HP 3D DriveGuard или HP ProtectSmart, то этот драйвер должен позволить акселерометру отображаться в списке датчиков Windows.

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

windows control panel sensors

Обратите внимание, что это работает, подвергая акселерометр API-интерфейсу Windows. API-интерфейсы датчиков обеспечивают стандартный способ доступа к любому типу датчиков независимо от установленного оборудования. Там более подробная информация о Windows Sensor Platform на MSDN.