Update(boards): 所有板卡执行 build:prod
This commit is contained in:
@@ -2,7 +2,7 @@ import * as Blockly from 'blockly/core';
|
||||
import * as Mixly from 'mixly';
|
||||
|
||||
/**
|
||||
* @name 模块名 Http GET请求
|
||||
* @name 模块名 Http GET请求
|
||||
* @support 支持板卡 {ESP8266, ESP32, ESP32C3, ESP32S2, ESP32S3}
|
||||
*/
|
||||
export const http_get = function () {
|
||||
@@ -1323,18 +1323,18 @@ export const weather_seniverse_city_weather = function () {
|
||||
Blockly.Arduino.setups_['setup_serial_Serial'] = 'Serial.begin(9600);';
|
||||
|
||||
switch (api) {
|
||||
case 'weather/now':
|
||||
Blockly.Arduino.definitions_['var_declare_weatherNow'] = 'WeatherNow weatherNow;';
|
||||
Blockly.Arduino.setups_['setup_seniverse_weatherNow'] = 'weatherNow.config(' + private_key + ', ' + location + ', "' + unit + '", "' + language + '");';
|
||||
break;
|
||||
case 'weather/daily':
|
||||
Blockly.Arduino.definitions_['var_declare_forecast'] = 'Forecast forecast;';
|
||||
Blockly.Arduino.setups_['setup_seniverse_forecast'] = 'forecast.config(' + private_key + ', ' + location + ', "' + unit + '", "' + language + '");';
|
||||
break;
|
||||
case 'life/suggestion':
|
||||
default:
|
||||
Blockly.Arduino.definitions_['var_declare_lifeInfo'] = 'LifeInfo lifeInfo;';
|
||||
Blockly.Arduino.setups_['setup_seniverse_lifeInfo'] = 'lifeInfo.config(' + private_key + ', ' + location + ', "' + unit + '", "' + language + '");';
|
||||
case 'weather/now':
|
||||
Blockly.Arduino.definitions_['var_declare_weatherNow'] = 'WeatherNow weatherNow;';
|
||||
Blockly.Arduino.setups_['setup_seniverse_weatherNow'] = 'weatherNow.config(' + private_key + ', ' + location + ', "' + unit + '", "' + language + '");';
|
||||
break;
|
||||
case 'weather/daily':
|
||||
Blockly.Arduino.definitions_['var_declare_forecast'] = 'Forecast forecast;';
|
||||
Blockly.Arduino.setups_['setup_seniverse_forecast'] = 'forecast.config(' + private_key + ', ' + location + ', "' + unit + '", "' + language + '");';
|
||||
break;
|
||||
case 'life/suggestion':
|
||||
default:
|
||||
Blockly.Arduino.definitions_['var_declare_lifeInfo'] = 'LifeInfo lifeInfo;';
|
||||
Blockly.Arduino.setups_['setup_seniverse_lifeInfo'] = 'lifeInfo.config(' + private_key + ', ' + location + ', "' + unit + '", "' + language + '");';
|
||||
}
|
||||
var code = '';
|
||||
|
||||
@@ -1346,15 +1346,15 @@ export const weather_get_seniverse_weather_info = function () {
|
||||
var type = this.getFieldValue("type");
|
||||
var code = '';
|
||||
switch (api) {
|
||||
case 'weather/now':
|
||||
code = 'weatherNow.' + type + '()';
|
||||
break;
|
||||
case 'weather/daily':
|
||||
code = 'forecast.' + type + '()';
|
||||
break;
|
||||
case 'life/suggestion':
|
||||
default:
|
||||
code = 'lifeInfo.' + type + '()';
|
||||
case 'weather/now':
|
||||
code = 'weatherNow.' + type + '()';
|
||||
break;
|
||||
case 'weather/daily':
|
||||
code = 'forecast.' + type + '()';
|
||||
break;
|
||||
case 'life/suggestion':
|
||||
default:
|
||||
code = 'lifeInfo.' + type + '()';
|
||||
}
|
||||
|
||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mixly/arduino",
|
||||
"version": "1.6.0",
|
||||
"version": "1.7.0",
|
||||
"description": "适用于mixly的arduino模块",
|
||||
"scripts": {
|
||||
"build:dev": "webpack --config=webpack.dev.js",
|
||||
|
||||
@@ -11,11 +11,6 @@ export const base_setup = {
|
||||
this.setHelpUrl(
|
||||
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#id2"
|
||||
);
|
||||
this.wiki = {
|
||||
"zh-hans": {
|
||||
page: ["Arduino AVR", "控制", "初始化"],
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -37,11 +32,6 @@ export const controls_delay = {
|
||||
this.setHelpUrl(
|
||||
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#id9"
|
||||
);
|
||||
this.wiki = {
|
||||
"zh-hans": {
|
||||
page: ["Arduino AVR", "控制", "延时"],
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -70,11 +60,6 @@ export const controls_for = {
|
||||
this.setHelpUrl(
|
||||
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#id2"
|
||||
);
|
||||
this.wiki = {
|
||||
"zh-hans": {
|
||||
page: ["Arduino AVR", "控制", "for 循环"],
|
||||
},
|
||||
};
|
||||
var thisBlock = this;
|
||||
this.setTooltip(function () {
|
||||
return Blockly.Msg.CONTROLS_FOR_TOOLTIP.replace(
|
||||
@@ -106,11 +91,6 @@ export const controls_whileUntil = {
|
||||
this.setHelpUrl(
|
||||
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#while"
|
||||
);
|
||||
this.wiki = {
|
||||
"zh-hans": {
|
||||
page: ["Arduino AVR", "控制", "while 循环"],
|
||||
},
|
||||
};
|
||||
var thisBlock = this;
|
||||
this.setTooltip(function () {
|
||||
var op = thisBlock.getFieldValue("MODE");
|
||||
@@ -148,11 +128,6 @@ export const controls_flow_statements = {
|
||||
};
|
||||
return TOOLTIPS[op];
|
||||
});
|
||||
this.wiki = {
|
||||
"zh-hans": {
|
||||
page: ["Arduino AVR", "控制", "跳出循环"],
|
||||
},
|
||||
};
|
||||
},
|
||||
onchange: function () {
|
||||
if (!this.workspace) {
|
||||
@@ -199,11 +174,6 @@ export const controls_millis = {
|
||||
.appendField(new Blockly.FieldDropdown(UNIT), "UNIT");
|
||||
this.setOutput(true, Number);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_CONTROL_MILLIS);
|
||||
this.wiki = {
|
||||
"zh-hans": {
|
||||
page: ["Arduino AVR", "控制", "系统运行时间"],
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -226,11 +196,6 @@ export const controls_if = {
|
||||
this.setHelpUrl(
|
||||
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#if"
|
||||
);
|
||||
this.wiki = {
|
||||
"zh-hans": {
|
||||
page: ["Arduino AVR", "控制", "if 选择"],
|
||||
},
|
||||
};
|
||||
this.setMutator(
|
||||
new Blockly.icons.MutatorIcon(
|
||||
["controls_if_elseif", "controls_if_else"],
|
||||
@@ -378,17 +343,17 @@ export const controls_if = {
|
||||
var elseStatementConnection = null;
|
||||
while (clauseBlock) {
|
||||
switch (clauseBlock.type) {
|
||||
case "controls_if_elseif":
|
||||
this.elseifCount_++;
|
||||
valueConnections.push(clauseBlock.valueConnection_);
|
||||
statementConnections.push(clauseBlock.statementConnection_);
|
||||
break;
|
||||
case "controls_if_else":
|
||||
this.elseCount_++;
|
||||
elseStatementConnection = clauseBlock.statementConnection_;
|
||||
break;
|
||||
default:
|
||||
throw Error("Unknown block type: " + clauseBlock.type);
|
||||
case "controls_if_elseif":
|
||||
this.elseifCount_++;
|
||||
valueConnections.push(clauseBlock.valueConnection_);
|
||||
statementConnections.push(clauseBlock.statementConnection_);
|
||||
break;
|
||||
case "controls_if_else":
|
||||
this.elseCount_++;
|
||||
elseStatementConnection = clauseBlock.statementConnection_;
|
||||
break;
|
||||
default:
|
||||
throw Error("Unknown block type: " + clauseBlock.type);
|
||||
}
|
||||
clauseBlock =
|
||||
clauseBlock.nextConnection && clauseBlock.nextConnection.targetBlock();
|
||||
@@ -412,22 +377,22 @@ export const controls_if = {
|
||||
var i = 1;
|
||||
while (clauseBlock) {
|
||||
switch (clauseBlock.type) {
|
||||
case "controls_if_elseif":
|
||||
var inputIf = this.getInput("IF" + i);
|
||||
var inputDo = this.getInput("DO" + i);
|
||||
clauseBlock.valueConnection_ =
|
||||
case "controls_if_elseif":
|
||||
var inputIf = this.getInput("IF" + i);
|
||||
var inputDo = this.getInput("DO" + i);
|
||||
clauseBlock.valueConnection_ =
|
||||
inputIf && inputIf.connection.targetConnection;
|
||||
clauseBlock.statementConnection_ =
|
||||
clauseBlock.statementConnection_ =
|
||||
inputDo && inputDo.connection.targetConnection;
|
||||
i++;
|
||||
break;
|
||||
case "controls_if_else":
|
||||
var inputDo = this.getInput("ELSE");
|
||||
clauseBlock.statementConnection_ =
|
||||
i++;
|
||||
break;
|
||||
case "controls_if_else":
|
||||
var inputDo = this.getInput("ELSE");
|
||||
clauseBlock.statementConnection_ =
|
||||
inputDo && inputDo.connection.targetConnection;
|
||||
break;
|
||||
default:
|
||||
throw "Unknown block type.";
|
||||
break;
|
||||
default:
|
||||
throw "Unknown block type.";
|
||||
}
|
||||
clauseBlock =
|
||||
clauseBlock.nextConnection && clauseBlock.nextConnection.targetBlock();
|
||||
@@ -573,11 +538,6 @@ export const controls_switch_case = {
|
||||
this.setHelpUrl(
|
||||
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#switch"
|
||||
);
|
||||
this.wiki = {
|
||||
"zh-hans": {
|
||||
page: ["Arduino AVR", "控制", "switch 选择"],
|
||||
},
|
||||
};
|
||||
this.setMutator(
|
||||
new Blockly.icons.MutatorIcon(["controls_case", "controls_default"], this)
|
||||
);
|
||||
@@ -666,32 +626,32 @@ export const controls_switch_case = {
|
||||
var clauseBlock = containerBlock.getInputTargetBlock("STACK");
|
||||
while (clauseBlock) {
|
||||
switch (clauseBlock.type) {
|
||||
case "controls_case":
|
||||
this.elseifCount_++;
|
||||
var ifInput = this.appendValueInput("IF" + this.elseifCount_)
|
||||
.setCheck([Number, Boolean])
|
||||
.appendField("case");
|
||||
var doInput = this.appendStatementInput("DO" + this.elseifCount_);
|
||||
doInput.appendField("");
|
||||
// Reconnect any child blocks.
|
||||
if (clauseBlock.valueConnection_) {
|
||||
ifInput.connection.connect(clauseBlock.valueConnection_);
|
||||
}
|
||||
if (clauseBlock.statementConnection_) {
|
||||
doInput.connection.connect(clauseBlock.statementConnection_);
|
||||
}
|
||||
break;
|
||||
case "controls_default":
|
||||
this.elseCount_++;
|
||||
var elseInput = this.appendStatementInput("ELSE");
|
||||
elseInput.appendField("default");
|
||||
// Reconnect any child blocks.
|
||||
if (clauseBlock.statementConnection_) {
|
||||
elseInput.connection.connect(clauseBlock.statementConnection_);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw "Unknown block type.";
|
||||
case "controls_case":
|
||||
this.elseifCount_++;
|
||||
var ifInput = this.appendValueInput("IF" + this.elseifCount_)
|
||||
.setCheck([Number, Boolean])
|
||||
.appendField("case");
|
||||
var doInput = this.appendStatementInput("DO" + this.elseifCount_);
|
||||
doInput.appendField("");
|
||||
// Reconnect any child blocks.
|
||||
if (clauseBlock.valueConnection_) {
|
||||
ifInput.connection.connect(clauseBlock.valueConnection_);
|
||||
}
|
||||
if (clauseBlock.statementConnection_) {
|
||||
doInput.connection.connect(clauseBlock.statementConnection_);
|
||||
}
|
||||
break;
|
||||
case "controls_default":
|
||||
this.elseCount_++;
|
||||
var elseInput = this.appendStatementInput("ELSE");
|
||||
elseInput.appendField("default");
|
||||
// Reconnect any child blocks.
|
||||
if (clauseBlock.statementConnection_) {
|
||||
elseInput.connection.connect(clauseBlock.statementConnection_);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw "Unknown block type.";
|
||||
}
|
||||
clauseBlock =
|
||||
clauseBlock.nextConnection && clauseBlock.nextConnection.targetBlock();
|
||||
@@ -707,22 +667,22 @@ export const controls_switch_case = {
|
||||
var i = 1;
|
||||
while (clauseBlock) {
|
||||
switch (clauseBlock.type) {
|
||||
case "controls_case":
|
||||
var inputIf = this.getInput("IF" + i);
|
||||
var inputDo = this.getInput("DO" + i);
|
||||
clauseBlock.valueConnection_ =
|
||||
case "controls_case":
|
||||
var inputIf = this.getInput("IF" + i);
|
||||
var inputDo = this.getInput("DO" + i);
|
||||
clauseBlock.valueConnection_ =
|
||||
inputIf && inputIf.connection.targetConnection;
|
||||
clauseBlock.statementConnection_ =
|
||||
clauseBlock.statementConnection_ =
|
||||
inputDo && inputDo.connection.targetConnection;
|
||||
i++;
|
||||
break;
|
||||
case "controls_default":
|
||||
var inputDo = this.getInput("ELSE");
|
||||
clauseBlock.statementConnection_ =
|
||||
i++;
|
||||
break;
|
||||
case "controls_default":
|
||||
var inputDo = this.getInput("ELSE");
|
||||
clauseBlock.statementConnection_ =
|
||||
inputDo && inputDo.connection.targetConnection;
|
||||
break;
|
||||
default:
|
||||
throw "Unknown block type.";
|
||||
break;
|
||||
default:
|
||||
throw "Unknown block type.";
|
||||
}
|
||||
clauseBlock =
|
||||
clauseBlock.nextConnection && clauseBlock.nextConnection.targetBlock();
|
||||
@@ -785,11 +745,6 @@ export const controls_mstimer2 = {
|
||||
this.setHelpUrl(
|
||||
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#MsTimer2"
|
||||
);
|
||||
this.wiki = {
|
||||
"zh-hans": {
|
||||
page: ["Arduino AVR", "控制", "MsTimer2 定时器"],
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -805,12 +760,6 @@ export const controls_mstimer2_start = {
|
||||
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#id45"
|
||||
);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_CONTROL_MSTIMER2_START);
|
||||
this.wiki = {
|
||||
"zh-hans": {
|
||||
page: ["Arduino AVR", "控制", "MsTimer2 定时器"],
|
||||
scrollPos: "MsTimer2 定时器启动",
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -826,12 +775,6 @@ export const controls_mstimer2_stop = {
|
||||
this.setHelpUrl(
|
||||
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#id48"
|
||||
);
|
||||
this.wiki = {
|
||||
"zh-hans": {
|
||||
page: ["Arduino AVR", "控制", "MsTimer2 定时器"],
|
||||
scrollPos: "MsTimer2 定时器停止",
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -864,12 +807,6 @@ export const controls_interrupts = {
|
||||
this.setHelpUrl(
|
||||
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#id51"
|
||||
);
|
||||
this.wiki = {
|
||||
"zh-hans": {
|
||||
page: ["Arduino AVR", "控制", "中断"],
|
||||
scrollPos: "允许中断",
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -883,12 +820,6 @@ export const controls_nointerrupts = {
|
||||
this.setHelpUrl(
|
||||
"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#id55"
|
||||
);
|
||||
this.wiki = {
|
||||
"zh-hans": {
|
||||
page: ["Arduino AVR", "控制", "中断"],
|
||||
scrollPos: "禁止中断",
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
export const base_delay = controls_delay;
|
||||
@@ -928,11 +859,6 @@ export const simple_timer = {
|
||||
this.setColour(120);
|
||||
this.setTooltip();
|
||||
this.setHelpUrl("");
|
||||
this.wiki = {
|
||||
"zh-hans": {
|
||||
page: ["Arduino AVR", "控制", "简单定时器"],
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
//do-while循环
|
||||
|
||||
@@ -2105,12 +2105,12 @@ export const tft_generate_bitmap_data = {
|
||||
layero.find('button').click((event) => {
|
||||
const mId = $(event.currentTarget).attr('m-id');
|
||||
switch (mId) {
|
||||
case '0':
|
||||
this.loadImg(layero);
|
||||
break;
|
||||
case '1':
|
||||
this.writeJson();
|
||||
break;
|
||||
case '0':
|
||||
this.loadImg(layero);
|
||||
break;
|
||||
case '1':
|
||||
this.writeJson();
|
||||
break;
|
||||
}
|
||||
});
|
||||
},
|
||||
@@ -2176,25 +2176,25 @@ export const tft_generate_bitmap_data = {
|
||||
const mark = (i + 1) % 4;
|
||||
let hexData, addition = '';
|
||||
switch (mark) {
|
||||
case 1:
|
||||
pixelData = (data[i] >> 3) & 0x001F;
|
||||
break;
|
||||
case 2:
|
||||
pixelData = (pixelData & 0x001F) << 6;
|
||||
pixelData = pixelData | ((data[i] >> 2) & 0x003F);
|
||||
break;
|
||||
case 3:
|
||||
pixelData = (pixelData & 0x07FF) << 5;
|
||||
pixelData = pixelData | ((data[i] >> 3) & 0x001F);
|
||||
break;
|
||||
default:
|
||||
hexData = pixelData.toString(16);
|
||||
for (let j = 4; j > hexData.length; j--) {
|
||||
addition += '0';
|
||||
}
|
||||
hexData = addition + hexData;
|
||||
bitmapStr += '0x' + hexData + (i === data.length - 1 ? '' : ',');
|
||||
pixelData = 0;
|
||||
case 1:
|
||||
pixelData = (data[i] >> 3) & 0x001F;
|
||||
break;
|
||||
case 2:
|
||||
pixelData = (pixelData & 0x001F) << 6;
|
||||
pixelData = pixelData | ((data[i] >> 2) & 0x003F);
|
||||
break;
|
||||
case 3:
|
||||
pixelData = (pixelData & 0x07FF) << 5;
|
||||
pixelData = pixelData | ((data[i] >> 3) & 0x001F);
|
||||
break;
|
||||
default:
|
||||
hexData = pixelData.toString(16);
|
||||
for (let j = 4; j > hexData.length; j--) {
|
||||
addition += '0';
|
||||
}
|
||||
hexData = addition + hexData;
|
||||
bitmapStr += '0x' + hexData + (i === data.length - 1 ? '' : ',');
|
||||
pixelData = 0;
|
||||
}
|
||||
if ((i + 1) % 400 === 0 && i !== data.length - 1)
|
||||
bitmapStr += '\n ';
|
||||
@@ -2213,12 +2213,12 @@ export const tft_generate_bitmap_data = {
|
||||
const inputDom = $(inputsDom[i]);
|
||||
const mId = inputDom.attr('m-id');
|
||||
switch (mId) {
|
||||
case '0':
|
||||
imgSize.width = parseInt(inputDom.val()) ?? 100;
|
||||
break;
|
||||
case '1':
|
||||
imgSize.height = parseInt(inputDom.val()) ?? 100;
|
||||
break;
|
||||
case '0':
|
||||
imgSize.width = parseInt(inputDom.val()) ?? 100;
|
||||
break;
|
||||
case '1':
|
||||
imgSize.height = parseInt(inputDom.val()) ?? 100;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (imgSize.width > 300)
|
||||
|
||||
@@ -477,12 +477,12 @@ export const MQTT_subscribe = {
|
||||
var statementConnections = [null];
|
||||
while (clauseBlock) {
|
||||
switch (clauseBlock.type) {
|
||||
case 'MQTT_add_subscribe_topic':
|
||||
this.elseifCount_++;
|
||||
statementConnections.push(clauseBlock.statementConnection_);
|
||||
break;
|
||||
default:
|
||||
throw Error('Unknown block type: ' + clauseBlock.type);
|
||||
case 'MQTT_add_subscribe_topic':
|
||||
this.elseifCount_++;
|
||||
statementConnections.push(clauseBlock.statementConnection_);
|
||||
break;
|
||||
default:
|
||||
throw Error('Unknown block type: ' + clauseBlock.type);
|
||||
}
|
||||
clauseBlock = clauseBlock.nextConnection &&
|
||||
clauseBlock.nextConnection.targetBlock();
|
||||
@@ -503,14 +503,14 @@ export const MQTT_subscribe = {
|
||||
var i = 1;
|
||||
while (clauseBlock) {
|
||||
switch (clauseBlock.type) {
|
||||
case 'MQTT_add_subscribe_topic':
|
||||
var inputDo = this.getInput('DO' + i);
|
||||
clauseBlock.statementConnection_ =
|
||||
case 'MQTT_add_subscribe_topic':
|
||||
var inputDo = this.getInput('DO' + i);
|
||||
clauseBlock.statementConnection_ =
|
||||
inputDo && inputDo.connection.targetConnection;
|
||||
i++;
|
||||
break;
|
||||
default:
|
||||
throw 'Unknown block type.';
|
||||
i++;
|
||||
break;
|
||||
default:
|
||||
throw 'Unknown block type.';
|
||||
}
|
||||
clauseBlock = clauseBlock.nextConnection &&
|
||||
clauseBlock.nextConnection.targetBlock();
|
||||
|
||||
@@ -26,11 +26,6 @@ export const inout_pinMode = {
|
||||
this.setNextStatement(true, null);
|
||||
this.setInputsInline(true);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_pinMode);
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '输入输出', '管脚模式']
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -49,11 +44,6 @@ export const inout_digital_write2 = {
|
||||
this.setInputsInline(true);
|
||||
this.setTooltip(Blockly.Msg.LANG_INOUT_DIGITAL_WRITE_TOOLTIP);
|
||||
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/02.Input-Output.html#id2");
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '输入输出', '数字输出']
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -66,11 +56,6 @@ export const inout_digital_read = {
|
||||
this.setOutput(true, [Boolean, Number]);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_DIGITAL_READ);
|
||||
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/02.Input-Output.html#id7");
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '输入输出', '数字输入']
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -84,11 +69,6 @@ export const inout_digital_read2 = {
|
||||
this.setOutput(true, [Boolean, Number]);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_DIGITAL_READ);
|
||||
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/02.Input-Output.html#id19");
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '输入输出', '数字输入']
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -106,11 +86,6 @@ export const inout_analog_write = {
|
||||
this.setNextStatement(true, null);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_ANALOG_WRITE);
|
||||
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/02.Input-Output.html#id13");
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '输入输出', '模拟输出']
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -124,11 +99,6 @@ export const inout_analog_read = {
|
||||
this.setOutput(true, Number);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_ANALOG_READ);
|
||||
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/02.Input-Output.html#id13");
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '输入输出', '模拟输入']
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -160,11 +130,6 @@ export const OneButton_interrupt = {
|
||||
this.setInputsInline(true);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT);
|
||||
this.setHelpUrl();
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '输入输出', '多功能按键']
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -183,12 +148,6 @@ export const controls_attachInterrupt = {
|
||||
this.setNextStatement(true);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT);
|
||||
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/02.Input-Output.html#id25");
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '输入输出', '硬件中断'],
|
||||
scrollPos: '硬件中断'
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -203,12 +162,6 @@ export const controls_detachInterrupt = {
|
||||
this.setInputsInline(true);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_DETACHINTERRUPT);
|
||||
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/02.Input-Output.html#id30");
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '输入输出', '硬件中断'],
|
||||
scrollPos: '取消硬件中断'
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -226,12 +179,6 @@ export const controls_attachPinInterrupt = {
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT);
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '输入输出', '软件中断'],
|
||||
scrollPos: '软件中断'
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -244,12 +191,6 @@ export const controls_detachPinInterrupt = {
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_DETACHINTERRUPT);
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '输入输出', '软件中断'],
|
||||
scrollPos: '取消软件中断'
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -265,11 +206,6 @@ export const inout_pulseIn = {
|
||||
this.setOutput(true, Number);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_pulseIn);
|
||||
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/02.Input-Output.html#id33");
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '输入输出', '脉冲长度']
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -289,11 +225,6 @@ export const inout_pulseIn2 = {
|
||||
this.setOutput(true, Number);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_pulseIn2);
|
||||
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/02.Input-Output.html#id33");
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '输入输出', '脉冲长度']
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -319,11 +250,6 @@ export const inout_shiftout = {
|
||||
this.setNextStatement(true, null);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_shiftout);
|
||||
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/02.Input-Output.html#shiftout");
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '输入输出', 'ShiftOut']
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -17,11 +17,6 @@ export const SCoopTask = {
|
||||
this.setColour(SCOOP_HUE);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_SCOOP);
|
||||
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#scoop-task");
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '控制', 'SCoop Task']
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -34,11 +29,6 @@ export const SCoop_yield = {
|
||||
this.setNextStatement(false, null);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_SCOOP_YIELD);
|
||||
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#scoop-task");
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '控制', 'SCoop Task']
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
export const SCoop_sleep = {
|
||||
@@ -53,11 +43,5 @@ export const SCoop_sleep = {
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_SCOOP_SLEEP);
|
||||
this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#scoop-task");
|
||||
this.wiki = {
|
||||
'zh-hans': {
|
||||
page: ['Arduino AVR', '控制', 'SCoop Task']
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -117,10 +117,10 @@ export const controls_whileUntil = function (_, generator) {
|
||||
export const controls_flow_statements = function () {
|
||||
// Flow statements: continue, break.
|
||||
switch (this.getFieldValue('FLOW')) {
|
||||
case 'BREAK':
|
||||
return 'break;\n';
|
||||
case 'CONTINUE':
|
||||
return 'continue;\n';
|
||||
case 'BREAK':
|
||||
return 'break;\n';
|
||||
case 'CONTINUE':
|
||||
return 'continue;\n';
|
||||
}
|
||||
throw 'Unknown flow statement.';
|
||||
};
|
||||
|
||||
@@ -972,84 +972,84 @@ export const TFT_st7735_show_hz = function (_, generator) {
|
||||
|
||||
var hz_sharp = "";
|
||||
switch (dropdown_st7735_hz_sharp) {
|
||||
case "STHeiti":
|
||||
hz_sharp = "华文黑体";
|
||||
break;
|
||||
case "STKaiti":
|
||||
hz_sharp = "华文楷体";
|
||||
break;
|
||||
case "STXihei":
|
||||
hz_sharp = "华文细黑";
|
||||
break;
|
||||
case "STSong":
|
||||
hz_sharp = "华文宋体";
|
||||
break;
|
||||
case "STZhongsong":
|
||||
hz_sharp = "华文中宋";
|
||||
break;
|
||||
case "STFangsong":
|
||||
hz_sharp = "华文仿宋";
|
||||
break;
|
||||
case "STCaiyun":
|
||||
hz_sharp = "华文彩云";
|
||||
break;
|
||||
case "STHupo":
|
||||
hz_sharp = "华文琥珀";
|
||||
break;
|
||||
case "STLiti":
|
||||
hz_sharp = "华文隶书";
|
||||
break;
|
||||
case "STXingkai":
|
||||
hz_sharp = "华文行楷";
|
||||
break;
|
||||
case "STXinwei":
|
||||
hz_sharp = "华文新魏";
|
||||
break;
|
||||
case "simHei":
|
||||
hz_sharp = "黑体";
|
||||
break;
|
||||
case "simSun":
|
||||
hz_sharp = "宋体";
|
||||
break;
|
||||
case "NSimSun":
|
||||
hz_sharp = "新宋体";
|
||||
break;
|
||||
case "FangSong":
|
||||
hz_sharp = "仿宋";
|
||||
break;
|
||||
case "KaiTi":
|
||||
hz_sharp = "楷体";
|
||||
break;
|
||||
case "FangSong_GB2312":
|
||||
hz_sharp = "仿宋_GB2312";
|
||||
break;
|
||||
case "KaiTi_GB2312":
|
||||
hz_sharp = "楷体_GB2312";
|
||||
break;
|
||||
case "LiSu":
|
||||
hz_sharp = "隶书";
|
||||
break;
|
||||
case "YouYuan":
|
||||
hz_sharp = "幼圆";
|
||||
break;
|
||||
case "PMingLiU":
|
||||
hz_sharp = "新细明体";
|
||||
break;
|
||||
case "MingLiU":
|
||||
hz_sharp = "细明体";
|
||||
break;
|
||||
case "DFKai-SB":
|
||||
hz_sharp = "标楷体";
|
||||
break;
|
||||
case "Microsoft JhengHei":
|
||||
hz_sharp = "微软正黑体";
|
||||
break;
|
||||
case "Microsoft YaHei":
|
||||
hz_sharp = "微软雅黑体";
|
||||
break;
|
||||
default:
|
||||
hz_sharp = dropdown_st7735_hz_sharp;
|
||||
break;
|
||||
case "STHeiti":
|
||||
hz_sharp = "华文黑体";
|
||||
break;
|
||||
case "STKaiti":
|
||||
hz_sharp = "华文楷体";
|
||||
break;
|
||||
case "STXihei":
|
||||
hz_sharp = "华文细黑";
|
||||
break;
|
||||
case "STSong":
|
||||
hz_sharp = "华文宋体";
|
||||
break;
|
||||
case "STZhongsong":
|
||||
hz_sharp = "华文中宋";
|
||||
break;
|
||||
case "STFangsong":
|
||||
hz_sharp = "华文仿宋";
|
||||
break;
|
||||
case "STCaiyun":
|
||||
hz_sharp = "华文彩云";
|
||||
break;
|
||||
case "STHupo":
|
||||
hz_sharp = "华文琥珀";
|
||||
break;
|
||||
case "STLiti":
|
||||
hz_sharp = "华文隶书";
|
||||
break;
|
||||
case "STXingkai":
|
||||
hz_sharp = "华文行楷";
|
||||
break;
|
||||
case "STXinwei":
|
||||
hz_sharp = "华文新魏";
|
||||
break;
|
||||
case "simHei":
|
||||
hz_sharp = "黑体";
|
||||
break;
|
||||
case "simSun":
|
||||
hz_sharp = "宋体";
|
||||
break;
|
||||
case "NSimSun":
|
||||
hz_sharp = "新宋体";
|
||||
break;
|
||||
case "FangSong":
|
||||
hz_sharp = "仿宋";
|
||||
break;
|
||||
case "KaiTi":
|
||||
hz_sharp = "楷体";
|
||||
break;
|
||||
case "FangSong_GB2312":
|
||||
hz_sharp = "仿宋_GB2312";
|
||||
break;
|
||||
case "KaiTi_GB2312":
|
||||
hz_sharp = "楷体_GB2312";
|
||||
break;
|
||||
case "LiSu":
|
||||
hz_sharp = "隶书";
|
||||
break;
|
||||
case "YouYuan":
|
||||
hz_sharp = "幼圆";
|
||||
break;
|
||||
case "PMingLiU":
|
||||
hz_sharp = "新细明体";
|
||||
break;
|
||||
case "MingLiU":
|
||||
hz_sharp = "细明体";
|
||||
break;
|
||||
case "DFKai-SB":
|
||||
hz_sharp = "标楷体";
|
||||
break;
|
||||
case "Microsoft JhengHei":
|
||||
hz_sharp = "微软正黑体";
|
||||
break;
|
||||
case "Microsoft YaHei":
|
||||
hz_sharp = "微软雅黑体";
|
||||
break;
|
||||
default:
|
||||
hz_sharp = dropdown_st7735_hz_sharp;
|
||||
break;
|
||||
}
|
||||
hz_sharp = "字体:" + hz_sharp + " 字号:" + text_st7735_hz_line_height + "px" + " 显示文字:" + value_st7735_hz_data;
|
||||
|
||||
|
||||
@@ -75,68 +75,68 @@ export const math_single = function (_, generator) {
|
||||
}
|
||||
// First, handle cases which generate values that don't need parentheses.
|
||||
switch (operator) {
|
||||
case 'ABS':
|
||||
code = arg + '.abs()';
|
||||
break;
|
||||
case 'ROOT':
|
||||
code = 'sqrt(' + arg + ')';
|
||||
break;
|
||||
case 'LN':
|
||||
code = 'log(' + arg + ')';
|
||||
break;
|
||||
case 'EXP':
|
||||
code = 'exp(' + arg + ')';
|
||||
break;
|
||||
case 'POW10':
|
||||
code = 'pow(10,' + arg + ')';
|
||||
break;
|
||||
case '++':
|
||||
code = '(++' + arg + ')';
|
||||
break;
|
||||
case '--':
|
||||
code = '(--' + arg + ')';
|
||||
break;
|
||||
case '~':
|
||||
code = '~(' + arg + ')';
|
||||
break;
|
||||
case 'ROUND':
|
||||
code = arg + '.round()';
|
||||
break;
|
||||
case 'ROUNDUP':
|
||||
code = arg + '.ceil()';
|
||||
break;
|
||||
case 'ROUNDDOWN':
|
||||
code = arg + '.floor()';
|
||||
break;
|
||||
case 'SIN':
|
||||
code = 'sin(' + arg + ' / 180.0 * 3.14159)';
|
||||
break;
|
||||
case 'COS':
|
||||
code = 'cos(' + arg + ' / 180.0 * 3.14159)';
|
||||
break;
|
||||
case 'TAN':
|
||||
code = 'tan(' + arg + ' / 180.0 * 3.14159)';
|
||||
break;
|
||||
case 'ABS':
|
||||
code = arg + '.abs()';
|
||||
break;
|
||||
case 'ROOT':
|
||||
code = 'sqrt(' + arg + ')';
|
||||
break;
|
||||
case 'LN':
|
||||
code = 'log(' + arg + ')';
|
||||
break;
|
||||
case 'EXP':
|
||||
code = 'exp(' + arg + ')';
|
||||
break;
|
||||
case 'POW10':
|
||||
code = 'pow(10,' + arg + ')';
|
||||
break;
|
||||
case '++':
|
||||
code = '(++' + arg + ')';
|
||||
break;
|
||||
case '--':
|
||||
code = '(--' + arg + ')';
|
||||
break;
|
||||
case '~':
|
||||
code = '~(' + arg + ')';
|
||||
break;
|
||||
case 'ROUND':
|
||||
code = arg + '.round()';
|
||||
break;
|
||||
case 'ROUNDUP':
|
||||
code = arg + '.ceil()';
|
||||
break;
|
||||
case 'ROUNDDOWN':
|
||||
code = arg + '.floor()';
|
||||
break;
|
||||
case 'SIN':
|
||||
code = 'sin(' + arg + ' / 180.0 * 3.14159)';
|
||||
break;
|
||||
case 'COS':
|
||||
code = 'cos(' + arg + ' / 180.0 * 3.14159)';
|
||||
break;
|
||||
case 'TAN':
|
||||
code = 'tan(' + arg + ' / 180.0 * 3.14159)';
|
||||
break;
|
||||
}
|
||||
if (code) {
|
||||
return [code, generator.ORDER_UNARY_POSTFIX];
|
||||
}
|
||||
// Second, handle cases which generate values that may need parentheses.
|
||||
switch (operator) {
|
||||
case 'LOG10':
|
||||
code = 'log(' + arg + ') / log(10)';
|
||||
break;
|
||||
case 'ASIN':
|
||||
code = 'asin(' + arg + ') / 3.14159 * 180';
|
||||
break;
|
||||
case 'ACOS':
|
||||
code = 'acos(' + arg + ') / 3.14159 * 180';
|
||||
break;
|
||||
case 'ATAN':
|
||||
code = 'atan(' + arg + ') / 3.14159 * 180';
|
||||
break;
|
||||
default:
|
||||
throw 'Unknown math operator: ' + operator;
|
||||
case 'LOG10':
|
||||
code = 'log(' + arg + ') / log(10)';
|
||||
break;
|
||||
case 'ASIN':
|
||||
code = 'asin(' + arg + ') / 3.14159 * 180';
|
||||
break;
|
||||
case 'ACOS':
|
||||
code = 'acos(' + arg + ') / 3.14159 * 180';
|
||||
break;
|
||||
case 'ATAN':
|
||||
code = 'atan(' + arg + ') / 3.14159 * 180';
|
||||
break;
|
||||
default:
|
||||
throw 'Unknown math operator: ' + operator;
|
||||
}
|
||||
return [code, generator.ORDER_MULTIPLICATIVE];
|
||||
}
|
||||
|
||||
@@ -176,44 +176,44 @@ export const RTC_date = function (_, generator) {
|
||||
var day = generator.valueToCode(this, "day", generator.ORDER_ATOMIC);
|
||||
|
||||
switch (month) {
|
||||
case '1':
|
||||
month = 'Jan';
|
||||
break;
|
||||
case '2':
|
||||
month = 'Feb';
|
||||
break;
|
||||
case '3':
|
||||
month = 'Mar';
|
||||
break;
|
||||
case '4':
|
||||
month = 'Apr';
|
||||
break;
|
||||
case '5':
|
||||
month = 'May';
|
||||
break;
|
||||
case '6':
|
||||
month = 'Jun';
|
||||
break;
|
||||
case '7':
|
||||
month = 'Jul';
|
||||
break;
|
||||
case '8':
|
||||
month = 'Aug';
|
||||
break;
|
||||
case '9':
|
||||
month = 'Sep';
|
||||
break;
|
||||
case '10':
|
||||
month = 'Oct';
|
||||
break;
|
||||
case '11':
|
||||
month = 'Nov';
|
||||
break;
|
||||
case '12':
|
||||
month = 'Dec';
|
||||
break;
|
||||
default:
|
||||
month = 'Jan';
|
||||
case '1':
|
||||
month = 'Jan';
|
||||
break;
|
||||
case '2':
|
||||
month = 'Feb';
|
||||
break;
|
||||
case '3':
|
||||
month = 'Mar';
|
||||
break;
|
||||
case '4':
|
||||
month = 'Apr';
|
||||
break;
|
||||
case '5':
|
||||
month = 'May';
|
||||
break;
|
||||
case '6':
|
||||
month = 'Jun';
|
||||
break;
|
||||
case '7':
|
||||
month = 'Jul';
|
||||
break;
|
||||
case '8':
|
||||
month = 'Aug';
|
||||
break;
|
||||
case '9':
|
||||
month = 'Sep';
|
||||
break;
|
||||
case '10':
|
||||
month = 'Oct';
|
||||
break;
|
||||
case '11':
|
||||
month = 'Nov';
|
||||
break;
|
||||
case '12':
|
||||
month = 'Dec';
|
||||
break;
|
||||
default:
|
||||
month = 'Jan';
|
||||
}
|
||||
if (day.length == 1)
|
||||
day = '0' + day;
|
||||
@@ -444,21 +444,21 @@ export const sensor_encoder_handle = function (_, generator) {
|
||||
var statementsDo = generator.statementToCode(this, 'DO');
|
||||
var cbFuncName = 'encoder' + dropdownType;
|
||||
switch (dropdownOperateType) {
|
||||
case 'setChangedHandler':
|
||||
cbFuncName += 'OnChanged';
|
||||
break;
|
||||
case 'setRightRotationHandler':
|
||||
cbFuncName += 'OnRightRotation';
|
||||
break;
|
||||
case 'setLeftRotationHandler':
|
||||
cbFuncName += 'OnLeftRotation';
|
||||
break;
|
||||
case 'setUpperOverflowHandler':
|
||||
cbFuncName += 'OnUpperOverflow';
|
||||
break;
|
||||
case 'setLowerOverflowHandler':
|
||||
default:
|
||||
cbFuncName += 'OnLowerOverflow';
|
||||
case 'setChangedHandler':
|
||||
cbFuncName += 'OnChanged';
|
||||
break;
|
||||
case 'setRightRotationHandler':
|
||||
cbFuncName += 'OnRightRotation';
|
||||
break;
|
||||
case 'setLeftRotationHandler':
|
||||
cbFuncName += 'OnLeftRotation';
|
||||
break;
|
||||
case 'setUpperOverflowHandler':
|
||||
cbFuncName += 'OnUpperOverflow';
|
||||
break;
|
||||
case 'setLowerOverflowHandler':
|
||||
default:
|
||||
cbFuncName += 'OnLowerOverflow';
|
||||
}
|
||||
generator.definitions_['function_' + cbFuncName] = `void ${cbFuncName}(ESPRotary& encoder${dropdownType}) {\n`
|
||||
+ ` ${statementsDo}`
|
||||
|
||||
@@ -62,86 +62,54 @@ export const IICSCAN = function (_, generator) {
|
||||
|
||||
function string_Bin_to_Hex(outstr_select) {
|
||||
switch (outstr_select) {
|
||||
case '0000':
|
||||
{
|
||||
outstr_select = '0';
|
||||
break;
|
||||
}
|
||||
case '0001':
|
||||
{
|
||||
outstr_select = '1';
|
||||
break;
|
||||
}
|
||||
case '0010':
|
||||
{
|
||||
outstr_select = '2';
|
||||
break;
|
||||
}
|
||||
case '0011':
|
||||
{
|
||||
outstr_select = '3';
|
||||
break;
|
||||
}
|
||||
case '0100':
|
||||
{
|
||||
outstr_select = '4';
|
||||
break;
|
||||
}
|
||||
case '0101':
|
||||
{
|
||||
outstr_select = '5';
|
||||
break;
|
||||
}
|
||||
case '0110':
|
||||
{
|
||||
outstr_select = '6';
|
||||
break;
|
||||
}
|
||||
case '0111':
|
||||
{
|
||||
outstr_select = '7';
|
||||
break;
|
||||
}
|
||||
case '1000':
|
||||
{
|
||||
outstr_select = '8';
|
||||
break;
|
||||
}
|
||||
case '1001':
|
||||
{
|
||||
outstr_select = '9';
|
||||
break;
|
||||
}
|
||||
case '1010':
|
||||
{
|
||||
outstr_select = 'A';
|
||||
break;
|
||||
}
|
||||
case '1011':
|
||||
{
|
||||
outstr_select = 'B';
|
||||
break;
|
||||
}
|
||||
case '1100':
|
||||
{
|
||||
outstr_select = 'C';
|
||||
break;
|
||||
}
|
||||
case '1101':
|
||||
{
|
||||
outstr_select = 'D';
|
||||
break;
|
||||
}
|
||||
case '1110':
|
||||
{
|
||||
outstr_select = 'E';
|
||||
break;
|
||||
}
|
||||
case '1111':
|
||||
{
|
||||
outstr_select = 'F';
|
||||
break;
|
||||
}
|
||||
case '0000':
|
||||
outstr_select = '0';
|
||||
break;
|
||||
case '0001':
|
||||
outstr_select = '1';
|
||||
break;
|
||||
case '0010':
|
||||
outstr_select = '2';
|
||||
break;
|
||||
case '0011':
|
||||
outstr_select = '3';
|
||||
break;
|
||||
case '0100':
|
||||
outstr_select = '4';
|
||||
break;
|
||||
case '0101':
|
||||
outstr_select = '5';
|
||||
break;
|
||||
case '0110':
|
||||
outstr_select = '6';
|
||||
break;
|
||||
case '0111':
|
||||
outstr_select = '7';
|
||||
break;
|
||||
case '1000':
|
||||
outstr_select = '8';
|
||||
break;
|
||||
case '1001':
|
||||
outstr_select = '9';
|
||||
break;
|
||||
case '1010':
|
||||
outstr_select = 'A';
|
||||
break;
|
||||
case '1011':
|
||||
outstr_select = 'B';
|
||||
break;
|
||||
case '1100':
|
||||
outstr_select = 'C';
|
||||
break;
|
||||
case '1101':
|
||||
outstr_select = 'D';
|
||||
break;
|
||||
case '1110':
|
||||
outstr_select = 'E';
|
||||
break;
|
||||
case '1111':
|
||||
outstr_select = 'F';
|
||||
break;
|
||||
}
|
||||
return outstr_select;
|
||||
}
|
||||
@@ -307,84 +275,84 @@ export const tool_modulus = function (_, generator) {
|
||||
|
||||
var hz_sharp = "";
|
||||
switch (dropdown_hz_sharp) {
|
||||
case "STHeiti":
|
||||
hz_sharp = "华文黑体";
|
||||
break;
|
||||
case "STKaiti":
|
||||
hz_sharp = "华文楷体";
|
||||
break;
|
||||
case "STXihei":
|
||||
hz_sharp = "华文细黑";
|
||||
break;
|
||||
case "STSong":
|
||||
hz_sharp = "华文宋体";
|
||||
break;
|
||||
case "STZhongsong":
|
||||
hz_sharp = "华文中宋";
|
||||
break;
|
||||
case "STFangsong":
|
||||
hz_sharp = "华文仿宋";
|
||||
break;
|
||||
case "STCaiyun":
|
||||
hz_sharp = "华文彩云";
|
||||
break;
|
||||
case "STHupo":
|
||||
hz_sharp = "华文琥珀";
|
||||
break;
|
||||
case "STLiti":
|
||||
hz_sharp = "华文隶书";
|
||||
break;
|
||||
case "STXingkai":
|
||||
hz_sharp = "华文行楷";
|
||||
break;
|
||||
case "STXinwei":
|
||||
hz_sharp = "华文新魏";
|
||||
break;
|
||||
case "simHei":
|
||||
hz_sharp = "黑体";
|
||||
break;
|
||||
case "simSun":
|
||||
hz_sharp = "宋体";
|
||||
break;
|
||||
case "NSimSun":
|
||||
hz_sharp = "新宋体";
|
||||
break;
|
||||
case "FangSong":
|
||||
hz_sharp = "仿宋";
|
||||
break;
|
||||
case "KaiTi":
|
||||
hz_sharp = "楷体";
|
||||
break;
|
||||
case "FangSong_GB2312":
|
||||
hz_sharp = "仿宋_GB2312";
|
||||
break;
|
||||
case "KaiTi_GB2312":
|
||||
hz_sharp = "楷体_GB2312";
|
||||
break;
|
||||
case "LiSu":
|
||||
hz_sharp = "隶书";
|
||||
break;
|
||||
case "YouYuan":
|
||||
hz_sharp = "幼圆";
|
||||
break;
|
||||
case "PMingLiU":
|
||||
hz_sharp = "新细明体";
|
||||
break;
|
||||
case "MingLiU":
|
||||
hz_sharp = "细明体";
|
||||
break;
|
||||
case "DFKai-SB":
|
||||
hz_sharp = "标楷体";
|
||||
break;
|
||||
case "Microsoft JhengHei":
|
||||
hz_sharp = "微软正黑体";
|
||||
break;
|
||||
case "Microsoft YaHei":
|
||||
hz_sharp = "微软雅黑体";
|
||||
break;
|
||||
default:
|
||||
hz_sharp = dropdown_hz_sharp;
|
||||
break;
|
||||
case "STHeiti":
|
||||
hz_sharp = "华文黑体";
|
||||
break;
|
||||
case "STKaiti":
|
||||
hz_sharp = "华文楷体";
|
||||
break;
|
||||
case "STXihei":
|
||||
hz_sharp = "华文细黑";
|
||||
break;
|
||||
case "STSong":
|
||||
hz_sharp = "华文宋体";
|
||||
break;
|
||||
case "STZhongsong":
|
||||
hz_sharp = "华文中宋";
|
||||
break;
|
||||
case "STFangsong":
|
||||
hz_sharp = "华文仿宋";
|
||||
break;
|
||||
case "STCaiyun":
|
||||
hz_sharp = "华文彩云";
|
||||
break;
|
||||
case "STHupo":
|
||||
hz_sharp = "华文琥珀";
|
||||
break;
|
||||
case "STLiti":
|
||||
hz_sharp = "华文隶书";
|
||||
break;
|
||||
case "STXingkai":
|
||||
hz_sharp = "华文行楷";
|
||||
break;
|
||||
case "STXinwei":
|
||||
hz_sharp = "华文新魏";
|
||||
break;
|
||||
case "simHei":
|
||||
hz_sharp = "黑体";
|
||||
break;
|
||||
case "simSun":
|
||||
hz_sharp = "宋体";
|
||||
break;
|
||||
case "NSimSun":
|
||||
hz_sharp = "新宋体";
|
||||
break;
|
||||
case "FangSong":
|
||||
hz_sharp = "仿宋";
|
||||
break;
|
||||
case "KaiTi":
|
||||
hz_sharp = "楷体";
|
||||
break;
|
||||
case "FangSong_GB2312":
|
||||
hz_sharp = "仿宋_GB2312";
|
||||
break;
|
||||
case "KaiTi_GB2312":
|
||||
hz_sharp = "楷体_GB2312";
|
||||
break;
|
||||
case "LiSu":
|
||||
hz_sharp = "隶书";
|
||||
break;
|
||||
case "YouYuan":
|
||||
hz_sharp = "幼圆";
|
||||
break;
|
||||
case "PMingLiU":
|
||||
hz_sharp = "新细明体";
|
||||
break;
|
||||
case "MingLiU":
|
||||
hz_sharp = "细明体";
|
||||
break;
|
||||
case "DFKai-SB":
|
||||
hz_sharp = "标楷体";
|
||||
break;
|
||||
case "Microsoft JhengHei":
|
||||
hz_sharp = "微软正黑体";
|
||||
break;
|
||||
case "Microsoft YaHei":
|
||||
hz_sharp = "微软雅黑体";
|
||||
break;
|
||||
default:
|
||||
hz_sharp = dropdown_hz_sharp;
|
||||
break;
|
||||
}
|
||||
hz_sharp = "字体:" + hz_sharp + " 字号:" + text_hz_line_height + "px" + " 显示文字:" + text_input_data + '\n' + HZ_image;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mixly/arduino-avr",
|
||||
"version": "1.6.0",
|
||||
"version": "1.8.0",
|
||||
"description": "适用于mixly的arduino avr模块",
|
||||
"scripts": {
|
||||
"build:dev": "webpack --config=webpack.dev.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mixly/arduino-esp8266",
|
||||
"version": "1.3.0",
|
||||
"version": "1.4.0",
|
||||
"description": "适用于mixly的arduino esp8266模块",
|
||||
"scripts": {
|
||||
"build:dev": "webpack --config=webpack.dev.js",
|
||||
|
||||
@@ -234,20 +234,20 @@ export const actuator_onboard_neopixel_rgb = {
|
||||
this.setNextStatement(true, null);
|
||||
const boardKey = Boards.getSelectedBoardKey();
|
||||
switch (boardKey) {
|
||||
case 'micropython:esp32c3:mixgo_cc':
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);
|
||||
break;
|
||||
case 'micropython:esp32s2:mixgo_ce':
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);
|
||||
break;
|
||||
case 'micropython:esp32c3:mixgo_me':
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);
|
||||
break;
|
||||
case 'micropython:esp32:mPython':
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON);
|
||||
break;
|
||||
default:
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);
|
||||
case 'micropython:esp32c3:mixgo_cc':
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);
|
||||
break;
|
||||
case 'micropython:esp32s2:mixgo_ce':
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);
|
||||
break;
|
||||
case 'micropython:esp32c3:mixgo_me':
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);
|
||||
break;
|
||||
case 'micropython:esp32:mPython':
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON);
|
||||
break;
|
||||
default:
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -368,17 +368,17 @@ export const actuator_rm_onboard_neopixel_rgb = {
|
||||
this.setNextStatement(true, null);
|
||||
const boardKey = Boards.getSelectedBoardKey();
|
||||
switch (boardKey) {
|
||||
case 'micropython:esp32c3:mixgocc':
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);
|
||||
break;
|
||||
case 'micropython:esp32c3:mixgome':
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);
|
||||
break;
|
||||
case 'micropython:esp32:mPython':
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON);
|
||||
break;
|
||||
default:
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);
|
||||
case 'micropython:esp32c3:mixgocc':
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);
|
||||
break;
|
||||
case 'micropython:esp32c3:mixgome':
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);
|
||||
break;
|
||||
case 'micropython:esp32:mPython':
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON);
|
||||
break;
|
||||
default:
|
||||
this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -1003,7 +1003,7 @@ export const analog_keyboard_input = {
|
||||
init: function () {
|
||||
this.setColour(ACTUATOR_ONBOARD_HUE);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.ANALOG+Blockly.Msg.MIXLY_KEYBOARD_INPUT);
|
||||
.appendField(Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD_INPUT);
|
||||
this.appendValueInput('special');
|
||||
this.appendValueInput('general');
|
||||
this.appendDummyInput()
|
||||
@@ -1011,7 +1011,7 @@ export const analog_keyboard_input = {
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.MICROPYTHON_DISPLAY_YES, "True"],
|
||||
[Blockly.Msg.MICROPYTHON_DISPLAY_NO, "False"]
|
||||
]),'release');
|
||||
]), 'release');
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setInputsInline(true);
|
||||
@@ -1025,7 +1025,7 @@ export const special_key = {
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_SPECIAL_KEY)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.MIXLY_SPECIAL_KEY0,"0x00"],
|
||||
[Blockly.Msg.MIXLY_SPECIAL_KEY0, "0x00"],
|
||||
[Blockly.Msg.MIXLY_SPECIAL_KEY1, "0x01"],
|
||||
[Blockly.Msg.MIXLY_SPECIAL_KEY2, "0x02"],
|
||||
[Blockly.Msg.MIXLY_SPECIAL_KEY1, "0x04"],
|
||||
@@ -1045,7 +1045,7 @@ export const general_key = {
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_GENERAL_KEY)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.MIXLY_SPECIAL_KEY0,"0x00"],
|
||||
[Blockly.Msg.MIXLY_SPECIAL_KEY0, "0x00"],
|
||||
['A', "0x04"],
|
||||
['B', "0x05"],
|
||||
['C', "0x06"],
|
||||
@@ -1093,7 +1093,7 @@ export const general_key = {
|
||||
['] }', "0x30"],
|
||||
['\\ |', "0x31"],
|
||||
['; :', "0x33"],
|
||||
["' "+' "', "0x34"],
|
||||
["' " + ' "', "0x34"],
|
||||
['` ~', "0x35"],
|
||||
[', <', "0x36"],
|
||||
['. >', "0x37"],
|
||||
@@ -1157,155 +1157,155 @@ export const general_key_tuple = {
|
||||
this.setTooltip(Blockly.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP);
|
||||
},
|
||||
|
||||
mutationToDom: function() {
|
||||
mutationToDom: function () {
|
||||
var container = document.createElement('mutation');
|
||||
container.setAttribute('items', this.itemCount_);
|
||||
return container;
|
||||
},
|
||||
/**
|
||||
* Parse XML to restore the list inputs.
|
||||
* @param {!Element} xmlElement XML storage element.
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
domToMutation: function(xmlElement) {
|
||||
/**
|
||||
* Parse XML to restore the list inputs.
|
||||
* @param {!Element} xmlElement XML storage element.
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
domToMutation: function (xmlElement) {
|
||||
this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);
|
||||
this.updateShape_();
|
||||
},
|
||||
/**
|
||||
* Populate the mutator's dialog with this block's components.
|
||||
* @param {!Blockly.Workspace} workspace Mutator's workspace.
|
||||
* @return {!Blockly.Block} Root block in mutator.
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
decompose: function(workspace) {
|
||||
/**
|
||||
* Populate the mutator's dialog with this block's components.
|
||||
* @param {!Blockly.Workspace} workspace Mutator's workspace.
|
||||
* @return {!Blockly.Block} Root block in mutator.
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
decompose: function (workspace) {
|
||||
var containerBlock =
|
||||
workspace.newBlock('generalkey_container');
|
||||
containerBlock.initSvg();
|
||||
var connection = containerBlock.getInput('STACK').connection;
|
||||
for (var i = 0; i < this.itemCount_; i++) {
|
||||
var itemBlock = workspace.newBlock('generalkey_create_with_item');
|
||||
itemBlock.initSvg();
|
||||
connection.connect(itemBlock.previousConnection);
|
||||
connection = itemBlock.nextConnection;
|
||||
var itemBlock = workspace.newBlock('generalkey_create_with_item');
|
||||
itemBlock.initSvg();
|
||||
connection.connect(itemBlock.previousConnection);
|
||||
connection = itemBlock.nextConnection;
|
||||
}
|
||||
return containerBlock;
|
||||
},
|
||||
/**
|
||||
* Reconfigure this block based on the mutator dialog's components.
|
||||
* @param {!Blockly.Block} containerBlock Root block in mutator.
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
compose: function(containerBlock) {
|
||||
/**
|
||||
* Reconfigure this block based on the mutator dialog's components.
|
||||
* @param {!Blockly.Block} containerBlock Root block in mutator.
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
compose: function (containerBlock) {
|
||||
var itemBlock = containerBlock.getInputTargetBlock('STACK');
|
||||
// Count number of inputs.
|
||||
var connections = [];
|
||||
var i = 0;
|
||||
while (itemBlock) {
|
||||
connections[i] = itemBlock.valueConnection_;
|
||||
itemBlock = itemBlock.nextConnection &&
|
||||
itemBlock.nextConnection.targetBlock();
|
||||
i++;
|
||||
connections[i] = itemBlock.valueConnection_;
|
||||
itemBlock = itemBlock.nextConnection &&
|
||||
itemBlock.nextConnection.targetBlock();
|
||||
i++;
|
||||
}
|
||||
this.itemCount_ = i;
|
||||
this.updateShape_();
|
||||
// Reconnect any child blocks.
|
||||
for (var i = 0; i < this.itemCount_; i++) {
|
||||
if (connections[i]) {
|
||||
this.getInput('ADD' + i).connection.connect(connections[i]);
|
||||
}
|
||||
if (connections[i]) {
|
||||
this.getInput('ADD' + i).connection.connect(connections[i]);
|
||||
}
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Store pointers to any connected child blocks.
|
||||
* @param {!Blockly.Block} containerBlock Root block in mutator.
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
saveConnections: function(containerBlock) {
|
||||
/**
|
||||
* Store pointers to any connected child blocks.
|
||||
* @param {!Blockly.Block} containerBlock Root block in mutator.
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
saveConnections: function (containerBlock) {
|
||||
var itemBlock = containerBlock.getInputTargetBlock('STACK');
|
||||
var i = 0;
|
||||
while (itemBlock) {
|
||||
var input = this.getInput('ADD' + i);
|
||||
itemBlock.valueConnection_ = input && input.connection.targetConnection;
|
||||
i++;
|
||||
itemBlock = itemBlock.nextConnection &&
|
||||
itemBlock.nextConnection.targetBlock();
|
||||
var input = this.getInput('ADD' + i);
|
||||
itemBlock.valueConnection_ = input && input.connection.targetConnection;
|
||||
i++;
|
||||
itemBlock = itemBlock.nextConnection &&
|
||||
itemBlock.nextConnection.targetBlock();
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Modify this block to have the correct number of inputs.
|
||||
* @private
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
updateShape_: function() {
|
||||
/**
|
||||
* Modify this block to have the correct number of inputs.
|
||||
* @private
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
updateShape_: function () {
|
||||
// Delete everything.
|
||||
if (this.getInput('EMPTY')) {
|
||||
this.removeInput('EMPTY');
|
||||
this.removeInput('EMPTY');
|
||||
} else {
|
||||
var i = 0;
|
||||
while (this.getInput('ADD' + i)) {
|
||||
this.removeInput('ADD' + i);
|
||||
i++;
|
||||
}
|
||||
var i = 0;
|
||||
while (this.getInput('ADD' + i)) {
|
||||
this.removeInput('ADD' + i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
// Rebuild block.
|
||||
if (this.itemCount_ == 0) {
|
||||
this.appendDummyInput('EMPTY')
|
||||
.appendField(Blockly.Msg.GENERALKEY_CREATE_EMPTY_TITLE);
|
||||
this.appendDummyInput('EMPTY')
|
||||
.appendField(Blockly.Msg.GENERALKEY_CREATE_EMPTY_TITLE);
|
||||
} else {
|
||||
for (var i = 0; i < this.itemCount_; i++) {
|
||||
var input = this.appendValueInput('ADD' + i);
|
||||
if (i == 0) {
|
||||
input.appendField(Blockly.Msg.GENERALKEY_CREATE_WITH_INPUT_WITH);
|
||||
for (var i = 0; i < this.itemCount_; i++) {
|
||||
var input = this.appendValueInput('ADD' + i);
|
||||
if (i == 0) {
|
||||
input.appendField(Blockly.Msg.GENERALKEY_CREATE_WITH_INPUT_WITH);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
getVars: function() {
|
||||
getVars: function () {
|
||||
return [this.getFieldValue('VAR')];
|
||||
},
|
||||
renameVar: function(oldName, newName) {
|
||||
renameVar: function (oldName, newName) {
|
||||
if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {
|
||||
this.setTitleValue(newName, 'VAR');
|
||||
this.setTitleValue(newName, 'VAR');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export const generalkey_container = {
|
||||
/**
|
||||
* Mutator block for list container.
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
init: function() {
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_GENERAL_KEY);
|
||||
this.appendStatementInput('STACK');
|
||||
this.setTooltip(Blockly.Msg.GENERALKEY_CONTAINER_TOOLTIP);
|
||||
this.contextMenu = false;
|
||||
}
|
||||
/**
|
||||
* Mutator block for list container.
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
init: function () {
|
||||
this.setColour(ACTUATOR_ONBOARD_HUE);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_GENERAL_KEY);
|
||||
this.appendStatementInput('STACK');
|
||||
this.setTooltip(Blockly.Msg.GENERALKEY_CONTAINER_TOOLTIP);
|
||||
this.contextMenu = false;
|
||||
}
|
||||
};
|
||||
|
||||
export const generalkey_create_with_item = {
|
||||
/**
|
||||
* Mutator bolck for adding items.
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
init: function() {
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.blockpy_SET_VARIABLES_NAME);
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setTooltip(Blockly.Msg.TUPLE_CREATE_WITH_ITEM_TOOLTIP);
|
||||
this.contextMenu = false;
|
||||
}
|
||||
export const generalkey_create_with_item = {
|
||||
/**
|
||||
* Mutator bolck for adding items.
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
init: function () {
|
||||
this.setColour(ACTUATOR_ONBOARD_HUE);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.blockpy_SET_VARIABLES_NAME);
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setTooltip(Blockly.Msg.TUPLE_CREATE_WITH_ITEM_TOOLTIP);
|
||||
this.contextMenu = false;
|
||||
}
|
||||
};
|
||||
|
||||
export const analog_mouse_input = {
|
||||
init: function () {
|
||||
this.setColour(ACTUATOR_ONBOARD_HUE);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.ANALOG+Blockly.Msg.MIXLY_MOUSE_INPUT);
|
||||
.appendField(Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_MOUSE_INPUT);
|
||||
this.appendValueInput('key');
|
||||
this.appendValueInput('x')
|
||||
.appendField(Blockly.Msg.MIXLY_X_CHANGES);
|
||||
@@ -1318,7 +1318,7 @@ export const analog_mouse_input = {
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.MICROPYTHON_DISPLAY_YES, "True"],
|
||||
[Blockly.Msg.MICROPYTHON_DISPLAY_NO, "False"]
|
||||
]),'release');
|
||||
]), 'release');
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setInputsInline(true);
|
||||
@@ -1332,7 +1332,7 @@ export const mouse_key = {
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_MOUSE_KEYS)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.MIXLY_SPECIAL_KEY0,"0x00"],
|
||||
[Blockly.Msg.MIXLY_SPECIAL_KEY0, "0x00"],
|
||||
[Blockly.Msg.MIXLY_MOUSE_LEFT_KEY, "0x01"],
|
||||
[Blockly.Msg.MIXLY_MOUSE_RIGHT_KEY, "0x02"],
|
||||
[Blockly.Msg.MIXLY_MOUSE_MID_KEY, "0x04"]
|
||||
@@ -1342,10 +1342,10 @@ export const mouse_key = {
|
||||
};
|
||||
|
||||
export const analog_keyboard_str = {
|
||||
init:function(){
|
||||
init: function () {
|
||||
this.setColour(ACTUATOR_ONBOARD_HUE);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.ANALOG+Blockly.Msg.MIXLY_KEYBOARD_INPUT);
|
||||
.appendField(Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD_INPUT);
|
||||
this.appendValueInput('str')
|
||||
.appendField(Blockly.Msg.MIXLY_STR_PRINT);
|
||||
this.appendValueInput('time')
|
||||
@@ -1356,4 +1356,4 @@ export const analog_keyboard_str = {
|
||||
this.setNextStatement(true);
|
||||
this.setInputsInline(true);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -334,17 +334,17 @@ export const controls_if = {
|
||||
var elseStatementConnection = null;
|
||||
while (clauseBlock) {
|
||||
switch (clauseBlock.type) {
|
||||
case 'controls_if_elseif':
|
||||
this.elseifCount_++;
|
||||
valueConnections.push(clauseBlock.valueConnection_);
|
||||
statementConnections.push(clauseBlock.statementConnection_);
|
||||
break;
|
||||
case 'controls_if_else':
|
||||
this.elseCount_++;
|
||||
elseStatementConnection = clauseBlock.statementConnection_;
|
||||
break;
|
||||
default:
|
||||
throw Error('Unknown block type: ' + clauseBlock.type);
|
||||
case 'controls_if_elseif':
|
||||
this.elseifCount_++;
|
||||
valueConnections.push(clauseBlock.valueConnection_);
|
||||
statementConnections.push(clauseBlock.statementConnection_);
|
||||
break;
|
||||
case 'controls_if_else':
|
||||
this.elseCount_++;
|
||||
elseStatementConnection = clauseBlock.statementConnection_;
|
||||
break;
|
||||
default:
|
||||
throw Error('Unknown block type: ' + clauseBlock.type);
|
||||
}
|
||||
clauseBlock = clauseBlock.nextConnection &&
|
||||
clauseBlock.nextConnection.targetBlock();
|
||||
@@ -365,22 +365,22 @@ export const controls_if = {
|
||||
var i = 1;
|
||||
while (clauseBlock) {
|
||||
switch (clauseBlock.type) {
|
||||
case 'controls_if_elseif':
|
||||
var inputIf = this.getInput('IF' + i);
|
||||
var inputDo = this.getInput('DO' + i);
|
||||
clauseBlock.valueConnection_ =
|
||||
case 'controls_if_elseif':
|
||||
var inputIf = this.getInput('IF' + i);
|
||||
var inputDo = this.getInput('DO' + i);
|
||||
clauseBlock.valueConnection_ =
|
||||
inputIf && inputIf.connection.targetConnection;
|
||||
clauseBlock.statementConnection_ =
|
||||
clauseBlock.statementConnection_ =
|
||||
inputDo && inputDo.connection.targetConnection;
|
||||
i++;
|
||||
break;
|
||||
case 'controls_if_else':
|
||||
var inputDo = this.getInput('ELSE');
|
||||
clauseBlock.statementConnection_ =
|
||||
i++;
|
||||
break;
|
||||
case 'controls_if_else':
|
||||
var inputDo = this.getInput('ELSE');
|
||||
clauseBlock.statementConnection_ =
|
||||
inputDo && inputDo.connection.targetConnection;
|
||||
break;
|
||||
default:
|
||||
throw 'Unknown block type.';
|
||||
break;
|
||||
default:
|
||||
throw 'Unknown block type.';
|
||||
}
|
||||
clauseBlock = clauseBlock.nextConnection &&
|
||||
clauseBlock.nextConnection.targetBlock();
|
||||
|
||||
@@ -1456,17 +1456,17 @@ export const onboard_tft_display_shape_circle = {
|
||||
};
|
||||
|
||||
export const draw_pointer = {
|
||||
init: function() {
|
||||
this.setColour(DISPLAY_ONBOARD_HUE);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.DRAW_POINTER)
|
||||
.appendField(Blockly.Msg.DRAW_POINTER_ANGLE);
|
||||
this.appendValueInput('angle');
|
||||
this.appendDummyInput()
|
||||
.appendField('°');
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setInputsInline(true);
|
||||
this.setTooltip(Blockly.Msg.DRAW_POINTER_TOOLTIP);
|
||||
init: function () {
|
||||
this.setColour(DISPLAY_ONBOARD_HUE);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.DRAW_POINTER)
|
||||
.appendField(Blockly.Msg.DRAW_POINTER_ANGLE);
|
||||
this.appendValueInput('angle');
|
||||
this.appendDummyInput()
|
||||
.appendField('°');
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setInputsInline(true);
|
||||
this.setTooltip(Blockly.Msg.DRAW_POINTER_TOOLTIP);
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -516,58 +516,58 @@ export const ntptime_address = {
|
||||
const COMMUNICATE_HUE = '#3288dd';
|
||||
|
||||
export const requests_get2 = {
|
||||
init: function() {
|
||||
this.setColour(COMMUNICATE_HUE);
|
||||
this.appendValueInput("URL")
|
||||
.appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)
|
||||
.setCheck(String);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.blockpy_CONDUCT)
|
||||
.appendField(new Blockly.FieldDropdown([["get", "get"], ["head", "head"], ["delete", "delete"]]), 'TYPE')
|
||||
.appendField(Blockly.Msg.blockpy_REQUESTS)
|
||||
.appendField(Blockly.Msg.MIXPY_REQUESTS_GET_RESULT)
|
||||
this.setInputsInline(true);
|
||||
this.setOutput(true);
|
||||
this.setTooltip("");
|
||||
},
|
||||
init: function () {
|
||||
this.setColour(COMMUNICATE_HUE);
|
||||
this.appendValueInput("URL")
|
||||
.appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)
|
||||
.setCheck(String);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.blockpy_CONDUCT)
|
||||
.appendField(new Blockly.FieldDropdown([["get", "get"], ["head", "head"], ["delete", "delete"]]), 'TYPE')
|
||||
.appendField(Blockly.Msg.blockpy_REQUESTS)
|
||||
.appendField(Blockly.Msg.MIXPY_REQUESTS_GET_RESULT)
|
||||
this.setInputsInline(true);
|
||||
this.setOutput(true);
|
||||
this.setTooltip("");
|
||||
},
|
||||
};
|
||||
|
||||
export const requests_post = {
|
||||
init: function() {
|
||||
this.setColour(COMMUNICATE_HUE);
|
||||
this.appendValueInput("URL")
|
||||
.appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)
|
||||
.setCheck(String);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.blockpy_CONDUCT)
|
||||
.appendField(new Blockly.FieldDropdown([["post", "post"], ["put", "put"], ["patch", "patch"]]), 'TYPE')
|
||||
.appendField(Blockly.Msg.blockpy_REQUESTS)
|
||||
this.appendValueInput("data")
|
||||
.appendField(Blockly.Msg.blockpy_REQUESTS+Blockly.Msg.OLED_STRING)
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXPY_REQUESTS_GET_RESULT)
|
||||
this.setInputsInline(true);
|
||||
this.setOutput(true);
|
||||
this.setTooltip("");
|
||||
},
|
||||
init: function () {
|
||||
this.setColour(COMMUNICATE_HUE);
|
||||
this.appendValueInput("URL")
|
||||
.appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)
|
||||
.setCheck(String);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.blockpy_CONDUCT)
|
||||
.appendField(new Blockly.FieldDropdown([["post", "post"], ["put", "put"], ["patch", "patch"]]), 'TYPE')
|
||||
.appendField(Blockly.Msg.blockpy_REQUESTS)
|
||||
this.appendValueInput("data")
|
||||
.appendField(Blockly.Msg.blockpy_REQUESTS + Blockly.Msg.OLED_STRING)
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXPY_REQUESTS_GET_RESULT)
|
||||
this.setInputsInline(true);
|
||||
this.setOutput(true);
|
||||
this.setTooltip("");
|
||||
},
|
||||
};
|
||||
|
||||
export const requests_attribute2 = {
|
||||
init: function() {
|
||||
this.appendValueInput('VAL')
|
||||
init: function () {
|
||||
this.appendValueInput('VAL')
|
||||
|
||||
var attr =
|
||||
[[Blockly.Msg.blockpy_REQUESTS_GET_ATTR_TEXT, 'text'],
|
||||
[Blockly.Msg.blockpy_REQUESTS_GET_ATTR_JSON,'json()'],
|
||||
[Blockly.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE, 'status_code'],
|
||||
[Blockly.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT, 'content']
|
||||
,[Blockly.Msg.MIXPY_TEXT_ENCODE, 'encoding']];
|
||||
this.setColour(COMMUNICATE_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)
|
||||
.appendField(new Blockly.FieldDropdown(attr), 'ATTR')
|
||||
|
||||
this.setInputsInline(true);
|
||||
this.setOutput(true, String);
|
||||
}
|
||||
var attr = [
|
||||
[Blockly.Msg.blockpy_REQUESTS_GET_ATTR_TEXT, 'text'],
|
||||
[Blockly.Msg.blockpy_REQUESTS_GET_ATTR_JSON, 'json()'],
|
||||
[Blockly.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE, 'status_code'],
|
||||
[Blockly.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT, 'content'],
|
||||
[Blockly.Msg.MIXPY_TEXT_ENCODE, 'encoding']
|
||||
];
|
||||
this.setColour(COMMUNICATE_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)
|
||||
.appendField(new Blockly.FieldDropdown(attr), 'ATTR')
|
||||
this.setInputsInline(true);
|
||||
this.setOutput(true, String);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -450,7 +450,7 @@ export const analog_keyboard_input = function (_, generator) {
|
||||
var ge = generator.valueToCode(this, 'general', generator.ORDER_ATOMIC);
|
||||
var re = this.getFieldValue('release');
|
||||
generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot';
|
||||
var code = "onboard_bot.hid_keyboard("+sp+","+ge+","+re+")\n";
|
||||
var code = "onboard_bot.hid_keyboard(" + sp + "," + ge + "," + re + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
@@ -472,7 +472,7 @@ export const analog_mouse_input = function (_, generator) {
|
||||
var wheel = generator.valueToCode(this, 'wheel', generator.ORDER_ATOMIC);
|
||||
var re = this.getFieldValue('release');
|
||||
generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot';
|
||||
var code = "hid_mouse(keys="+key+",move=("+x+","+y+"),wheel="+wheel+",release="+re+")\n";
|
||||
var code = "hid_mouse(keys=" + key + ",move=(" + x + "," + y + "),wheel=" + wheel + ",release=" + re + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
@@ -486,24 +486,23 @@ export const analog_keyboard_str = function (_, generator) {
|
||||
var str = generator.valueToCode(this, 'str', generator.ORDER_ATOMIC);
|
||||
var t = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);
|
||||
generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot';
|
||||
var code = "onboard_bot.hid_keyboard_str("+str+",delay="+t+")\n";
|
||||
var code = "onboard_bot.hid_keyboard_str(" + str + ",delay=" + t + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const general_key_tuple = function(_, generator) {
|
||||
export const general_key_tuple = function (_, generator) {
|
||||
// Create a list with any number of elements of any type.
|
||||
var dropdown_type = this.getFieldValue('TYPE');
|
||||
var code = new Array(this.itemCount_);
|
||||
var default_value = '0';
|
||||
for (var n = 0; n < this.itemCount_; n++) {
|
||||
|
||||
code[n] = generator.valueToCode(this, 'ADD' + n,
|
||||
generator.ORDER_NONE) || default_value;
|
||||
code[n] = generator.valueToCode(this, 'ADD' + n,
|
||||
generator.ORDER_NONE) || default_value;
|
||||
}
|
||||
if (this.itemCount_!=1){
|
||||
var code = '(' + code.join(', ') + ')';}
|
||||
else {
|
||||
var code = '(' + code.join(', ') + ',)';}
|
||||
|
||||
if (this.itemCount_ != 1) {
|
||||
var code = '(' + code.join(', ') + ')';
|
||||
} else {
|
||||
var code = '(' + code.join(', ') + ',)';
|
||||
}
|
||||
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
};
|
||||
};
|
||||
@@ -4,8 +4,7 @@ export const ce_go_light_number = function (_, generator) {
|
||||
var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]
|
||||
if (version == "mixgo_me" || version == "mixgo_cc") {
|
||||
generator.definitions_['import_me_go_car'] = 'from me_go import car';
|
||||
}
|
||||
else if (version == "mixgo_ce") {
|
||||
} else if (version == "mixgo_ce") {
|
||||
generator.definitions_['import_ce_go_car'] = 'from ce_go import car';
|
||||
}
|
||||
var code = 'car.' + this.getFieldValue('op');
|
||||
|
||||
@@ -7,8 +7,7 @@ export const base_setup = function (_, generator) {
|
||||
if (branch) {
|
||||
if (branch.endsWith('\n')) {
|
||||
generator.setups_['setup_setup'] = branch;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
generator.setups_['setup_setup'] = branch + '\n';
|
||||
}
|
||||
}
|
||||
@@ -83,10 +82,10 @@ export const controls_whileUntil = function (a, generator) {
|
||||
// ok
|
||||
export const controls_flow_statements = function (a) {
|
||||
switch (a.getFieldValue("FLOW")) {
|
||||
case "BREAK":
|
||||
return "break\n";
|
||||
case "CONTINUE":
|
||||
return "continue\n"
|
||||
case "BREAK":
|
||||
return "break\n";
|
||||
case "CONTINUE":
|
||||
return "continue\n"
|
||||
}
|
||||
throw "Unknown flow statement.";
|
||||
}
|
||||
|
||||
@@ -284,12 +284,12 @@ export const display_rect = function (_, generator) {
|
||||
var size = this.getFieldValue('OP');
|
||||
var code = '';
|
||||
switch (checkbox_fill) {
|
||||
case "True":
|
||||
code = varName + '.show_fill_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\n';
|
||||
break;
|
||||
case "False":
|
||||
code = varName + '.show_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\n';
|
||||
break;
|
||||
case "True":
|
||||
code = varName + '.show_fill_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\n';
|
||||
break;
|
||||
case "False":
|
||||
code = varName + '.show_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\n';
|
||||
break;
|
||||
}
|
||||
return code;
|
||||
}
|
||||
@@ -407,12 +407,12 @@ export const display_circle = function (_, generator) {
|
||||
var size = this.getFieldValue('OP');
|
||||
var code = '';
|
||||
switch (checkbox_fill) {
|
||||
case "True":
|
||||
code = varName + '.show_fill_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\n';
|
||||
break;
|
||||
case "False":
|
||||
code = varName + '.show_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\n';
|
||||
break;
|
||||
case "True":
|
||||
code = varName + '.show_fill_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\n';
|
||||
break;
|
||||
case "False":
|
||||
code = varName + '.show_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\n';
|
||||
break;
|
||||
}
|
||||
return code;
|
||||
}
|
||||
@@ -431,12 +431,12 @@ export const display_triangle = function (_, generator) {
|
||||
var size = this.getFieldValue('OP');
|
||||
var code = '';
|
||||
switch (checkbox_fill) {
|
||||
case "True":
|
||||
code = varName + '.show_fill_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\n';
|
||||
break;
|
||||
case "False":
|
||||
code = varName + '.show_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\n';
|
||||
break;
|
||||
case "True":
|
||||
code = varName + '.show_fill_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\n';
|
||||
break;
|
||||
case "False":
|
||||
code = varName + '.show_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\n';
|
||||
break;
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
@@ -185,12 +185,12 @@ export const display_rect = function (_, generator) {
|
||||
var checkbox_fill = this.getFieldValue("fill") == 'TRUE' ? 'True' : 'False';
|
||||
var size = this.getFieldValue('OP');
|
||||
switch (checkbox_fill) {
|
||||
case "True":
|
||||
var code = varName + '.show_fill_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\n';
|
||||
return code;
|
||||
case "False":
|
||||
var code = varName + '.show_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\n';
|
||||
return code;
|
||||
case "True":
|
||||
var code = varName + '.show_fill_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\n';
|
||||
return code;
|
||||
case "False":
|
||||
var code = varName + '.show_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\n';
|
||||
return code;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -252,12 +252,12 @@ export const display_circle = function (_, generator) {
|
||||
var checkbox_fill = this.getFieldValue("fill") == 'TRUE' ? 'True' : 'False';
|
||||
var size = this.getFieldValue('OP');
|
||||
switch (checkbox_fill) {
|
||||
case "True":
|
||||
var code = varName + '.show_fill_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\n';
|
||||
return code;
|
||||
case "False":
|
||||
var code = varName + '.show_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\n';
|
||||
return code;
|
||||
case "True":
|
||||
var code = varName + '.show_fill_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\n';
|
||||
return code;
|
||||
case "False":
|
||||
var code = varName + '.show_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\n';
|
||||
return code;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -274,12 +274,12 @@ export const display_triangle = function (_, generator) {
|
||||
var checkbox_fill = this.getFieldValue("fill") == 'TRUE' ? 'True' : 'False';
|
||||
var size = this.getFieldValue('OP');
|
||||
switch (checkbox_fill) {
|
||||
case "True":
|
||||
var code = varName + '.show_fill_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\n';
|
||||
return code;
|
||||
case "False":
|
||||
var code = varName + '.show_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\n';
|
||||
return code;
|
||||
case "True":
|
||||
var code = varName + '.show_fill_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\n';
|
||||
return code;
|
||||
case "False":
|
||||
var code = varName + '.show_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\n';
|
||||
return code;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -230,30 +230,30 @@ export const ntptime_address = function (_, generator) {
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const requests_get2 = function(_, generator) {
|
||||
export const requests_get2 = function (_, generator) {
|
||||
generator.definitions_['import_urequests'] = "import urequests";
|
||||
var dropdown_type = this.getFieldValue('TYPE');
|
||||
var str =generator.valueToCode(this, 'URL', generator.ORDER_ATOMIC) ;
|
||||
var code= 'urequests.'+dropdown_type+'(' + str + ')';
|
||||
return [code,generator.ORDER_ATOMIC];
|
||||
|
||||
};
|
||||
|
||||
export const requests_attribute2 = function(_, generator) {
|
||||
var str = generator.valueToCode(this, 'URL', generator.ORDER_ATOMIC);
|
||||
var code = 'urequests.' + dropdown_type + '(' + str + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
|
||||
};
|
||||
|
||||
export const requests_attribute2 = function (_, generator) {
|
||||
generator.definitions_['import_urequests'] = "import urequests";
|
||||
var varName = generator.valueToCode(this, 'VAL', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var attr = this.getFieldValue('ATTR');
|
||||
var code=varName+"." + attr;
|
||||
return [code,generator.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
export const requests_post = function(_, generator) {
|
||||
var code = varName + "." + attr;
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
export const requests_post = function (_, generator) {
|
||||
generator.definitions_['import_urequests'] = "import urequests";
|
||||
var dropdown_type = this.getFieldValue('TYPE');
|
||||
var str = generator.valueToCode(this, 'URL', generator.ORDER_ATOMIC) ;
|
||||
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC) ;
|
||||
var code= 'urequests.'+dropdown_type+'(' + str +',data='+data+ ')';
|
||||
return [code,generator.ORDER_ATOMIC];
|
||||
|
||||
};
|
||||
|
||||
var dropdown_type = this.getFieldValue('TYPE');
|
||||
var str = generator.valueToCode(this, 'URL', generator.ORDER_ATOMIC);
|
||||
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
||||
var code = 'urequests.' + dropdown_type + '(' + str + ',data=' + data + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -221,7 +221,7 @@ export const sensor_hp203 = function (_, generator) {
|
||||
generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c';
|
||||
generator.definitions_['import_spl06_001'] = 'import spl06_001';
|
||||
generator.definitions_['import_onboard_bps'] = 'onboard_bps = spl06_001.SPL06(onboard_i2c)';
|
||||
} else{
|
||||
} else {
|
||||
generator.definitions_['import_' + version + '_onboard_bps'] = "from " + version + " import onboard_bps";
|
||||
}
|
||||
var code = 'onboard_bps.' + key;
|
||||
@@ -233,7 +233,7 @@ export const sensor_aht11 = function (_, generator) {
|
||||
var key = this.getFieldValue('key');
|
||||
if (version == 'mixgo_nova' || version == 'mixgo_zero') {
|
||||
generator.definitions_['import_' + version + '_onboard_ths'] = "from " + version + " import onboard_ths";
|
||||
} else if(version == 'mixgo_mini') {
|
||||
} else if (version == 'mixgo_mini') {
|
||||
generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c';
|
||||
generator.definitions_['import_shtc3'] = 'import shtc3';
|
||||
generator.definitions_['import_onboard_ths'] = 'onboard_ths = shtc3.SHTC3(onboard_i2c)';
|
||||
@@ -570,24 +570,24 @@ export const sensor_mixgo_cc_mmc5603_get_magnetic = function (_, generator) {
|
||||
if (version == 'mpython') {
|
||||
generator.definitions_['import_mpython_magnetic'] = 'from mpython import magnetic';
|
||||
if (key == 'all') {
|
||||
var code = 'magnetic.getstrength()';
|
||||
}else{
|
||||
var code = 'magnetic.getstrength()';
|
||||
} else {
|
||||
var code = 'magnetic.getdata()' + key;
|
||||
}
|
||||
} else if(version == 'mixgo_mini') {
|
||||
} else if (version == 'mixgo_mini') {
|
||||
generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c';
|
||||
generator.definitions_['import_mmc5603'] = 'import mmc5603';
|
||||
generator.definitions_['import_onboard_mgs']= 'onboard_mgs = mmc5603.MMC5603(onboard_i2c)';
|
||||
generator.definitions_['import_onboard_mgs'] = 'onboard_mgs = mmc5603.MMC5603(onboard_i2c)';
|
||||
if (key == 'all') {
|
||||
var code = 'onboard_mgs.getstrength()';
|
||||
}else{
|
||||
var code = 'onboard_mgs.getstrength()';
|
||||
} else {
|
||||
var code = 'onboard_mgs.getdata()' + key;
|
||||
}
|
||||
} else {
|
||||
generator.definitions_['import_' + version + '_onboard_mgs'] = "from " + version + " import onboard_mgs";
|
||||
if (key == 'all') {
|
||||
var code = 'onboard_mgs.getstrength()';
|
||||
}else{
|
||||
var code = 'onboard_mgs.getstrength()';
|
||||
} else {
|
||||
var code = 'onboard_mgs.getdata()' + key;
|
||||
}
|
||||
}
|
||||
@@ -599,10 +599,10 @@ export const sensor_mixgo_cc_mmc5603_get_angle = function (_, generator) {
|
||||
if (version == 'mpython') {
|
||||
generator.definitions_['import_mpython_magnetic'] = 'from mpython import magnetic';
|
||||
var code = 'magnetic.getangle()';
|
||||
} else if(version == 'mixgo_mini') {
|
||||
} else if (version == 'mixgo_mini') {
|
||||
generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c';
|
||||
generator.definitions_['import_mmc5603'] = 'import mmc5603';
|
||||
generator.definitions_['import_onboard_mgs']= 'onboard_mgs = mmc5603.MMC5603(onboard_i2c)';
|
||||
generator.definitions_['import_onboard_mgs'] = 'onboard_mgs = mmc5603.MMC5603(onboard_i2c)';
|
||||
} else {
|
||||
generator.definitions_['import_' + version + '_onboard_mgs'] = "from " + version + " import onboard_mgs";
|
||||
}
|
||||
@@ -612,11 +612,11 @@ export const sensor_mixgo_cc_mmc5603_get_angle = function (_, generator) {
|
||||
|
||||
export const sensor_mixgo_cc_mmc5603_calibrate_compass = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2]
|
||||
if(version == 'mixgo_mini') {
|
||||
if (version == 'mixgo_mini') {
|
||||
generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c';
|
||||
generator.definitions_['import_mmc5603'] = 'import mmc5603';
|
||||
generator.definitions_['import_onboard_mgs']= 'onboard_mgs = mmc5603.MMC5603(onboard_i2c)';
|
||||
} else{
|
||||
generator.definitions_['import_onboard_mgs'] = 'onboard_mgs = mmc5603.MMC5603(onboard_i2c)';
|
||||
} else {
|
||||
generator.definitions_['import_' + version + '_onboard_mgs'] = "from " + version + " import onboard_mgs";
|
||||
}
|
||||
var code = 'onboard_mgs.calibrate()\n';
|
||||
|
||||
@@ -63,12 +63,12 @@ export const controls_millis = function (_, generator) {
|
||||
generator.definitions_['import_time'] = 'import time';
|
||||
var dropdown_time = this.getFieldValue('Time');
|
||||
switch (dropdown_time) {
|
||||
case "ms":
|
||||
var code = 'time.ticks_ms()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
case "us":
|
||||
var code = 'time.ticks_us()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
case "ms":
|
||||
var code = 'time.ticks_ms()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
case "us":
|
||||
var code = 'time.ticks_us()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,15 +94,15 @@ export const controls_delay = function (_, generator) {
|
||||
var delay_time = generator.valueToCode(this, 'DELAY_TIME', generator.ORDER_ATOMIC) || '1000'
|
||||
var dropdown_time = this.getFieldValue('Time');
|
||||
switch (dropdown_time) {
|
||||
case "s":
|
||||
var code = 'time.sleep(' + delay_time + ')\n';
|
||||
return code;
|
||||
case "ms":
|
||||
var code = 'time.sleep_ms(' + delay_time + ')\n';
|
||||
return code;
|
||||
case "us":
|
||||
var code = 'time.sleep_us(' + delay_time + ')\n';
|
||||
return code;
|
||||
case "s":
|
||||
var code = 'time.sleep(' + delay_time + ')\n';
|
||||
return code;
|
||||
case "ms":
|
||||
var code = 'time.sleep_ms(' + delay_time + ')\n';
|
||||
return code;
|
||||
case "us":
|
||||
var code = 'time.sleep_us(' + delay_time + ')\n';
|
||||
return code;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,15 +112,15 @@ export const controls_delay_new = function (_, generator) {
|
||||
var delay_time = generator.valueToCode(this, 'DELAY_TIME', generator.ORDER_ATOMIC) || '1000'
|
||||
var dropdown_time = this.getFieldValue('Time');
|
||||
switch (dropdown_time) {
|
||||
case "s":
|
||||
var code = 'time.sleep(' + delay_time + ')\n';
|
||||
return code;
|
||||
case "ms":
|
||||
var code = 'time.sleep_ms(' + delay_time + ')\n';
|
||||
return code;
|
||||
case "us":
|
||||
var code = 'time.sleep_us(' + delay_time + ')\n';
|
||||
return code;
|
||||
case "s":
|
||||
var code = 'time.sleep(' + delay_time + ')\n';
|
||||
return code;
|
||||
case "ms":
|
||||
var code = 'time.sleep_ms(' + delay_time + ')\n';
|
||||
return code;
|
||||
case "us":
|
||||
var code = 'time.sleep_us(' + delay_time + ')\n';
|
||||
return code;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mixly/micropython",
|
||||
"version": "1.3.0",
|
||||
"version": "1.4.0",
|
||||
"description": "适用于mixly的micropython模块",
|
||||
"scripts": {
|
||||
"build:dev": "webpack --config=webpack.dev.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mixly/micropython-esp32",
|
||||
"version": "1.3.0",
|
||||
"version": "1.4.0",
|
||||
"description": "适用于mixly的micropython esp32模块",
|
||||
"scripts": {
|
||||
"build:dev": "webpack --config=webpack.dev.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mixly/micropython-esp32c2",
|
||||
"version": "1.4.0",
|
||||
"version": "1.5.0",
|
||||
"description": "适用于mixly的micropython esp32c2模块",
|
||||
"scripts": {
|
||||
"build:dev": "webpack --config=webpack.dev.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mixly/micropython-esp32c3",
|
||||
"version": "1.3.0",
|
||||
"version": "1.4.0",
|
||||
"description": "适用于mixly的micropython esp32c3模块",
|
||||
"scripts": {
|
||||
"build:dev": "webpack --config=webpack.dev.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mixly/micropython-esp32s2",
|
||||
"version": "1.5.0",
|
||||
"version": "1.6.0",
|
||||
"description": "适用于mixly的micropython esp32s2模块",
|
||||
"scripts": {
|
||||
"build:dev": "webpack --config=webpack.dev.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mixly/micropython-esp32s3",
|
||||
"version": "1.3.0",
|
||||
"version": "1.4.0",
|
||||
"description": "适用于mixly的micropython esp32s3模块",
|
||||
"scripts": {
|
||||
"build:dev": "webpack --config=webpack.dev.js",
|
||||
|
||||
@@ -64,13 +64,13 @@ export const math_selfcalcu = function (_, generator) {
|
||||
var argument1 = generator.valueToCode(this, 'B', generator.ORDER_RELATIONAL) || '0';
|
||||
var operator = this.getFieldValue('OP');
|
||||
switch (operator) {
|
||||
case 'ADD': var op = '+='; break;
|
||||
case 'MINUS': var op = '-='; break;
|
||||
case 'MULTIPLY': var op = '*='; break;
|
||||
case 'DIVIDE': var op = '/='; break;
|
||||
case 'QUYU': var op = '%='; break;
|
||||
case 'ZHENGCHU': var op = '//='; break;
|
||||
case 'POWER': var op = '**='; break;
|
||||
case 'ADD': var op = '+='; break;
|
||||
case 'MINUS': var op = '-='; break;
|
||||
case 'MULTIPLY': var op = '*='; break;
|
||||
case 'DIVIDE': var op = '/='; break;
|
||||
case 'QUYU': var op = '%='; break;
|
||||
case 'ZHENGCHU': var op = '//='; break;
|
||||
case 'POWER': var op = '**='; break;
|
||||
}
|
||||
var code = argument0 + ' ' + op + ' ' + argument1 + '\n';
|
||||
return code;
|
||||
@@ -84,66 +84,66 @@ export const math_single = function (a, generator) {
|
||||
generator.definitions_['import_math'] = "import math";
|
||||
a = "SIN" == b || "COS" == b || "TAN" == b ? generator.valueToCode(a, "NUM", generator.ORDER_MULTIPLICATIVE) || "0" : generator.valueToCode(a, "NUM", generator.ORDER_NONE) || "0";
|
||||
switch (b) {
|
||||
case "ABS":
|
||||
c = "math.fabs(" + a + ")";
|
||||
break;
|
||||
case "ROOT":
|
||||
c = "math.sqrt(" +
|
||||
case "ABS":
|
||||
c = "math.fabs(" + a + ")";
|
||||
break;
|
||||
case "ROOT":
|
||||
c = "math.sqrt(" +
|
||||
a + ")";
|
||||
break;
|
||||
case "LN":
|
||||
c = "math.log(" + a + ")";
|
||||
break;
|
||||
case "LOG10":
|
||||
c = "math.log10(" + a + ")";
|
||||
break;
|
||||
case "EXP":
|
||||
c = "math.exp(" + a + ")";
|
||||
break;
|
||||
case "POW10":
|
||||
c = "math.pow(10," + a + ")";
|
||||
break;
|
||||
case "ROUND":
|
||||
c = "round(" + a + ")";
|
||||
break;
|
||||
case "ROUNDUP":
|
||||
c = "math.ceil(" + a + ")";
|
||||
break;
|
||||
case "ROUNDDOWN":
|
||||
c = "math.floor(" + a + ")";
|
||||
break;
|
||||
case "SIN":
|
||||
c = "math.sin(" + a + ")";
|
||||
break;
|
||||
case "COS":
|
||||
c = "math.cos(" + a + ")";
|
||||
break;
|
||||
case "TAN":
|
||||
c = "math.tan(" + a + ")";
|
||||
break;
|
||||
case "++":
|
||||
c = "++(" + a + ")";
|
||||
break;
|
||||
case "--":
|
||||
c = "--(" + a + ")";
|
||||
break;
|
||||
case "-":
|
||||
c = "-(" + a + ")";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
case "LN":
|
||||
c = "math.log(" + a + ")";
|
||||
break;
|
||||
case "LOG10":
|
||||
c = "math.log10(" + a + ")";
|
||||
break;
|
||||
case "EXP":
|
||||
c = "math.exp(" + a + ")";
|
||||
break;
|
||||
case "POW10":
|
||||
c = "math.pow(10," + a + ")";
|
||||
break;
|
||||
case "ROUND":
|
||||
c = "round(" + a + ")";
|
||||
break;
|
||||
case "ROUNDUP":
|
||||
c = "math.ceil(" + a + ")";
|
||||
break;
|
||||
case "ROUNDDOWN":
|
||||
c = "math.floor(" + a + ")";
|
||||
break;
|
||||
case "SIN":
|
||||
c = "math.sin(" + a + ")";
|
||||
break;
|
||||
case "COS":
|
||||
c = "math.cos(" + a + ")";
|
||||
break;
|
||||
case "TAN":
|
||||
c = "math.tan(" + a + ")";
|
||||
break;
|
||||
case "++":
|
||||
c = "++(" + a + ")";
|
||||
break;
|
||||
case "--":
|
||||
c = "--(" + a + ")";
|
||||
break;
|
||||
case "-":
|
||||
c = "-(" + a + ")";
|
||||
break;
|
||||
default:
|
||||
}
|
||||
if (c)
|
||||
return [c, generator.ORDER_FUNCTION_CALL];
|
||||
switch (b) {
|
||||
case "ASIN":
|
||||
c = "math.degrees(math.asin(" + a + "))";
|
||||
break;
|
||||
case "ACOS":
|
||||
c = "math.degrees(math.acos(" + a + "))";
|
||||
break;
|
||||
case "ATAN":
|
||||
c = "math.degrees(math.atan(" + a + "))";
|
||||
break;
|
||||
case "ASIN":
|
||||
c = "math.degrees(math.asin(" + a + "))";
|
||||
break;
|
||||
case "ACOS":
|
||||
c = "math.degrees(math.acos(" + a + "))";
|
||||
break;
|
||||
case "ATAN":
|
||||
c = "math.degrees(math.atan(" + a + "))";
|
||||
break;
|
||||
}
|
||||
return [c, generator.ORDER_MULTIPLICATIVE]
|
||||
}
|
||||
|
||||
@@ -64,12 +64,12 @@ export const controls_millis = function (_, generator) {
|
||||
generator.definitions_['import_time'] = 'import time';
|
||||
var dropdown_time = this.getFieldValue('Time');
|
||||
switch (dropdown_time) {
|
||||
case "ms":
|
||||
var code = 'time.ticks_ms()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
case "us":
|
||||
var code = 'time.ticks_us()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
case "ms":
|
||||
var code = 'time.ticks_ms()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
case "us":
|
||||
var code = 'time.ticks_us()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,15 +108,15 @@ export const controls_delay = function (_, generator) {
|
||||
var delay_time = generator.valueToCode(this, 'DELAY_TIME', generator.ORDER_ATOMIC) || '1000'
|
||||
var dropdown_time = this.getFieldValue('Time');
|
||||
switch (dropdown_time) {
|
||||
case "s":
|
||||
var code = 'time.sleep(' + delay_time + ')\n';
|
||||
return code;
|
||||
case "ms":
|
||||
var code = 'time.sleep_ms(' + delay_time + ')\n';
|
||||
return code;
|
||||
case "us":
|
||||
var code = 'time.sleep_us(' + delay_time + ')\n';
|
||||
return code;
|
||||
case "s":
|
||||
var code = 'time.sleep(' + delay_time + ')\n';
|
||||
return code;
|
||||
case "ms":
|
||||
var code = 'time.sleep_ms(' + delay_time + ')\n';
|
||||
return code;
|
||||
case "us":
|
||||
var code = 'time.sleep_us(' + delay_time + ')\n';
|
||||
return code;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -210,34 +210,34 @@ export const RTC_get_time = function (_, generator) {
|
||||
//generator.setups_['class_DS1307'] = generator.CLASS_DS1307_INIT;
|
||||
|
||||
switch (timeType) {
|
||||
//
|
||||
case "Year":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Month":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Day":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Hour":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Minute":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Second":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Week":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Mix1":
|
||||
var code = 'ds.get_date()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Mix2":
|
||||
var code = 'ds.get_time()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
//
|
||||
case "Year":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Month":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Day":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Hour":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Minute":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Second":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Week":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Mix1":
|
||||
var code = 'ds.get_date()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Mix2":
|
||||
var code = 'ds.get_time()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -208,34 +208,34 @@ export const RTC_get_time = function (_, generator) {
|
||||
//generator.setups_['class_DS1307'] = generator.CLASS_DS1307_INIT;
|
||||
|
||||
switch (timeType) {
|
||||
//
|
||||
case "Year":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Month":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Day":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Hour":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Minute":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Second":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Week":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Mix1":
|
||||
var code = 'ds.get_date()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Mix2":
|
||||
var code = 'ds.get_time()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
//
|
||||
case "Year":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Month":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Day":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Hour":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Minute":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Second":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Week":
|
||||
var code = 'ds.' + timeType + '()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Mix1":
|
||||
var code = 'ds.get_date()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "Mix2":
|
||||
var code = 'ds.get_time()';
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mixly/micropython-robot",
|
||||
"version": "1.2.0",
|
||||
"version": "1.3.0",
|
||||
"description": "适用于mixly的micropython robot模块",
|
||||
"scripts": {
|
||||
"build:dev": "webpack --config=webpack.dev.js",
|
||||
|
||||
@@ -208,17 +208,17 @@ export const controls_if = {
|
||||
var elseStatementConnection = null;
|
||||
while (clauseBlock) {
|
||||
switch (clauseBlock.type) {
|
||||
case 'controls_if_elseif':
|
||||
this.elseifCount_++;
|
||||
valueConnections.push(clauseBlock.valueConnection_);
|
||||
statementConnections.push(clauseBlock.statementConnection_);
|
||||
break;
|
||||
case 'controls_if_else':
|
||||
this.elseCount_++;
|
||||
elseStatementConnection = clauseBlock.statementConnection_;
|
||||
break;
|
||||
default:
|
||||
throw Error('Unknown block type: ' + clauseBlock.type);
|
||||
case 'controls_if_elseif':
|
||||
this.elseifCount_++;
|
||||
valueConnections.push(clauseBlock.valueConnection_);
|
||||
statementConnections.push(clauseBlock.statementConnection_);
|
||||
break;
|
||||
case 'controls_if_else':
|
||||
this.elseCount_++;
|
||||
elseStatementConnection = clauseBlock.statementConnection_;
|
||||
break;
|
||||
default:
|
||||
throw Error('Unknown block type: ' + clauseBlock.type);
|
||||
}
|
||||
clauseBlock = clauseBlock.nextConnection &&
|
||||
clauseBlock.nextConnection.targetBlock();
|
||||
@@ -239,22 +239,22 @@ export const controls_if = {
|
||||
var i = 1;
|
||||
while (clauseBlock) {
|
||||
switch (clauseBlock.type) {
|
||||
case 'controls_if_elseif':
|
||||
var inputIf = this.getInput('IF' + i);
|
||||
var inputDo = this.getInput('DO' + i);
|
||||
clauseBlock.valueConnection_ =
|
||||
case 'controls_if_elseif':
|
||||
var inputIf = this.getInput('IF' + i);
|
||||
var inputDo = this.getInput('DO' + i);
|
||||
clauseBlock.valueConnection_ =
|
||||
inputIf && inputIf.connection.targetConnection;
|
||||
clauseBlock.statementConnection_ =
|
||||
clauseBlock.statementConnection_ =
|
||||
inputDo && inputDo.connection.targetConnection;
|
||||
i++;
|
||||
break;
|
||||
case 'controls_if_else':
|
||||
var inputDo = this.getInput('ELSE');
|
||||
clauseBlock.statementConnection_ =
|
||||
i++;
|
||||
break;
|
||||
case 'controls_if_else':
|
||||
var inputDo = this.getInput('ELSE');
|
||||
clauseBlock.statementConnection_ =
|
||||
inputDo && inputDo.connection.targetConnection;
|
||||
break;
|
||||
default:
|
||||
throw 'Unknown block type.';
|
||||
break;
|
||||
default:
|
||||
throw 'Unknown block type.';
|
||||
}
|
||||
clauseBlock = clauseBlock.nextConnection &&
|
||||
clauseBlock.nextConnection.targetBlock();
|
||||
@@ -544,17 +544,17 @@ export const controls_try_finally = {
|
||||
var elseStatementConnection = null;
|
||||
while (clauseBlock) {
|
||||
switch (clauseBlock.type) {
|
||||
case 'controls_except':
|
||||
this.elseifCount_++;
|
||||
valueConnections.push(clauseBlock.valueConnection_);
|
||||
statementConnections.push(clauseBlock.statementConnection_);
|
||||
break;
|
||||
case 'controls_finally':
|
||||
this.elseCount_++;
|
||||
elseStatementConnection = clauseBlock.statementConnection_;
|
||||
break;
|
||||
default:
|
||||
throw Error('Unknown block type: ' + clauseBlock.type);
|
||||
case 'controls_except':
|
||||
this.elseifCount_++;
|
||||
valueConnections.push(clauseBlock.valueConnection_);
|
||||
statementConnections.push(clauseBlock.statementConnection_);
|
||||
break;
|
||||
case 'controls_finally':
|
||||
this.elseCount_++;
|
||||
elseStatementConnection = clauseBlock.statementConnection_;
|
||||
break;
|
||||
default:
|
||||
throw Error('Unknown block type: ' + clauseBlock.type);
|
||||
}
|
||||
clauseBlock = clauseBlock.nextConnection &&
|
||||
clauseBlock.nextConnection.targetBlock();
|
||||
@@ -575,22 +575,22 @@ export const controls_try_finally = {
|
||||
var i = 1;
|
||||
while (clauseBlock) {
|
||||
switch (clauseBlock.type) {
|
||||
case 'controls_except':
|
||||
var inputIf = this.getInput('IF' + i);
|
||||
var inputDo = this.getInput('DO' + i);
|
||||
clauseBlock.valueConnection_ =
|
||||
case 'controls_except':
|
||||
var inputIf = this.getInput('IF' + i);
|
||||
var inputDo = this.getInput('DO' + i);
|
||||
clauseBlock.valueConnection_ =
|
||||
inputIf && inputIf.connection.targetConnection;
|
||||
clauseBlock.statementConnection_ =
|
||||
clauseBlock.statementConnection_ =
|
||||
inputDo && inputDo.connection.targetConnection;
|
||||
i++;
|
||||
break;
|
||||
case 'controls_finally':
|
||||
var inputDo = this.getInput('ELSE');
|
||||
clauseBlock.statementConnection_ =
|
||||
i++;
|
||||
break;
|
||||
case 'controls_finally':
|
||||
var inputDo = this.getInput('ELSE');
|
||||
clauseBlock.statementConnection_ =
|
||||
inputDo && inputDo.connection.targetConnection;
|
||||
break;
|
||||
default:
|
||||
throw 'Unknown block type.';
|
||||
break;
|
||||
default:
|
||||
throw 'Unknown block type.';
|
||||
}
|
||||
clauseBlock = clauseBlock.nextConnection &&
|
||||
clauseBlock.nextConnection.targetBlock();
|
||||
@@ -794,15 +794,17 @@ export const controls_for_range = {
|
||||
};
|
||||
|
||||
|
||||
controls_whileUntil.OPERATORS =
|
||||
[[Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE, 'WHILE'],
|
||||
[Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL, 'UNTIL']];
|
||||
controls_whileUntil.OPERATORS = [
|
||||
[Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE, 'WHILE'],
|
||||
[Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL, 'UNTIL']
|
||||
];
|
||||
|
||||
|
||||
|
||||
controls_flow_statements.OPERATORS =
|
||||
[[Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK, 'BREAK'],
|
||||
[Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE, 'CONTINUE']];
|
||||
controls_flow_statements.OPERATORS = [
|
||||
[Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK, 'BREAK'],
|
||||
[Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE, 'CONTINUE']
|
||||
];
|
||||
|
||||
|
||||
|
||||
@@ -1022,7 +1024,7 @@ export const get_unique_identifier = {
|
||||
init: function () {
|
||||
this.setColour(LOOPS_HUE);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_DEVICE +'ID');
|
||||
.appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_DEVICE + 'ID');
|
||||
this.setInputsInline(true);
|
||||
this.setOutput(true);
|
||||
this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + Blockly.Msg.MIXLY_GET_UNIQUE_IDEN);
|
||||
|
||||
@@ -442,12 +442,12 @@ export const dicts_add_change_del = {
|
||||
var e = b.getFieldValue("WHERE"),
|
||||
d = "";
|
||||
switch (e) {
|
||||
case "INSERT":
|
||||
d = Blockly.Msg.DICTS_ADD_TOOLTIP;
|
||||
break;
|
||||
case "DELETE":
|
||||
d = Blockly.Msg.DICTS_DELETE_TOOLTIP;
|
||||
break;
|
||||
case "INSERT":
|
||||
d = Blockly.Msg.DICTS_ADD_TOOLTIP;
|
||||
break;
|
||||
case "DELETE":
|
||||
d = Blockly.Msg.DICTS_DELETE_TOOLTIP;
|
||||
break;
|
||||
}
|
||||
//if ("FROM_START" == e || "FROM_END" == e) d += " " + Blockly.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1", ONE_BASED_INDEXING ? "#1": "#0");
|
||||
return d
|
||||
|
||||
@@ -194,20 +194,20 @@ export const text_char_at2 = {
|
||||
e = b.getFieldValue("WHERE"),
|
||||
d = "";
|
||||
switch (a + " " + e) {
|
||||
case "GET FROM_START":
|
||||
case "GET FROM_END":
|
||||
d = Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;
|
||||
break;
|
||||
case "GET RANDOM":
|
||||
d = Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;
|
||||
break;
|
||||
case "GET_REMOVE FROM_START":
|
||||
case "GET_REMOVE FROM_END":
|
||||
d = Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;
|
||||
break;
|
||||
case "GET_REMOVE RANDOM":
|
||||
d = Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM;
|
||||
break;
|
||||
case "GET FROM_START":
|
||||
case "GET FROM_END":
|
||||
d = Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;
|
||||
break;
|
||||
case "GET RANDOM":
|
||||
d = Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;
|
||||
break;
|
||||
case "GET_REMOVE FROM_START":
|
||||
case "GET_REMOVE FROM_END":
|
||||
d = Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;
|
||||
break;
|
||||
case "GET_REMOVE RANDOM":
|
||||
d = Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM;
|
||||
break;
|
||||
}
|
||||
if ("FROM_START" == e || "FROM_END" == e) d += " " + Blockly.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1", Blockly.Msg.ONE_BASED_INDEXING ? "#1" : "#0");
|
||||
return d
|
||||
@@ -296,14 +296,16 @@ export const text_substring2 = {
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
init: function () {
|
||||
this['WHERE_OPTIONS_1'] =
|
||||
[[Blockly.Msg.LISTS_GET_INDEX_FROM_START, 'FROM_START'],
|
||||
[Blockly.Msg.LISTS_GET_INDEX_FROM_END, 'FROM_END'],
|
||||
[Blockly.Msg.LISTS_GET_SUBLIST_START_FIRST, 'FIRST']];
|
||||
this['WHERE_OPTIONS_2'] =
|
||||
[[Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_START, 'FROM_START'],
|
||||
[Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_END, 'FROM_END'],
|
||||
[Blockly.Msg.LISTS_GET_SUBLIST_END_LAST, 'LAST']];
|
||||
this['WHERE_OPTIONS_1'] = [
|
||||
[Blockly.Msg.LISTS_GET_INDEX_FROM_START, 'FROM_START'],
|
||||
[Blockly.Msg.LISTS_GET_INDEX_FROM_END, 'FROM_END'],
|
||||
[Blockly.Msg.LISTS_GET_SUBLIST_START_FIRST, 'FIRST']
|
||||
];
|
||||
this['WHERE_OPTIONS_2'] = [
|
||||
[Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_START, 'FROM_START'],
|
||||
[Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_END, 'FROM_END'],
|
||||
[Blockly.Msg.LISTS_GET_SUBLIST_END_LAST, 'LAST']
|
||||
];
|
||||
this.setHelpUrl(Blockly.Msg.LISTS_GET_SUBLIST_HELPURL);
|
||||
this.setColour(TEXTS_HUE);
|
||||
this.appendValueInput("VAR")
|
||||
@@ -423,10 +425,11 @@ export const text_substring = {
|
||||
|
||||
export const text_equals_starts_ends = {
|
||||
init: function () {
|
||||
var TEXT_DOWHAT =
|
||||
[[Blockly.Msg.MIXLY_EQUALS, '==='],
|
||||
[Blockly.Msg.MIXLY_STARTSWITH, 'startswith'],
|
||||
[Blockly.Msg.MIXLY_ENDSWITH, 'endswith']];
|
||||
var TEXT_DOWHAT = [
|
||||
[Blockly.Msg.MIXLY_EQUALS, '==='],
|
||||
[Blockly.Msg.MIXLY_STARTSWITH, 'startswith'],
|
||||
[Blockly.Msg.MIXLY_ENDSWITH, 'endswith']
|
||||
];
|
||||
this.setColour(TEXTS_HUE);
|
||||
this.appendValueInput("STR1")
|
||||
.setCheck(String);
|
||||
@@ -454,9 +457,13 @@ export const text_compare_to = {
|
||||
|
||||
export const text_capital = {
|
||||
init: function () {
|
||||
var TEXT_CAPITAL =
|
||||
[[Blockly.Msg.TEXT_UPPER, 'upper'], [Blockly.Msg.TEXT_TITLE, 'title'], [Blockly.Msg.TEXT_CAPITALIZE, 'capitalize'], [Blockly.Msg.TEXT_SWAPCASE, 'swapcase'],
|
||||
[Blockly.Msg.TEXT_LOWER, 'lower']];
|
||||
var TEXT_CAPITAL = [
|
||||
[Blockly.Msg.TEXT_UPPER, 'upper'],
|
||||
[Blockly.Msg.TEXT_TITLE, 'title'],
|
||||
[Blockly.Msg.TEXT_CAPITALIZE, 'capitalize'],
|
||||
[Blockly.Msg.TEXT_SWAPCASE, 'swapcase'],
|
||||
[Blockly.Msg.TEXT_LOWER, 'lower']
|
||||
];
|
||||
this.setColour(TEXTS_HUE);
|
||||
this.appendValueInput("VAR")
|
||||
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)
|
||||
@@ -480,10 +487,11 @@ export const text_capital = {
|
||||
|
||||
export const text_center = {
|
||||
init: function () {
|
||||
var TEXT_CENTER =
|
||||
[[Blockly.Msg.TEXT_LJUST, 'ljust'],
|
||||
[Blockly.Msg.TEXT_CENTER, 'center'],
|
||||
[Blockly.Msg.TEXT_RJUST, 'rjust']];
|
||||
var TEXT_CENTER = [
|
||||
[Blockly.Msg.TEXT_LJUST, 'ljust'],
|
||||
[Blockly.Msg.TEXT_CENTER, 'center'],
|
||||
[Blockly.Msg.TEXT_RJUST, 'rjust']
|
||||
];
|
||||
this.setColour(TEXTS_HUE);
|
||||
this.appendValueInput("VAR")
|
||||
.appendField(new Blockly.FieldDropdown(TEXT_CENTER), 'CENTER')
|
||||
|
||||
@@ -132,10 +132,10 @@ export const controls_whileUntil = function (a, generator) {
|
||||
//ok
|
||||
export const controls_flow_statements = function (a) {
|
||||
switch (a.getFieldValue("FLOW")) {
|
||||
case "BREAK":
|
||||
return "break\n";
|
||||
case "CONTINUE":
|
||||
return "continue\n"
|
||||
case "BREAK":
|
||||
return "break\n";
|
||||
case "CONTINUE":
|
||||
return "continue\n"
|
||||
}
|
||||
throw "Unknown flow statement.";
|
||||
}
|
||||
|
||||
@@ -129,17 +129,16 @@ export const dicts_add_change_del = function (block, generator) {
|
||||
// var text=this.getFieldValue('KEY');
|
||||
|
||||
switch (mode) {
|
||||
case 'INSERT':
|
||||
//var at2 = block.getFieldValue('AT2');
|
||||
var at2 = generator.valueToCode(this, 'AT2', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = dict + "[" + KEY + "] = " + at2 + '\n'
|
||||
break;
|
||||
|
||||
case 'DELETE':
|
||||
var code = 'del ' + dict + "[" + KEY + "]\n"
|
||||
break;
|
||||
default:
|
||||
throw 'Unhandled option (lists_setIndex2)';
|
||||
case 'INSERT':
|
||||
//var at2 = block.getFieldValue('AT2');
|
||||
var at2 = generator.valueToCode(this, 'AT2', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = dict + "[" + KEY + "] = " + at2 + '\n'
|
||||
break;
|
||||
case 'DELETE':
|
||||
var code = 'del ' + dict + "[" + KEY + "]\n"
|
||||
break;
|
||||
default:
|
||||
throw 'Unhandled option (lists_setIndex2)';
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
@@ -150,36 +150,36 @@ export const list_trig = function (a, generator) {
|
||||
generator.definitions_['import_math'] = "import math";
|
||||
a = generator.valueToCode(a, 'data', generator.ORDER_NONE)
|
||||
switch (b) {
|
||||
case "LEN":
|
||||
c = "len(" + a + ")";
|
||||
break;
|
||||
case "SUM":
|
||||
c = "sum(" + a + ")";
|
||||
break;
|
||||
case "MIN":
|
||||
c = "min(" + a + ")";
|
||||
break;
|
||||
case "MAX":
|
||||
c = "max(" + a + ")";
|
||||
break;
|
||||
case 'AVERAGE':
|
||||
generator.definitions_['import_mixpy_math_mean'] = "from mixpy import math_mean";
|
||||
c = 'math_mean(' + a + ')';
|
||||
break;
|
||||
case 'MEDIAN':
|
||||
generator.definitions_['import_mixpy_math_median'] = "from mixpy import math_median";
|
||||
c = 'math_median(' + a + ')';
|
||||
break;
|
||||
case 'MODE':
|
||||
generator.definitions_['import_mixpy_math_modes'] = "from mixpy import math_modes";
|
||||
c = 'math_modes(' + a + ')';
|
||||
break;
|
||||
case 'STD_DEV':
|
||||
generator.definitions_['import_mixpy_math_standard_deviation'] = "from mixpy import math_standard_deviation";
|
||||
c = 'math_standard_deviation(' + a + ')';
|
||||
break;
|
||||
default:
|
||||
throw 'Unknown operator: ' + b;
|
||||
case "LEN":
|
||||
c = "len(" + a + ")";
|
||||
break;
|
||||
case "SUM":
|
||||
c = "sum(" + a + ")";
|
||||
break;
|
||||
case "MIN":
|
||||
c = "min(" + a + ")";
|
||||
break;
|
||||
case "MAX":
|
||||
c = "max(" + a + ")";
|
||||
break;
|
||||
case 'AVERAGE':
|
||||
generator.definitions_['import_mixpy_math_mean'] = "from mixpy import math_mean";
|
||||
c = 'math_mean(' + a + ')';
|
||||
break;
|
||||
case 'MEDIAN':
|
||||
generator.definitions_['import_mixpy_math_median'] = "from mixpy import math_median";
|
||||
c = 'math_median(' + a + ')';
|
||||
break;
|
||||
case 'MODE':
|
||||
generator.definitions_['import_mixpy_math_modes'] = "from mixpy import math_modes";
|
||||
c = 'math_modes(' + a + ')';
|
||||
break;
|
||||
case 'STD_DEV':
|
||||
generator.definitions_['import_mixpy_math_standard_deviation'] = "from mixpy import math_standard_deviation";
|
||||
c = 'math_standard_deviation(' + a + ')';
|
||||
break;
|
||||
default:
|
||||
throw 'Unknown operator: ' + b;
|
||||
}
|
||||
if (c)
|
||||
return [c, generator.ORDER_ATOMIC];
|
||||
|
||||
@@ -70,13 +70,13 @@ export const math_selfcalcu = function (_, generator) {
|
||||
var argument1 = generator.valueToCode(this, 'B', generator.ORDER_RELATIONAL) || '0';
|
||||
var operator = this.getFieldValue('OP');
|
||||
switch (operator) {
|
||||
case 'ADD': var op = '+='; break;
|
||||
case 'MINUS': var op = '-='; break;
|
||||
case 'MULTIPLY': var op = '*='; break;
|
||||
case 'DIVIDE': var op = '/='; break;
|
||||
case 'QUYU': var op = '%='; break;
|
||||
case 'ZHENGCHU': var op = '//='; break;
|
||||
case 'POWER': var op = '**='; break;
|
||||
case 'ADD': var op = '+='; break;
|
||||
case 'MINUS': var op = '-='; break;
|
||||
case 'MULTIPLY': var op = '*='; break;
|
||||
case 'DIVIDE': var op = '/='; break;
|
||||
case 'QUYU': var op = '%='; break;
|
||||
case 'ZHENGCHU': var op = '//='; break;
|
||||
case 'POWER': var op = '**='; break;
|
||||
}
|
||||
var code = argument0 + ' ' + op + ' ' + argument1 + '\n';
|
||||
return code;
|
||||
@@ -90,66 +90,66 @@ export const math_single = function (a, generator) {
|
||||
generator.definitions_['import_math'] = "import math";
|
||||
a = "SIN" == b || "COS" == b || "TAN" == b ? generator.valueToCode(a, "NUM", generator.ORDER_MULTIPLICATIVE) || "0" : generator.valueToCode(a, "NUM", generator.ORDER_NONE) || "0";
|
||||
switch (b) {
|
||||
case "ABS":
|
||||
c = "math.fabs(" + a + ")";
|
||||
break;
|
||||
case "ROOT":
|
||||
c = "math.sqrt(" +
|
||||
case "ABS":
|
||||
c = "math.fabs(" + a + ")";
|
||||
break;
|
||||
case "ROOT":
|
||||
c = "math.sqrt(" +
|
||||
a + ")";
|
||||
break;
|
||||
case "LN":
|
||||
c = "math.log(" + a + ")";
|
||||
break;
|
||||
case "LOG10":
|
||||
c = "math.log10(" + a + ")";
|
||||
break;
|
||||
case "EXP":
|
||||
c = "math.exp(" + a + ")";
|
||||
break;
|
||||
case "POW10":
|
||||
c = "math.pow(10," + a + ")";
|
||||
break;
|
||||
case "ROUND":
|
||||
c = "round(" + a + ")";
|
||||
break;
|
||||
case "ROUNDUP":
|
||||
c = "math.ceil(" + a + ")";
|
||||
break;
|
||||
case "ROUNDDOWN":
|
||||
c = "math.floor(" + a + ")";
|
||||
break;
|
||||
case "SIN":
|
||||
c = "math.sin(" + a + ")";
|
||||
break;
|
||||
case "COS":
|
||||
c = "math.cos(" + a + ")";
|
||||
break;
|
||||
case "TAN":
|
||||
c = "math.tan(" + a + ")";
|
||||
break;
|
||||
case "++":
|
||||
c = "++(" + a + ")";
|
||||
break;
|
||||
case "--":
|
||||
c = "--(" + a + ")";
|
||||
break;
|
||||
case "-":
|
||||
c = "-(" + a + ")";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
case "LN":
|
||||
c = "math.log(" + a + ")";
|
||||
break;
|
||||
case "LOG10":
|
||||
c = "math.log10(" + a + ")";
|
||||
break;
|
||||
case "EXP":
|
||||
c = "math.exp(" + a + ")";
|
||||
break;
|
||||
case "POW10":
|
||||
c = "math.pow(10," + a + ")";
|
||||
break;
|
||||
case "ROUND":
|
||||
c = "round(" + a + ")";
|
||||
break;
|
||||
case "ROUNDUP":
|
||||
c = "math.ceil(" + a + ")";
|
||||
break;
|
||||
case "ROUNDDOWN":
|
||||
c = "math.floor(" + a + ")";
|
||||
break;
|
||||
case "SIN":
|
||||
c = "math.sin(" + a + ")";
|
||||
break;
|
||||
case "COS":
|
||||
c = "math.cos(" + a + ")";
|
||||
break;
|
||||
case "TAN":
|
||||
c = "math.tan(" + a + ")";
|
||||
break;
|
||||
case "++":
|
||||
c = "++(" + a + ")";
|
||||
break;
|
||||
case "--":
|
||||
c = "--(" + a + ")";
|
||||
break;
|
||||
case "-":
|
||||
c = "-(" + a + ")";
|
||||
break;
|
||||
default:
|
||||
}
|
||||
if (c)
|
||||
return [c, generator.ORDER_EXPONENTIATION];
|
||||
switch (b) {
|
||||
case "ASIN":
|
||||
c = "math.degrees(math.asin(" + a + "))";
|
||||
break;
|
||||
case "ACOS":
|
||||
c = "math.degrees(math.acos(" + a + "))";
|
||||
break;
|
||||
case "ATAN":
|
||||
c = "math.degrees(math.atan(" + a + "))";
|
||||
break;
|
||||
case "ASIN":
|
||||
c = "math.degrees(math.asin(" + a + "))";
|
||||
break;
|
||||
case "ACOS":
|
||||
c = "math.degrees(math.acos(" + a + "))";
|
||||
break;
|
||||
case "ATAN":
|
||||
c = "math.degrees(math.atan(" + a + "))";
|
||||
break;
|
||||
}
|
||||
return [c, generator.ORDER_MULTIPLICATIVE]
|
||||
}
|
||||
|
||||
@@ -50,15 +50,15 @@ export const text_char_at2 = function (a, generator) {
|
||||
var c = a.getFieldValue("WHERE") || "FROM_START",
|
||||
str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
|
||||
switch (c) {
|
||||
case "FROM_START":
|
||||
a = generator.getAdjustedInt(a, "AT");
|
||||
return [str + "[" + a + "]", generator.ORDER_ATOMIC];
|
||||
case "FROM_END":
|
||||
a = generator.getAdjustedInt(a, "AT", 1, !0);
|
||||
return [str + "[" + a + "]", generator.ORDER_ATOMIC];
|
||||
case "RANDOM":
|
||||
generator.definitions_.import_random = "import random";
|
||||
return ["random.choice(" + str + ")", generator.ORDER_FUNCTION_CALL];
|
||||
case "FROM_START":
|
||||
a = generator.getAdjustedInt(a, "AT");
|
||||
return [str + "[" + a + "]", generator.ORDER_ATOMIC];
|
||||
case "FROM_END":
|
||||
a = generator.getAdjustedInt(a, "AT", 1, !0);
|
||||
return [str + "[" + a + "]", generator.ORDER_ATOMIC];
|
||||
case "RANDOM":
|
||||
generator.definitions_.import_random = "import random";
|
||||
return ["random.choice(" + str + ")", generator.ORDER_FUNCTION_CALL];
|
||||
}
|
||||
throw "Unhandled combination (lists_getIndex).";
|
||||
}
|
||||
@@ -96,41 +96,41 @@ export const text_substring2 = function (block, generator) {
|
||||
var where1 = block.getFieldValue('WHERE1');
|
||||
var where2 = block.getFieldValue('WHERE2');
|
||||
switch (where1) {
|
||||
case 'FROM_START':
|
||||
var at1 = generator.getAdjustedInt(block, 'AT1');
|
||||
if (at1 == '0') {
|
||||
at1 = '';
|
||||
}
|
||||
break;
|
||||
case 'FROM_END':
|
||||
var at1 = generator.getAdjustedInt(block, 'AT1', 0, true);
|
||||
break;
|
||||
case 'FIRST':
|
||||
var at1 = '0';
|
||||
break;
|
||||
default:
|
||||
throw 'Unhandled option (lists_getSublist)';
|
||||
case 'FROM_START':
|
||||
var at1 = generator.getAdjustedInt(block, 'AT1');
|
||||
if (at1 == '0') {
|
||||
at1 = '';
|
||||
}
|
||||
break;
|
||||
case 'FROM_END':
|
||||
var at1 = generator.getAdjustedInt(block, 'AT1', 0, true);
|
||||
break;
|
||||
case 'FIRST':
|
||||
var at1 = '0';
|
||||
break;
|
||||
default:
|
||||
throw 'Unhandled option (lists_getSublist)';
|
||||
}
|
||||
switch (where2) {
|
||||
case 'FROM_START':
|
||||
var at2 = generator.getAdjustedInt(block, 'AT2');
|
||||
break;
|
||||
case 'FROM_END':
|
||||
var at2 = generator.getAdjustedInt(block, 'AT2', 0, true);
|
||||
// Ensure that if the result calculated is 0 that sub-sequence will
|
||||
// include all elements as expected.
|
||||
if (!Blockly.isNumber(String(at2))) {
|
||||
generator.definitions_['import_sys'] = 'import sys';
|
||||
at2 += ' or sys.maxsize';
|
||||
} else if (at2 == '0') {
|
||||
at2 = '';
|
||||
}
|
||||
break;
|
||||
case 'LAST':
|
||||
var at2 = '-1';
|
||||
break;
|
||||
default:
|
||||
throw 'Unhandled option (lists_getSublist)';
|
||||
case 'FROM_START':
|
||||
var at2 = generator.getAdjustedInt(block, 'AT2');
|
||||
break;
|
||||
case 'FROM_END':
|
||||
var at2 = generator.getAdjustedInt(block, 'AT2', 0, true);
|
||||
// Ensure that if the result calculated is 0 that sub-sequence will
|
||||
// include all elements as expected.
|
||||
if (!Blockly.isNumber(String(at2))) {
|
||||
generator.definitions_['import_sys'] = 'import sys';
|
||||
at2 += ' or sys.maxsize';
|
||||
} else if (at2 == '0') {
|
||||
at2 = '';
|
||||
}
|
||||
break;
|
||||
case 'LAST':
|
||||
var at2 = '-1';
|
||||
break;
|
||||
default:
|
||||
throw 'Unhandled option (lists_getSublist)';
|
||||
}
|
||||
var code = str + '[' + at1 + ' : ' + at2 + ']';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
|
||||
@@ -107,90 +107,90 @@ export const tuple_trig = function (a, generator) {
|
||||
generator.definitions_['import_math'] = "import math";
|
||||
a = generator.valueToCode(a, 'data', generator.ORDER_NONE)
|
||||
switch (b) {
|
||||
case "LEN":
|
||||
c = "len(" + a + ")";
|
||||
break;
|
||||
case "SUM":
|
||||
c = "sum(" + a + ")";
|
||||
break;
|
||||
case "MIN":
|
||||
c = "min(" + a + ")";
|
||||
break;
|
||||
case "MAX":
|
||||
c = "max(" + a + ")";
|
||||
break;
|
||||
case 'AVERAGE':
|
||||
// generator.definitions_['from_numbers_import_Number'] =
|
||||
// 'from numbers import Number';
|
||||
var functionName = generator.provideFunction_(
|
||||
'math_mean',
|
||||
// This operation excludes null and values that aren't int or float:',
|
||||
// math_mean([null, null, "aString", 1, 9]) == 5.0.',
|
||||
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(myList):',
|
||||
' localList = [e for e in myList if type(e) == int or type(e) == float]',
|
||||
' if not localList: return',
|
||||
' return float(sum(localList)) / len(localList)']);
|
||||
c = functionName + '(' + a + ')';
|
||||
break;
|
||||
case 'MEDIAN':
|
||||
// generator.definitions_['from_numbers_import_Number'] =
|
||||
// 'from numbers import Numberd';
|
||||
var functionName = generator.provideFunction_(
|
||||
'math_median',
|
||||
// This operation excludes null values:
|
||||
// math_median([null, null, 1, 3]) == 2.0.
|
||||
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(myList):',
|
||||
' localList = sorted([e for e in myList if type(e) == int or type(e) == float])',
|
||||
' if not localList: return',
|
||||
' if len(localList) % 2 == 0:',
|
||||
' return (localList[len(localList) // 2 - 1] + ' +
|
||||
case "LEN":
|
||||
c = "len(" + a + ")";
|
||||
break;
|
||||
case "SUM":
|
||||
c = "sum(" + a + ")";
|
||||
break;
|
||||
case "MIN":
|
||||
c = "min(" + a + ")";
|
||||
break;
|
||||
case "MAX":
|
||||
c = "max(" + a + ")";
|
||||
break;
|
||||
case 'AVERAGE':
|
||||
// generator.definitions_['from_numbers_import_Number'] =
|
||||
// 'from numbers import Number';
|
||||
var functionName = generator.provideFunction_(
|
||||
'math_mean',
|
||||
// This operation excludes null and values that aren't int or float:',
|
||||
// math_mean([null, null, "aString", 1, 9]) == 5.0.',
|
||||
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(myList):',
|
||||
' localList = [e for e in myList if type(e) == int or type(e) == float]',
|
||||
' if not localList: return',
|
||||
' return float(sum(localList)) / len(localList)']);
|
||||
c = functionName + '(' + a + ')';
|
||||
break;
|
||||
case 'MEDIAN':
|
||||
// generator.definitions_['from_numbers_import_Number'] =
|
||||
// 'from numbers import Numberd';
|
||||
var functionName = generator.provideFunction_(
|
||||
'math_median',
|
||||
// This operation excludes null values:
|
||||
// math_median([null, null, 1, 3]) == 2.0.
|
||||
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(myList):',
|
||||
' localList = sorted([e for e in myList if type(e) == int or type(e) == float])',
|
||||
' if not localList: return',
|
||||
' if len(localList) % 2 == 0:',
|
||||
' return (localList[len(localList) // 2 - 1] + ' +
|
||||
'localList[len(localList) // 2]) / 2.0',
|
||||
' else:',
|
||||
' return localList[(len(localList) - 1) // 2]']);
|
||||
c = functionName + '(' + a + ')';
|
||||
break;
|
||||
case 'MODE':
|
||||
var functionName = generator.provideFunction_(
|
||||
'math_modes',
|
||||
// As a list of numbers can contain more than one mode,
|
||||
// the returned result is provided as an array.
|
||||
// Mode of [3, 'x', 'x', 1, 1, 2, '3'] -> ['x', 1].
|
||||
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(some_list):',
|
||||
' modes = []',
|
||||
' # Using a lists of [item, count] to keep count rather than dict',
|
||||
' # to avoid "unhashable" errors when the counted item is ' +
|
||||
' else:',
|
||||
' return localList[(len(localList) - 1) // 2]']);
|
||||
c = functionName + '(' + a + ')';
|
||||
break;
|
||||
case 'MODE':
|
||||
var functionName = generator.provideFunction_(
|
||||
'math_modes',
|
||||
// As a list of numbers can contain more than one mode,
|
||||
// the returned result is provided as an array.
|
||||
// Mode of [3, 'x', 'x', 1, 1, 2, '3'] -> ['x', 1].
|
||||
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(some_list):',
|
||||
' modes = []',
|
||||
' # Using a lists of [item, count] to keep count rather than dict',
|
||||
' # to avoid "unhashable" errors when the counted item is ' +
|
||||
'itself a list or dict.',
|
||||
' counts = []',
|
||||
' maxCount = 1',
|
||||
' for item in some_list:',
|
||||
' found = False',
|
||||
' for count in counts:',
|
||||
' if count[0] == item:',
|
||||
' count[1] += 1',
|
||||
' maxCount = max(maxCount, count[1])',
|
||||
' found = True',
|
||||
' if not found:',
|
||||
' counts.append([item, 1])',
|
||||
' for counted_item, item_count in counts:',
|
||||
' if item_count == maxCount:',
|
||||
' modes.append(counted_item)',
|
||||
' return modes']);
|
||||
c = functionName + '(' + a + ')';
|
||||
break;
|
||||
case 'STD_DEV':
|
||||
generator.definitions_['import_math'] = 'import math';
|
||||
var functionName = generator.provideFunction_(
|
||||
'math_standard_deviation',
|
||||
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(numbers):',
|
||||
' n = len(numbers)',
|
||||
' if n == 0: return',
|
||||
' mean = float(sum(numbers)) / n',
|
||||
' variance = sum((x - mean) ** 2 for x in numbers) / n',
|
||||
' return math.sqrt(variance)']);
|
||||
c = functionName + '(' + a + ')';
|
||||
break;
|
||||
default:
|
||||
throw 'Unknown operator: ' + b;
|
||||
' counts = []',
|
||||
' maxCount = 1',
|
||||
' for item in some_list:',
|
||||
' found = False',
|
||||
' for count in counts:',
|
||||
' if count[0] == item:',
|
||||
' count[1] += 1',
|
||||
' maxCount = max(maxCount, count[1])',
|
||||
' found = True',
|
||||
' if not found:',
|
||||
' counts.append([item, 1])',
|
||||
' for counted_item, item_count in counts:',
|
||||
' if item_count == maxCount:',
|
||||
' modes.append(counted_item)',
|
||||
' return modes']);
|
||||
c = functionName + '(' + a + ')';
|
||||
break;
|
||||
case 'STD_DEV':
|
||||
generator.definitions_['import_math'] = 'import math';
|
||||
var functionName = generator.provideFunction_(
|
||||
'math_standard_deviation',
|
||||
['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(numbers):',
|
||||
' n = len(numbers)',
|
||||
' if n == 0: return',
|
||||
' mean = float(sum(numbers)) / n',
|
||||
' variance = sum((x - mean) ** 2 for x in numbers) / n',
|
||||
' return math.sqrt(variance)']);
|
||||
c = functionName + '(' + a + ')';
|
||||
break;
|
||||
default:
|
||||
throw 'Unknown operator: ' + b;
|
||||
}
|
||||
if (c)
|
||||
return [c, generator.ORDER_FUNCTION_CALL];
|
||||
@@ -204,42 +204,42 @@ export const tuple_getSublist = function (block, generator) {
|
||||
var where1 = block.getFieldValue('WHERE1');
|
||||
var where2 = block.getFieldValue('WHERE2');
|
||||
switch (where1) {
|
||||
case 'FROM_START':
|
||||
var at1 = generator.getAdjustedInt(block, 'AT1');
|
||||
if (at1 == '0') {
|
||||
at1 = '';
|
||||
}
|
||||
break;
|
||||
case 'FROM_END':
|
||||
var at1 = generator.getAdjustedInt(block, 'AT1', 1, true);
|
||||
break;
|
||||
case 'FIRST':
|
||||
var at1 = '0';
|
||||
break;
|
||||
default:
|
||||
throw 'Unhandled option (lists_getSublist)';
|
||||
case 'FROM_START':
|
||||
var at1 = generator.getAdjustedInt(block, 'AT1');
|
||||
if (at1 == '0') {
|
||||
at1 = '';
|
||||
}
|
||||
break;
|
||||
case 'FROM_END':
|
||||
var at1 = generator.getAdjustedInt(block, 'AT1', 1, true);
|
||||
break;
|
||||
case 'FIRST':
|
||||
var at1 = '0';
|
||||
break;
|
||||
default:
|
||||
throw 'Unhandled option (lists_getSublist)';
|
||||
}
|
||||
switch (where2) {
|
||||
case 'FROM_START':
|
||||
var at2 = generator.getAdjustedInt(block, 'AT2', 1);
|
||||
at2 = at2 - 1;
|
||||
break;
|
||||
case 'FROM_END':
|
||||
var at2 = generator.getAdjustedInt(block, 'AT2', 1, true);
|
||||
// Ensure that if the result calculated is 0 that sub-sequence will
|
||||
// include all elements as expected.
|
||||
if (!Blockly.isNumber(String(at2))) {
|
||||
generator.definitions_['import_sys'] = 'import sys';
|
||||
at2 += ' or sys.maxsize';
|
||||
} else if (at2 == '0') {
|
||||
at2 = '';
|
||||
}
|
||||
break;
|
||||
case 'LAST':
|
||||
var at2 = '-1';
|
||||
break;
|
||||
default:
|
||||
throw 'Unhandled option (lists_getSublist)';
|
||||
case 'FROM_START':
|
||||
var at2 = generator.getAdjustedInt(block, 'AT2', 1);
|
||||
at2 = at2 - 1;
|
||||
break;
|
||||
case 'FROM_END':
|
||||
var at2 = generator.getAdjustedInt(block, 'AT2', 1, true);
|
||||
// Ensure that if the result calculated is 0 that sub-sequence will
|
||||
// include all elements as expected.
|
||||
if (!Blockly.isNumber(String(at2))) {
|
||||
generator.definitions_['import_sys'] = 'import sys';
|
||||
at2 += ' or sys.maxsize';
|
||||
} else if (at2 == '0') {
|
||||
at2 = '';
|
||||
}
|
||||
break;
|
||||
case 'LAST':
|
||||
var at2 = '-1';
|
||||
break;
|
||||
default:
|
||||
throw 'Unhandled option (lists_getSublist)';
|
||||
}
|
||||
var code = list + '[' + at1 + ' : ' + at2 + ']';
|
||||
return [code, generator.ORDER_MEMBER];
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mixly/python",
|
||||
"version": "1.1.0",
|
||||
"version": "1.2.0",
|
||||
"description": "适用于mixly的python模块",
|
||||
"scripts": {
|
||||
"build:dev": "webpack --config=webpack.dev.js",
|
||||
|
||||
@@ -13,10 +13,10 @@ export const time_localtime = function (_, generator) {
|
||||
var op = this.getFieldValue('op');
|
||||
var code = "time.localtime()[" + op + "]";
|
||||
switch (op) {
|
||||
case "all":
|
||||
var code1 = "time.localtime()";
|
||||
return [code1, generator.ORDER_ASSIGNMENT];
|
||||
default:
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "all":
|
||||
var code1 = "time.localtime()";
|
||||
return [code1, generator.ORDER_ASSIGNMENT];
|
||||
default:
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mixly/python-mixpy",
|
||||
"version": "1.2.0",
|
||||
"version": "1.3.0",
|
||||
"description": "适用于mixly的python mixpy模块",
|
||||
"scripts": {
|
||||
"build:dev": "webpack --config=webpack.dev.js",
|
||||
|
||||
@@ -13,10 +13,10 @@ export const time_localtime = function (_, generator) {
|
||||
var op = this.getFieldValue('op');
|
||||
var code = "time.localtime()[" + op + "]";
|
||||
switch (op) {
|
||||
case "all":
|
||||
var code1 = "time.localtime()";
|
||||
return [code1, generator.ORDER_ASSIGNMENT];
|
||||
default:
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
case "all":
|
||||
var code1 = "time.localtime()";
|
||||
return [code1, generator.ORDER_ASSIGNMENT];
|
||||
default:
|
||||
return [code, generator.ORDER_ASSIGNMENT];
|
||||
}
|
||||
}
|
||||
@@ -382,103 +382,103 @@ export default class PyEngine {
|
||||
};
|
||||
}
|
||||
switch (value.constructor) {
|
||||
case Sk.builtin.func:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "Function",
|
||||
"value": (value.func_code.co_varnames !== undefined ?
|
||||
" Arguments: " + value.func_code.co_varnames.join(", ") :
|
||||
' No arguments')
|
||||
};
|
||||
case Sk.builtin.module: return null;
|
||||
case Sk.builtin.str:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "String",
|
||||
"value": value.$r().v
|
||||
};
|
||||
case Sk.builtin.none:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "None",
|
||||
"value": "None"
|
||||
};
|
||||
case Sk.builtin.bool:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "Boolean",
|
||||
"value": value.$r().v
|
||||
};
|
||||
case Sk.builtin.nmber:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "int" == value.skType ? "Integer" : "Float",
|
||||
"value": value.$r().v
|
||||
};
|
||||
case Sk.builtin.int_:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "Integer",
|
||||
"value": value.$r().v
|
||||
};
|
||||
case Sk.builtin.float_:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "Float",
|
||||
"value": value.$r().v
|
||||
};
|
||||
case Sk.builtin.tuple:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "Tuple",
|
||||
"value": value.$r().v
|
||||
};
|
||||
case Sk.builtin.list:
|
||||
if (value.v.length <= 20) {
|
||||
case Sk.builtin.func:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "Function",
|
||||
"value": (value.func_code.co_varnames !== undefined ?
|
||||
" Arguments: " + value.func_code.co_varnames.join(", ") :
|
||||
' No arguments')
|
||||
};
|
||||
case Sk.builtin.module: return null;
|
||||
case Sk.builtin.str:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "String",
|
||||
"value": value.$r().v
|
||||
};
|
||||
case Sk.builtin.none:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "None",
|
||||
"value": "None"
|
||||
};
|
||||
case Sk.builtin.bool:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "Boolean",
|
||||
"value": value.$r().v
|
||||
};
|
||||
case Sk.builtin.nmber:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "int" == value.skType ? "Integer" : "Float",
|
||||
"value": value.$r().v
|
||||
};
|
||||
case Sk.builtin.int_:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "Integer",
|
||||
"value": value.$r().v
|
||||
};
|
||||
case Sk.builtin.float_:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "Float",
|
||||
"value": value.$r().v
|
||||
};
|
||||
case Sk.builtin.tuple:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "Tuple",
|
||||
"value": value.$r().v
|
||||
};
|
||||
case Sk.builtin.list:
|
||||
if (value.v.length <= 20) {
|
||||
return {
|
||||
'name': property,
|
||||
'type': "List",
|
||||
"value": value.$r().v,
|
||||
'exact_value': value
|
||||
};
|
||||
}
|
||||
return {
|
||||
'name': property,
|
||||
'type': "List",
|
||||
"value": value.$r().v,
|
||||
'exact_value': value
|
||||
"value": "[... " + value.v.length + " elements ...]",
|
||||
"exact_value": value
|
||||
};
|
||||
}
|
||||
return {
|
||||
'name': property,
|
||||
'type': "List",
|
||||
"value": "[... " + value.v.length + " elements ...]",
|
||||
"exact_value": value
|
||||
};
|
||||
|
||||
case Sk.builtin.dict:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "Dictionary",
|
||||
"value": value.$r().v
|
||||
};
|
||||
case Number:
|
||||
return {
|
||||
'name': property,
|
||||
'type': value % 1 === 0 ? "Integer" : "Float",
|
||||
"value": value
|
||||
};
|
||||
case String:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "String",
|
||||
"value": value
|
||||
};
|
||||
case Boolean:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "Boolean",
|
||||
"value": (value ? "True" : "False")
|
||||
};
|
||||
default:
|
||||
return {
|
||||
'name': property,
|
||||
'type': value.tp$name == undefined ? value : value.tp$name,
|
||||
"value": value.$r == undefined ? value : value.$r().v
|
||||
};
|
||||
case Sk.builtin.dict:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "Dictionary",
|
||||
"value": value.$r().v
|
||||
};
|
||||
case Number:
|
||||
return {
|
||||
'name': property,
|
||||
'type': value % 1 === 0 ? "Integer" : "Float",
|
||||
"value": value
|
||||
};
|
||||
case String:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "String",
|
||||
"value": value
|
||||
};
|
||||
case Boolean:
|
||||
return {
|
||||
'name': property,
|
||||
'type': "Boolean",
|
||||
"value": (value ? "True" : "False")
|
||||
};
|
||||
default:
|
||||
return {
|
||||
'name': property,
|
||||
'type': value.tp$name == undefined ? value : value.tp$name,
|
||||
"value": value.$r == undefined ? value : value.$r().v
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mixly/python-skulpt",
|
||||
"version": "1.2.0",
|
||||
"version": "1.3.0",
|
||||
"description": "适用于mixly的python skulpt模块",
|
||||
"scripts": {
|
||||
"build:dev": "webpack --config=webpack.dev.js",
|
||||
|
||||
@@ -85,18 +85,18 @@ export const is_Related_Path = function (block, generator) {
|
||||
generator.definitions_.import_blocklygame = "import blocklygame";
|
||||
var dropdown_Direction = this.getFieldValue('Direction');
|
||||
switch (dropdown_Direction) {
|
||||
case 'f':
|
||||
dropdown_Direction = 0;
|
||||
break;
|
||||
case "b":
|
||||
dropdown_Direction = 2;
|
||||
break;
|
||||
case "r":
|
||||
dropdown_Direction = 1;
|
||||
break;
|
||||
case "l":
|
||||
dropdown_Direction = 3;
|
||||
break;
|
||||
case 'f':
|
||||
dropdown_Direction = 0;
|
||||
break;
|
||||
case "b":
|
||||
dropdown_Direction = 2;
|
||||
break;
|
||||
case "r":
|
||||
dropdown_Direction = 1;
|
||||
break;
|
||||
case "l":
|
||||
dropdown_Direction = 3;
|
||||
break;
|
||||
}
|
||||
var code = 'actor.isPath(' + "(actor.direction+" + dropdown_Direction + ")%4" + ",'block_id=" + block.id + '\')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
@@ -183,18 +183,18 @@ export const is_Related_Barrier = function (block, generator) {
|
||||
generator.definitions_.import_blocklygame = "import blocklygame";
|
||||
var dropdown_Direction = this.getFieldValue('direction');
|
||||
switch (dropdown_Direction) {
|
||||
case 'f':
|
||||
dropdown_Direction = 0;
|
||||
break;
|
||||
case "b":
|
||||
dropdown_Direction = 2;
|
||||
break;
|
||||
case "r":
|
||||
dropdown_Direction = 1;
|
||||
break;
|
||||
case "l":
|
||||
dropdown_Direction = 3;
|
||||
break;
|
||||
case 'f':
|
||||
dropdown_Direction = 0;
|
||||
break;
|
||||
case "b":
|
||||
dropdown_Direction = 2;
|
||||
break;
|
||||
case "r":
|
||||
dropdown_Direction = 1;
|
||||
break;
|
||||
case "l":
|
||||
dropdown_Direction = 3;
|
||||
break;
|
||||
}
|
||||
|
||||
var code = 'actor.isBarrier(' + "(actor.direction+" + dropdown_Direction + ")%4" + ",'block_id=" + block.id + '\')';
|
||||
|
||||
Reference in New Issue
Block a user