mixly自定义库


前言

Mixly可以看作是介于普通用户与Arduino IDE之间桥梁,通过这个桥梁,即使用户不懂C语言的语法,也可以利用图形化程序编写Arduino程序。Mixly的基本原理是将图形化程序转化成C语言,再利用Arduino IDE上传到硬件中。
根目录下的xml文件定义了图形块的基本信息,比如类别、名称,ID等。block/xxx.js文件定义了每个图形块的样式,比如颜色、文字、图标等。generator/xxx.js文件是将图形块程序转化成C语言的关键部分。language/xxx/en.js(zh-hans.js)等文件是语言文件,en.js是英文语言文件,zh-hans.js是简体中文语言文件,zh-hant.js是繁体中文语言文件。该类文件定义了图形块程序中每一个字段显示的文字内容。


一、软硬件

Mixly 1.1.7
官方指南: Instructions -使用Mixly写自定义库
脚本语言: JavaScript

二、文件结构

1.引入库

在这里插入图片描述

2.生成模块

在这里插入图片描述

3.主要代码

block/xxx.js
此脚本定义和配置了模块的图形化

Blockly.Blocks.esp8266wifi_begin = {
  init: function() {
    this.setColour(Blockly.Blocks.esp8266wifi.HUE);
    this.appendValueInput("ssid")
        .appendField(Blockly.MIXLY_ESP8266WIFI_BEGIN)
		.appendField(Blockly.MIXLY_ESP8266WIFI_SSID)
        .setCheck(String);
    this.appendValueInput("password")
        .appendField(Blockly.MIXLY_ESP8266WIFI_PASSWORD)
		.setAlign(Blockly.ALIGN_RIGHT)
        .setCheck(String);
    this.setPreviousStatement(true, null);
    this.setNextStatement(true, null);
    this.setInputsInline(true);
  }
};

根文件夹中 xml 文件
此脚本为全局路径配置

<category name="ESP8266WiFi" colour="100">
	<block type="esp8266wifi_begin">
		<value name="ssid">
			<shadow type="text">
				<field name="TEXT">wifiname</field>
			</shadow>
		</value>
		<value name="password">
			<shadow type="text">
				<field name="TEXT">12345678</field>
			</shadow>
		</value>
	</block>
</category>

generator 文件夹中 js 脚本

Blockly.Arduino.esp8266wifi_begin = function() {
  var ssid = Blockly.Arduino.valueToCode(this, 'ssid',Blockly.Arduino.ORDER_ATOMIC);
  var password = Blockly.Arduino.valueToCode(this, 'password', Blockly.Arduino.ORDER_ATOMIC);
  Blockly.Arduino.definitions_['define_ESP8266WiFi'] = '#include <ESP8266WiFi.h>';
  Blockly.Arduino.definitions_['var_WiFiClient_wificlient'] = 'WiFiClient wificlient;';
  var code = "WiFi.begin(" + ssid + "," + password +");\n";
  return code;
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值