影视聚合站 科技 文章内容

物联网开发不再困难,Toit 编程语言正式开源

发布时间:2021-11-25 07:20:50来源:21CTO

ToitlikeaTiger

一款新的编程语言,专门针对物联网场景的免费、开源并具有生态的新型编程语言——Toit,近日正式通过GitHub向开发者发布。

Toit的GitHub:https://github.com/toitlang/toit

这意味着,程序员现在可以为物联网ESP32(一种流行的低耗能WI-FI无线设备)编写更强大的软件了。

Toit的前世今生

Toit是由一群Google的V8引擎团队所开发,语言创始人分别为:KasperLund和FlorianLoitsch。凭着有Flutter和Dart语言的经验,为破解物联网开发的困难和复杂性,几个人想为iOT设备开发一个通用固件,以取代传统复杂的物联网开发流程。

Toit提供了一套全新的功能,甚至是一种专为物联网开发的类似Python或者JavaScript的新式编程语言。

Toit语言简介

Toit有构建IoT应用程序所需的一切,包括固件、云连接、基于Web的控制台,有一种具有类似Python语法但执行速度明显更快的新式编程语言。

更重要的是,Toit为ESP32提供了基于容器的开发,允许应用程序相互独立地安装/更新,也可以独立于底层固件。

Toit语言之关键特性

以下向各位重点介绍一些关键特性,哪些可帮助IoT开发人员快速且轻松地开发自己的应用程序。

Toit能将2美元的ESP32MCU推向性能极致,还能够执行真正的多任务处理。Toit允许开发者划分固件和应用程序代码,以更轻巧和敏捷的方法在同一设备上部署大量应用程序。

因此,程序员可以自由安全地试验代码,而不必担心设备变砖头。

在设备上,应用程序在与系统在彼此不同的环境中运行,可以同时运行多个应用程序。即使其中一个应用出现故障,系统仍将继续正常运行。如果在代码中存在缺陷,最糟糕的情况就是它自己崩溃掉。

Toit可以非常简单修复错误,在几秒钟内通过无线方式重新部署应用程序。

Toit可开箱即用地进行无线连接。它可以直接连接到ESP32的内置Wi-Fi,使用NB-IoT或LTE-M蜂窝调制解调器连接到云端。

无需再通过USB线将设备连接到PC并等待它代码刷新。在设备上安装Toit后,设备和云之间的都通过无线方式进行通信,不论你的设备是在自己的办公桌上还是位于地球的另一端。

与典型的物联网系统将所有功能组合成一个大坨代码段不同,Toit连接配置与应用程序代码分开。Toit的编排引擎使物联网配置的智能调度变得很容易,只需单击几下即可调度配置更改或更新,即使对于离线的设备也没有问题。

Toit应用程序的大小为40到100KB,更新只需将补丁传输到之前安装的版本,因此Toit应用程序更新可以最小到20KB。更新会在几秒钟内发生,因此断开连接的可能性非常低。

即使在更新过程中蜂窝网络连接丢失,当连接恢复后,Toit会自动恢复传输。此外,更新从接收到的最新数据续传,而不是从头开始。

Toit应用仅专注于生成数据并将其保存在设备上,Toit的连接与其应用程序代码也是分离的。当每次设备连接到互联网时,数据都会上传到云端。即使在缓慢和不可靠的互联网连接上,也不会出现差错,所以Toit设备功能非常强大、易于访问且节能。

如果你做过微控制器的嵌入式编程,知道这有多令人头疼。人们多半使用C/C++进行编码,更改一行代码需要几分钟才能重新部署。问题是,当涉及到微控制器时,编写低级代码那是相当的乏味。而使用高级语言(例如MicroPython)能让编写代码变得简单,但是执行速度却不佳,这便是代价。

而Toit语言的横空出世,它在创建专门用于物联网的开发方面做得可能说非常出色。

它提供一种现代的面向对象语言,这是一种现代的、内存级别安全的编程语言,它还集成了具有语法高亮显示、代码行跳转定义和自动完成等现代特性的编辑器。

在Toit的虚拟机中,代码可作为一个或多个应用程序同时执行。由于代码在沙盒环境中运行,出现缺陷也不会影响其它程序,最坏情况就是自己崩溃掉。

通过ESP32上的GPIO引脚,程序员可以控制插件的任何外围设备——I2C、SPI、I2S和UART协议均可使用。

此外,Toit的包管理器为传感器、电机等各种常用的外围设备提供常用的驱动程序,如果没有找到,Toit的工程团队可以帮忙补充。

Toit提供了控制台,也提供了自由的命令行工具,程序员不会感到受限制。

“你可以完全控制自己的设备,使用Toit平台执行的所有操作,这些可通过提供的API来搞定。你会很容易将Toit集成到自己的产品中,使自己的设备组完全可编程”,Toit团队在官方博客中这样提到。

Toit提供的是基于gRPC的API,用户可以自由地使用,实现想要的任何目标。

物联网是关于数据的,Toit的API旨在为用户提供对设备的完整编程控制,并使将获取的数据尽可能简单地提取到自己的后端系统。

Toit使用现代公钥加密,设备和云之间的所有通信均为端到端加密。每个设备都有自己的加密安全标识,开发者可以鉴别所有收集数据的来源。

Toit语言引进了VisualStudioCode扩展,这表示用VSC就可以开发iOT软件。

它不仅是通过引入一种新的语言来突出显示代码,并且开发者在内置终端中,可以运行代码片段、部署程序和监控输出。

该扩展程序还会在编辑器侧边栏中显示当前正在运行的设备和应用程序列表。此款VisualStudioCode扩展可明显加快开发速度。

我想大家喜欢这样一个事实:直接在iOT设备上执行的软件,和在计算机上执行的程序一样。不用再担心在处理C++程序时可能出现的端口选择、内存崩溃或其他问题。

这款VSCode扩展提供了基于Web的界面的基本功能,包括额外的应用部署选项。

先将Toit刷入固件,首次使用的程序员需要一块ESP32开发板和一条USB数据线。

Toit支持通过Web串行协议,可以从浏览器刷入,开发者甚至可以在自己的PC上不安装任何东西的情况下就可以开始创建。

配置设备只需几分钟,很快就会启动并运行。配置完成后即可以在设备上试用任何内容,只要一连接到网络,物联网设备和云之间的所有通信都将通过无线方式进行。

Toit控制台还包含一个内置代码编辑器,用时间戳的方式,在设备上编写、运行和监控代码。

在程序启动运行后,就可以将其作为长时间运行的应用安装在设备上。应用程序的输出将被记录下来,并且可以在控制台的日志部分查看。

Toit出色的多任务处理能力将ESP32变成了一台计算机。

关于Toit的开源许可证

以下是Toit联合创始人Kasperl的回答:

Toit一部分使用的是LGPL2.1许可证,并且提供商业许可证。10个以内的iOT设备处理完全免费,超出的服务每月收取0.5美元。详细可参阅https://toit.io/pricing。

如果使用商业许可证则不受LGPL的约束。如果选择使用开源版本,将受Toit虚拟机的LGPL约束。

Toit的标准库遵循MIT许可证,这些不属于LGPL许可证范围之内。

各位同学,愿意试试看吗?

作者:洛逸

来源:21CTO

关于21CTO.com

21CTO.com是开发者的学习与服务平台。

我们为开发者提供高质量的资讯、学习以及工具等产品;

帮助企业快速对接开发者,包括人才招聘,数字化转型咨询,软件研发等服务。

网站地址:www.21cto.com

投稿邮箱:info@21cto.com

联系微信:13426109659

扫描二维码关注21CTO微信号

© 2016-2021 ysjhz.com Inc.

站点统计| 举报| Archiver| 手机版| 小黑屋| 影视聚合站 ( 皖ICP备16004362号-1 )