Вопрос

Мне интересно, почему .NET framework не предоставляет никаких управляемых методов для работы с драйверами USB.Из всего, что я прочитал, вам все равно придется вызывать Windows API и использовать сортировку, PInvoke и всю ту чушь, которую никто из нас, .NET-программистов, не хочет делать.Почему .NET предоставляет методы для обмена данными с последовательными портами, но не с USB-портами?USB сейчас используется гораздо шире, чем последовательные порты, не пора ли им включить его в Фреймворк?

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

Решение

Как и все другие функции в .Net framework, это сводится к стоимости по сравнениюнаграда.С каждым выпуском .Net владельцам приходится принимать очень болезненные решения о сокращении функций.Просто слишком много запросов / желаний удовлетворить их все.Те, которые выбраны, должны обеспечивать четкую ценность по разумной цене.

Я предполагаю, что последовательные порты, хотя, вероятно, и менее популярны, чем USB, просто проще реализовать в управляемом коде.Следовательно, даже при том, что использование может быть не столь высоким, относительная простота их реализации ставит их на первое место.

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

USB - это просто шина.Способ связи с устройством зависит от чипа на другой стороне шины.Не существует стандартизированного способа общения со всеми устройствами.

Если поставщик USB-устройств хочет предоставить устройству стандартный доступ (большинство из них соответствуют стандартам, чтобы сэкономить затраты на разработку, документирование и ознакомление клиентов со своими API), их программисты-драйверы могут написать драйверы, которые делают устройство доступным для различных API Windows (массивное хранилище, WIA, DirectShow, виртуальный последовательный порт, Bluetooth, устройство пользовательского интерфейса и т.д.).Опять же, поскольку стандартизированные драйверы уже доступны через Windows API, нет необходимости в .Net для прямого взаимодействия с оборудованием.

Если вы хотите взаимодействовать с USB-устройством, совместимым со HID, вы можете взглянуть на CC.USBHID (ИДЕНТИФИКАТОР пользователя).Это старое и противное, но, возможно, поможет вам двигаться в правильном направлении.Возможно, существуют более зрелые проекты.

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