System.Device.Gpio https://github.com/dotnet/iot 是一个全新的 .Net Core https://github.com/dotnet/core 开源库, 它旨在使 IoT(物联网) 应用程序能够通过其 GPIO 引脚或其他 I/O 控制硬件与传感器, 显示器和输入设备进行交互. 该库是由社区维护的多个设备绑定集合来进行增强实现的.
正如微软 .NET 项目经理 Richard Lunder 所演示 的那样, 这个新库通过一组可用于控制外部设备的 API, 使开发人员能够控制单板计算机的通用 I/O (GPIO) 引脚. 这在以前使用. NET http://xn--onq9nx5e97giw7biq7a.net/ Core 时是不太可能实现的, 尽管. NET http://xn--9ft834e.net/ Core 也可以运行在 Raspberry Pi 上. 它支持的平台包括 Raspberry Pi,BeagleBoard,HummingBoard 和 ODROID, 但是不支持比较流行的 Arduino 板, 如 UNO,Mega,Nano 等.
通过 NuGet https://www.nuget.org/packages/System.Device.Gpio 包提供的这个新库可以在 Linux 和 Windows 10 IoT Core 上运行, 它依赖于这些平台上可用的本地驱动程序. 对于基于 Linux 4.8 及更高版本的 Linux 发行版, System.Device.Gpio 使用 , 它取代了 GPIO sysfs 接口, 后者为较老的 Linux 版本提供了比较有限也比较慢的 GPIO 访问. 为了获得最高的性能, 尽管是以可移植性为代价, Linux 上的 System.Device.Gpio 还支持通过 /dev/mem 来访问 GPIO, 虽然这些板定制的驱动程序在将来可能会被删除.
System.Device.Gpio 有一个配套库, 名为 https://www.nuget.org/packages/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 可能会在未来的版本中发生变化.
来源: http://www.tuicool.com/articles/f63aYvy