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.