Почему .NET framework не включает USB tools [закрыто]
-
19-09-2019 - |
Вопрос
Мне интересно, почему .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 (ИДЕНТИФИКАТОР пользователя).Это старое и противное, но, возможно, поможет вам двигаться в правильном направлении.Возможно, существуют более зрелые проекты.