Разрешение устройству микроконтроллера подключаться к экземпляру Citrix XenDesktop

394
Baptiste Higgs

Чего мы пытаемся достичь

Мы хотим подключить микроконтроллер Adafruit Circuit Playground Express (CPX) к USB-портам тонкого клиента и передавать данные в среду виртуальной машины, которая будет считываться приложением и отправляться на сервер для сбора данных. Это должно быть сделано на всех компьютерах в нашем офисе.

Окружающая среда

System Architectural Diagram

Текущая среда:

  • Dell Wyse серии 5060 под управлением ThinOS

  • Citrix XenDesktop: Windows 7

Будущая среда:

  • Dell Wyse серии 5060 под управлением ThinOS

  • Citrix XenDesktop: Windows 10

Решение в текущей среде было бы предпочтительнее, хотя, если это невозможно, а решение для Windows 10 есть, мы будем рады его услышать.

Adafruit CPX работает под управлением CircuitPython, а приложение, к которому мы хотим подключиться, создано с использованием Electron.

Тип информации, которую мы хотим отправить, - это (псевдо) прямой поток сенсорной информации, получаемой CPX, а также случайные инструктивные сообщения из приложения Electron в CPX.

Эта проблема

При подключении CPX к тонкому клиенту Windows 7 не регистрирует его как подключенный. Однако при входе в ThinOS устройство регистрируется как подключенное (VID / PID и имя), что наводит нас на мысль, что соединение не проходит через экземпляр XenDesktop. Это также, кажется, зависит от устройства, так как обычные USB-накопители подключаются нормально.

Что мы уже пробовали

Мы попытались подключить некоторые другие микроконтроллерные устройства с другой инфраструктурой, чтобы посмотреть, будут ли они подключаться - и они это сделали, так что, похоже, это зависит от конкретной инфраструктуры. Устройства, которые мы попробовали, приведены ниже.

Успешное подключение к COM-порту Win7

  • Arduino Nano (драйверы FTDI) - ESP32 - (CP2102 USB для драйвера UART)

  • ATtiny85 - Неожиданный тип соединения («Другие устройства», ожидаемый COM-порт)

  • Ардуино Леонардо

Нет соединения с Win7, ThinOS успешно:

  • Adafruit Feather M0

  • Adafruit Circuit Playground Express

Все устройства были на 10 бит отличными от микроконтроллеров Adafruit, которые были 32-битными.

Мы добавили политику перенаправления USB-устройств для устройств на стороне Citrix, но она ничего не изменила.

ThinOS может видеть VendorID (VID) и ProductID (PID) всех устройств, которые мы подключаем, и, по-видимому, пропускает их. При включенных политиках все устройства подключаются, но для них требуются драйверы, установленные на Windows 7 (Citrix). Устройства, не относящиеся к adafruit, отображаются в диспетчере устройств как подключенные к COM-порту. Для 10-битных устройств устанавливаются стандартные драйверы, которые отображаются на COM-порту и в IDE arduino.

Для 32-битных устройств (CPX и перо) драйверы производителя установлены ( как требуется только для Windows 7 ), но не показывают устройства. Затем мы также попытались подключить эти устройства к другой конечной точке - ноутбуку с Windows 10, и ни у одного из них не было успешного подключения.

Похоже, это проблема с драйверами, однако мы установили правильные драйверы и включили политику перенаправления USB-устройств.

Любые предложения будут очень признательны!

4
Попробуйте эти [Драйверы Windows для Adafruit] (https://github.com/adafruit/Adafruit_Windows_Drivers). Вы также можете попробовать эту [процедуру CSD Code.org] (https://learn.adafruit.com/adafruit-circuit-playground-express/code-org-csd). harrymc 5 лет назад 3

1 ответ на вопрос

2
AidenRay

Учитывая, что вы попробовали правильные драйверы и они не отображаются в среде Citrix на не тонких клиентах, похоже, это проблема политики.
При поиске устройства, которое вы пытаетесь использовать, я вижу, что оно выглядит как дисковод и при условии, что вы используете устройство, как и другие микроконтроллеры, вы, вероятно, отправляете данные через последовательный порт (COM-порт в Windows).

В Citrix существует множество политик перенаправления устройств, и вам следует попробовать перенаправление COM-портов и поддерживать политику перенаправления устройств USB.

Как отметил @harrymc в комментариях, вы также можете попробовать обновленные драйверы .