Портирование демонстрационных приложений Windows на WinCE/XP Embedded

StackOverflow https://stackoverflow.com/questions/851934

Вопрос

У нас есть ряд демонстрационных программ для ПК для наших микроконтроллеров.Программы обычно подключаются к чипу USB HID на плате микроконтроллера.Чип USB действует как коммуникационный мост, позволяя программам взаимодействовать с микросхемами через SPI/I2C/UART.Программы могут настраивать микросхемы и получать информацию о состоянии для отображения пользователю.

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

Есть ли у кого-нибудь совет, как лучше всего двигаться дальше?Базовыми вариантами являются платы WinCE или XP Embedded.Платы WinCE, похоже, потребляют меньше энергии, что было бы преимуществом с точки зрения срока службы батареи.

Наши существующие демо-версии созданы либо на C++ под управлением Borland Builder, либо в Delphi.

Заранее спасибо.

РЕДАКТИРОВАТЬ:см. мой ответ ниже с информацией от поставщика плат.

Это было полезно?

Решение

Версии Delphi для WinCE не существует, поэтому вам придется переписать приложения.То же самое относится и к управляющим библиотекам Borland Builder.Только если вы использовали простой Win32 API, вы сможете легко перенести свое приложение на WinCE.Вы также можете столкнуться с проблемами с аппаратной частью доступа.Драйвер последовательного порта может работать не так, как есть.Кроме того, вам необходимо найти плату WinCE, которая может выступать в качестве USB-хоста и предоставляет драйверы HID (это встречается не очень часто).

В заключение я считаю, что вам будет лучше использовать платы с Windows XP Embedded.Они должны запускать ваши приложения такими, какие они есть.

Другие советы

Free Pascal/Lazarus может скомпилировать некоторые формы приложений Delphi в WiNCE/arm.Даже визуальные.

В качестве обновления и для дальнейшего использования я решил опубликовать здесь результаты наших обсуждений с поставщиком плат WinCE.Предостережение:Я на самом деле ничего из этого не пробовал.

Суть в том, что не существует простого способа сделать то, на что мы надеялись (т. е. перекомпилировать наши существующие демонстрационные приложения для работы под WinCE).Причина в том, что общие драйверы HID и стандартные API, существующие в версиях Windows для настольных компьютеров, просто отсутствуют в WinCE.

Чтобы общаться с HID-устройствами в WinCE, вам необходимо реализовать специальный драйвер HID.Это должно поддерживать интерфейс, позволяющий приложениям пользовательского режима взаимодействовать с драйвером и создавать отчеты HID для отправки на физическое устройство.Поскольку этот интерфейс сам по себе будет пользовательским, код приложения необходимо соответствующим образом обновить.

Разработка приложений WinCE обычно выполняется с использованием Visual Studio и компиляторов Microsoft.Нам рекомендовали следующий подход:

  1. Создайте собственный драйвер класса HID.Это может быть основано, например, на HID-драйвере клавиатуры Microsoft.
  2. Создайте API для общения с водителем.
  3. Используйте .net для создания наших приложений с графическим интерфейсом и используйте PInvoke для фактического взаимодействия с API.

Конечным результатом всех этих головоломок является то, что, чтобы избежать затрат времени и обучения, связанных с этим подходом, мы собираемся использовать плату под управлением XP.Затем мы можем использовать существующие демонстрационные приложения прямо из коробки.Компромисс заключается в том, что нам придется жить со значительно сокращенным временем автономной работы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top