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 可能会在未来的版本中发生变化。

原文链接:https://www.infoq.cn/article/1UXmCS1yFEYY51e86mGE


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

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

  1. 基于.Net Core开发现代化Web应用程序系列课程和文章

    这个系列课程是Anduin2017在B站上传的: 基于.Net Core开发现代化Web应用程序系列课程第1课之:课程简介 基于.Net Core开发现代化Web应用程序系列课程第2课之:.Net平台 ...

  2. 重学ASP.NET Core 中的标记帮助程序

    标记帮助程序是什么 标记帮助程序使服务器端代码可以在 Razor 文件中参与创建和呈现 HTML 元素. 例如,内置的 ImageTagHelper 可以将版本号追加到图片名称.  每当图片发生变化时 ...

  3. Angular和.NET Core Web API入门应用程序

    下载源160.2 KB 您可以在此处查看此项目的源代码和最新更新 这是Angular/.NET Core Web API入门应用程序,具有添加.编辑和删除客户的基本功能,因此您可以将其用作构建应用程序 ...

  4. 阿里iot 华为iot_11种用于开发IoT应用程序的IoT Visual编程工具

    阿里iot 华为iot 开始使用IoT可视化编程工具开发IoT应用程序以简化开发过程 这是开始开发IoT应用程序的最著名和最有用的IoT视觉编程工具的列表. 如今,物联网一直变得越来越重要,事实是,人 ...

  5. 使用 Arduino 和 Python在 Bluemix 上开发一个 IoT 应用程序之控制LED灯开关

    上篇"[物联网(IoT)开发]Arduino 入门 Hello World(LED闪烁)"只是通过将一段程序烧录到Arduino开发板上控制LEC闪烁,没有任何连网动作,也就是说断 ...

  6. 【物联网(IoT)开发】使用 Arduino 和 Python在 Bluemix 上开发一个 IoT 应用程序之控制LED灯开关

    上篇"[物联网(IoT)开发]Arduino 入门 Hello World(LED闪烁)"只是通过将一段程序烧录到Arduino开发板上控制LEC闪烁,没有任何连网动作,也就是说断 ...

  7. 机智云无需代码就能搞定IoT小程序开发和管理

    基于机智云Aiot开发平台的新版开发者中心,无需代码就能搞定IoT小程序开发和管理.在信息技术不断更新升级的今天,与其紧密结合的物联网技术已经深入千家万户,给予人们更好的生活体验,也在不断的优化甚至是 ...

  8. 在Windows Hyper-V Server和Windows Server Core上安装GUI应用程序

    在Windows Hyper-V Server和Windows Server Core上安装GUI应用程序 对于生产服务器环境,建议您运行缺少GUI的Windows Server 2012的服务器核心 ...

  9. 在Visual Studio中构建启动时申请管理员权限的程序(UAC支持)

    这几天写了几个修改注册表的程序,因为需要管理员权限,所以就搜了一下如何构建启动时申请管理员权限的程序(UAC支持,也就是程序左下角多了个小盾牌). 其实方法很简单,就是修改manifest文件中执行权 ...

最新文章

  1. 第五课.高斯判别分析
  2. Django之模型层和ORM
  3. MVC4项目中验证用户登录一个特性就搞定
  4. C#启动停止SQL数据库服务
  5. 你永远都不知道你老公可以多幼稚......
  6. Python二级笔记(14)
  7. html特效代码是怎么实现的,html特效代码大全
  8. Netty工作笔记0078---Netty其他常用编解码器
  9. [Asp.net]Uploadify上传大文件,Http error 404 解决方案 - wolfy
  10. Timus 1079. Maximum
  11. HDU2084 数塔【DP】
  12. html 在线图片压缩,JS HTML图片显示Canvas 压缩功能
  13. SQL Server 默认跟踪应用4 -- 检测日志文件自动增长
  14. Rust: 亿元估值AI网红代码的不同版本
  15. Photoshop插件-删除亮调通道蒙板-脚本开发-PS插件
  16. EasyUI入门—Layout布局
  17. c++ 智能指针 (std::weak_ptr)(一)
  18. amd的服务器cpu型号大全,amdcpu型号大全
  19. 信息安全中常见的网络知识(一)网络基本概念
  20. SIP协议详解(中文)-1

热门文章

  1. 火狐 url 乱码_在Firefox中查看URL作为工具提示
  2. 自定义异常禁用异常堆栈_如何在Mac上禁用或自定义自动更正
  3. 一站式解决,Android 拍照 图库的各种问题
  4. RHCE 学习笔记(24) - LVM 逻辑卷
  5. Oracle 常用sql场景应用(未完待续......)
  6. PHP中session与cookie的简单使用
  7. JMeter基础知识
  8. ASP.NET Core 自动刷新JWT Token
  9. OxyPlot 导出图片及 WPF 元素导出为图片的方法
  10. C# 值得永久收藏的WPF项目实战(经典)