24

.NET Core 3 对 IoT 应用程序的高级支持:System.Device.Gpio

 4 years ago
source link: https://www.tuicool.com/articles/f63aYvy
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

System.Device.Gpio 是一个全新的 .Net Core 开源库,它旨在使 IoT(物联网)应用程序能够通过其 GPIO 引脚或其他 I/O 控制硬件与传感器、显示器和输入设备进行交互。该库是由社区维护的多个设备绑定集合来进行增强实现的。

正如微软 .NET 项目经理 Richard Lunder 所演示 的那样,这个新库通过一组可用于控制外部设备的 API,使开发人员能够控制单板计算机的通用 I/O (GPIO)引脚。 这在以前使用.NET Core 时是不太可能实现的, 尽管.NET Core 也可以运行在 Raspberry Pi 上。它支持的平台包括 Raspberry Pi、BeagleBoard、HummingBoard 和 ODROID,但是不支持比较流行的 Arduino 板,如 UNO、Mega、Nano 等。

通过 NuGet 包提供的这个新库可以在 Linux 和 Windows 10 IoT Core 上运行,它依赖于这些平台上可用的本地驱动程序。对于基于 Linux 4.8 及更高版本的 Linux 发行版,System.Device.Gpio 使用 libgpiod ,它取代了 GPIO sysfs 接口,后者为较老的 Linux 版本提供了比较有限也比较慢的 GPIO 访问。为了获得最高的性能,尽管是以可移植性为代价, Linux 上的 System.Device.Gpio 还支持通过 /dev/mem 来访问 GPIO,虽然这些板定制的驱动程序在将来可能会被删除。

System.Device.Gpio 有一个配套库,名为 Iot.Device.Bindings ,它通过向开发人员提供更高级别的API 而不是依赖pin 级的协议来访问它们,从而可以更容易地使用很多现有的“哑”传感器、显示器和输入设备。目前,  Iot.Device.Bindings 包含了数十种设备的绑定,如 A/D 转换器、加速器、气体传感器、光传感器、气压计等。需要注意的是,Iot.Device.Bindings 是一项社区成果,并没有完全得到微软的支持。

Lunder 演示了如何使用 Mac 上的 Visual Studio Code 运行了一个 LED 控制应用程序,该程序运行在 Raspberry Pi 3 上,它完全支持逐步调试。部分 System.Device.Gpio 是用 C++ 编写的,不过他们正在逐步往 C#上移植,这将使.NET 开发人员更容易对其进行改进和修复。

System.Device.Gpio 仍处于试验阶段,微软正在寻求人们对其 API 的积极反馈,这些 API 可能会在未来的版本中发生变化。

原文链接:

Advanced IoT Application Support in .NET Core 3 With System.Device.Gpio


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK