初始化提交

This commit is contained in:
王立帮
2024-07-19 10:16:00 +08:00
parent 4c7b571f20
commit 4a2d56dcc4
7084 changed files with 741212 additions and 63 deletions

View File

@@ -0,0 +1,430 @@
import * as Blockly from 'blockly/core';
export const series_create = function (_, generator) {
generator.definitions_.import_pandas = "import pandas";
var varName1 = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
Blockly.Variables.NAME_TYPE);
var code = varName + ' = ' + 'pandas.Series(' + varName1 + ')\n';
return code;
}
export const series_create_from_index = function (_, generator) {
generator.definitions_.import_pandas = "import pandas";
var varName1 = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
var varName2 = generator.valueToCode(this, 'INDEX', generator.ORDER_ATOMIC) || '\'\'';
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
Blockly.Variables.NAME_TYPE);
var code = varName + ' = ' + 'pandas.Series(' + varName1 + ',' + 'index=' + varName2 + ')\n';
return code;
}
export const dataframe_create = function (_, generator) {
generator.definitions_.import_pandas = "import pandas";
var varName1 = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
Blockly.Variables.NAME_TYPE);
var code = varName + ' = ' + 'pandas.DataFrame(' + varName1 + ')\n';
return code;
}
export const dataframe_create_from_index = function (_, generator) {
generator.definitions_.import_pandas = "import pandas";
var varName1 = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
var varName2 = generator.valueToCode(this, 'INDEX_COLUMN', generator.ORDER_ATOMIC) || '\'\'';
var varName3 = generator.valueToCode(this, 'INDEX_RAW', generator.ORDER_ATOMIC) || '\'\'';
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
Blockly.Variables.NAME_TYPE);
var code = varName + ' = ' + 'pandas.DataFrame(' + varName1 + ',' + 'columns=' + varName2 + ',index=' + varName3 + ')\n';
return code;
}
export const dataframe_create_from_one_index = function (_, generator) {
generator.definitions_.import_pandas = "import pandas";
var name = this.getFieldValue('COLUMN_RAW');
var varName1 = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
var varName2 = generator.valueToCode(this, 'INDEX', generator.ORDER_ATOMIC) || '\'\'';
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
Blockly.Variables.NAME_TYPE);
var code = varName + ' = ' + 'pandas.DataFrame(' + varName1 + ',' + name + '=' + varName2 + ')\n';
return code;
}
export const series_create_from_text = function (_, generator) {
generator.definitions_.import_pandas = "import pandas";
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
Blockly.Variables.NAME_TYPE);
var text = this.getFieldValue('TEXT');
var code = varName + ' = ' + 'pandas.Series([' + text + '])\n';
return code;
}
export const series_index_value = function (_, generator) {
generator.definitions_.import_pandas = "import pandas";
var varName = generator.valueToCode(this, 'SERIES', generator.ORDER_ASSIGNMENT) || '0';
var name = this.getFieldValue('INDEX_VALUE');
var code = varName + '.' + name;
return [code, generator.ORDER_ATOMIC];
}
export const series_get_num = function (_, generator) {
// Indexing into a list is the same as indexing into a string.
var varName = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
var argument0 = generator.valueToCode(this, 'AT',
generator.ORDER_ADDITIVE) || '1';
var code = varName + '[' + argument0 + ']';
return [code, generator.ORDER_ATOMIC];
}
export const pl_show = function (_, generator) {
generator.definitions_.import_pylab = "import pylab";
var code = 'pylab.show()\n';
return code;
}
export const pl_axes = function (_, generator) {
generator.definitions_.import_pylab = "import pylab";
var code = 'pylab.axes(aspect=1)\n';
return code;
}
export const pl_plot_easy = function (_, generator) {
generator.definitions_.import_pylab = "import pylab";
var varName = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
var code = 'pylab.plot(' + varName + ")\n";
return code;
}
export const pl_plot = function (_, generator) {
generator.definitions_.import_pylab = "import pylab";
var line = this.getFieldValue('LINE');
var color = this.getFieldValue('COLOR');
var dot = this.getFieldValue('DOT');
var varName = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
var code = 'pylab.plot(' + varName + ",'" + dot + line + color + "')\n";
return code;
}
export const pl_legend = function (_, generator) {
generator.definitions_.import_pylab = "import pylab";
generator.definitions_.import_matplotlib_font_manager = "import matplotlib.font_manager";
var code = 'pylab.legend(' + 'prop=matplotlib.font_manager.FontProperties("' + "STSong" + '")' + ')\n';
return code;
}
export const pl_title = function (_, generator) {
generator.definitions_.import_pylab = "import pylab";
var a = generator.valueToCode(this, 'TITLE', generator.ORDER_ATOMIC);
var code = 'pylab.title(' + a + ', fontproperties = "' + "STSong" + '")\n';
return code;
}
export const pl_label = function (_, generator) {
generator.definitions_.import_pylab = "import pylab";
var direction = this.getFieldValue('DIR');
var a = generator.valueToCode(this, 'LABEL', generator.ORDER_ATOMIC);
var code = 'pylab.' + direction + 'label(' + a + ', fontproperties = "' + "STSong" + '")\n';
return code;
}
export const array_create = function (_, generator) {
generator.definitions_.import_numpy = "import numpy";
var from = generator.valueToCode(this, "FROM", generator.ORDER_NONE) || "0";
var end = generator.valueToCode(this, "TO", generator.ORDER_NONE) || "0";
var step = generator.valueToCode(this, "STEP", generator.ORDER_NONE) || "1";
var code = "numpy.arange(" + from + ", " + end + ", " + step + ")";
return [code, generator.ORDER_ATOMIC];
}
export const pl_plot_bar = function (_, generator) {
generator.definitions_.import_pylab = "import pylab";
var direction = this.getFieldValue('DIR');
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
var code = 'pylab.' + direction + '(' + a + ',' + b + ")\n";
return code;
}
export const pl_plot_scatter = function (_, generator) {
generator.definitions_.import_pylab = "import pylab";
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
var s = generator.valueToCode(this, 'S', generator.ORDER_ATOMIC) || '\'\'';
var color = this.getFieldValue('COLOR');
var dot = this.getFieldValue('DOT');
var tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC) || '\'\'';
var code = 'pylab.scatter(' + a + ',' + b + ",s=" + s + ",c='" + color + "',marker='" + dot + "',label=" + tag + ")\n";
return code;
}
export const pl_plot_xy = function (_, generator) {
generator.definitions_.import_pylab = "import pylab";
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
var line = this.getFieldValue('LINE');
var color = this.getFieldValue('COLOR');
var dot = this.getFieldValue('DOT');
var tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC) || '\'\'';
var code = 'pylab.plot(' + a + ',' + b + ",'" + dot + line + color + "'" + ',label=' + tag + ")\n";
return code;
}
export const pl_bar = function (_, generator) {
generator.definitions_.import_pylab = "import pylab";
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
var tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC) || '\'\'';
var width = generator.valueToCode(this, 'WIDTH', generator.ORDER_RELATIONAL) || '0';
var color = this.getFieldValue('COLOR')
var align = this.getFieldValue('ALIGN');
var code = 'pylab.bar(' + a + ',' + b + ',align="' + align + '",color="' + color + '",width=' + width + ',label=' + tag + ")\n";
return code;
}
export const pl_pie = function (_, generator) {
generator.definitions_.import_pylab = "import pylab";
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
var explode = generator.valueToCode(this, 'EXPLODE', generator.ORDER_ATOMIC) || '\'\'';
var shadow = this.getFieldValue('SHADOW');
var autopct = this.getFieldValue('autopct');
if (autopct != 'None') { autopct = "'" + autopct + "'" }
var code = 'pylab.pie(' + a + ',explode=' + explode + ',labels=' + b + ',autopct=' + autopct + ',shadow=' + shadow + ")\n";
return code;
}
export const pl_hist = function (_, generator) {
generator.definitions_.import_pylab = "import pylab";
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
var code = 'pylab.hist(' + a + ',' + b + ")\n";
return code;
}
export const pl_ticks = function (_, generator) {
generator.definitions_.import_pylab = "import pylab";
var direction = this.getFieldValue('DIR');
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
var code = 'pylab.' + direction + 'ticks(' + a + ',' + b + ",fontproperties = '" + "STSong" + "')\n";
return code;
}
export const numpy_trig = function (_, generator) {
generator.definitions_.import_numpy = "import numpy";
var argument0 = generator.valueToCode(this, 'NUM', generator.ORDER_NONE) || '0';
var operator = this.getFieldValue('OP');
var code = "";
code = "numpy." + operator + '(' + argument0 + ')';
return [code, generator.ORDER_ATOMIC];
}
export const pl_subplot = function (_, generator) {
generator.definitions_.import_numpy = "import numpy";
var from = generator.valueToCode(this, "VET", generator.ORDER_NONE) || "0";
var end = generator.valueToCode(this, "HOR", generator.ORDER_NONE) || "0";
var step = generator.valueToCode(this, "NUM", generator.ORDER_NONE) || "0";
var code = "pylab.subplot(" + from + ", " + end + ", " + step + ")\n";
return code
}
export const pandas_readcsv = function (_, generator) {
// For each loop.
generator.definitions_.import_pandas = "import pandas";
var fn = generator.valueToCode(this, 'FILENAME', generator.ORDER_ATOMIC);
var mode = this.getFieldValue('MODE');
var code = 'pandas.read_csv(' + fn + ', header=' + mode + ')\n';
return [code, generator.ORDER_ATOMIC];
}
export const dataframe_get = function (_, generator) {
var mode = this.getFieldValue('MODE');
var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0';
var text = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT);
if (mode == "column") {
var code = varName + "[" + text + "]";
} else if (mode == 'raw') {
var code = varName + ".loc[" + text + "]";
}
return [code, generator.ORDER_ATOMIC];
}
export const pl_savefig = function (_, generator) {
generator.definitions_.import_pylab = "import pylab";
var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);
var code = "pylab.savefig(" + file + ")\n";
return code;
}
export const pl_text = function (_, generator) {
generator.definitions_.import_numpy = "import numpy";
var from = generator.valueToCode(this, "VET", generator.ORDER_NONE) || "0";
var end = generator.valueToCode(this, "HOR", generator.ORDER_NONE) || "0";
var step = generator.valueToCode(this, "NUM", generator.ORDER_NONE) || "0";
var halign = this.getFieldValue('HALIGN');
var valign = this.getFieldValue('VALIGN');
var fontnum = generator.valueToCode(this, 'FONTNUM', generator.ORDER_ASSIGNMENT) || '0';
var code = "pylab.text(" + from + ", " + end + ", " + step + ", ha='" + halign + "', va='" + valign + "', fontsize=" + fontnum + ")\n";
return code
}
export const array_toarray = function (_, generator) {
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0';
generator.definitions_['import_numpy'] = 'import numpy';
var code = 'numpy.array(' + str + ')';
return [code, generator.ORDER_ATOMIC];
}
export const plot_show = function (_, generator) {
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var code = 'matplotlib.pyplot.show()\n';
return code;
}
export const plot_axes = function (_, generator) {
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var code = 'matplotlib.pyplot.axes(aspect=1)\n';
return code;
}
export const plot_plot_easy = function (_, generator) {
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var varName = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
var code = 'matplotlib.pyplot.plot(' + varName + ")\n";
return code;
}
export const plot_plot = function (_, generator) {
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var line = this.getFieldValue('LINE');
var color = this.getFieldValue('COLOR');
var dot = this.getFieldValue('DOT');
var varName = generator.valueToCode(this, 'SER', generator.ORDER_ASSIGNMENT) || '0';
var code = 'matplotlib.pyplot.plot(' + varName + ",'" + dot + line + color + "')\n";
return code;
}
export const plot_legend = function (_, generator) {
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
generator.definitions_.import_matplotlib_font_manager = "import matplotlib.font_manager";
var code = 'matplotlib.pyplot.legend(' + 'prop=matplotlib.font_manager.FontProperties("' + "STSong" + '")' + ')\n';
return code;
}
export const plot_title = function (_, generator) {
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var a = generator.valueToCode(this, 'TITLE', generator.ORDER_ATOMIC);
var code = 'matplotlib.pyplot.title(' + a + ')\n';
return code;
}
export const plot_label = function (_, generator) {
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var direction = this.getFieldValue('DIR');
var a = generator.valueToCode(this, 'LABEL', generator.ORDER_ATOMIC);
var code = 'matplotlib.pyplot.' + direction + 'label(' + a + ')\n';
return code;
}
export const plot_plot_bar = function (_, generator) {
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var direction = this.getFieldValue('DIR');
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
var code = 'matplotlib.pyplot.' + direction + '(' + a + ',' + b + ")\n";
return code;
}
export const plot_plot_scatter = function (_, generator) {
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
var s = generator.valueToCode(this, 'S', generator.ORDER_ATOMIC) || '\'\'';
var color = this.getFieldValue('COLOR');
var dot = this.getFieldValue('DOT');
var tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC) || '\'\'';
var code = 'matplotlib.pyplot.scatter(' + a + ',' + b + ",s=" + s + ",color='" + color + "',marker='" + dot + "',label=" + tag + ")\n";
return code;
}
export const plot_plot_xy = function (_, generator) {
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
var line = this.getFieldValue('LINE');
var color = this.getFieldValue('COLOR');
var dot = this.getFieldValue('DOT');
var tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC) || '\'\'';
var code = 'matplotlib.pyplot.plot(' + a + ',' + b + ",'" + dot + line + color + "'" + ',label=' + tag + ")\n";
return code;
}
export const plot_bar = function (_, generator) {
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
var tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC) || '\'\'';
var width = generator.valueToCode(this, 'WIDTH', generator.ORDER_RELATIONAL) || '0';
var color = this.getFieldValue('COLOR')
var align = this.getFieldValue('ALIGN');
var code = 'matplotlib.pyplot.bar(' + a + ',' + b + ',align="' + align + '",color="' + color + '",width=' + width + ',label=' + tag + ")\n";
return code;
}
export const plot_pie = function (_, generator) {
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
var explode = generator.valueToCode(this, 'EXPLODE', generator.ORDER_ATOMIC) || '\'\'';
var shadow = this.getFieldValue('SHADOW');
var autopct = this.getFieldValue('autopct');
if (autopct != 'None') { autopct = "'" + autopct + "'" }
var code = 'matplotlib.pyplot.pie(' + a + ',explode=' + explode + ',labels=' + b + ',autopct=' + autopct + ',shadow=' + shadow + ")\n";
return code;
}
export const plot_hist = function (_, generator) {
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
var code = 'matplotlib.pyplot.hist(' + a + ',' + b + ")\n";
return code;
}
export const plot_ticks = function (_, generator) {
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var direction = this.getFieldValue('DIR');
var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\'';
var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\'';
var code = 'matplotlib.pyplot.' + direction + 'ticks(' + a + ',' + b + ",fontproperties = '" + "STSong" + "')\n";
return code;
}
export const plot_subplot = function (_, generator) {
generator.definitions_.import_numpy = "import numpy";
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var from = generator.valueToCode(this, "VET", generator.ORDER_NONE) || "0";
var end = generator.valueToCode(this, "HOR", generator.ORDER_NONE) || "0";
var step = generator.valueToCode(this, "NUM", generator.ORDER_NONE) || "0";
var code = "matplotlib.pyplot.subplot(" + from + ", " + end + ", " + step + ")\n";
return code
}
export const plot_savefig = function (_, generator) {
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var code = "matplotlib.pyplot.savefig('1.png')\n";
return code;
}
export const plot_text = function (_, generator) {
generator.definitions_.import_numpy = "import numpy";
generator.definitions_.import_matplotlib_pyplot = "import matplotlib.pyplot";
var from = generator.valueToCode(this, "VET", generator.ORDER_NONE) || "0";
var end = generator.valueToCode(this, "HOR", generator.ORDER_NONE) || "0";
var step = generator.valueToCode(this, "NUM", generator.ORDER_NONE) || "0";
var halign = this.getFieldValue('HALIGN');
var valign = this.getFieldValue('VALIGN');
var fontnum = generator.valueToCode(this, 'FONTNUM', generator.ORDER_ASSIGNMENT) || '0';
var code = "matplotlib.pyplot.text(" + from + ", " + end + ", " + step + ", ha='" + halign + "', va='" + valign + "', fontsize=" + fontnum + ")\n";
return code
}

View File

@@ -0,0 +1,44 @@
export const inout_input = function (_, generator) {
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
return ['input(' + str + ')', generator.ORDER_ATOMIC];
}
export const inout_print = function (_, generator) {
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
var code = "print(" + str + ")\n";
return code;
}
export const inout_print_inline = function (_, generator) {
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
var code = "print(" + str + ',end ="")\n';
return code;
}
export const inout_print_end = function (_, generator) {
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
var end = generator.valueToCode(this, 'END', generator.ORDER_ATOMIC) || '""';
var code = "print(" + str + ',end =' + end + ')\n';
return code;
}
export const inout_type_input = function (_, generator) {
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
var type = this.getFieldValue('DIR');
if (type == 'str') { var code = 'input(' + str + ')' }
else if (type == 'int') { var code = 'int(input(' + str + '))' }
else if (type == 'float') { var code = 'float(input(' + str + '))' }
//var code=varname+"." + type + "(" + ')';
return [code, generator.ORDER_ATOMIC];
}
export const inout_print_many = function (_, generator) {
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;
}
var code = 'print(' + code.join(', ') + ')\n';
return code;
}

View File

@@ -0,0 +1,114 @@
export const iot_mixio_connect = function (_, generator) {
generator.definitions_['import_mixiot'] = "import mixiot";
var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);
var username = generator.valueToCode(this, 'USERNAME', generator.ORDER_ATOMIC);
var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);
var project = generator.valueToCode(this, 'PROJECT', generator.ORDER_ATOMIC);
var timestamp = Math.round(new Date()).toString();
//var subscribe = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT) || '0';
var a = "f'python-mqtt-" + username.replace("'", "").replace("'", "") + timestamp.replace("'", "").replace("'", "") + "'";
var code = 'mqtt_client = mixiot.MixIO(' + server + ', 8084 ,' + username + ', ' + password + ', ' + project + ',' + a + ')\n';
return code;
}
export const IOT_MIXIO_PUBLISH = function (_, generator) {
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
var msg = generator.valueToCode(this, 'MSG', generator.ORDER_ATOMIC);
generator.definitions_['import_mixiot'] = "import mixiot";
var code = 'mqtt_client.publish(' + topic + ', ' + msg + ')\n';
return code;
}
export const IOT_MIXIO_SUBSCRIBE = function (_, generator) {
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC);
generator.definitions_['import_mixiot'] = "import mixiot";
var code = 'mqtt_client.subscribe(' + topic + ',' + method + ')\n';
return code;
}
export const IOT_MIXIO_UNSUBSCRIBE = function (_, generator) {
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
generator.definitions_['import_mixiot'] = "import mixiot";
var code = 'mqtt_client.unsubscribe(' + topic + ')\n';
return code;
}
export const iot_mixio_disconnect = function (_, generator) {
generator.definitions_['import_mixiot'] = "import mixiot";
var code = 'mqtt_client.disconnect()\n';
return code;
}
export const iot_mixio_connect_only = function (_, generator) {
generator.definitions_['import_mixiot'] = "import mixiot";
var code = 'mqtt_client.connect()\n';
return code;
}
export const iot_mixio_check = function (_, generator) {
generator.definitions_['import_mixiot'] = "import mixiot";
var code = 'mqtt_client.check_msg()\n';
return code;
}
export const iot_mixio_format_topic = function (_, generator) {
var code = 'mqtt_client.decode("utf-8").split("/")[-1]';
return [code, generator.ORDER_ATOMIC];
}
export const iot_mixio_format_msg = function (_, generator) {
var code = 'mqtt_client.decode("utf-8")';
return [code, generator.ORDER_ATOMIC];
}
export const IOT_FORMATTING = function (_, generator) {
generator.definitions_['import_mixpy'] = "import mixpy";
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = 'mixpy.format_content(' + v + ', mqtt_client.client_id)';
return [code, generator.ORDER_ATOMIC];
}
export const IOT_FORMAT_STRING = function (_, generator) {
generator.definitions_['import_mixpy'] = "import mixpy";
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = 'mixpy.format_str(' + v + ')';
return [code, generator.ORDER_ATOMIC];
}
export const IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE = function (_, generator) {
generator.definitions_['import_mixiot'] = "import mixiot";
var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);
var share_code = generator.valueToCode(this, 'KEY', generator.ORDER_ATOMIC);
var timestamp = Math.round(new Date()).toString();
var a = "f'python-mqtt-" + share_code.replace("'", "").replace("'", "") + timestamp.replace("'", "").replace("'", "") + "'";
var code = 'mqtt_client = mixiot.MixIO_init_by_mixly_key(' + server + ', 8084 ,' + share_code + ',' + a + ')\n';
return code;
}
export const iot_mixly_key = function (_, generator) {
var code = this.getFieldValue('VISITOR_ID');
return [code, generator.ORDER_ATOMIC];
}
export const IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE = function (_, generator) {
generator.definitions_['import_mixiot'] = "import mixiot";
generator.definitions_['import_time'] = 'import time';
var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);
var mixly_code = generator.valueToCode(this, 'KEY', generator.ORDER_ATOMIC);
var timestamp = Math.round(new Date()).toString();
var a = "f'python-mqtt-" + mixly_code.replace("'", "").replace("'", "") + timestamp.replace("'", "").replace("'", "") + "'";
var code = 'mqtt_client = mixiot.MixIO_init_by_share_key(' + server + ', 8084 ,' + mixly_code + ',' + a + ')\ntime.sleep(2)\n';
return code;
}
export const IOT_EMQX_PING = function (_, generator) {
generator.definitions_['import_mixiot'] = "import mixiot";
var code = 'mqtt_client.pingSync()';
return [code, generator.ORDER_ATOMIC];
}
export const iot_mixly_key_py = function (_, generator) {
var code = this.getFieldValue('VISITOR_ID');
return ["'" + code + "'", generator.ORDER_ATOMIC];
}

View File

@@ -0,0 +1,22 @@
export const controls_millis = function (_, generator) {
generator.definitions_.import_time = "import time";
var code = 'time.time()';
return [code, generator.ORDER_ATOMIC];
}
export const controls_end_program = function () {
return 'exit()\n';
}
export const time_localtime = function (_, generator) {
generator.definitions_.import_time = "import time";
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];
}
}

View File

@@ -0,0 +1,384 @@
import * as Blockly from 'blockly/core';
export const turtle_create = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
Blockly.Variables.NAME_TYPE);
//var size=window.parseFloat(this.getFieldValue('SIZE'));
//generator.definitions_['var_declare'+varName] = varName+'= '+ 'turtle.Turtle()\n';
var code = varName + ' = ' + 'turtle.Turtle()\n';
return code;
// return '';
}
export const turtle_done = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var code = 'turtle.done()\n';
return code;
}
export const turtle_exitonclick = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var code = 'turtle.exitonclick()\n';
return code;
}
export const turtle_move = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var direction = this.getFieldValue('DIR');
var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = varName + "." + direction + "(" + num + ')\n';
return code;
}
export const turtle_rotate = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var direction = this.getFieldValue('DIR');
var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = varName + "." + direction + "(" + num + ')\n';
return code;
}
export const turtle_setheading = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
var code = varName + '.setheading(' + argument + ')\n';
return code;
}
export const turtle_screen_delay = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
var code = varName + '.screen.delay(' + argument + ')\n';
return code;
}
export const turtle_goto = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var xnum = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
var ynum = generator.valueToCode(this, 'val', generator.ORDER_ASSIGNMENT) || '0';
var code = varName + '.goto(' + xnum + ',' + ynum + ')\n';
return code;
}
export const turtle_pos_shape = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var get = this.getFieldValue('DIR');
var code = varName + '.' + get + '()';
return [code, generator.ORDER_ATOMIC];
}
export const turtle_clear = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var clear = this.getFieldValue('DIR');
var code = varName + "." + clear + "(" + ')\n';
return code;
}
export const turtle_penup = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var penup = this.getFieldValue('DIR');
var code = varName + "." + penup + "(" + ')\n';
return code;
}
export const turtle_fill = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var penup = this.getFieldValue('DIR');
var code = varName + "." + penup + "_fill(" + ')\n';
return code;
}
export const turtle_size_speed = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = this.getFieldValue('TUR');
var size = this.getFieldValue('DIR');
var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = varName + "." + size + "(" + num + ')\n';
return code;
}
export const turtle_size = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
var code = varName + '.pensize(' + argument + ')\n';
return code;
}
export const turtle_speed = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
var code = varName + '.speed(' + argument + ')\n';
return code;
}
export const turtle_circle = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var circle = this.getFieldValue('DIR');
var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = varName + "." + circle + "(" + num + ')\n';
return code;
}
export const turtle_setxy = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var xy = this.getFieldValue('DIR');
var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = varName + ".set" + xy + "(" + num + ')\n';
return code;
}
export const turtle_circle_advanced = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = varName + ".circle (" + num + ',' + argument + ')\n';
return code;
}
export const turtle_visible = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var visible = this.getFieldValue('DIR');
var code = varName + "." + visible + "(" + ')\n';
return code;
}
export const turtle_bgcolor = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var color = this.getFieldValue('FIELDNAME');
var code = "turtle." + 'bgcolor' + '("' + color + '")\n';
return code;
}
export const turtle_pencolor = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var color = this.getFieldValue('FIELDNAME');
var code = varName + "." + 'pencolor' + '("' + color + '")\n';
return code;
}
export const turtle_fillcolor = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var color = this.getFieldValue('FIELDNAME');
var code = varName + "." + 'fillcolor' + '("' + color + '")\n';
return code;
}
export const turtle_clone = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var code = varName + '.clone()';
return [code, generator.ORDER_ATOMIC];
}
export const turtle_bgcolor_hex = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = "turtle." + 'bgcolor' + '(' + color + ')\n';
return code;
}
export const turtle_pencolor_hex = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
//var color = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
var code = varName + "." + 'pencolor' + '(' + color + ')\n';
return code;
}
export const turtle_fillcolor_hex = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = varName + "." + 'fillcolor' + '(' + color + ')\n';
return code;
}
export const turtle_bgcolor_hex_new = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = "turtle." + 'bgcolor' + '(' + color + ')\n';
return code;
}
export const turtle_pencolor_hex_new = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
//var color = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
var code = varName + "." + 'pencolor' + '(' + color + ')\n';
return code;
}
export const turtle_fillcolor_hex_new = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = varName + "." + 'fillcolor' + '(' + color + ')\n';
return code;
}
export const turtle_color_hex = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var color1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC);
var color2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC);
var code = varName + "." + 'color' + '(' + color1 + ',' + color2 + ')\n';
return code;
}
export const turtle_color = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var color1 = this.getFieldValue('FIELDNAME');
var color2 = this.getFieldValue('FIELDNAME2');
var code = varName + "." + 'color' + '("' + color1 + '","' + color2 + '")\n';
return code;
}
export const turtle_shape = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var direction = this.getFieldValue('DIR');
var code = varName + ".shape('" + direction + "')\n";
return code;
}
export const turtle_shapesize = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var argument1 = generator.valueToCode(this, 'WID', generator.ORDER_ASSIGNMENT) || '0';
var argument2 = generator.valueToCode(this, 'LEN', generator.ORDER_ASSIGNMENT) || '0';
var argument3 = generator.valueToCode(this, 'OUTLINE', generator.ORDER_ASSIGNMENT) || '0';
var code = varName + ".shapesize(" + argument1 + ',' + argument2 + ',' + argument3 + ')\n';
return code;
}
export const turtle_textinput = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var title = generator.valueToCode(this, 'TITLE', generator.ORDER_ATOMIC);
var prompt = generator.valueToCode(this, 'PROMPT', generator.ORDER_ATOMIC);
var code = "turtle.textinput" + '(' + title + ',' + prompt + ')';
return [code, generator.ORDER_ATOMIC];
}
export const turtle_numinput = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var title = generator.valueToCode(this, 'TITLE', generator.ORDER_ATOMIC);
var prompt = generator.valueToCode(this, 'PROMPT', generator.ORDER_ATOMIC);
var data = generator.valueToCode(this, 'DEFAULT', generator.ORDER_ATOMIC);
var min = generator.valueToCode(this, 'MIN', generator.ORDER_ATOMIC);
var max = generator.valueToCode(this, 'MAX', generator.ORDER_ATOMIC);
var code = "turtle.numinput" + '(' + title + ',' + prompt + "," + data + ',minval = ' + min + ',maxval = ' + max + ')';
return [code, generator.ORDER_ATOMIC];
}
export const turtle_write = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var write = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
//var color = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';
var code = varName + "." + 'write' + '(' + write + ')\n';
return code;
}
export const turtle_write_format = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var move = this.getFieldValue('MOVE');
var align = this.getFieldValue('ALIGN');
var fontname = generator.valueToCode(this, 'FONTNAME', generator.ORDER_ATOMIC);
var fontnum = generator.valueToCode(this, 'FONTNUM', generator.ORDER_ASSIGNMENT) || '0';
var fonttype = this.getFieldValue('FONTTYPE');
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var write = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = varName + "." + 'write' + '(' + write + ',' + move + ',align="' + align + '",font=(' + fontname + ',' + fontnum + ',"' + fonttype + '"))\n';
return code;
}
export const turtle_write_format_skulpt = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var move = this.getFieldValue('MOVE');
var align = this.getFieldValue('ALIGN');
var fontname = generator.valueToCode(this, 'FONTNAME', generator.ORDER_ATOMIC);
var fontnum = generator.valueToCode(this, 'FONTNUM', generator.ORDER_ASSIGNMENT) || '0';
var fonttype = this.getFieldValue('FONTTYPE');
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var write = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = varName + "." + 'write' + '(' + write + ',' + move + ',align="' + align + '",font=(' + fontname + ',' + fontnum + ',"' + fonttype + '"))\n';
return code;
}
export const turtle_color_seclet = function (_, generator) {
var colour = this.getFieldValue('COLOR');
var code = '"' + colour + '"'
return [code, generator.ORDER_ATOMIC];
}
export const turtle_getscreen = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var turName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
Blockly.Variables.NAME_TYPE);
var code = varName + ' = ' + turName + '.getscreen()\n';
return code;
}
export const turtle_onkey = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var v = generator.valueToCode(this, "VAR", generator.ORDER_NONE) || "None";
var callback = generator.valueToCode(this, "callback", generator.ORDER_NONE) || "None";
var code = varName + ".onkey(" + callback + ", " + v + ")\n";
return code;
}
export const turtle_onclick = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var callback = generator.valueToCode(this, "callback", generator.ORDER_NONE) || "None";
var code = varName + ".onclick(" + callback + ")\n";
return code;
}
export const turtle_ontimer = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var v = generator.valueToCode(this, "VAR", generator.ORDER_NONE) || "None";
var callback = generator.valueToCode(this, "callback", generator.ORDER_NONE) || "None";
var code = varName + ".ontimer(" + callback + ", " + v + ")\n";
return code;
}
export const turtle_listen = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var code = varName + '.listen()\n';
return code;
}
export const turtle_screen_savefig = function (_, generator) {
generator.definitions_.import_turtle = "import turtle";
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);
var code = varName + ".getcanvas().postscript(file=" + file + ")\n";
return code;
}