thingML的学习——什么是thingML

今天开始建模的学习,thingML是建模的一种工具 ,也可以理解为一种建模语言,有自己的语法和语义。

ThingML 支持的多种平台和通信协议,如UART、I2C、MQTT、WebSocket、REST、ROS、Bluetooth、BLE和Zwave,通过插件机制, ThingML能够灵活地适应不同的通信需求,同时隐藏了部分通信协议的复杂性,提高了代码的可维护性和可重用性。

为什么要学习thingML?

ThingML最初用于嵌入式系统开发,但现在已经广泛应用于物联网、智能家居、医疗设备等领域。ThingML适用于分布式反应性系统,并且特别适合包含异构平台和通信通道的应用程序。与UML相比,ThingML可以被视为一种特定领域的建模语言,但它不是针对任何业务领域的,因此可用于各种应用程序。ThingML的目标是将MDE应用于软件生命周期的后期设计和实现阶段,以及支持维护和演化任务。该语言的用户群体包括广泛的软件开发者和架构师。

ThingML:一种面向目标平台的代码生成器设计与实现

 新版本的代码生成器是基于Java对象导向框架设计的,可以轻松地定制化以适应不同组织和项目的需求。该语言的关键结构包括事物和配置,其中事物代表软件组件,而配置描述它们之间的连接。事物可以定义属性、函数、消息、端口和状态机,并且可以通过端口发送和接收消息。最终,ThingML编译器将配置转换为目标语言的完全可操作的代码。

ThingML代码生成框架及其扩展点介绍

9041966651b240ab815ea5138950a201.png

该框架可以将ThingML模型转换成各种语言的完全可操作的代码。目前支持的语言包括C、C++、Java和JavaScript等。该框架由一组代码生成器组成,每个生成器负责编译特定子集的ThingML。这个模块化结构允许对一些扩展点进行自定义,而其他的则可以直接使用。在该框架中有10个不同的扩展点,分为两个组:用于生成“事物”的代码和用于生成配置(或应用程序)的代码。这些扩展点通过接口或抽象类的形式存在于代码生成框架中,并包含了一组方法来生成与给定元素相关的代码。在生成过程中,模型元素是只读的,但不同的扩展点可以通过共享上下文信息来进行协作。

ThingML编译器框架及其特点分析

ThingML框架中的几个重要组成部分,包括编译器、检查器和代码生成测试框架等。其中,

编译器是将ThingML模型转换成目标语言代码的核心模块;

检查器则提供了对输入模型进行语法检查和应用逻辑规则验证的功能;

而代码生成测试框架则是用于验证不同代码生成器的输出是否符合预期的一种工具。

这些组件都是基于Java实现的,并且具有可扩展性,可以方便地添加新的功能或支持新的平台和语言。此外,本章还提到了一些具体的例子,如Linux C和Arduino代码生成器之间的相似性和差异性,以及不同语言之间代码行数的分布情况。

通信协议与插件机制在物联网应用中的实现与优化

f31428723f9243f1a4802377fee4befa.png

ThingML代码生成框架的插件机制。通过插件机制,程序员可以解耦传输和消息格式,并提供更好的可重用性。

网络插件负责生成支持原始消息传输并管理网络范例逻辑的代码。此外,该章节还列出了不同协议的实验情况以及它们提出的要求。最后,该章节提到了一些与通信相关的复杂性可以通过隐藏在模型之外来解决,但需要将一部分复杂性暴露给ThingML代码以实现灵活的通信管理。

 

初学建模,如有不同见解请指正,望与君共勉!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值