Zulassen, dass ein Mikrocontroller-Gerät eine Verbindung zu einer Citrix XenDesktop-Instanz herstellt

499
Baptiste Higgs

Was wollen wir erreichen?

Wir möchten einen Mikrocontroller, Adafruit Circuit Playground Express (CPX), an die USB-Ports des Thin Clients anschließen und Daten an die virtuelle Maschinenumgebung streamen, um von einer Anwendung gelesen und zur Datenerfassung an einen Server gesendet zu werden. Dies ist auf allen Computern in unserem Büro durchzuführen.

Die Umgebung

Systemarchitekturdiagramm

Aktuelle Umgebung:

  • Dell Wyse 5060-Serie mit ThinOS

  • Citrix XenDesktop: Windows 7

Zukunftsumgebung:

  • Dell Wyse 5060-Serie mit ThinOS

  • Citrix XenDesktop: Windows 10

Eine Lösung für die aktuelle Umgebung wäre vorzuziehen. Wenn dies jedoch nicht möglich ist und eine Windows 10-Lösung vorhanden ist, würden wir sie gerne hören.

Der Adafruit CPX führt CircuitPython aus, und die App, mit der wir eine Verbindung herstellen möchten, wurde mit Electron erstellt.

Die Art von Informationen, die wir senden möchten, ist ein (Pseudo) Live-Stream von Sensorinformationen, die vom CPX erfasst werden, sowie gelegentlich aufschlussreiche Meldungen von der Electron App an den CPX.

Das Problem

Wenn Sie den CPX an den Thin Client anschließen, wird er von Windows 7 nicht als verbunden registriert. Wenn Sie sich beim aktuellen ThinOS anmelden, wird das Gerät jedoch als verbunden registriert (VID / PID und Name). Dies lässt vermuten, dass die Verbindung nicht in die XenDesktop-Instanz übergeht. Es scheint auch gerätespezifisch zu sein, da normale USB-Speichergeräte problemlos angeschlossen werden können.

Was wir schon probiert haben

Wir haben versucht, einige andere Mikrocontroller-Geräte mit verschiedenen Infrastrukturen anzuschließen, um zu sehen, ob sie eine Verbindung herstellen würden - und das war der Fall. Die Geräte, die wir ausprobiert haben, befinden sich unten.

Erfolgreiche Win7-COM-Port-Verbindung

  • Arduino Nano (FTDI-Treiber) - ESP32 - (CP2102 USB-zu-UART-Treiber)

  • ATtiny85 - Unerwarteter Verbindungstyp ("Andere Geräte", erwarteter COM-Port)

  • Arduino Leonardo

Keine Win7-Verbindung, ThinOS erfolgreich:

  • Adafruit-Feder M0

  • Adafruit Circuit Playground Express

Alle Geräte waren 10 Bit außer den Adafruit-Mikrocontrollern, die 32 Bit waren.

Wir haben eine Richtlinie zur Umleitung von USB-Geräten für die Geräte auf der Citrix-Seite hinzugefügt, aber anscheinend hat sich daran nichts geändert.

Das ThinOS kann die VendorID (VID) und ProductID (PID) aller Geräte, die wir verbinden, sehen und scheint sie durchzuleiten. Wenn die Richtlinien aktiviert sind, stellen alle Geräte eine Verbindung her, erfordern jedoch Treiber, die unter Windows 7 (Citrix) installiert sind. Die Nicht-Adafruit-Geräte werden im Geräte-Manager als mit einem COM-Anschluss verbunden angezeigt. Für die 10-Bit-Geräte werden Standardtreiber installiert, die am COM-Port und in der Arduino-IDE angezeigt werden.

Bei den 32-Bit-Geräten (CPX und feather) werden die Herstellertreiber installiert ( wie nur für Windows 7 erforderlich ), zeigen jedoch die Geräte nicht an. Wir haben dann auch versucht, diese Geräte an einen anderen Endpunkt anzuschließen - ein Windows-10-Laptop, und keines davon hatte eine erfolgreiche Verbindung.

Es scheint ein Treiberproblem zu sein, wir haben jedoch die korrekten Treiber installiert und die Richtlinie zur Umleitung von USB-Geräten hinzugefügt.

Anregungen wären sehr dankbar!

4
Probieren Sie diese [Adafruit Windows-Treiber] (https://github.com/adafruit/Adafruit_Windows_Drivers) aus. Sie können auch dieses [Code.org CSD-Verfahren] (https://learn.adafruit.com/adafruit-circuit-playground-express/code-org-csd) ausprobieren. harrymc vor 5 Jahren 3

1 Antwort auf die Frage

2
AidenRay

Da Sie die richtigen Treiber ausprobiert haben und diese nicht in der Citrix-Umgebung auf einem Nicht-Thin-Client erscheinen, scheint es sich um ein Richtlinienproblem zu handeln.
Nachschlagen des Geräts, das Sie verwenden möchten Ich sehe, dass es als Laufwerk erscheint, und wenn Sie das Gerät wie andere Mikrocontroller verwenden, senden Sie wahrscheinlich Daten über den seriellen Anschluss (COM-Anschluss unter Windows).

Es gibt viele Richtlinien für die Geräteumleitung in Citrix. Sie sollten die COM-Portumleitung ausprobieren und die Richtlinien für die USB-Geräteumleitung beibehalten.

Wie @ harrymc in den Kommentaren hervorgehoben hat, können Sie auch die aktualisierten Treiber ausprobieren .