Proveedores de bus

Windows tiene API de UWP incorporadas que proporcionan acceso directo a los buses GPIO, SPI o I2C. Esto proporciona un acceso muy fácil a este hardware desde una API de alto nivel. Sin embargo, hay muchas veces que un creador de dispositivos quiere usar un controlador off-SoC para acceder a un bus. Puede ser tan simple como un chip barato que agrega 16 pines GPIO, o tan rico como un MCU completo que no solo agrega patillas GPIO, SPI e I2C, sino que también admite PWM y ADC. Con el modelo "Proveedor de buses", proporcionamos a los desarrolladores la capacidad de acceder a estos buses fuera del soC mediante las API incorporadas, mediante un proveedor en modo de usuario que puentea la brecha.

Alguien que crea un proveedor implementa un conjunto de interfaces en una biblioteca de clases de UWP y, a continuación, cualquier desarrollador que quiera comunicarse con ese hardware simplemente incluye el componente e indica a las API integradas sobre él. Si observa el código de ejemplo del proveedor remoto , puede ver lo fácil que es configurar el proveedor y, una vez establecido como proveedor predeterminado para esa aplicación, el resto del código de la aplicación cliente es idéntico al código necesario para acceder a un bus en SoC.

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);`

Proveedores disponibles

Actualmente tenemos una serie de proveedores disponibles en el repositorio de GitHub Proveedores de bus. Además del código del proveedor, cada proveedor tiene una solución de VS de ejemplo que muestra cómo un cliente usaría ese proveedor.

  • ADC

    • Ads1x15
    • Mcp3008
  • PWM

    • PCA9685
    • Simulado con Gpio

Además de los proveedores que proporcionan acceso al hardware real, hemos creado un proveedor simulado que actuará como si fuera un proveedor infinitamente capaz y está diseñado para permitirle escribir y depurar las aplicaciones sin tener que implementarlas primero en un dispositivo en funcionamiento. Para obtener una experiencia más completa, puede personalizarla para simular el hardware real. Por ejemplo: actualizar el proveedor I2c para devolver el resultado "75" cuando se envía el comando para una lectura de temperatura en un dispositivo con la dirección secundaria designada.

Recursos adicionales

Puede encontrar herramientas de bus adicionales, códigos de ejemplo y compilación y pruebas en I2C, SPI, GPIO, MinComm/UART aquí.

Consulte las API de Windows Runtime (WinRT) y aquí se muestra cómo aprovechar las API de las aplicaciones Win32.

Revisar proveedores de Windows Bus