Provedores de barramento

O Windows tem APIs UWP internas que fornecem acesso direto a barramentos GPIO, SPI ou I2C. Isso fornece acesso muito fácil a esse hardware de uma API de alto nível. No entanto, há muitas vezes em que um fabricante de dispositivos deseja usar um controlador fora do SoC para acessar um barramento. Pode ser tão simples quanto um chip barato que adiciona 16 pinos GPIO ou tão rico quanto um MCU completo que não só adiciona pinos GPIO, SPI e I2C, mas também dá suporte a PWM e ADC. Com o modelo "Provedor de Barramento", damos aos desenvolvedores a capacidade de acessar esses barramentos off-SoC usando as APIs internas, usando um provedor de modo de usuário que faz a ponte entre as lacunas.

Alguém que cria um provedor implementa um conjunto de interfaces em uma biblioteca de classes UWP e, em seguida, qualquer desenvolvedor que queira falar com esse hardware simplesmente inclui o componente e informa as APIs internas sobre ele. Se você examinar o código de exemplo do provedor remoto , poderá ver como é fácil configurar o provedor e, uma vez definido como o provedor padrão para esse aplicativo, o restante do código no aplicativo cliente é idêntico ao código necessário para acessar um barramento no 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);`

Provedores disponíveis

Atualmente, temos vários provedores disponíveis no repositório GitHub de Provedores de Barramento . Além do código para o provedor, cada provedor tem uma solução VS de exemplo que demonstra como um cliente usaria esse provedor.

  • ADC

    • Ads1x15
    • Mcp3008
  • PWM

    • PCA9685
    • Simulado com Gpio

Além dos provedores que lhe dão acesso ao hardware real, criamos um Provedor Simulado que atuará como se fosse um provedor infinitamente capaz e foi projetado para permitir que você escreva e depure seus aplicativos sem precisar implantá-los primeiro em um dispositivo de trabalho. Para uma experiência mais avançada, você pode personalizá-la para simular seu hardware real. Por exemplo: atualizando o provedor I2c para retornar o resultado "75" quando você enviar o comando para uma leitura de temperatura em um dispositivo com o endereço secundário designado.

Recursos adicionais

Ferramentas de barramento adicionais, códigos de exemplo e compilação e teste em I2C, SPI, GPIO, MinComm/UART podem ser encontrados aqui.

Consulte as APIs de Windows Runtime (WinRT) e veja como aproveitar as APIs de aplicativos Win32.

Examinar provedores de barramento do Windows