Bus-Anbieter

Windows verfügt über integrierte UWP-APIs, die direkten Zugriff auf GPIO-, SPI- oder I2C-Busse bieten. Dies ermöglicht einen sehr einfachen Zugriff auf diese Hardware über eine allgemeine API. Es gibt jedoch viele Male, in denen ein Gerätehersteller einen Off-SoC-Controller verwenden möchte, um auf einen Bus zuzugreifen. Es kann so einfach wie ein billiger Chip sein, der 16 GPIO-Pins hinzufügt, oder so reich wie eine vollständige MCU, die nicht nur GPIO-, SPI- und I2C-Pins hinzufügt, sondern auch PWM und ADC unterstützt. Mit dem "Busanbieter"-Modell ermöglichen wir Entwicklern den Zugriff auf diese off-SoC-Busse mithilfe der In-Box-APIs mithilfe eines Benutzermodusanbieters, der die Lücke überbrückt.

Jemand, der einen Anbieter erstellt, implementiert eine Reihe von Schnittstellen in eine UWP-Klassenbibliothek, und jeder Entwickler, der mit dieser Hardware kommunizieren möchte, schließt einfach die Komponente ein und informiert die im Lieferumfang integrierten APIs darüber. Wenn Sie sich den Beispielcode des Remoteanbieters ansehen, können Sie sehen, wie einfach es ist, den Anbieter zu konfigurieren. Sobald sie als Standardanbieter für diese App festgelegt wurde, ist der rest des Codes in der Client-App mit dem Code identisch, der für den Zugriff auf einen On-SoC-Bus erforderlich ist.

Providers.Provider.Configuration =
    new Providers.ConnectionConfiguration("VID_2341", "PID_0043", 57600);
Windows.Devices.LowLevelDevicesController.DefaultProvider =  new Providers.Provider();

gpioController = await GpioController.GetDefaultAsync();
i2cController = await I2cController.GetDefaultAsync();
adcController = await AdcController.GetDefaultAsync();
pwmController = await PwmController.GetDefaultAsync();

GpioPin pin = gpioController.OpenPin(LED_PIN, GpioSharingMode.Exclusive);`

Verfügbare Anbieter

Wir haben derzeit eine Reihe von Anbietern im GitHub-Repository für Busanbieter verfügbar. Zusätzlich zum Code für den Anbieter verfügt jeder Anbieter über eine VS-Beispiellösung, die veranschaulicht, wie ein Client diesen Anbieter verwenden würde.

  • ADC

    • Ads1x15
    • Mcp3008
  • PWM

    • PCA9685
    • Simuliert mit Gpio

Zusätzlich zu den Anbietern, die Ihnen Zugriff auf reale Hardware ermöglichen, haben wir einen simulierten Anbieter erstellt, der sich so verhält, als wäre er ein unendlich fähiger Anbieter und so konzipiert, dass Sie Ihre Anwendungen schreiben und debuggen können, ohne sie zuerst auf einem funktionierenden Gerät bereitstellen zu müssen. Um eine umfassendere Erfahrung zu erzielen, können Sie sie anpassen, um Ihre tatsächliche Hardware zu simulieren. Beispiel: Aktualisieren des I2c-Anbieters, um das Ergebnis "75" zurückzugeben, wenn Sie ihn den Befehl für einen Temperaturwert auf einem Gerät mit der angegebenen sekundären Adresse senden.

Weitere Ressourcen

Weitere Bustools, Beispielcodes sowie das Erstellen und Testen von I2C, SPI, GPIO, MinComm/UART finden Sie hier.

Verweisen Sie auf Windows-Runtime-APIs (WinRT), und hier erfahren Sie, wie Sie die APIs von Win32-Anwendungen nutzen können.

Überprüfen von Windows Bus-Anbietern