.NET Core 3 對IoT應用程序的高級支持:System.Device.Gpio

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章