В качестве обновления и для дальнейшего использования я решил опубликовать результаты наших обсуждений с поставщиком плат WinCE здесь. Предостережение: я на самом деле не пробовал ничего из этого.
Суть в том, что не существует простого способа сделать то, на что мы надеялись (то есть, перекомпилировать наши существующие демонстрационные приложения для работы под WinCE). Причина в том, что общие драйверы HID и стандартные API-интерфейсы, которые существуют в версиях Windows для настольных ПК, просто отсутствуют в WinCE.
Чтобы общаться с HID-устройствами в WinCE, вам необходимо реализовать собственный HID-драйвер. Это должно поддерживать интерфейс, позволяющий приложениям пользовательского режима взаимодействовать с драйвером, и создавать отчеты HID для отправки на физическое устройство. Поскольку этот интерфейс сам по себе будет настраиваемым, необходимо соответствующим образом обновить код приложения.
Разработка приложений WinCE обычно выполняется с использованием Visual Studio и компиляторов Microsoft. Подход, рекомендуемый нам, был:
- Создайте собственный драйвер класса HID. Это может основываться, например, на драйвере HID клавиатуры Microsoft.
- Создание API для общения с драйвером.
- Используйте .net для создания наших приложений с графическим интерфейсом и PInvoke для фактического общения с API.
Конечным результатом всех этих головокружительных движений является то, что во избежание затрат времени и обучения, связанных с этим подходом, мы собираемся использовать плату под управлением XP. Затем мы можем использовать наши существующие демонстрационные приложения прямо из коробки. Компромисс в том, что нам придется жить с существенно сокращенным временем автономной работы.