初始化提交
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
export const actuator_Servo_init = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
generator.definitions_['from machine import PWM'] = 'from machine import PWM';
|
||||
generator.definitions_['from machine import Timer'] = 'from machine import Timer';
|
||||
var key = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);
|
||||
var Timer = time % 3
|
||||
var CHANNEL = parseInt(time / 3)
|
||||
var code1 = 'tim' + time + ' = Timer(Timer.TIMER' + Timer + ',Timer.CHANNEL' + CHANNEL + ', mode=Timer.MODE_PWM)\n';
|
||||
var code2 = 'pse' + key + '=PWM(tim' + time + ', freq=50, duty=2.5, pin=' + key + ')\n';
|
||||
return code1 + code2;
|
||||
}
|
||||
|
||||
export const actuator_Servo = function (_, generator) {
|
||||
generator.definitions_['from machine import PWM'] = 'from machine import PWM';
|
||||
var key = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var range = generator.valueToCode(this, 'range', generator.ORDER_ATOMIC);
|
||||
var code = "pse" + key + ".duty(" + range + "/18.0+2.5)\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_PAC9685_init = function (_, generator) {
|
||||
generator.definitions_['from servo import Servos'] = 'from servo import Servos';
|
||||
var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC);
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var code = 'servos=Servos(' + sub + ',address=' + address + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_PAC9685_Servo = function (_, generator) {
|
||||
generator.definitions_['from servo import Servos'] = 'from servo import Servos';
|
||||
var index = generator.valueToCode(this, 'index', generator.ORDER_ATOMIC);
|
||||
var range = generator.valueToCode(this, 'range', generator.ORDER_ATOMIC);
|
||||
// var index=index-1;
|
||||
var code = "servos.position((" + index + "-1)," + range + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_rgb_init = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
generator.definitions_['from modules import ws2812'] = 'from modules import ws2812';
|
||||
var SUB = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var key = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var num = generator.valueToCode(this, 'num', generator.ORDER_ATOMIC);
|
||||
var code = '' + SUB + '=ws2812(' + key + ',' + num + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_rgb_set = function (_, generator) {
|
||||
var SUB = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var R = generator.valueToCode(this, 'R', generator.ORDER_ATOMIC);
|
||||
var G = generator.valueToCode(this, 'G', generator.ORDER_ATOMIC);
|
||||
var B = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC);
|
||||
var num = generator.valueToCode(this, 'num', generator.ORDER_ATOMIC);
|
||||
var code = '' + SUB + '.set_led(' + num + ',(' + G + ',' + R + ',' + B + '))\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_rgb_display = function (_, generator) {
|
||||
var SUB = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var code = '' + SUB + '.display()\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_ms32006_init = function (_, generator) {
|
||||
generator.definitions_['import ms32006'] = 'import ms32006';
|
||||
var address = this.getFieldValue('mode')
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var sub1 = generator.valueToCode(this, 'SUB1', generator.ORDER_ATOMIC);
|
||||
var code = '' + sub + '=ms32006.MS32006(' + sub1 + ',addr=' + address + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_ms32006_dcmotor = function (_, generator) {
|
||||
generator.definitions_['import ms32006'] = 'import ms32006';
|
||||
var direction = this.getFieldValue('direction')
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);
|
||||
var code = '' + sub + '.dc_motor(' + direction + ',' + speed + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_ms32006_stepper = function (_, generator) {
|
||||
generator.definitions_['import ms32006'] = 'import ms32006';
|
||||
var mode = this.getFieldValue('mode')
|
||||
var direction = this.getFieldValue('direction')
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);
|
||||
var steps = generator.valueToCode(this, 'steps', generator.ORDER_ATOMIC);
|
||||
var code = '' + sub + '.move(' + mode + ',' + direction + ',' + speed + ',' + steps + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
//-新20211221------PID算法,暂时放此处------------------------------------------//
|
||||
export const PID_init = function (_, generator) {
|
||||
generator.definitions_['import pid'] = 'import pid';
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var P = generator.valueToCode(this, 'P', generator.ORDER_ATOMIC);
|
||||
var I = generator.valueToCode(this, 'I', generator.ORDER_ATOMIC);
|
||||
var D = generator.valueToCode(this, 'D', generator.ORDER_ATOMIC);
|
||||
var code = "" + sub + "=pid.PID(" + P + "," + I + "," + D + ")\n";
|
||||
return code;
|
||||
}
|
||||
//-新20211221------PID算法,暂时放此处------------------------------------------//
|
||||
export const PID_get_pid = function (_, generator) {
|
||||
generator.definitions_['import pid'] = 'import pid';
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var error = generator.valueToCode(this, 'error', generator.ORDER_ATOMIC);
|
||||
var scaler = generator.valueToCode(this, 'scaler', generator.ORDER_ATOMIC);
|
||||
var code = "" + sub + ".get_pid(" + error + "," + scaler + ")";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
149
boards/default_src/micropython_k210_mixgoai/generators/ai.js
Normal file
149
boards/default_src/micropython_k210_mixgoai/generators/ai.js
Normal file
@@ -0,0 +1,149 @@
|
||||
import * as Blockly from 'blockly/core';
|
||||
|
||||
export const tuple_anchor = function (_, generator) {
|
||||
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
|
||||
Blockly.Variables.NAME_TYPE);
|
||||
var text = this.getFieldValue('TEXT');
|
||||
var code = varName + '= ' + '(' + text + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const tuple_calss = function (_, generator) {
|
||||
var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),
|
||||
Blockly.Variables.NAME_TYPE);
|
||||
var text = this.getFieldValue('TEXT');
|
||||
var code = varName + '= ' + '[' + text + ']\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const KPU_load = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
generator.definitions_['import_KPU'] = 'import KPU as kpu';
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var path = generator.valueToCode(this, 'path', generator.ORDER_ATOMIC);
|
||||
var code = sub + " = kpu.load(" + path + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const KPU_load1 = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
generator.definitions_['import_KPU'] = 'import KPU as kpu';
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var path = generator.valueToCode(this, 'path', generator.ORDER_ATOMIC);
|
||||
var code = sub + " = kpu.load(" + path + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const KPU_init_yolo2 = function (_, generator) {
|
||||
generator.definitions_['import_KPU'] = 'import KPU as kpu';
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var th = generator.valueToCode(this, 'threshold', generator.ORDER_ATOMIC);
|
||||
var nm = generator.valueToCode(this, 'nms_value', generator.ORDER_ATOMIC);
|
||||
var an = generator.valueToCode(this, 'anchor_num', generator.ORDER_ATOMIC);
|
||||
var anchor = generator.valueToCode(this, 'anchor', generator.ORDER_ATOMIC);
|
||||
var code = "kpu.init_yolo2(" + sub + "," + th + "," + nm + "," + an + "," + anchor + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const KPU_run_yolo2 = function (_, generator) {
|
||||
generator.definitions_['import_KPU'] = 'import KPU as kpu';
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var img = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = "kpu.run_yolo2(" + sub + "," + img + ")";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const KPU_forward = function (_, generator) {
|
||||
generator.definitions_['import_KPU'] = 'import KPU as kpu';
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var img = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = "kpu.forward(" + sub + "," + img + ")[:]";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const KPU_analysis = function (_, generator) {
|
||||
generator.definitions_['import_KPU'] = 'import KPU as kpu';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = sub + '.' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const aionenet_nic_init = function (_, generator) {
|
||||
generator.definitions_['import aionenet'] = 'import aionenet';
|
||||
var account = generator.valueToCode(this, 'account', generator.ORDER_ATOMIC);
|
||||
var passwor = generator.valueToCode(this, 'password', generator.ORDER_ATOMIC);
|
||||
var code = "aionenet.nic_init(" + account + "," + passwor + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const aionenet_token = function (_, generator) {
|
||||
generator.definitions_['import aionenet'] = 'import aionenet';
|
||||
var account = generator.valueToCode(this, 'account', generator.ORDER_ATOMIC);
|
||||
var passwor = generator.valueToCode(this, 'password', generator.ORDER_ATOMIC);
|
||||
var code = "aionenet.token(" + account + "," + passwor + ")";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const aionenet_API = function (_, generator) {
|
||||
generator.definitions_['import aionenet'] = 'import aionenet';
|
||||
var img = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var token = generator.valueToCode(this, 'token', generator.ORDER_ATOMIC);
|
||||
var api = this.getFieldValue('api');
|
||||
var code = 'aionenet.post_ai(' + img + ',"' + api + '",' + token + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
///---------------------------------------------------------------
|
||||
export const ailocal_training = function (_, generator) {
|
||||
generator.definitions_['import ailocal'] = 'import ailocal';
|
||||
var calss = generator.valueToCode(this, 'calss', generator.ORDER_ATOMIC);
|
||||
var sample = generator.valueToCode(this, 'sample', generator.ORDER_ATOMIC);
|
||||
var save = generator.valueToCode(this, 'save', generator.ORDER_ATOMIC);
|
||||
var code = "ailocal.training(" + calss + "," + sample + "," + save + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const ailocal_loading = function (_, generator) {
|
||||
generator.definitions_['import ailocal'] = 'import ailocal';
|
||||
var path = generator.valueToCode(this, 'path', generator.ORDER_ATOMIC);
|
||||
var code = "ailocal.loading(" + path + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const ailocal_predict = function (_, generator) {
|
||||
generator.definitions_['import ailocal'] = 'import ailocal';
|
||||
var calss = generator.valueToCode(this, 'calss', generator.ORDER_ATOMIC);
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = "ailocal.predict(" + sub + "," + calss + ")";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
//---开始------------新增---20210302---------------------------------------------------
|
||||
|
||||
export const ai_face_init = function (_, generator) {
|
||||
generator.definitions_['import ai_face'] = 'import ai_face';
|
||||
var FD = generator.valueToCode(this, 'FD', generator.ORDER_ATOMIC);
|
||||
var LD = generator.valueToCode(this, 'LD', generator.ORDER_ATOMIC);
|
||||
var FE = generator.valueToCode(this, 'FE', generator.ORDER_ATOMIC);
|
||||
var code = "ai_face.init(" + FD + "," + LD + "," + FE + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const ai_face_train = function (_, generator) {
|
||||
generator.definitions_['import ai_face'] = 'import ai_face';
|
||||
var img = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var names = generator.valueToCode(this, 'names', generator.ORDER_ATOMIC);
|
||||
var threshold = generator.valueToCode(this, 'threshold', generator.ORDER_ATOMIC);
|
||||
var code = 'ai_face.train(' + img + ',' + names + ',' + threshold + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const ai_face_info = function (_, generator) {
|
||||
generator.definitions_['import ai_face'] = 'import ai_face';
|
||||
var key = this.getFieldValue('key');
|
||||
var code = 'ai_face.' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
//---开始------------新增---20210302---------------------------------------------------
|
||||
55
boards/default_src/micropython_k210_mixgoai/generators/av.js
Normal file
55
boards/default_src/micropython_k210_mixgoai/generators/av.js
Normal file
@@ -0,0 +1,55 @@
|
||||
export const spk_init = function (_, generator) {
|
||||
generator.definitions_['import player'] = 'import player';
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var BCK = generator.valueToCode(this, 'BCK', generator.ORDER_ATOMIC);
|
||||
var WS = generator.valueToCode(this, 'WS', generator.ORDER_ATOMIC);
|
||||
var DAT = generator.valueToCode(this, 'DAT', generator.ORDER_ATOMIC);
|
||||
var code = "" + sub + "=player.spk_init(" + BCK + "," + WS + "," + DAT + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const mic_init = function (_, generator) {
|
||||
generator.definitions_['import player'] = 'import player';
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
// var BCK = generator.valueToCode(this, 'BCK',generator.ORDER_ATOMIC);
|
||||
// var WS = generator.valueToCode(this, 'WS',generator.ORDER_ATOMIC);
|
||||
// var DAT = generator.valueToCode(this, 'DAT',generator.ORDER_ATOMIC);
|
||||
var code = "" + sub + "=player.mic_init()\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const audio_play = function (_, generator) {
|
||||
generator.definitions_['import player'] = 'import player';
|
||||
var path = generator.valueToCode(this, 'path', generator.ORDER_ATOMIC);
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var volume = generator.valueToCode(this, 'volume', generator.ORDER_ATOMIC);
|
||||
var code = "player.audio_play(" + sub + "," + path + "," + volume + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const audio_record = function (_, generator) {
|
||||
generator.definitions_['import player'] = 'import player';
|
||||
var path = generator.valueToCode(this, 'path', generator.ORDER_ATOMIC);
|
||||
var time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var code = "player.audio_record(" + sub + "," + path + "," + time + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const video_play = function (_, generator) {
|
||||
generator.definitions_['import player'] = 'import player';
|
||||
var path = generator.valueToCode(this, 'path', generator.ORDER_ATOMIC);
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var volume = generator.valueToCode(this, 'volume', generator.ORDER_ATOMIC);
|
||||
var code = "player.video_play(" + sub + "," + path + "," + volume + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const video_record = function (_, generator) {
|
||||
generator.definitions_['import player'] = 'import player';
|
||||
var path = generator.valueToCode(this, 'path', generator.ORDER_ATOMIC);
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);
|
||||
var code = "player.video_record(" + sub + "," + path + "," + time + ")\n";
|
||||
return code;
|
||||
}
|
||||
115
boards/default_src/micropython_k210_mixgoai/generators/camera.js
Normal file
115
boards/default_src/micropython_k210_mixgoai/generators/camera.js
Normal file
@@ -0,0 +1,115 @@
|
||||
export const mode = function (_, generator) {
|
||||
var code = this.getFieldValue('flag');
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const size = function (_, generator) {
|
||||
var code = this.getFieldValue('flag');
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const camera_init = function (_, generator) {
|
||||
generator.definitions_['import_sensor'] = 'import sensor';
|
||||
var key1 = generator.valueToCode(this, 'key1', generator.ORDER_ATOMIC);
|
||||
var key2 = generator.valueToCode(this, 'key2', generator.ORDER_ATOMIC);
|
||||
var key3 = generator.valueToCode(this, 'key3', generator.ORDER_ATOMIC);
|
||||
var key4 = generator.valueToCode(this, 'key4', generator.ORDER_ATOMIC);
|
||||
var code1 = "sensor.reset()\n";
|
||||
var code2 = "sensor.set_pixformat(" + key1 + ")\n";
|
||||
var code3 = "sensor.set_framesize(" + key2 + ")\n";
|
||||
var code4 = "sensor.run(" + key3 + ")\n";
|
||||
var code5 = "sensor.skip_frames(" + key4 + ")\n";
|
||||
var code = code1 + code2 + code3 + code4 + code5;
|
||||
return code;
|
||||
}
|
||||
|
||||
export const camera_reset = function (_, generator) {
|
||||
generator.definitions_['import_sensor'] = 'import sensor';
|
||||
var code = "sensor.reset()\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const camera_set_pixformat = function (_, generator) {
|
||||
generator.definitions_['import_sensor'] = 'import sensor';
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var code = "sensor.set_pixformat(" + key + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const camera_set_framesize = function (_, generator) {
|
||||
generator.definitions_['import_sensor'] = 'import sensor';
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var code = "sensor.set_framesize(" + key + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const camera_run = function (_, generator) {
|
||||
generator.definitions_['import_sensor'] = 'import sensor';
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var code = "sensor.run(" + key + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const camera_skip_frames = function (_, generator) {
|
||||
generator.definitions_['import_sensor'] = 'import sensor';
|
||||
var frame = generator.valueToCode(this, 'frame', generator.ORDER_ATOMIC);
|
||||
var code = "sensor.skip_frames(n=" + frame + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const camera_snapshot = function (_, generator) {
|
||||
generator.definitions_['import_sensor'] = 'import sensor';
|
||||
var code = 'sensor.snapshot()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const camera_shutdown = function (_, generator) {
|
||||
generator.definitions_['import_sensor'] = 'import sensor';
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var code = "sensor.shutdown(" + key + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const camera_set_hmirror = function (_, generator) {
|
||||
generator.definitions_['import_sensor'] = 'import sensor';
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var code = "sensor.set_hmirror(" + key + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const camera_set_vflip = function (_, generator) {
|
||||
generator.definitions_['import_sensor'] = 'import sensor';
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var code = "sensor.set_vflip(" + key + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const camera_set_colorbar = function (_, generator) {
|
||||
generator.definitions_['import_sensor'] = 'import sensor';
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var code = "sensor.set_colorbar(" + key + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const camera_getinfo = function (_, generator) {
|
||||
generator.definitions_['import_sensor'] = 'import sensor';
|
||||
var key = this.getFieldValue('key');
|
||||
var code = "sensor." + key + "()";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const camera_setmun = function (_, generator) {
|
||||
generator.definitions_['import_sensor'] = 'import sensor';
|
||||
var key = this.getFieldValue('key');
|
||||
var num = generator.valueToCode(this, 'num', generator.ORDER_ATOMIC);
|
||||
var code = "sensor." + key + "(" + num + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const camera_set_windowing = function (_, generator) {
|
||||
generator.definitions_['import_sensor'] = 'import sensor';
|
||||
var numa = generator.valueToCode(this, 'numa', generator.ORDER_ATOMIC);
|
||||
var numb = generator.valueToCode(this, 'numb', generator.ORDER_ATOMIC);
|
||||
var code = "sensor.set_windowing((" + numa + "," + numb + "))\n";
|
||||
return code;
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
export const communicate_ir_recv = function (_, generator) {
|
||||
generator.definitions_['import irremote'] = 'import irremote';
|
||||
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
return ["irremote.read_id(" + pin + ")", generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const communicate_i2c_init = function (_, generator) {
|
||||
generator.definitions_['from machine import I2C'] = 'from machine import I2C';
|
||||
var mode = this.getFieldValue('mode');
|
||||
var freq = generator.valueToCode(this, 'freq', generator.ORDER_ATOMIC);
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var sda = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC);
|
||||
var scl = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC);
|
||||
return "" + sub + " = I2C(I2C." + mode + ", freq=" + freq + ", scl=" + scl + ", sda=" + sda + ")\n";
|
||||
}
|
||||
|
||||
export const communicate_i2s_init = function (_, generator) {
|
||||
generator.definitions_['import player'] = 'import player';
|
||||
var mode = this.getFieldValue('mode');
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var BCK = generator.valueToCode(this, 'BCK', generator.ORDER_ATOMIC);
|
||||
var WS = generator.valueToCode(this, 'WS', generator.ORDER_ATOMIC);
|
||||
var DAT = generator.valueToCode(this, 'DAT', generator.ORDER_ATOMIC);
|
||||
var sample = generator.valueToCode(this, 'sample', generator.ORDER_ATOMIC);
|
||||
var code = "" + sub + "=player." + mode + "_init(" + BCK + "," + WS + "," + DAT + "," + sample + ")\n";
|
||||
return code;
|
||||
}
|
||||
//--------新增-------------------------------------------------------
|
||||
|
||||
export const communicate_i2c_read = function (_, generator) {
|
||||
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC);
|
||||
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
||||
return ["" + name + ".readfrom(" + address + ", " + data + ")", generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const communicate_i2c_write = function (_, generator) {
|
||||
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC);
|
||||
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
||||
return "" + name + ".writeto(" + address + ", " + data + ")\n";
|
||||
}
|
||||
|
||||
export const communicate_i2c_scan = function (_, generator) {
|
||||
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
return ["" + name + ".scan()", generator.ORDER_ATOMIC];
|
||||
}
|
||||
export const communicate_i2c_master_read = function (_, generator) {
|
||||
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = "" + name + ".read()";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
export const communicate_i2c_available = function (_, generator) {
|
||||
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = "" + name + ".available()";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const i2c_slave_onreceive = function (_, generator) {
|
||||
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
generator.setups_['setup_i2c_' + pin] = 'Wire.begin(' + pin + ');';
|
||||
generator.setups_['setup_i2c_onReceive_' + pin] = 'Wire.onReceive(i2cReceiveEvent_' + pin + ');';
|
||||
var funcName = 'i2cReceiveEvent_' + pin;
|
||||
var branch = generator.statementToCode(this, 'DO');
|
||||
var code2 = 'void' + ' ' + funcName + '(int howMany) {\n' + branch + '}\n';
|
||||
generator.definitions_[funcName] = code2;
|
||||
return '';
|
||||
}
|
||||
|
||||
export const communicate_spi_init = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var freq = generator.valueToCode(this, 'freq', generator.ORDER_ATOMIC);
|
||||
var polarity = generator.valueToCode(this, 'polarity', generator.ORDER_ATOMIC);
|
||||
var phase = generator.valueToCode(this, 'phase', generator.ORDER_ATOMIC);
|
||||
var mosi = generator.valueToCode(this, 'mosi', generator.ORDER_ATOMIC);
|
||||
var miso = generator.valueToCode(this, 'miso', generator.ORDER_ATOMIC);
|
||||
var sck = generator.valueToCode(this, 'sck', generator.ORDER_ATOMIC);
|
||||
return "" + name + " = machine.SPI(baudrate=" + freq + ", polarity=" + polarity + ", phase=" + phase + ", sck=machine.Pin(" + sck + "), mosi=machine.Pin(" + mosi + "), miso=machine.Pin(" + miso + "));\n";
|
||||
}
|
||||
|
||||
export const communicate_spi_set = function (_, generator) {
|
||||
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
||||
return "spi.init(baudrate=" + data + ")\n";
|
||||
}
|
||||
|
||||
export const communicate_spi_buffer = function (_, generator) {
|
||||
var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
||||
return "" + varname + "=bytearray(" + data + ")\n";
|
||||
}
|
||||
|
||||
export const communicate_spi_read = function (_, generator) {
|
||||
var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
||||
return ["" + varname + ".read(" + data + ")", generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const communicate_spi_read_output = function (_, generator) {
|
||||
var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
||||
var val = generator.valueToCode(this, 'val', generator.ORDER_ATOMIC);
|
||||
return ["" + varname + ".read(" + data + "," + val + ")", generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const communicate_spi_readinto = function (_, generator) {
|
||||
var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
||||
return ["" + varname + ".readinto(" + data + ")", generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const communicate_spi_readinto_output = function (_, generator) {
|
||||
var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
||||
var val = generator.valueToCode(this, 'val', generator.ORDER_ATOMIC);
|
||||
return ["" + varname + ".readinto(" + data + "," + val + ")", generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const communicate_spi_write = function (_, generator) {
|
||||
var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
||||
return ["" + varname + ".write(" + data + ".encode('utf-8'))", generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const communicate_spi_write_readinto = function (_, generator) {
|
||||
var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
|
||||
var val = generator.valueToCode(this, 'val', generator.ORDER_ATOMIC);
|
||||
// var op=this.getFieldValue('op');
|
||||
// if(op=="byte"){
|
||||
return ["" + varname + ".write_readinto(" + data + ".encode('utf-8')," + val + ")", generator.ORDER_ATOMIC];
|
||||
// }else{
|
||||
// return [""+varname+".write_readinto(" + data + ","+val+")", generator.ORDER_ATOMIC];
|
||||
// }
|
||||
}
|
||||
|
||||
export const communicate_ow_init = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
generator.definitions_['import_onewire'] = "import onewire";
|
||||
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var varName = generator.valueToCode(this, 'BUS', generator.ORDER_ATOMIC);
|
||||
var code = "" + name + "=onewire.OneWire(machine.Pin(" + varName + "))\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const communicate_ow_scan = function (_, generator) {
|
||||
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = "" + name + ".scan()";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const communicate_ow_reset = function (_, generator) {
|
||||
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = "" + name + ".reset()\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const communicate_ow_read = function (_, generator) {
|
||||
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = "" + name + ".readbyte()";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const communicate_ow_write = function (_, generator) {
|
||||
var varName = generator.valueToCode(this, 'byte', generator.ORDER_ATOMIC);
|
||||
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var op = this.getFieldValue('op');
|
||||
var code = "" + name + "." + op + "(" + varName + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const communicate_ow_select = function (_, generator) {
|
||||
var varName = generator.valueToCode(this, 'byte', generator.ORDER_ATOMIC);
|
||||
var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = "" + name + ".select_rom(" + varName + ".encode('utf-8'))\n";
|
||||
return code;
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
export const angle = function (_, generator) {
|
||||
var code = this.getFieldValue('flag');
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const lcd_color = function (_, generator) {
|
||||
var code = this.getFieldValue('flag');
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const on_off = function (_, generator) {
|
||||
var code = this.getFieldValue('flag');
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const lcd_init = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
generator.definitions_['import_lcd'] = 'import lcd';
|
||||
var freq = generator.valueToCode(this, 'freq', generator.ORDER_ATOMIC);
|
||||
var color = generator.valueToCode(this, 'color', generator.ORDER_ATOMIC);
|
||||
var code = "lcd.init(freq=" + freq + ",color=" + color + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const lcd_colour = function (_, generator) {
|
||||
generator.definitions_['import_lcd'] = 'import lcd';
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var code = "" + key + "";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const lcd_width = function (_, generator) {
|
||||
generator.definitions_['import_lcd'] = 'import lcd';
|
||||
var key = this.getFieldValue('key');
|
||||
var code = 'lcd.' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const lcd_display = function (_, generator) {
|
||||
generator.definitions_['import_lcd'] = 'import lcd';
|
||||
var img = generator.valueToCode(this, 'img', generator.ORDER_ATOMIC);
|
||||
var code = "lcd.display(" + img + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const lcd_clear = function (_, generator) {
|
||||
generator.definitions_['import_lcd'] = 'import lcd';
|
||||
var color = generator.valueToCode(this, 'color', generator.ORDER_ATOMIC);
|
||||
var code = "lcd.clear(" + color + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const lcd_rotation = function (_, generator) {
|
||||
generator.definitions_['import_lcd'] = 'import lcd';
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var code = "lcd.rotation(" + key + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const lcd_mirror = function (_, generator) {
|
||||
generator.definitions_['import_lcd'] = 'import lcd';
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var code = "lcd.mirror(" + key + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const lcd_draw_string = function (_, generator) {
|
||||
generator.definitions_['import_lcd'] = 'import lcd';
|
||||
var x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);
|
||||
var y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);
|
||||
var tex = generator.valueToCode(this, 'text', generator.ORDER_ATOMIC);
|
||||
var color_T = generator.valueToCode(this, 'color_T', generator.ORDER_ATOMIC);
|
||||
var color_S = generator.valueToCode(this, 'color_S', generator.ORDER_ATOMIC);
|
||||
var code = "lcd.draw_string(" + x + "," + y + "," + tex + "," + color_T + "," + color_S + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const touch_init = function (_, generator) {
|
||||
generator.definitions_['import_touchscreen'] = 'import touchscreen as ts';
|
||||
var I2C = generator.valueToCode(this, 'I2C', generator.ORDER_ATOMIC);
|
||||
var code = "ts.init(" + I2C + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const touch_calibrate = function (_, generator) {
|
||||
generator.definitions_['import_touchscreen'] = 'import touchscreen as ts';
|
||||
var code = "ts.calibrate()\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const touch_read = function (_, generator) {
|
||||
generator.definitions_['import_touchscreen'] = 'import touchscreen as ts';
|
||||
var key = this.getFieldValue('key');
|
||||
var code = 'ts.read()' + key + '';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const touch_info = function (_, generator) {
|
||||
generator.definitions_['import_touchscreen'] = 'import touchscreen as ts';
|
||||
var key = this.getFieldValue('key');
|
||||
var code = '' + key + '';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
/**/
|
||||
@@ -0,0 +1,91 @@
|
||||
export const factory_from_import = function (_, generator) {
|
||||
var path = this.getFieldValue('path');
|
||||
var module = this.getFieldValue('module');
|
||||
generator.definitions_['import_' + path + '_' + module] = 'from ' + path + ' import ' + module;
|
||||
return '';
|
||||
}
|
||||
|
||||
export const factory_import = function (_, generator) {
|
||||
var module = this.getFieldValue('module');
|
||||
generator.definitions_['import_' + module] = 'import ' + module;
|
||||
return '';
|
||||
}
|
||||
|
||||
export const factory_function_noreturn = function (_, generator) {
|
||||
var NAME = this.getFieldValue('NAME');
|
||||
var code = new Array(this.itemCount_);
|
||||
for (var n = 0; n < this.itemCount_; n++) {
|
||||
code[n] = generator.valueToCode(this, 'ADD' + n,
|
||||
generator.ORDER_NONE) || '';
|
||||
}
|
||||
return NAME + '(' + code.join(', ') + ')\n';
|
||||
}
|
||||
|
||||
export const factory_function_return = function (_, generator) {
|
||||
var NAME = this.getFieldValue('NAME');
|
||||
var code = new Array(this.itemCount_);
|
||||
for (var n = 0; n < this.itemCount_; n++) {
|
||||
code[n] = generator.valueToCode(this, 'ADD' + n,
|
||||
generator.ORDER_NONE) || '';
|
||||
}
|
||||
return [NAME + '(' + code.join(', ') + ')', generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const factory_declare = function () {
|
||||
var TYPE = this.getFieldValue('TYPE');
|
||||
var NAME = this.getFieldValue('NAME');
|
||||
return NAME + ' = ' + TYPE + '()\n';
|
||||
}
|
||||
|
||||
export const factory_callMethod_noreturn = function (_, generator) {
|
||||
var NAME = this.getFieldValue('NAME');
|
||||
var METHOD = this.getFieldValue('METHOD');
|
||||
var code = new Array(this.itemCount_);
|
||||
for (var n = 0; n < this.itemCount_; n++) {
|
||||
code[n] = generator.valueToCode(this, 'ADD' + n,
|
||||
generator.ORDER_NONE) || '';
|
||||
}
|
||||
return NAME + '.' + METHOD + '(' + code.join(', ') + ')\n';
|
||||
}
|
||||
|
||||
export const factory_callMethod_return = function (_, generator) {
|
||||
var NAME = this.getFieldValue('NAME');
|
||||
var METHOD = this.getFieldValue('METHOD');
|
||||
var code = new Array(this.itemCount_);
|
||||
for (var n = 0; n < this.itemCount_; n++) {
|
||||
code[n] = generator.valueToCode(this, 'ADD' + n,
|
||||
generator.ORDER_NONE) || '';
|
||||
}
|
||||
return [NAME + '.' + METHOD + '(' + code.join(', ') + ')', generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const factory_block = function () {
|
||||
var VALUE = this.getFieldValue('VALUE');
|
||||
//if(!(VALUE.charAt(VALUE.length-1)==";")){
|
||||
//VALUE=VALUE+';';
|
||||
//}
|
||||
return VALUE + '\n';
|
||||
}
|
||||
|
||||
export const factory_block_return = function (_, generator) {
|
||||
var VALUE = this.getFieldValue('VALUE');
|
||||
return [VALUE, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const factory_block_with_textarea = function () {
|
||||
var VALUE = this.getFieldValue('VALUE');
|
||||
//if(!(VALUE.charAt(VALUE.length-1)==";")){
|
||||
//VALUE=VALUE+';';
|
||||
//}
|
||||
return VALUE + '\n';
|
||||
}
|
||||
|
||||
export const factory_block_return_with_textarea = function (_, generator) {
|
||||
var VALUE = this.getFieldValue('VALUE');
|
||||
return [VALUE, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const factory_block_notes = function () {
|
||||
var VALUE = this.getFieldValue('VALUE');
|
||||
return '#' + VALUE + '\n';
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
export const asrloca_init = function (_, generator) {
|
||||
generator.definitions_['import asrloca'] = 'import asrloca';
|
||||
var SUB = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var KEY = this.getFieldValue('KEY');
|
||||
var code = SUB + "=asrloca.ASR_init(" + KEY + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const asrloca_config = function (_, generator) {
|
||||
var ck = new Array(this.itemCount_);
|
||||
var cv = new Array(this.itemCount_);
|
||||
var ct = new Array(this.itemCount_);
|
||||
|
||||
var default_value = '0';
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
|
||||
for (var n = 0; n < this.itemCount_; n++) {
|
||||
var keyName = this.getFieldValue('KEY' + n);
|
||||
ck[n] = keyName
|
||||
}
|
||||
for (var n = 0; n < this.itemCount_; n++) {
|
||||
cv[n] = generator.valueToCode(this, 'ADD' + n,
|
||||
generator.ORDER_NONE) || default_value;
|
||||
}
|
||||
var code = v + ".config({";
|
||||
for (var n = 0; n < this.itemCount_; n++) {
|
||||
ct[n] = "'" + ck[n] + "'" + ': ' + cv[n]
|
||||
}
|
||||
|
||||
code = code + ct.join(', ') + "})\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const asrloca_recognize = function (_, generator) {
|
||||
var SUB = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var code = SUB + ".recognize()";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const asrloca_del = function (_, generator) {
|
||||
var SUB = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var code = SUB + ".__del__()";
|
||||
return code;
|
||||
}
|
||||
595
boards/default_src/micropython_k210_mixgoai/generators/image.js
Normal file
595
boards/default_src/micropython_k210_mixgoai/generators/image.js
Normal file
@@ -0,0 +1,595 @@
|
||||
export const true_false = function (_, generator) {
|
||||
var code = this.getFieldValue('flag');
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_RGB = function (_, generator) {
|
||||
var R = generator.valueToCode(this, 'R', generator.ORDER_ATOMIC);
|
||||
var G = generator.valueToCode(this, 'G', generator.ORDER_ATOMIC);
|
||||
var B = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC);
|
||||
var code = '[' + R + ',' + G + ',' + B + ']';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_Image = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var path = generator.valueToCode(this, 'path', generator.ORDER_ATOMIC);
|
||||
var code = sub + " = image.Image(" + path + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const image_Image1 = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var code = sub + " = image.Image()\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const image_getinfo = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = sub + '.' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_save = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var path = generator.valueToCode(this, 'path', generator.ORDER_ATOMIC);
|
||||
var code = sub + ".save(" + path + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
//----开始--------------cool.ai-----弃用字体加载,出厂内存加载------------------
|
||||
|
||||
export const image_font_free = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var code = "image.font_free()\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const image_font_load = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var path = generator.valueToCode(this, 'path', generator.ORDER_ATOMIC);
|
||||
var code = "image.font_load(image.UTF8, 16, 16, " + path + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const image_draw_string_flash = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
generator.definitions_['font_load'] = 'image.font_load(image.UTF8, 16, 16, 0xA00000)';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var x0 = generator.valueToCode(this, 'x0', generator.ORDER_ATOMIC);
|
||||
var y0 = generator.valueToCode(this, 'y0', generator.ORDER_ATOMIC);
|
||||
var t = generator.valueToCode(this, 'tex', generator.ORDER_ATOMIC);
|
||||
var color = generator.valueToCode(this, 'color', generator.ORDER_ATOMIC);
|
||||
var s = generator.valueToCode(this, 'scale', generator.ORDER_ATOMIC);
|
||||
var x = generator.valueToCode(this, 'x_spacing', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.draw_string(' + x0 + ',' + y0 + ',str.encode(' + t + '),color=' + color + ',scale=' + s + ',x_spacing=' + x + ',mono_space=1)';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
//----结束--------------cool.ai-----弃用字体加载,出厂内存加载------------------
|
||||
|
||||
export const image_draw_string_UTF = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var x0 = generator.valueToCode(this, 'x0', generator.ORDER_ATOMIC);
|
||||
var y0 = generator.valueToCode(this, 'y0', generator.ORDER_ATOMIC);
|
||||
var t = generator.valueToCode(this, 'tex', generator.ORDER_ATOMIC);
|
||||
var color = generator.valueToCode(this, 'color', generator.ORDER_ATOMIC);
|
||||
var s = generator.valueToCode(this, 'scale', generator.ORDER_ATOMIC);
|
||||
var x = generator.valueToCode(this, 'x_spacing', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.draw_string(' + x0 + ',' + y0 + ',str.encode(' + t + '),color=' + color + ',scale=' + s + ',x_spacing=' + x + ',mono_space=1)';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_draw_string = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var x0 = generator.valueToCode(this, 'x0', generator.ORDER_ATOMIC);
|
||||
var y0 = generator.valueToCode(this, 'y0', generator.ORDER_ATOMIC);
|
||||
var t = generator.valueToCode(this, 'tex', generator.ORDER_ATOMIC);
|
||||
var color = generator.valueToCode(this, 'color', generator.ORDER_ATOMIC);
|
||||
var s = generator.valueToCode(this, 'scale', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.draw_string(' + x0 + ',' + y0 + ',' + t + ',' + color + ',' + s + ',mono_space=0)';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_copy = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var LIST = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.copy(' + LIST + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_compress = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var quality = generator.valueToCode(this, 'quality', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.compress(' + quality + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_clear = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = sub + ".clear()\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const image_tonew = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = sub + '.' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_set_pixel = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var LIST = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);
|
||||
var color = generator.valueToCode(this, 'color', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.set_pixel(' + LIST + ',' + color + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const image_get_pixel = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var LIST = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.get_pixel(' + LIST + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_draw_line = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var list = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);
|
||||
var color = generator.valueToCode(this, 'color', generator.ORDER_ATOMIC);
|
||||
var t = generator.valueToCode(this, 'thi', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.draw_line(' + list + ',' + color + ',' + t + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_draw_arrow = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var list = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);
|
||||
var color = generator.valueToCode(this, 'color', generator.ORDER_ATOMIC);
|
||||
var t = generator.valueToCode(this, 'thi', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.draw_arrow(' + list + ',' + color + ',' + t + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_draw_cross = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var list = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);
|
||||
var color = generator.valueToCode(this, 'color', generator.ORDER_ATOMIC);
|
||||
var s = generator.valueToCode(this, 'size', generator.ORDER_ATOMIC);
|
||||
var t = generator.valueToCode(this, 'thi', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.draw_cross(' + list + ',' + color + ',' + s + ',' + t + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_draw_circle = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var list = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);
|
||||
var color = generator.valueToCode(this, 'color', generator.ORDER_ATOMIC);
|
||||
var t = generator.valueToCode(this, 'thi', generator.ORDER_ATOMIC);
|
||||
var f = generator.valueToCode(this, 'fil', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.draw_circle(' + list + ',' + color + ',' + t + ',' + f + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_draw_rectangle = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var list = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);
|
||||
var color = generator.valueToCode(this, 'color', generator.ORDER_ATOMIC);
|
||||
var t = generator.valueToCode(this, 'thi', generator.ORDER_ATOMIC);
|
||||
var f = generator.valueToCode(this, 'fil', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.draw_rectangle(' + list + ',' + color + ',' + t + ',' + f + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_draw_keypoints = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = generator.valueToCode(this, 'keypoints', generator.ORDER_ATOMIC);
|
||||
var color = generator.valueToCode(this, 'color', generator.ORDER_ATOMIC);
|
||||
var size = generator.valueToCode(this, 'size', generator.ORDER_ATOMIC);
|
||||
var thi = generator.valueToCode(this, 'thi', generator.ORDER_ATOMIC);
|
||||
var fil = generator.valueToCode(this, 'fil', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.draw_keypoints(' + key + ',' + color + ',' + size + ',' + thi + ',' + fil + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_draw_image = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var list = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);
|
||||
var x_scale = generator.valueToCode(this, 'x_scale', generator.ORDER_ATOMIC);
|
||||
var y_scale = generator.valueToCode(this, 'y_scale', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.draw_image(' + sub + ',' + list + ',' + x_scale + ',' + y_scale + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
//--形状识别----------------------------------------------//
|
||||
|
||||
export const image_find_lines = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var roi = generator.valueToCode(this, 'roi', generator.ORDER_ATOMIC);
|
||||
var threshold = generator.valueToCode(this, 'threshold', generator.ORDER_ATOMIC);
|
||||
var theta_margin = generator.valueToCode(this, 'theta_margin', generator.ORDER_ATOMIC);
|
||||
var rho_margin = generator.valueToCode(this, 'rho_margin', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.find_lines(' + roi + ',threshold=' + threshold + ',theta_margin=' + theta_margin + ',rho_margin=' + rho_margin + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_find_line_segments = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var roi = generator.valueToCode(this, 'roi', generator.ORDER_ATOMIC);
|
||||
var distance = generator.valueToCode(this, 'distance', generator.ORDER_ATOMIC);
|
||||
var difference = generator.valueToCode(this, 'difference', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.find_line_segments(' + roi + ',' + distance + ',' + difference + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_find_circles = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var roi = generator.valueToCode(this, 'roi', generator.ORDER_ATOMIC);
|
||||
var threshold = generator.valueToCode(this, 'threshold', generator.ORDER_ATOMIC);
|
||||
var r_min = generator.valueToCode(this, 'r_min', generator.ORDER_ATOMIC);
|
||||
var r_max = generator.valueToCode(this, 'r_max', generator.ORDER_ATOMIC);
|
||||
var r_step = generator.valueToCode(this, 'r_step', generator.ORDER_ATOMIC);
|
||||
var x_margin = generator.valueToCode(this, 'x_margin', generator.ORDER_ATOMIC);
|
||||
var y_margin = generator.valueToCode(this, 'y_margin', generator.ORDER_ATOMIC);
|
||||
var r_margin = generator.valueToCode(this, 'r_margin', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.find_circles(' + roi + ',threshold=' + threshold + ',x_margin=' + x_margin + ',y_margin=' + y_margin + ',r_margin=' + r_margin + ',r_min=' + r_min + ',r_max=' + r_max + ',r_step=' + r_step + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_find_rects = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var roi = generator.valueToCode(this, 'roi', generator.ORDER_ATOMIC);
|
||||
var threshold = generator.valueToCode(this, 'threshold', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.find_rects(' + roi + ',threshold=' + threshold + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_get_regression = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var roi = generator.valueToCode(this, 'roi', generator.ORDER_ATOMIC);
|
||||
var threshold = generator.valueToCode(this, 'threshold', generator.ORDER_ATOMIC);
|
||||
var invert = generator.valueToCode(this, 'invert', generator.ORDER_ATOMIC);
|
||||
var robust = generator.valueToCode(this, 'robust', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.get_regression([' + threshold + '],invert=' + invert + ',roi=' + roi + ',robust=' + robust + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
//--形状列表解析------------------------------------------//
|
||||
|
||||
export const image_line = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = sub + '.' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_circle = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
if (key == "circle")
|
||||
var code = '[' + sub + '.x(),' + sub + '.y(),' + sub + '.r()]';
|
||||
else
|
||||
var code = sub + '.' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_rect = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = sub + '.' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
//--图像滤波------------------------------------------//
|
||||
|
||||
export const image_histeq = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var limit = generator.valueToCode(this, 'limit', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.histeq(' + key + ',' + limit + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_mean = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var size = generator.valueToCode(this, 'size', generator.ORDER_ATOMIC);
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var offset = generator.valueToCode(this, 'offset', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.mean(' + size + ',' + key + ',' + offset + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_cartoon = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var seed = generator.valueToCode(this, 'seed', generator.ORDER_ATOMIC);
|
||||
var floa = generator.valueToCode(this, 'float', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.cartoon(seed_threshold=' + seed + ',floating_threshold=' + floa + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_erode = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var size = generator.valueToCode(this, 'size', generator.ORDER_ATOMIC);
|
||||
var threshold = generator.valueToCode(this, 'threshold', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.erode(' + size + ',' + threshold + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_dilate = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var size = generator.valueToCode(this, 'size', generator.ORDER_ATOMIC);
|
||||
var threshold = generator.valueToCode(this, 'threshold', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.dilate(' + size + ',' + threshold + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_flood_fill = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var list = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);
|
||||
var color = generator.valueToCode(this, 'color', generator.ORDER_ATOMIC);
|
||||
var seed = generator.valueToCode(this, 'seed', generator.ORDER_ATOMIC);
|
||||
var floa = generator.valueToCode(this, 'float', generator.ORDER_ATOMIC);
|
||||
var invert = generator.valueToCode(this, 'invert', generator.ORDER_ATOMIC);
|
||||
var clear = generator.valueToCode(this, 'clear', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.flood_fill(' + list + ',' + seed + ',' + floa + ',' + color + ',' + invert + ',' + clear + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_linpolar = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.linpolar(' + key + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_invert = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.invert()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_lens_corr = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var strength = generator.valueToCode(this, 'strength', generator.ORDER_ATOMIC);
|
||||
var zoom = generator.valueToCode(this, 'zoom', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.lens_corr(' + strength + ',' + zoom + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_binary = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var threshold = generator.valueToCode(this, 'threshold', generator.ORDER_ATOMIC);
|
||||
var invert = generator.valueToCode(this, 'invert', generator.ORDER_ATOMIC);
|
||||
var zero = generator.valueToCode(this, 'zero', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.binary([' + threshold + '],invert=' + invert + ',zero=' + zero + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_morph = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var size = generator.valueToCode(this, 'size', generator.ORDER_ATOMIC);
|
||||
var kernel = generator.valueToCode(this, 'kernel', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.morph(' + size + ',' + kernel + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
//--条二维码----------------------------------------------//
|
||||
|
||||
export const image_find_barcodes = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var roi = generator.valueToCode(this, 'roi', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.find_barcodes(' + roi + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_find_qrcodes = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var roi = generator.valueToCode(this, 'roi', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.find_qrcodes(' + roi + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_find_apriltags = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var roi = generator.valueToCode(this, 'roi', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.find_apriltags(' + roi + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
//--维码列表解析------------------------------------------//
|
||||
|
||||
export const image_barcode = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = sub + '.' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_qrcode = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = sub + '.' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_apriltag = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = sub + '.' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
//--颜色识别----------------------------------------------//
|
||||
|
||||
export const image_find_blobs = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var LIST = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);
|
||||
var roi = generator.valueToCode(this, 'roi', generator.ORDER_ATOMIC);
|
||||
var area1 = generator.valueToCode(this, 'area', generator.ORDER_ATOMIC);
|
||||
var pixel = generator.valueToCode(this, 'pixel', generator.ORDER_ATOMIC);
|
||||
var margin = generator.valueToCode(this, 'margin', generator.ORDER_ATOMIC);
|
||||
var merge = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.find_blobs([' + LIST + '],roi=' + roi + ',area_threshold=' + area1 + ',pixels_threshold=' + pixel + ',merge=' + merge + ',margin=' + margin + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_get_histogram = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var roi = generator.valueToCode(this, 'roi', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.get_histogram(roi=' + roi + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
//--颜色列表解析------------------------------------------//
|
||||
|
||||
export const image_blob = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = sub + '.' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_Histogram = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = sub + '.' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_percentile = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var per = generator.valueToCode(this, 'percentile', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = sub + '.get_percentile(' + per + ').' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_threshold = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = sub + '.get_threhsold.' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
//--颜色格式转换------------------------------------------//
|
||||
|
||||
export const image_lab_to_rgb = function (_, generator) {
|
||||
generator.definitions_['import_image_pic'] = 'import image as pic';
|
||||
var LIST = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);
|
||||
var code = 'pic.lab_to_rgb(' + LIST + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_rgb_to_lab = function (_, generator) {
|
||||
generator.definitions_['import_image_pic'] = 'import image as pic';
|
||||
var LIST = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);
|
||||
var code = 'pic.rgb_to_lab(' + LIST + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_rgb_to_grayscale = function (_, generator) {
|
||||
generator.definitions_['import_image_pic'] = 'import image as pic';
|
||||
var LIST = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);
|
||||
var code = 'pic.rgb_to_grayscale(' + LIST + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_grayscale_to_rgb = function (_, generator) {
|
||||
generator.definitions_['import_image_pic'] = 'import image as pic';
|
||||
var g_value = generator.valueToCode(this, 'g_value', generator.ORDER_ATOMIC);
|
||||
var code = 'pic.grayscale_to_rgb(' + g_value + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
//--特征识别----------------------------------------------//
|
||||
|
||||
export const image_find_hog = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var roi = generator.valueToCode(this, 'roi', generator.ORDER_ATOMIC);
|
||||
var size = generator.valueToCode(this, 'size', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.find_hog(' + roi + ',' + size + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_find_keypoints = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var roi = generator.valueToCode(this, 'roi', generator.ORDER_ATOMIC);
|
||||
var key = generator.valueToCode(this, 'max_keypoints', generator.ORDER_ATOMIC);
|
||||
var threshold = generator.valueToCode(this, 'threshold', generator.ORDER_ATOMIC);
|
||||
var scale = generator.valueToCode(this, 'scale_factor', generator.ORDER_ATOMIC);
|
||||
var normalized = generator.valueToCode(this, 'normalized', generator.ORDER_ATOMIC);
|
||||
var code = sub + '.find_keypoints(roi=' + roi + ',max_keypoints=' + key + ',threshold=' + threshold + ',scale_factor=' + scale + ',normalized=' + normalized + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const image_match_descriptor = function (_, generator) {
|
||||
generator.definitions_['import_image_pic'] = 'import image as pic';
|
||||
var sub1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC);
|
||||
var sub2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC);
|
||||
var threshold = generator.valueToCode(this, 'threshold', generator.ORDER_ATOMIC);
|
||||
var code = 'pic.match_descriptor(' + sub1 + ',' + sub2 + ',threshold=' + threshold + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
//--颜色列表解析------------------------------------------//
|
||||
|
||||
export const image_kptmatch = function (_, generator) {
|
||||
generator.definitions_['import_image'] = 'import image';
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code = sub + '.' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
106
boards/default_src/micropython_k210_mixgoai/generators/inout.js
Normal file
106
boards/default_src/micropython_k210_mixgoai/generators/inout.js
Normal file
@@ -0,0 +1,106 @@
|
||||
import * as Blockly from 'blockly/core';
|
||||
|
||||
export const PGA_SELET = function (_, generator) {
|
||||
var code = this.getFieldValue('PGA');
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const inout_highlow = function (_, generator) {
|
||||
// Boolean values HIGH and LOW.
|
||||
var code = (this.getFieldValue('BOOL') == 'HIGH') ? '1' : '0';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
// ok
|
||||
export const inout_digital_init = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
var pin_obj = this.getFieldValue('PIN_OBJ') || 'pin#';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var dropdown_mode = this.getFieldValue('MODE');
|
||||
var varName = (pin_obj == 'pin#') ? 'pin' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);
|
||||
var code = varName + ' = board.pin(' + dropdown_pin + ', board.' + dropdown_mode + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const inout_digital_write = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);
|
||||
var code = "";
|
||||
code = 'pin' + dropdown_pin + '.value(' + dropdown_stat + ')\n'
|
||||
return code;
|
||||
}
|
||||
|
||||
export const inout_digital_read = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var code = "";
|
||||
code = 'pin' + dropdown_pin + '.value()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const inout_pwm_init = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
generator.definitions_['from machine import PWM'] = 'from machine import PWM';
|
||||
generator.definitions_['from machine import Timer'] = 'from machine import Timer';
|
||||
var pin_obj = this.getFieldValue('PIN_OBJ') || 'pin#';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var varName = (pin_obj == 'pin#') ? 'pin' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);
|
||||
var freq = generator.valueToCode(this, 'freq', generator.ORDER_ATOMIC);
|
||||
var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var Timer = sub % 3
|
||||
var CHANNEL = parseInt(sub / 3)
|
||||
var code1 = 'tim' + sub + ' = Timer(Timer.TIMER' + Timer + ',Timer.CHANNEL' + CHANNEL + ', mode=Timer.MODE_PWM)\n';
|
||||
var code2 = varName + ' = PWM(tim' + sub + ',freq=' + freq + ',duty=0, pin=' + dropdown_pin + ')\n';
|
||||
|
||||
return code1 + code2;
|
||||
}
|
||||
|
||||
export const inout_pwm_write = function (_, generator) {
|
||||
generator.definitions_['from machine import PWM'] = 'from machine import PWM';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var dropdown_stat = generator.valueToCode(this, 'pwm', generator.ORDER_ATOMIC);
|
||||
var code = "";
|
||||
code = 'pin' + dropdown_pin + '.duty(' + dropdown_stat + ')\n'
|
||||
return code;
|
||||
}
|
||||
|
||||
export const inout_adc_init = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var code = 'board.adc_init(' + key + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const inout_adc_read = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var code = 'board.adc_read(' + pin + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const inout_adc_Vread = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var code = 'board.adc_vread(' + pin + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const inout_pin_attachInterrupt = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var dropdown_mode = this.getFieldValue('mode');
|
||||
var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC);
|
||||
var code1 = 'key' + dropdown_pin + '=board.pin(' + dropdown_pin + ', board.GPIO.IN, board.GPIO.PULL_NONE)\n'
|
||||
var code2 = 'key' + dropdown_pin + '.irq(' + atta + ',board.' + dropdown_mode + ',board.GPIO.WAKEUP_NOT_SUPPORT, 7)\n'
|
||||
|
||||
return code1 + code2;
|
||||
}
|
||||
|
||||
export const inout_pin_disirq = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var code = 'key' + dropdown_pin + '.disirq()\n'
|
||||
return code;
|
||||
}
|
||||
/////////////////////////////////////////////
|
||||
@@ -0,0 +1,75 @@
|
||||
export const iot_wifi_connect = function (_, generator) {
|
||||
// generator.definitions_['import_simple'] = "import simple";
|
||||
generator.definitions_['import_miot'] = "import miot_no";
|
||||
var username = generator.valueToCode(this, 'WIFINAME', generator.ORDER_ATOMIC);
|
||||
var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);
|
||||
var code = 'miot_no.do_connect(' + username + ',' + password + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const iot_onenet_connect = function (_, generator) {
|
||||
generator.definitions_['import_miot'] = "import miot_no";
|
||||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var client = generator.valueToCode(this, 'CLIENT', generator.ORDER_ATOMIC);
|
||||
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 topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
|
||||
var subscribe = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT) || '0';
|
||||
var code = v + ' = miot_no.init_MQTT_client(' + client + ', ' + server + ', ' + username + ', ' + password + ', ' + topic + ', ' + subscribe + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const iot_onenet_disconnect = function (_, generator) {
|
||||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
generator.definitions_['import_simple'] = "import simple";
|
||||
var code = v + '.do_disconnect()\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const iot_onenet_publish_dict = function (_, generator) {
|
||||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var d = generator.valueToCode(this, 'DICT', generator.ORDER_ATOMIC);
|
||||
var check = this.getFieldValue("is_print") == 'TRUE' ? 'True' : 'False';
|
||||
generator.definitions_['import_simple'] = "import simple";
|
||||
var code = v + '.publish(' + d + ', is_print = ' + check + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const iot_onenet_check = function (_, generator) {
|
||||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
generator.definitions_['import_simple'] = "import simple";
|
||||
var code = v + '.check_msg()\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const iot_onenet_publish = function (_, generator) {
|
||||
// Create a list with any number of elements of any type.
|
||||
|
||||
//var size=window.parseFloat(this.getFieldValue('SIZE'));
|
||||
generator.definitions_['import_miot'] = "import miot_no";
|
||||
var ck = new Array(this.itemCount_);
|
||||
var cv = new Array(this.itemCount_);
|
||||
var ct = new Array(this.itemCount_);
|
||||
|
||||
var default_value = '0';
|
||||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
|
||||
for (var n = 0; n < this.itemCount_; n++) {
|
||||
var keyName = this.getFieldValue('KEY' + n);
|
||||
ck[n] = keyName
|
||||
}
|
||||
for (var n = 0; n < this.itemCount_; n++) {
|
||||
cv[n] = generator.valueToCode(this, 'ADD' + n,
|
||||
generator.ORDER_NONE) || default_value;
|
||||
}
|
||||
var code = v + ".publish({";
|
||||
for (var n = 0; n < this.itemCount_; n++) {
|
||||
ct[n] = ck[n] + ': ' + cv[n]
|
||||
}
|
||||
//var code = "c.publish('$dp', pubData("+ '{' + code.join(', ') + '})\n';
|
||||
//var code =''+varName+'['+size+"]"+'='+ '{' + code.join(', ') + '}\n';
|
||||
//generator.setups_['setup_lists'+varName] = code;
|
||||
code = code + ct.join(', ') + "})\n";
|
||||
return code;
|
||||
}
|
||||
358
boards/default_src/micropython_k210_mixgoai/generators/math.js
Normal file
358
boards/default_src/micropython_k210_mixgoai/generators/math.js
Normal file
@@ -0,0 +1,358 @@
|
||||
// export const math_number = function() {
|
||||
// // Numeric value.
|
||||
// var code = (this.getFieldValue('NUM'));
|
||||
// // -4.abs() returns -4 in Dart due to strange order of operation choices.
|
||||
// // -4 is actually an operator and a number. Reflect this in the order.
|
||||
// var order = code < 0 ?
|
||||
// generator.ORDER_UNARY_PREFIX : generator.ORDER_ATOMIC;
|
||||
// return [code, order];
|
||||
// }
|
||||
|
||||
// generator.math = {}
|
||||
// generator.addReservedWords("math,random,Number");
|
||||
|
||||
export const math_number = function (_, generator) {
|
||||
// a = parseFloat(a.getFieldValue("NUM"));
|
||||
// var b;
|
||||
// Infinity == a ? (a = 'float("inf")', b = generator.ORDER_FUNCTION_CALL) : -Infinity == a ? (a = '-float("inf")', b = generator.ORDER_UNARY_SIGN) : b = 0 > a ? generator.ORDER_UNARY_SIGN : generator.ORDER_ATOMIC;
|
||||
// return [a, b]
|
||||
|
||||
var code = this.getFieldValue('NUM');
|
||||
// -4.abs() returns -4 in Dart due to strange order of operation choices.
|
||||
// -4 is actually an operator and a number. Reflect this in the order.
|
||||
var order = code < 0 ?
|
||||
generator.ORDER_UNARY_PREFIX : generator.ORDER_ATOMIC;
|
||||
return [code, order];
|
||||
}
|
||||
|
||||
export const math_constant = function (_, generator) {
|
||||
generator.definitions_.import_math = "import math";
|
||||
var name = this.getFieldValue('CONSTANT');
|
||||
var code = 'math.' + name;
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
|
||||
export const math_bit = function (_, generator) {
|
||||
var operator = this.getFieldValue('OP');
|
||||
var order = generator.ORDER_ATOMIC;
|
||||
var argument0 = generator.valueToCode(this, 'A', order) || '0';
|
||||
var argument1 = generator.valueToCode(this, 'B', order) || '0';
|
||||
var code = '(' + argument0 + operator + argument1 + ')';
|
||||
return [code, order];
|
||||
}
|
||||
|
||||
export const math_arithmetic = function (block, generator) {
|
||||
var b = {
|
||||
ADD: [" + ", generator.ORDER_ADDITIVE],
|
||||
MINUS: [" - ", generator.ORDER_ADDITIVE],
|
||||
MULTIPLY: [" * ", generator.ORDER_MULTIPLICATIVE],
|
||||
DIVIDE: [" / ", generator.ORDER_MULTIPLICATIVE],
|
||||
QUYU: [' % ', generator.ORDER_MULTIPLICATIVE],//增加取余操作
|
||||
ZHENGCHU: [' // ', generator.ORDER_MULTIPLICATIVE],//增加整除操作
|
||||
POWER: [" ** ", generator.ORDER_EXPONENTIATION]
|
||||
}[block.getFieldValue("OP")],
|
||||
c = b[0],
|
||||
b = b[1],
|
||||
d = generator.valueToCode(block, "A", b) || "0";
|
||||
block = generator.valueToCode(block, "B", b) || "0";
|
||||
return [d + c + block, b]
|
||||
}
|
||||
|
||||
export const math_selfcalcu = function (_, generator) {
|
||||
var argument0 = generator.valueToCode(this, 'A', generator.ORDER_RELATIONAL) || '0';
|
||||
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;
|
||||
}
|
||||
var code = argument0 + ' ' + op + ' ' + argument1 + '\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const math_single = function (a, generator) {
|
||||
var b = a.getFieldValue("OP"),
|
||||
c;
|
||||
if ("NEG" == b)
|
||||
return c = generator.valueToCode(a, "NUM", generator.ORDER_UNARY_SIGN) || "0", ["-" + c, generator.ORDER_UNARY_SIGN];
|
||||
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(" +
|
||||
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:
|
||||
}
|
||||
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;
|
||||
}
|
||||
return [c, generator.ORDER_MULTIPLICATIVE]
|
||||
}
|
||||
|
||||
export const math_trig = math_single;
|
||||
|
||||
export const math_to_int = function (_, generator) {
|
||||
var argument0 = generator.valueToCode(this, 'A', generator.ORDER_NONE) || '0';
|
||||
var operator = this.getFieldValue('OP');
|
||||
var code = "";
|
||||
if (operator === "round") {
|
||||
code = operator + '(' + argument0 + ')';
|
||||
} else {
|
||||
code = "math." + operator + '(' + argument0 + ')';
|
||||
generator.definitions_.import_math = "import math";
|
||||
}
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const math_max_min = function (_, generator) {
|
||||
var a = generator.valueToCode(this, 'A', generator.ORDER_NONE) || '0';
|
||||
var b = generator.valueToCode(this, 'B', generator.ORDER_NONE) || '0';
|
||||
var operator = this.getFieldValue('OP');
|
||||
var code = operator + '(' + a + ', ' + b + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const math_max_min1 = function (_, generator) {
|
||||
var a = generator.valueToCode(this, 'LIST', generator.ORDER_NONE) || '0';
|
||||
var operator = this.getFieldValue('OP');
|
||||
var code = operator + '(' + a + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const math_random = function (_, generator) {
|
||||
generator.definitions_.import_random = "import random";
|
||||
// Random integer between [X] and [Y].
|
||||
var type = this.getFieldValue('TYPE');
|
||||
var argument0 = generator.valueToCode(this, 'FROM',
|
||||
generator.ORDER_NONE) || '0';
|
||||
var argument1 = generator.valueToCode(this, 'TO',
|
||||
generator.ORDER_NONE) || '0';
|
||||
if (type == 'int') {
|
||||
var code = 'random.randint(' + argument0 + ', ' + argument1 + ')';
|
||||
} else if (type == 'float') {
|
||||
var code = 'random.uniform(' + argument0 + ', ' + argument1 + ')';
|
||||
}
|
||||
return [code, generator.ORDER_UNARY_POSTFIX];
|
||||
}
|
||||
|
||||
export const math_map = function (_, generator) {
|
||||
var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_NONE);
|
||||
var value_fl = generator.valueToCode(this, 'fromLow', generator.ORDER_ATOMIC);
|
||||
var value_fh = generator.valueToCode(this, 'fromHigh', generator.ORDER_ATOMIC);
|
||||
var value_tl = generator.valueToCode(this, 'toLow', generator.ORDER_ATOMIC);
|
||||
var value_th = generator.valueToCode(this, 'toHigh', generator.ORDER_ATOMIC);
|
||||
generator.setups_["mixly_mapping"] = "def mixly_mapping(v, al, ah, bl, bh):\n" +
|
||||
" return bl + (bh - bl) * (v - al) / (ah - al)\n"
|
||||
var code = 'mixly_mapping(' + value_num + ', ' + value_fl + ', ' + value_fh + ', ' + value_tl + ', ' + value_th + ')';
|
||||
return [code, generator.ORDER_NONE];
|
||||
}
|
||||
|
||||
export const math_constrain = function (_, generator) {
|
||||
// Constrain a number between two limits.
|
||||
var argument0 = generator.valueToCode(this, 'VALUE',
|
||||
generator.ORDER_NONE) || '0';
|
||||
var argument1 = generator.valueToCode(this, 'LOW',
|
||||
generator.ORDER_NONE) || '0';
|
||||
var argument2 = generator.valueToCode(this, 'HIGH',
|
||||
generator.ORDER_NONE) || '0';
|
||||
var code = 'min(max(' + argument0 + ', ' + argument1 + '), ' + argument2 + ')';
|
||||
return [code, generator.ORDER_UNARY_POSTFIX];
|
||||
}
|
||||
|
||||
export const math_number_base_conversion = function (a, generator) {
|
||||
var c1 = a.getFieldValue("OP");
|
||||
var d = generator.valueToCode(this, 'NUM', generator.ORDER_NONE) || '0';
|
||||
var c2 = a.getFieldValue("OP2");
|
||||
generator.definitions_['import_math'] = "import math";
|
||||
var param1 = "";
|
||||
var param2 = "10";
|
||||
if (c1 == "two") {
|
||||
param2 = '2';
|
||||
} else if (c1 == "eight") {
|
||||
param2 = '8'
|
||||
} else if (c1 == "ten") {
|
||||
param2 = '10'
|
||||
} else if (c1 == "sixteen") {
|
||||
param2 = '16'
|
||||
}
|
||||
|
||||
if (c2 == "two") {
|
||||
param1 = 'bin';
|
||||
} else if (c2 == "eight") {
|
||||
param1 = 'oct'
|
||||
} else if (c2 == "ten") {
|
||||
param1 = ''
|
||||
} else if (c2 == "sixteen") {
|
||||
param1 = 'hex'
|
||||
}
|
||||
if (param1 == "") {
|
||||
var code = "int(str(" + d + "), " + param2 + ")";
|
||||
} else {
|
||||
var code = param1 + "(int(str(" + d + "), " + param2 + "))";
|
||||
|
||||
}
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
/*
|
||||
switch (c1) {
|
||||
case "two":
|
||||
switch (c2){
|
||||
case "two":
|
||||
var code = '\'{0:b}\''+ '.' + 'format' + '(' + '0b' + '('+d +')'+')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
case "eight":
|
||||
var code = '\'{0:o}\''+ '.' + 'format'+ '(' + '0b' +'('+d +')'+')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
case "ten":
|
||||
var code ='int'+ '(' + d +','+'2'+')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
case "sixteen":
|
||||
var code = '\'{0:x}\''+ '.' + 'format' + '(' + '0b' +'('+d +')'+')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case "eight":
|
||||
switch (c2){
|
||||
case "two":
|
||||
var code = '\'{0:b}\''+ '.' + 'format' + '(' + '0o' + '('+d +')' +')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
case "eight":
|
||||
var code = '\'{0:o}\''+ '.' + 'format'+ '(' + '0o' + '('+d +')' +')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
case "ten":
|
||||
var code ='int'+ '(' +d +','+'8'+')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
case "sixteen":
|
||||
var code = '\'{0:x}\''+ '.' + 'format' + '(' + '0o' + '('+d +')' +')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case "ten":
|
||||
switch (c2){
|
||||
case "two":
|
||||
var code = '\'{0:b}\''+ '.' + 'format' + '(' + d +')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
case "eight":
|
||||
var code = '\'{0:o}\''+ '.' + 'format'+ '(' + d +')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
case "ten":
|
||||
var code ='int'+ '(' +d +','+'10'+')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
case "sixteen":
|
||||
var code = '\'{0:x}\''+ '.' + 'format' + '(' + d +')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case "sixteen":
|
||||
switch (c2){
|
||||
case "two":
|
||||
var code = '\'{0:b}\''+ '.' + 'format' + '(' + '0x' + '('+d +')' +')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
case "eight":
|
||||
var code = '\'{0:o}\''+ '.' + 'format'+ '(' + '0x' + '('+d +')' +')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
case "ten":
|
||||
var code ='int'+ '(' +d +','+'16'+')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
case "sixteen":
|
||||
var code = '\'{0:x}\''+ '.' + 'format' + '(' + '0x' + '('+d +')' +')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
export const math_random_seed = function (_, generator) {
|
||||
// Random integer between [X] and [Y].
|
||||
generator.definitions_.import_random = "import random";
|
||||
var a = generator.valueToCode(this, 'NUM', generator.ORDER_NONE) || '0';
|
||||
var code = 'random.seed(' + a + ');' + '\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const math_indexer_number = function (_, generator) {
|
||||
var code = this.getFieldValue('NUM');
|
||||
// -4.abs() returns -4 in Dart due to strange order of operation choices.
|
||||
// -4 is actually an operator and a number. Reflect this in the order.
|
||||
var order = code < 0 ?
|
||||
generator.ORDER_UNARY_PREFIX : generator.ORDER_ATOMIC;
|
||||
return [code, order];
|
||||
}
|
||||
|
||||
export const base_map = math_map;
|
||||
@@ -0,0 +1,24 @@
|
||||
export const nes_joystick_init = function (_, generator) {
|
||||
generator.definitions_['import nes_no'] = 'import nes_no';
|
||||
var cs_pin = generator.valueToCode(this, 'cs_pin', generator.ORDER_ATOMIC);
|
||||
var clk_pin = generator.valueToCode(this, 'clk_pin', generator.ORDER_ATOMIC);
|
||||
var mosi_pin = generator.valueToCode(this, 'mosi_pin', generator.ORDER_ATOMIC);
|
||||
var miso_pin = generator.valueToCode(this, 'miso_pin', generator.ORDER_ATOMIC);
|
||||
var vol = generator.valueToCode(this, 'vol', generator.ORDER_ATOMIC);
|
||||
var code = "nes_no.joystick_init(" + cs_pin + "," + clk_pin + "," + mosi_pin + "," + miso_pin + "," + vol + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const nes_keyboard_init = function (_, generator) {
|
||||
generator.definitions_['import nes_no'] = 'import nes_no';
|
||||
var vol = generator.valueToCode(this, 'vol', generator.ORDER_ATOMIC);
|
||||
var code = "nes_no.keyboard_init(" + vol + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const nes_run = function (_, generator) {
|
||||
generator.definitions_['import nes_no'] = 'import nes_no';
|
||||
var path = generator.valueToCode(this, 'path', generator.ORDER_ATOMIC);
|
||||
var code = "nes_no.run(" + path + ")\n";
|
||||
return code;
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
export const network_init = function (_, generator) {
|
||||
generator.definitions_['import net_espat'] = "import net_espat";
|
||||
var TX = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC);
|
||||
var RX = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC);
|
||||
return "ESP_AT = net_espat.wifi_init(" + RX + "," + TX + ")\n";
|
||||
}
|
||||
|
||||
export const network_scan = function (_, generator) {
|
||||
generator.definitions_['import net_espat'] = "import net_espat";
|
||||
var code = "net_espat.scans(ESP_AT)";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const network_connect = function (_, generator) {
|
||||
generator.definitions_['import net_espat'] = "import net_espat";
|
||||
var account = generator.valueToCode(this, 'account', generator.ORDER_ATOMIC);
|
||||
var passwor = generator.valueToCode(this, 'password', generator.ORDER_ATOMIC);
|
||||
var code = "ESP_AT.connect(" + account + "," + passwor + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const network_ifconfig = function (_, generator) {
|
||||
generator.definitions_['import net_espat'] = "import net_espat";
|
||||
var mode = this.getFieldValue('mode');
|
||||
if (mode == "1")
|
||||
var code = "ESP_AT.ifconfig()";
|
||||
if (mode == "2")
|
||||
var code = "ESP_AT.isconnected()";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const network_disconnect = function (_, generator) {
|
||||
generator.definitions_['import net_espat'] = "import net_espat";
|
||||
var code = "ESP_AT.disconnect()\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const network_enable_ap = function (_, generator) {
|
||||
generator.definitions_['import net_espat'] = "import net_espat";
|
||||
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var account = generator.valueToCode(this, 'account', generator.ORDER_ATOMIC);
|
||||
var passwor = generator.valueToCode(this, 'password', generator.ORDER_ATOMIC);
|
||||
var chl = generator.valueToCode(this, 'chl', generator.ORDER_ATOMIC);
|
||||
var mode = this.getFieldValue('mode');
|
||||
var code = "ESP_AT.enable_ap(" + account + "," + passwor + "," + chl + "," + varName + "." + mode + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const network_disable_ap = function (_, generator) {
|
||||
generator.definitions_['import net_espat'] = "import net_espat";
|
||||
var code = "ESP_AT.disable_ap()\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const network_server = function (_, generator) {
|
||||
generator.definitions_['import_server_*'] = 'from server import *';
|
||||
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
// generator.setups_['class_wlan'] ='SSID="ying"\n'+'PASSWORD="201411132040"\n';
|
||||
return 'if not ' + varName + '.isconnected():\n'
|
||||
+ ' connectWifi(SSID, PASSWORD)\n'
|
||||
+ 'ip=' + varName + '.ifconfig()[0]\n'
|
||||
+ 'print(ip)\n'
|
||||
+ 'time.sleep(1)\n'
|
||||
+ 'DATA=listenData()\n'
|
||||
}
|
||||
|
||||
// ok
|
||||
export const network_socket_init = function (_, generator) {
|
||||
generator.definitions_['import socket'] = "import socket";
|
||||
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
return "" + varName + " = socket.socket()\n";
|
||||
}
|
||||
|
||||
// ok
|
||||
export const network_socket_getaddrinfo = function (_, generator) {
|
||||
generator.definitions_['import socket'] = "import socket";
|
||||
var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC);
|
||||
var code = "socket.getaddrinfo(" + addr + ",80)[0][-1]";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
// ok
|
||||
export const network_socket_connect = function (_, generator) {
|
||||
generator.definitions_['import socket'] = "import socket";
|
||||
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC);
|
||||
return "" + varName + ".connect(" + address + ")\n";
|
||||
}
|
||||
|
||||
// ok
|
||||
export const network_socket_settimeout = function (_, generator) {
|
||||
generator.definitions_['import socket'] = "import socket";
|
||||
var time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);
|
||||
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
return "" + varName + ".settimeout(" + time + ")\n";
|
||||
}
|
||||
|
||||
export const network_socket_receive = function (_, generator) {
|
||||
generator.definitions_['import socket'] = "import socket";
|
||||
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var size = generator.valueToCode(this, 'size', generator.ORDER_ATOMIC);
|
||||
var code = "" + varName + ".recv(" + size + ")";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const network_socket_send = function (_, generator) {
|
||||
generator.definitions_['import socket'] = "import socket";
|
||||
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var content = generator.valueToCode(this, 'content', generator.ORDER_ATOMIC);
|
||||
var code = "" + varName + ".send(" + content + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const network_socket_close = function (_, generator) {
|
||||
generator.definitions_['import socket'] = "import socket";
|
||||
var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = "" + varName + ".close()\n";
|
||||
return code;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
export const pins_digital = function (_, generator) {
|
||||
var code = this.getFieldValue('PIN');
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const pins_button = pins_digital;
|
||||
export const pins_digital_pin = pins_digital;
|
||||
export const pins_analog_pin = pins_digital;
|
||||
export const pins_analog = pins_digital;
|
||||
export const pins_pwm_pin = pins_digital;
|
||||
export const pins_pwm = pins_digital;
|
||||
export const pins_dac_pin = pins_digital;
|
||||
export const pins_dac = pins_digital;
|
||||
export const pins_touch_pin = pins_digital;
|
||||
export const pins_touch = pins_digital;
|
||||
export const pins_interrupt = pins_digital;
|
||||
export const pins_serial = pins_digital;
|
||||
export const pins_builtinimg = pins_digital;
|
||||
export const pins_imglist = pins_digital;
|
||||
export const pins_playlist = pins_digital;
|
||||
export const pins_axis = pins_digital;
|
||||
export const pins_exlcdh = pins_digital;
|
||||
export const pins_exlcdv = pins_digital;
|
||||
export const pins_brightness = pins_digital;
|
||||
export const pins_tone_notes = pins_digital;
|
||||
export const pins_radio_power = pins_digital;
|
||||
export const pins_radio_datarate = pins_digital;
|
||||
export const pins_one_more = pins_digital;
|
||||
export const pins_digital_dot = pins_digital;
|
||||
182
boards/default_src/micropython_k210_mixgoai/generators/sensor.js
Normal file
182
boards/default_src/micropython_k210_mixgoai/generators/sensor.js
Normal file
@@ -0,0 +1,182 @@
|
||||
export const KEY_SELET = function (_, generator) {
|
||||
var code = this.getFieldValue('KEY');
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const sensor_button_init = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var code1 = 'button' + key + '=board.pin(' + key + ',board.GPIO.IN,board.GPIO.PULL_UP)\n';
|
||||
return code1;
|
||||
}
|
||||
|
||||
export const sensor_button_read = function (_, generator) {
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);
|
||||
var code = 'not button' + key + '.value()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const sensor_dht11 = function (_, generator) {
|
||||
generator.definitions_['import dht11'] = 'import dht11';
|
||||
var TYPE = this.getFieldValue('TYPE');
|
||||
var PIN = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
if (TYPE == "2")
|
||||
var code = 'dht11.read_data(' + PIN + ')';
|
||||
else
|
||||
var code = 'dht11.read_data(' + PIN + ')[' + TYPE + ']';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const HCSR04 = function (_, generator) {
|
||||
generator.definitions_['import_sonar'] = 'import hcr04';
|
||||
var dropdown_pin1 = generator.valueToCode(this, "PIN1", generator.ORDER_ASSIGNMENT);
|
||||
var dropdown_pin2 = generator.valueToCode(this, "PIN2", generator.ORDER_ASSIGNMENT);
|
||||
var code = 'hcr04.Sonar(' + dropdown_pin1 + ', ' + dropdown_pin2 + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const sensor_mpu9250_attachGestureInterrupt = function (_, generator) {
|
||||
generator.definitions_['import_mpu9250'] = 'import mpu9250';
|
||||
var gesture = this.getFieldValue('gesture');
|
||||
var branch = generator.statementToCode(this, 'DO');
|
||||
var d = branch || generator.PASS;
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
if (v == "mpu")
|
||||
generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';
|
||||
var code = 'if ' + v + '.mpu9250_is_gesture("' + gesture + '"):\n' + d;
|
||||
return code;
|
||||
}
|
||||
|
||||
export const sensor_mpu9250_gesture = function (_, generator) {
|
||||
generator.definitions_['import_mpu9250'] = 'import mpu9250';
|
||||
var gesture = this.getFieldValue('gesture');
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
if (v == "mpu")
|
||||
generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';
|
||||
var code = v + '.mpu9250_is_gesture("' + gesture + '")';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const sensor_mpu9250_get_acceleration = function (_, generator) {
|
||||
generator.definitions_['import_mpu9250'] = 'import mpu9250';
|
||||
var key = this.getFieldValue('key');
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
if (v == "mpu")
|
||||
generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';
|
||||
var code = v + '.mpu9250_get_' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const sensor_adxl345_get_acceleration = function (_, generator) {
|
||||
generator.definitions_['import_adxl345'] = 'import adxl345';
|
||||
var key = this.getFieldValue('key');
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var code;
|
||||
if (key == 'x') {
|
||||
code = v + '.readX()';
|
||||
} else if (key == 'y') {
|
||||
code = v + '.readY()';
|
||||
} else if (key == 'z') {
|
||||
code = v + '.readZ()';
|
||||
} else if (key == 'values') {
|
||||
code = v + '.readXYZ()';
|
||||
}
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const sensor_mpu9250_get_magnetic = function (_, generator) {
|
||||
generator.definitions_['import_mpu9250'] = 'import mpu9250';
|
||||
var key = this.getFieldValue('key');
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
if (v == "mpu")
|
||||
generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';
|
||||
var code = v + '.mpu9250_magnetic_' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const sensor_mpu9250_get_gyro = function (_, generator) {
|
||||
generator.definitions_['import_mpu9250'] = 'import mpu9250';
|
||||
var key = this.getFieldValue('key');
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
if (v == "mpu")
|
||||
generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';
|
||||
var code = v + '.mpu9250_gyro_' + key + '()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const sensor_mpu9250_calibrate_compass = function (_, generator) {
|
||||
generator.definitions_['import_mpu9250'] = 'import mpu9250';
|
||||
generator.definitions_['import_mixgo_compass'] = 'from mixgo import compass';
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
return '' + v + '.calibrate()\n';
|
||||
}
|
||||
|
||||
export const sensor_mpu9250_temperature = function (_, generator) {
|
||||
generator.definitions_['import_mpu9250'] = 'import mpu9250';
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
if (v == "mpu")
|
||||
generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';
|
||||
return [v + '.mpu9250_get_temperature()', generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const sensor_mpu9250_field_strength = function (_, generator) {
|
||||
generator.definitions_['import_mpu9250'] = 'import mpu9250';
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
if (v == "compass")
|
||||
generator.definitions_['import_mixgo_compass'] = 'from mixgo import compass';
|
||||
var compass = this.getFieldValue('compass');
|
||||
var a;
|
||||
if (compass == 'strength') {
|
||||
a = v + '.get_field_strength()';
|
||||
}
|
||||
else if (compass == 'heading') {
|
||||
a = v + '.heading()';
|
||||
}
|
||||
return [a, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const sensor_compass_reset = function (_, generator) {
|
||||
generator.definitions_['import_mpu9250'] = 'import mpu9250';
|
||||
generator.definitions_['import_mixgo_compass'] = 'from mixgo import compass';
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
return '' + v + '.reset_calibrate()\n';
|
||||
}
|
||||
|
||||
export const sensor_use_i2c_init = function (_, generator) {
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
var code;
|
||||
if (key == 'MPU9250') {
|
||||
generator.definitions_['import_mpu9250'] = 'import mpu9250';
|
||||
code = v + ' = mpu9250.' + key + "(" + iv + ')\n';
|
||||
} else if (key == 'BMP280') {
|
||||
generator.definitions_['import_bmp280'] = 'import bmp280';
|
||||
code = v + ' = bmp280.' + key + "(" + iv + ')\n';
|
||||
} else if (key == 'SHT20') {
|
||||
generator.definitions_['import_sht20'] = 'import sht20';
|
||||
code = v + ' = sht20.' + key + "(" + iv + ')\n';
|
||||
} else if (key == 'ADXL345') {
|
||||
generator.definitions_['import_adxl345'] = 'import adxl345';
|
||||
code = v + ' = adxl345.' + key + "(" + iv + ')\n';
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
export const sensor_bmp = function (_, generator) {
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
generator.definitions_['import_bmp280'] = 'import bmp280';
|
||||
var code = v + '.' + key;
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const sensor_sht = function (_, generator) {
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var key = this.getFieldValue('key');
|
||||
generator.definitions_['import_sht20'] = 'import sht20';
|
||||
var code = v + '.' + key;
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
122
boards/default_src/micropython_k210_mixgoai/generators/serial.js
Normal file
122
boards/default_src/micropython_k210_mixgoai/generators/serial.js
Normal file
@@ -0,0 +1,122 @@
|
||||
export const UART_SELET = function (_, generator) {
|
||||
var code = this.getFieldValue('UART');
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const serial_print = function (_, generator) {
|
||||
generator.definitions_['from machine import UART'] = 'from machine import UART';
|
||||
var dropdown_uart = this.getFieldValue('mode');
|
||||
var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '""'
|
||||
var code = "uart" + dropdown_uart + ".write(str(" + content + "))\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const serial_println = function (_, generator) {
|
||||
generator.definitions_['from machine import UART'] = 'from machine import UART';
|
||||
var dropdown_uart = this.getFieldValue('mode');
|
||||
var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '""'
|
||||
var code = "uart" + dropdown_uart + ".write(str(" + content + ")+'\\r\\n')\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const serial_print_hex = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
var dropdown_uart = this.getFieldValue('mode');
|
||||
var dropdown_stat = this.getFieldValue('STAT');
|
||||
var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '0';
|
||||
var code = "uart" + dropdown_uart + ".write(str(" + dropdown_stat + "(" + content + "))+'\\r\\n')\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const serial_any = function (_, generator) {
|
||||
generator.definitions_['from machine import UART'] = 'from machine import UART';
|
||||
var dropdown_uart = this.getFieldValue('mode');
|
||||
var code = "uart" + dropdown_uart + ".any()";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const serial_readstr = function (_, generator) {
|
||||
generator.definitions_['from machine import UART'] = 'from machine import UART';
|
||||
var dropdown_uart = this.getFieldValue('mode');
|
||||
var code = "uart" + dropdown_uart + ".read()";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const serial_readline = function (_, generator) {
|
||||
generator.definitions_['from machine import UART'] = 'from machine import UART';
|
||||
var dropdown_uart = this.getFieldValue('mode');
|
||||
var code = "uart" + dropdown_uart + ".readline()";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const serial_softserial1 = function (_, generator) {
|
||||
generator.definitions_['from machine import UART'] = 'from machine import UART';
|
||||
generator.definitions_['import board'] = 'import board';
|
||||
var dropdown_uart = this.getFieldValue('mode');
|
||||
var baudrate = this.getFieldValue('baudrate');
|
||||
var TX = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC);
|
||||
var RX = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC);
|
||||
var code1 = "board.register(" + TX + ",board.FPIOA.UART" + dropdown_uart + "_TX)\n";
|
||||
var code2 = "board.register(" + RX + ",board.FPIOA.UART" + dropdown_uart + "_RX)\n";
|
||||
var code3 = "uart" + dropdown_uart + "=UART(UART.UART" + dropdown_uart + ", " + baudrate + ", timeout=1000, read_buf_len=4096)\n";
|
||||
var code = code1 + code2 + code3;
|
||||
return code;
|
||||
}
|
||||
|
||||
export const system_input = function (_, generator) {
|
||||
// generator.definitions_['import machine'] = 'import machine';
|
||||
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
|
||||
return ['input(' + str + ')', generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const system_print = function (_, generator) {
|
||||
// generator.definitions_['import machine'] = 'import machine';
|
||||
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
|
||||
var code = "print(" + str + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const system_print_inline = function (_, generator) {
|
||||
// generator.definitions_['import machine'] = 'import machine';
|
||||
var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""';
|
||||
var code = "print(" + str + ',end ="")\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const system_print_end = function (_, generator) {
|
||||
// generator.definitions_['import machine'] = 'import machine';
|
||||
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 system_print_many = function (_, generator) {
|
||||
// generator.definitions_['import machine'] = 'import machine';
|
||||
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;
|
||||
}
|
||||
|
||||
export const serial_send_to_mixgoce = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
generator.definitions_['import_ce_com'] = 'import ce_com';
|
||||
var dropdown_uart = this.getFieldValue('mode');
|
||||
var dropdown_stat = this.getFieldValue('STAT');
|
||||
var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '0';
|
||||
var code = "ce_com.uart_tx(uart" + dropdown_uart + ", " + content + ", repeat=" + dropdown_stat + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const serial_read_from_mixgoce = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
generator.definitions_['import_ce_com'] = 'import ce_com';
|
||||
var dropdown_uart = this.getFieldValue('mode');
|
||||
var code = "ce_com.uart_rx(uart" + dropdown_uart + ")";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
156
boards/default_src/micropython_k210_mixgoai/generators/system.js
Normal file
156
boards/default_src/micropython_k210_mixgoai/generators/system.js
Normal file
@@ -0,0 +1,156 @@
|
||||
import { Profile } from 'mixly';
|
||||
|
||||
export const TIM_SELET = function (_, generator) {
|
||||
var code = this.getFieldValue('TIM');
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const system_run_in_background = function (_, generator) {
|
||||
var branch = generator.statementToCode(this, 'do');
|
||||
return 'control.inBackground(() => {\n' + branch + '})\n';
|
||||
}
|
||||
|
||||
export const system_wait = function (_, generator) {
|
||||
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC) || Profile.default.serial;
|
||||
return 'control.waitMicros(' + data + ')\n';
|
||||
}
|
||||
|
||||
export const system_raise_event = function (_, generator) {
|
||||
var source = generator.valueToCode(this, 'system_event_bus_source', generator.ORDER_ATOMIC) || Profile.default.serial;
|
||||
var value = generator.valueToCode(this, 'system_event_bus_value', generator.ORDER_ATOMIC) || Profile.default.serial;
|
||||
return 'control.raiseEvent(' + source + ', ' + value + ')\n';
|
||||
}
|
||||
|
||||
export const system_on_event = function (_, generator) {
|
||||
var source = generator.valueToCode(this, 'system_event_bus_source', generator.ORDER_ATOMIC) || Profile.default.serial;
|
||||
var value = generator.valueToCode(this, 'system_event_bus_value', generator.ORDER_ATOMIC) || Profile.default.serial;
|
||||
var branch = generator.statementToCode(this, 'do');
|
||||
return 'control.onEvent(' + source + ', ' + value + ', () => {\n' + branch + ')\n';
|
||||
}
|
||||
|
||||
export const system_timestamp = function (_, generator) {
|
||||
return ['control.eventTimestamp()', generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const system_value = function (_, generator) {
|
||||
return ['control.eventValue()', generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const system_event_bus_source = function (_, generator) {
|
||||
return [this.getFieldValue('key'), generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const system_event_bus_value = function (_, generator) {
|
||||
return [this.getFieldValue('key'), generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const system_device_name = function (_, generator) {
|
||||
return ['control.deviceName()', generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const system_device_serial_number = function (_, generator) {
|
||||
return ['control.deviceSerialNumber()', generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
// ok
|
||||
export const Panic_with_status_code = function (_, generator) {
|
||||
var status_code = generator.valueToCode(this, 'STATUS_CODE', generator.ORDER_ATOMIC) || '1000'
|
||||
var code = 'panic(' + status_code + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
// ok
|
||||
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];
|
||||
}
|
||||
}
|
||||
|
||||
// ok
|
||||
export const controls_end_program = function () {
|
||||
return 'while True:\n pass\n';
|
||||
}
|
||||
|
||||
// ok
|
||||
export const reset = function (_, generator) {
|
||||
generator.definitions_['import_mixgo'] = 'import mixgo';
|
||||
return 'reset()\n';
|
||||
}
|
||||
|
||||
export const system_reset = function (_, generator) {
|
||||
generator.definitions_['import machine'] = 'import machine';
|
||||
var code = "machine.reset()\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const system_gc_collect = function (_, generator) {
|
||||
generator.definitions_['import gc'] = 'import gc';
|
||||
var dropdown_gc = this.getFieldValue('gc');
|
||||
var code = '' + dropdown_gc + '\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const controls_uname = function (_, generator) {
|
||||
generator.definitions_['import_os'] = 'import os';
|
||||
return 'os.uname()';
|
||||
}
|
||||
|
||||
export const controls_delay = function (_, generator) {
|
||||
// generator.definitions_.import_time = "import time";
|
||||
generator.definitions_['import_time'] = 'import time';
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------/
|
||||
export const system_timer = function (_, generator) {
|
||||
generator.definitions_['from machine import Timer'] = 'from machine import Timer';
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var Timer = v % 3
|
||||
var CHANNEL = parseInt(v / 3)
|
||||
var period = generator.valueToCode(this, "period", generator.ORDER_NONE);
|
||||
var mode = this.getFieldValue('mode');
|
||||
var callback = generator.valueToCode(this, "callback", generator.ORDER_NONE) || "None";
|
||||
var code = "tim" + v + " =Timer(Timer.TIMER" + Timer + ",Timer.CHANNEL" + CHANNEL + ",mode=Timer.MODE_" + mode + ",period = " + period + ", callback = " + callback + ")\n";
|
||||
return code;
|
||||
}
|
||||
|
||||
export const system_ticks_diff = function (_, generator) {
|
||||
generator.definitions_['import_time'] = 'import time';
|
||||
var end = generator.valueToCode(this, "END", generator.ORDER_NONE) || "0";
|
||||
var start = generator.valueToCode(this, "START", generator.ORDER_NONE) || "0";
|
||||
var code = "time.ticks_diff(" + end + ", " + start + ")";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const system_timer_init = function (_, generator) {
|
||||
generator.definitions_['from machine import Timer'] = 'from machine import Timer';
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var Timer = v % 3
|
||||
var CHANNEL = parseInt(v / 3)
|
||||
var code = 'tim' + v + ' = Timer(Timer.TIMER' + Timer + ',Timer.CHANNEL' + CHANNEL + ', mode=Timer.MODE_PWM)\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const Timer_init = system_timer_init;
|
||||
export const timer2 = system_timer;
|
||||
export const time_ticks_diff = system_ticks_diff;
|
||||
export const base_delay = controls_delay;
|
||||
@@ -0,0 +1,46 @@
|
||||
function rgb565(colour) {
|
||||
colour = colour.substr(1);
|
||||
var R, G, B;
|
||||
R = colour.substr(0, 2);
|
||||
G = colour.substr(2, 2);
|
||||
B = colour.substr(4, 2);
|
||||
colour = R + G + B;
|
||||
colour = "0x" + colour;
|
||||
var RGB565_red = (colour & 0xf80000) >> 19;
|
||||
var RGB565_green = (colour & 0xfc00) >> 10;
|
||||
var RGB565_green1 = (RGB565_green & 0x38) >> 3;
|
||||
var RGB565_green2 = (RGB565_green & 0x07);
|
||||
var RGB565_blue = (colour & 0xf8) >> 3;
|
||||
var n565Color = (RGB565_blue << 8) + (RGB565_green2 << 13) + (RGB565_red << 3) + (RGB565_green1 << 0);
|
||||
// return ''+colour+','+RGB565_green+','+RGB565_green1+','+RGB565_green2+'==='+n565Color+'';
|
||||
return n565Color;
|
||||
}
|
||||
|
||||
export const lists_create_with_text1 = function (_, generator) {
|
||||
var text = this.getFieldValue('TEXT');
|
||||
var code = '[' + text + ']';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const tuple_create_with_text3 = function (_, generator) {
|
||||
var text = this.getFieldValue('TEXT');
|
||||
var code = '(' + text + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const LCD_color_seclet1 = function (_, generator) {
|
||||
var colour = this.getFieldValue('COLOR');
|
||||
colour = colour.substr(1);
|
||||
var R, G, B;
|
||||
R = "0x" + colour.substr(0, 2);
|
||||
G = "0x" + colour.substr(2, 2);
|
||||
B = "0x" + colour.substr(4, 2);
|
||||
var code = '(' + R + ',' + G + ',' + B + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const LCD_color_seclet = function (_, generator) {
|
||||
var colour = this.getFieldValue('COLOR');
|
||||
colour = rgb565(colour);
|
||||
return [colour, generator.ORDER_ATOMIC];
|
||||
}
|
||||
Reference in New Issue
Block a user