前言
本章内容是对Mixly 图像化编程软件进行的二次开发,需要一定的编程基础,需要用到的概念和知识点有: 绑定与事件概念, JavaScript的基本语法, .xml脚本的标签定义
限于篇幅,本章内容中笔者不做原理和JS脚本的剖析和讲解! 如参考阅读时困难, 恕笔者精力有限, 暂不不能提供详细内容, 当然,若笔者有空余时间, 自会补充相关原理讲解和脚本内容剖析. 还请各位读者知悉!
Mixly基本原理
Mixly可以看作是介于普通用户与Arduino IDE之间桥梁,通过这个桥梁,即使用户不懂C语言的语法,也可以利用图形化程序编写Arduino程序。Mixly的基本原理是将图形化程序转化成C语言,再利用Arduino IDE上传到硬件中。在我们动手编写第三方库之前,先来了解Mixly是如何将图形化程序转化成C语言的。
根目录下的xxx.xml文件定义了图形块的基本信息,比如类别、名称,ID等。block/xxx.js文件定义了每个图形块的样式,比如颜色、文字、图标等。generator/xxx.js文件是将图形块程序转化成C语言的关键部分。language/xxx/en.js(zh-hans.js)等文件是语言文件,en.js是英文语言文件,zh-hans.js是简体中文语言文件,zh-hant.js是繁体中文语言文件。该类文件定义了图形块程序中每一个字段显示的文字内容。
各文件作用的流程如图 1所示。
各文件作用流程
Mixly第三方库基本结构如图 2所示。
第三方库基本结构
简介&软件准备:
Mixly 1.1.7
官方指南: Instructions -使用Mixly写自定义库
第三方库范例: dfrobot、Otto
文本编辑工具: 记事本
此教程中所有文件可新建文本文档,修改其后缀实现编译。
这里用的编译器是Sublime,脚本语言是JavaScript
Mixly二次开发 文件结构
block/xxx.js文件定义了你定制的图形化模块的样子。
generator/xxx.js文件定义了每一个图形化模块对应的 Arduino C语言代码。
- block和generator 文件夹下各有一个与项目同名但内容不同的xxx.js文件,一个控制“外观”,另一个控制“内涵”。
xxx.xml
- 必须的,所有模块的路径,相当于字典