diff --git a/boards/default_src/micropython/blocks/ai_local.js b/boards/default_src/micropython/blocks/ai_local.js index 068abe56..459a1efb 100644 --- a/boards/default_src/micropython/blocks/ai_local.js +++ b/boards/default_src/micropython/blocks/ai_local.js @@ -237,11 +237,8 @@ export const CI130X_BROADCAST_SYSTEM_TIME = { init: function () { this.setColour(AI_LOCAL_VOICE_HUE); this.appendDummyInput("") - .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_DETAILED, "1"], - [Blockly.Msg.MIXLY_Concise, "0"] - ]), "cmd") - .appendField(Blockly.Msg.MIXLY_BROADCAST_SYSTEM_TIME) + .appendField(Blockly.Msg.MIXLY_DETAILED + Blockly.Msg.MIXLY_BROADCAST_SYSTEM_TIME); + this.appendValueInput('boolean'); this.setPreviousStatement(true); this.setNextStatement(true); this.setInputsInline(true); @@ -295,11 +292,8 @@ export const SCREEN_SHOW_CAM_GRAPH_SHOOT = { init: function () { this.setColour(AI_LOCAL_GRAPH_HUE); this.appendDummyInput() - .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_MICROBIT_Turn_on_display,"display"], - [Blockly.Msg.MIXLY_MICROBIT_Turn_off_display,"display_stop"] - ]),"control") .appendField(Blockly.Msg.MIXlY_SCREEN_SHOW_CAM_SHOOT); + this.appendValueInput('boolean'); this.setPreviousStatement(true); this.setNextStatement(true); this.setInputsInline(true); diff --git a/boards/default_src/micropython/blocks/display_onboard.js b/boards/default_src/micropython/blocks/display_onboard.js index 38d9680e..b5c01f7b 100644 --- a/boards/default_src/micropython/blocks/display_onboard.js +++ b/boards/default_src/micropython/blocks/display_onboard.js @@ -1,5 +1,5 @@ import * as Blockly from 'blockly/core'; -import { Boards, Profile } from 'mixly'; +import { Boards, Profile, JSFuncs } from 'mixly'; const DISPLAY_ONBOARD_HUE = '#569A98'; @@ -10,13 +10,9 @@ export const display_show_image = { .setCheck([String, "esp32_image", "List", 'Tuple']) .appendField(Blockly.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING); var version = Boards.getSelectedBoardKey() - if (version == 'micropython:esp32s3:mixgo_nova'||'micropython:esp32s3:mixgo_sant') { - this.appendDummyInput() - .appendField( Blockly.Msg.MIXLY_synchronize + ':') - .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] - ]),"sync"); + if (JSFuncs.getPlatform() === 'Python ESP32-S3') { + this.appendValueInput('boolean') + .appendField( Blockly.Msg.MIXLY_synchronize + ':'); } this.setPreviousStatement(true, null); this.setNextStatement(true, null); @@ -43,14 +39,9 @@ export const display_show_image_or_string_delay = { [Blockly.Msg.MICROPYTHON_DISPLAY_YES, "True"], [Blockly.Msg.MICROPYTHON_DISPLAY_NO, "False"] ]), 'center') - var version = Boards.getSelectedBoardKey() - if (version == 'micropython:esp32s3:mixgo_nova'||'micropython:esp32s3:mixgo_sant') { - this.appendDummyInput() - .appendField( Blockly.Msg.MIXLY_synchronize + ':') - .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] - ]),"sync"); + if (JSFuncs.getPlatform() === 'Python ESP32-S3') { + this.appendValueInput('boolean') + .appendField( Blockly.Msg.MIXLY_synchronize + ':'); } this.setPreviousStatement(true, null); this.setNextStatement(true, null); @@ -300,13 +291,9 @@ export const display_shift = { this.appendDummyInput('') .appendField(Blockly.Msg.DISPLAY_IMAGE_UNIT) var version = Boards.getSelectedBoardKey() - if (version == 'micropython:esp32s3:mixgo_nova'||'micropython:esp32s3:mixgo_sant') { - this.appendDummyInput() - .appendField( Blockly.Msg.MIXLY_synchronize + ':') - .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] - ]),"sync"); + if (JSFuncs.getPlatform() === 'Python ESP32-S3') { + this.appendValueInput('boolean') + .appendField( Blockly.Msg.MIXLY_synchronize + ':'); } var thisBlock = this; this.setTooltip(function () { @@ -397,13 +384,9 @@ export const display_clear = { this.appendDummyInput() .appendField(Blockly.Msg.MIXLY_MICROBIT_Clear_display); var version = Boards.getSelectedBoardKey() - if (version == 'micropython:esp32s3:mixgo_nova'||'micropython:esp32s3:mixgo_sant') { - this.appendDummyInput() - .appendField( Blockly.Msg.MIXLY_synchronize + ':') - .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] - ]),"sync"); + if (JSFuncs.getPlatform() === 'Python ESP32-S3') { + this.appendValueInput('boolean') + .appendField( Blockly.Msg.MIXLY_synchronize + ':'); } this.setPreviousStatement(true, null); this.setNextStatement(true, null); @@ -1124,13 +1107,9 @@ export const onboard_tft_show_image_xy = { this.appendValueInput('VAR') .appendField(Blockly.Msg.HTML_COLOUR); var version = Boards.getSelectedBoardKey() - if (version == 'micropython:esp32s3:mixgo_nova'||'micropython:esp32s3:mixgo_sant') { - this.appendDummyInput() - .appendField( Blockly.Msg.MIXLY_synchronize + ':') - .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] - ]),"sync"); + if (JSFuncs.getPlatform() === 'Python ESP32-S3') { + this.appendValueInput('boolean') + .appendField( Blockly.Msg.MIXLY_synchronize + ':'); } this.setPreviousStatement(true, null); this.setNextStatement(true, null); @@ -1184,13 +1163,9 @@ export const onboard_tft_show_image_or_string_delay = { this.appendValueInput('VAR') .appendField(Blockly.Msg.HTML_COLOUR); var version = Boards.getSelectedBoardKey() - if (version == 'micropython:esp32s3:mixgo_nova'||'micropython:esp32s3:mixgo_sant') { - this.appendDummyInput() - .appendField( Blockly.Msg.MIXLY_synchronize + ':') - .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] - ]),"sync"); + if (JSFuncs.getPlatform() === 'Python ESP32-S3') { + this.appendValueInput('boolean') + .appendField( Blockly.Msg.MIXLY_synchronize + ':'); } this.setPreviousStatement(true, null); this.setNextStatement(true, null); @@ -1261,12 +1236,8 @@ export const onboard_tft_display_shape_rect = { //"check": "Number" }, { - "name": "sync", - "options": [ - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] - ], - "type": "field_dropdown" + "name": "boolean", + "type": "input_value", } ], "inputsInline": true, @@ -1316,12 +1287,8 @@ export const onboard_tft_display_hvline = { //"check": "Number" }, { - "name": "sync", - "options": [ - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] - ], - "type": "field_dropdown" + "name": "boolean", + "type": "input_value", } ], "inputsInline": true, @@ -1367,12 +1334,8 @@ export const onboard_tft_display_line = { //"check": "Number" }, { - "name": "sync", - "options": [ - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] - ], - "type": "field_dropdown" + "name": "boolean", + "type": "input_value", } ], "inputsInline": true, @@ -1417,13 +1380,9 @@ export const onboard_tft_bright_point = { this.appendValueInput('VAR') .appendField(Blockly.Msg.HTML_COLOUR); var version = Boards.getSelectedBoardKey() - if (version == 'micropython:esp32s3:mixgo_nova'||'micropython:esp32s3:mixgo_sant') { - this.appendDummyInput() - .appendField( Blockly.Msg.MIXLY_synchronize + ':') - .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] - ]),"sync"); + if (JSFuncs.getPlatform() === 'Python ESP32-S3') { + this.appendValueInput('boolean') + .appendField( Blockly.Msg.MIXLY_synchronize + ':'); } this.setPreviousStatement(true, null); this.setNextStatement(true, null); @@ -1438,13 +1397,9 @@ export const onboard_tft_fill = { this.appendValueInput('VAR') .appendField(Blockly.Msg.MIXLY_SCREEN_FILL); var version = Boards.getSelectedBoardKey() - if (version == 'micropython:esp32s3:mixgo_nova'||'micropython:esp32s3:mixgo_sant') { - this.appendDummyInput() - .appendField( Blockly.Msg.MIXLY_synchronize + ':') - .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] - ]),"sync"); + if (JSFuncs.getPlatform() === 'Python ESP32-S3') { + this.appendValueInput('boolean') + .appendField( Blockly.Msg.MIXLY_synchronize + ':'); } this.setPreviousStatement(true, null); this.setNextStatement(true, null); @@ -1572,12 +1527,8 @@ export const onboard_tft_display_shape_circle = { //"check": "Number" }, { - "name": "sync", - "options": [ - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] - ], - "type": "field_dropdown" + "name": "boolean", + "type": "input_value", } ], "inputsInline": true, @@ -1640,13 +1591,9 @@ export const onboard_tft_show_texts = { this.appendValueInput('VAR') .appendField(Blockly.Msg.HTML_COLOUR); var version = Boards.getSelectedBoardKey() - if (version == 'micropython:esp32s3:mixgo_nova'||'micropython:esp32s3:mixgo_sant') { - this.appendDummyInput() - .appendField( Blockly.Msg.MIXLY_synchronize + ':') - .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], - [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] - ]),"sync"); + if (JSFuncs.getPlatform() === 'Python ESP32-S3') { + this.appendValueInput('boolean') + .appendField( Blockly.Msg.MIXLY_synchronize + ':'); } this.setPreviousStatement(true, null); this.setNextStatement(true, null); diff --git a/boards/default_src/micropython/generators/ai_local.js b/boards/default_src/micropython/generators/ai_local.js index c7469b63..891f61d7 100644 --- a/boards/default_src/micropython/generators/ai_local.js +++ b/boards/default_src/micropython/generators/ai_local.js @@ -98,13 +98,11 @@ export const CI130X_SET_SYSTEM_CMD_SANT = function (_, generator) { export const CI130X_BROADCAST_SYSTEM_TIME = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr'; - var cmd = this.getFieldValue('cmd'); - var code = 'onboard_asr.play_time(' + cmd + ')\n'; + var bool = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); + var code = 'onboard_asr.play_time(' + bool + ')\n'; return code; } - - //graph part export const CREATE_CAMERA = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; @@ -126,8 +124,8 @@ export const GET_PICTURE_DATA = function (_, generator) { } export const SCREEN_SHOW_CAM_GRAPH_SHOOT = function (_, generator) { - var con = this.getFieldValue('control'); - var code = 'cam.'+ con +'()\n'; + var bool = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); + var code = 'cam.display('+ bool +')\n'; return code; } diff --git a/boards/default_src/micropython/generators/display_onboard.js b/boards/default_src/micropython/generators/display_onboard.js index cafe26c0..d43aed2c 100644 --- a/boards/default_src/micropython/generators/display_onboard.js +++ b/boards/default_src/micropython/generators/display_onboard.js @@ -6,7 +6,7 @@ export const display_show_image = function (_, generator) { if (JSFuncs.getPlatform() === 'Python ESP32-S3') { generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var s = this.getFieldValue('sync'); + var s = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); var code = "onboard_tft.image(" + data + ", color=0xffff,sync="+ s +")\n"; } else { if (version == "educore") { @@ -25,9 +25,9 @@ export const display_show_image_or_string_delay = function (_, generator) { var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT); var op = this.getFieldValue('center'); - var s = this.getFieldValue('sync'); if (version == "mixgo_sant" || version == "mixgo_nova") { generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; + var s = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); var code = "onboard_tft.shows(" + data + ", space=" + space + ', center=' + op + ",sync="+ s +")\n"; return code; } else if (version == "educore") { @@ -45,7 +45,7 @@ export const display_show_frame_string = function (_, generator) { if (version == 'mpython' || version == 'educore') { generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; var code = "onboard_oled.frame(" + data + ")\n"; - } else if (version == 'mixgo_nova'||'mixgo_sant') { + } else if (JSFuncs.getPlatform() === 'Python ESP32-S3') { generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); var code = "onboard_tft.frame(" + data + ", color=0xffff)\n"; @@ -64,7 +64,7 @@ export const display_show_frame_string_delay = function (_, generator) { generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); var code = "onboard_oled.frame(" + data + ', delay=' + time + ")\n"; - } else if (version == 'mixgo_nova'||'mixgo_sant') { + } else if (JSFuncs.getPlatform() === 'Python ESP32-S3') { generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; var code = "onboard_tft.frame(" + data + ', size=5 , delay=' + time + ', color=0xffff)\n'; } else { @@ -80,7 +80,7 @@ export const display_scroll_string = function (_, generator) { generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); var code = "onboard_oled.scroll(" + data + ")\n"; - } else if (version == 'mixgo_nova'||'mixgo_sant') { + } else if (JSFuncs.getPlatform() === 'Python ESP32-S3') { generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); var code = "onboard_tft.scroll(" + data + ", color=0xffff)\n"; @@ -100,7 +100,7 @@ export const display_scroll_string_delay = function (_, generator) { if (version == 'mpython' || version == 'educore') { generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; var code = "onboard_oled.scroll(" + data + ', speed=' + time + ', space=' + space + ")\n"; - } else if (version == 'mixgo_nova'||'mixgo_sant') { + } else if (JSFuncs.getPlatform() === 'Python ESP32-S3') { generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; var code = "onboard_tft.scroll(" + data + ', y=0, size=5, speed=' + time + ', space=' + space + ', color=0xffff)\n'; } else { @@ -143,7 +143,7 @@ export const display_image_builtins = function (block, generator) { export const display_image_builtins_all = function (block, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; - if (version == 'mixgo_nova'||'mixgo_sant') { + if (JSFuncs.getPlatform() === 'Python ESP32-S3') { const PIN_VALUE = block.getFieldValue('image'); const data = PIN_VALUE.split('.'); if (data.length !== 2) { @@ -255,9 +255,9 @@ export const display_clear = function (block, generator) { if (version == 'mpython') { generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; var code = 'onboard_oled.fill(0)\n' + 'onboard_oled.show()\n'; - } else if (version == 'mixgo_nova'||'mixgo_sant') { + } else if (JSFuncs.getPlatform() === 'Python ESP32-S3') { generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var s = this.getFieldValue('sync'); + var s = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); var code = 'onboard_tft.fill(0,sync='+s+')\n'; } else { generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; @@ -298,11 +298,11 @@ export const display_shift = function (a, generator) { var op = a.getFieldValue("OP"); var value = generator.valueToCode(a, 'val', generator.ORDER_ATOMIC); var code = 'onboard_oled.' + op + '(' + value + ')\n'; - } else if (version == 'mixgo_nova'||'mixgo_sant') { + } else if (JSFuncs.getPlatform() === 'Python ESP32-S3') { generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; var op = a.getFieldValue("OP"); var value = generator.valueToCode(a, 'val', generator.ORDER_ATOMIC); - var s = this.getFieldValue('sync'); + var s = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); var code = 'onboard_tft.' + op + '(' + value + ',sync='+ s +')\n'; } else { generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; @@ -326,7 +326,7 @@ export const display_get_pixel = function (block, generator) { var value_x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC); var value_y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC); var code = 'onboard_oled.pixel(int(' + value_x + '), int(' + value_y + '))'; - } else if (version == 'mixgo_nova'||'mixgo_sant') { + } else if (JSFuncs.getPlatform() === 'Python ESP32-S3') { generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; var value_x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC); var value_y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC); @@ -343,7 +343,7 @@ export const display_get_pixel = function (block, generator) { export const display_bright_point = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; - if (version == 'mixgo_nova'||'mixgo_sant') { + if (JSFuncs.getPlatform() === 'Python ESP32-S3') { generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); @@ -360,7 +360,7 @@ export const display_bright_point = function (_, generator) { export const display_get_screen_pixel = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; - if (version == 'mixgo_nova'||'mixgo_sant') { + if (JSFuncs.getPlatform() === 'Python ESP32-S3') { generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; var code = 'onboard_tft.get_brightness()'; } else { @@ -372,7 +372,7 @@ export const display_get_screen_pixel = function (_, generator) { export const display_bright_screen = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; - if (version == 'mixgo_nova'||'mixgo_sant') { + if (JSFuncs.getPlatform() === 'Python ESP32-S3') { generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); var code = 'onboard_tft.set_brightness(' + x + ')\n'; @@ -837,7 +837,7 @@ export const onboard_tft_show_image_xy = function (_, generator) { var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var s = this.getFieldValue('sync'); + var s = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); if (color.slice(0, 2) == "0x") { var code = "onboard_tft.image(" + data + ', x=' + x + ', y=' + y + ', size=' + size + ', color='+ color +",sync=" + s +")\n"; } else { @@ -871,7 +871,7 @@ export const onboard_tft_show_image_or_string_delay = function (_, generator) { var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT); var op = this.getFieldValue('center'); - var s = this.getFieldValue('sync'); + var s = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); if (color.slice(0, 2) == "0x") { var code = "onboard_tft.shows(" + data + ', x=' + x + ', y=' + y + ', size=' + size + ', space=' + space + ', center=' + op + ', color=' + color + ",sync=" + s + ")\n"; @@ -917,7 +917,7 @@ export const onboard_tft_display_shape_rect = function (block, generator) { var h = generator.valueToCode(block, 'h', generator.ORDER_ATOMIC); var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); var shape = block.getFieldValue('shape'); - var s = this.getFieldValue('sync'); + var s = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); if (color.slice(0, 2) == "0x") { var code = 'onboard_tft.' + shape + '(' + x + ', ' + y + ', ' + w + ', ' + h + ', ' + color + ',sync=' + s +')\n'; } else { @@ -940,7 +940,7 @@ export const onboard_tft_display_hvline = function (block, generator) { //水平 var var_length = generator.valueToCode(block, 'length', generator.ORDER_ATOMIC); var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); var hv = block.getFieldValue('dir_h_v'); - var s = this.getFieldValue('sync'); + var s = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); if (color.slice(0, 2) == "0x") { var code = 'onboard_tft.' + (('0' == hv) ? 'v' : 'h') + 'line(' + x + ', ' + y + ', ' + var_length + ', ' + color + ',sync=' + s +')\n'; } else { @@ -963,7 +963,7 @@ export const onboard_tft_display_line = function (block, generator) { var x2 = generator.valueToCode(block, 'x2', generator.ORDER_ATOMIC); var y2 = generator.valueToCode(block, 'y2', generator.ORDER_ATOMIC); var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var s = this.getFieldValue('sync'); + var s = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); if (color.slice(0, 2) == "0x") { var code = 'onboard_tft.line(' + x1 + ', ' + y1 + ', ' + x2 + ', ' + y2 + ', ' + color + ',sync=' + s +')\n'; } else { @@ -993,7 +993,7 @@ export const onboard_tft_bright_point = function (_, generator) { var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var s = this.getFieldValue('sync'); + var s = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); if (color.slice(0, 2) == "0x") { var code = 'onboard_tft.pixel(int(' + x + '), int(' + y + '), ' + color + ',sync='+ s + ")\n"; } else { @@ -1012,7 +1012,7 @@ export const onboard_tft_fill = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2] generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; var color = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT); - var s = this.getFieldValue('sync'); + var s = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); if (color.slice(0, 2) == "0x") { var code = 'onboard_tft.fill(' + color + ',sync=' + s +')\n'; } else { @@ -1103,7 +1103,7 @@ export const onboard_tft_display_shape_circle = function (block, generator) { var R = generator.valueToCode(block, 'r', generator.ORDER_ATOMIC); var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); var shape = block.getFieldValue('shape'); - var s = this.getFieldValue('sync'); + var s = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); if (color.slice(0, 2) == "0x") { var code = 'onboard_tft.ellipse(' + x + ', ' + y + ', ' + R + ', ' + R + ', ' + color + ', ' + shape + ',sync=' + s +')\n'; } else { @@ -1120,7 +1120,7 @@ export const onboard_tft_display_shape_circle = function (block, generator) { export const draw_pointer = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mixgo_nova'||'mixgo_sant'){ + if (JSFuncs.getPlatform() === 'Python ESP32-S3'){ generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; var angle = generator.valueToCode(this, 'angle', generator.ORDER_ASSIGNMENT); var code = "onboard_tft.pointern(angle=" + angle + ")\n"; @@ -1160,7 +1160,7 @@ export const onboard_tft_show_texts = function (_, generator) { var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var s = this.getFieldValue('sync'); + var s = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); if (color.slice(0, 2) == "0x") { var code = "onboard_tft.texts(" + data + ', x=' + x + ', y=' + y + ', size=' + size + ', color='+ color +",sync=" + s +")\n"; } else { @@ -1180,11 +1180,6 @@ export const onboard_tft_show_texts = function (_, generator) { */ export const onboard_tft_show_image = display_show_image; -/** - * @deprecated To be removed in the future - */ -export const onboard_tft_scroll_string = display_scroll_string; - /** * @deprecated To be removed in the future */ diff --git a/boards/default_src/micropython_esp32s3/template.xml b/boards/default_src/micropython_esp32s3/template.xml index ebe8191b..dc25f438 100644 --- a/boards/default_src/micropython_esp32s3/template.xml +++ b/boards/default_src/micropython_esp32s3/template.xml @@ -1835,6 +1835,10 @@ + + + + @@ -1863,6 +1867,10 @@ 255,255,0 + + + + @@ -1875,6 +1883,10 @@ 0 + + + + @@ -1910,6 +1922,10 @@ 255,255,0 + + + + @@ -1940,6 +1956,10 @@ 255,255,0 + + + + @@ -2056,6 +2076,10 @@ 255,255,0 + + + + @@ -2086,6 +2110,10 @@ 255,255,0 + + + + @@ -2116,6 +2144,10 @@ 255,255,0 + + + + @@ -2141,6 +2173,10 @@ 255,255,0 + + + + @@ -2148,6 +2184,10 @@ 1 + + + + @@ -2180,6 +2220,10 @@ 255,255,0 + + + + @@ -2198,8 +2242,17 @@ 255,255,0 + + + + + + + + + + - @@ -2339,7 +2392,12 @@ - + + + + + + @@ -2486,6 +2544,11 @@ + + + + + diff --git a/common/msg/blockly/en.js b/common/msg/blockly/en.js index 893c30be..73e1e130 100644 --- a/common/msg/blockly/en.js +++ b/common/msg/blockly/en.js @@ -3936,18 +3936,32 @@ En.MIXlY_SCREEN_SHOW_CAM_SHOOT = 'Display Camera Capture on Screen'; En.MIXlY_STOP_SCREEN_DISPLAY = 'Turn Off Real-Time LCD Display of Camera Capture'; En.MIXLY_RECOGNITION = 'Detection'; En.MIXLY_GET_QR_CODE_RECOGNITION_RESULT = 'Get QR Code Detection Result'; -En.MIXLY_GET_QR_CODE_RECOGNITION_RESULT_TOOLTIP = 'Returns None if no result is detected. If detected, a green square appears in the top-left corner, and the QR code information is returned.'; +// En.MIXLY_GET_QR_CODE_RECOGNITION_RESULT_TOOLTIP = 'Returns None if no result is detected. If detected, a green square appears in the top-left corner, and the QR code information is returned.'; En.COLOUR_RGB_GREY = "Gray"; En.MIXLY_CUSTOM_STUDY = "Custom Learning"; -En.MIXLY_GET_COLOR_DETECTION_RESULT = 'Get Color Detection Result'; +// En.MIXLY_GET_COLOR_DETECTION_RESULT = 'Get Color Detection Result'; En.MIXLY_GET_COLOR_DETECTION_RESULT_TOOLTIP = 'Get color detection results, returning the number of rectangular regions and their top-left and bottom-right coordinates (4 values).'; En.MIXLY_CAT_FACE = 'Cat Face'; En.MIXLY_GET_CAT_FACE_DETECTION_RESULT = 'Get Cat Face Detection Result'; En.MIXLY_GET_CAT_FACE_DETECTION_RESULT_TOOLTIP = 'Get cat face detection results, returning the number of rectangular regions and their top-left and bottom-right coordinates (4 values).'; -En.MIXLY_GET_PEOPLE_FACE_DETECTION_RESULT = 'Get Face Detection Result'; -En.MIXLY_GET_PEOPLE_FACE_DETECTION_RESULT_TOOLTIP = 'Get face detection results, returning the number of rectangular regions, their bounding box coordinates, and five key facial landmarks. Explanation: v[0]: number of faces; v[1-4]: top-left and bottom-right coordinates; v[5-14]: left eye, right eye, nose, left mouth corner, right mouth corner coordinates.'; -En.MIXLY_GET_PEOPLE_FACE_RECOGNITION_RESULT = 'Get Face Recognition Result'; -En.MIXLY_GET_PEOPLE_FACE_RECOGNITION_RESULT_TOOLTIP = 'Get face recognition results, returning face ID (starting from 1), rectangular regions, and corresponding 5-point coordinates. Explanation: v[0]: number of faces; v[1-4]: top-left and bottom-right coordinates; v[5-14]: left eye, right eye, nose, left mouth corner, right mouth corner coordinates.'; +// En.MIXLY_GET_PEOPLE_FACE_DETECTION_RESULT = 'Get Face Detection Result'; +// En.MIXLY_GET_PEOPLE_FACE_DETECTION_RESULT_TOOLTIP = 'Get face detection results, returning the number of rectangular regions, their bounding box coordinates, and five key facial landmarks. Explanation: v[0]: number of faces; v[1-4]: top-left and bottom-right coordinates; v[5-14]: left eye, right eye, nose, left mouth corner, right mouth corner coordinates.'; +// En.MIXLY_GET_PEOPLE_FACE_RECOGNITION_RESULT = 'Get Face Recognition Result'; +// En.MIXLY_GET_PEOPLE_FACE_RECOGNITION_RESULT_TOOLTIP = 'Get face recognition results, returning face ID (starting from 1), rectangular regions, and corresponding 5-point coordinates. Explanation: v[0]: number of faces; v[1-4]: top-left and bottom-right coordinates; v[5-14]: left eye, right eye, nose, left mouth corner, right mouth corner coordinates.'; En.FACE_ENROLL = 'Enroll Face'; En.MIXLY_DELETE_PEOPLE_FACE_ID = 'Delete Face ID Information'; +En.MIXLY_GET_PICTURE_DATA_TOOLTIP = 'Return the image data (width, height, data)'; +En.MIXLY_HOW_MUCH = 'How many'; +En.MIXLY_Pixel_block = 'Pixel block'; +En.MIXLY_KEYPOINT = 'Keypoint'; +En.MIXLY_LEFT_EYE = 'Left eye'; +En.MIXLY_RIGHT_EYE = 'Right eye'; +En.MIXLY_NOSE = 'Nose'; +En.MIXLY_LEFT_MOUSE_CORNER = 'Left corner of mouth'; +En.MIXLY_RIGHT_MOUSE_CORNER = 'Right corner of mouth'; +En.MIXLY_RECOGNITION_RECGNITION = 'Recognition'; +En.MIXLY_synchronize = 'Synchronize'; +En.MIXLY_Display_long_text = 'Display long text'; +En.MIXLY_BROADCAST_SYSTEM_TIME = 'Broadcast system time'; +En.MIXLY_DETAILED = 'Detailed'; })(); diff --git a/common/msg/blockly/zh-hans.js b/common/msg/blockly/zh-hans.js index 0c815586..91c124de 100644 --- a/common/msg/blockly/zh-hans.js +++ b/common/msg/blockly/zh-hans.js @@ -4092,7 +4092,7 @@ ZhHans.MIXLY_CAL_TO_ALTITUDE = '计算获取海拔'; ZhHans.MIXLY_SHOOTING_SIZE = '拍摄尺寸'; ZhHans.MIXLY_SHOOT_AND_SAVE_PICTURE = '拍摄照片并保存'; ZhHans.MIXLY_GET_PICTURE_DATA = '获取图像数据'; -ZhHans.MIXlY_SCREEN_SHOW_CAM_SHOOT = '屏幕显示摄像头采集图像'; +ZhHans.MIXlY_SCREEN_SHOW_CAM_SHOOT = '屏幕实时显示摄像头采集图像'; ZhHans.MIXLY_RECOGNITION = '检测'; ZhHans.MIXLY_GET_QR_CODE_RECOGNITION_RESULT = '获取二维码检测结果'; // ZhHans.MIXLY_GET_QR_CODE_RECOGNITION_RESULT_TOOLTIP = '无检测结果返回None,有结果左上角出现绿色小方块,并返回二维码信息。' @@ -4110,7 +4110,6 @@ ZhHans.MIXLY_GET_CAT_FACE_DETECTION_RESULT_TOOLTIP = '获取猫脸检测结果 ZhHans.FACE_ENROLL = '录入人脸'; ZhHans.MIXLY_DELETE_PEOPLE_FACE_ID = '删除人脸ID信息'; ZhHans.MIXLY_GET_PICTURE_DATA_TOOLTIP = '返回图像的(宽,高,数据)'; -// ZhHans.MIXLY_EMOTION_DETEECTION = '情绪检测'; ZhHans.MIXLY_HOW_MUCH = '有几个'; ZhHans.MIXLY_Pixel_block = '像素块'; ZhHans.MIXLY_KEYPOINT = '关键点'; @@ -4124,5 +4123,4 @@ ZhHans.MIXLY_synchronize = '实时刷新'; ZhHans.MIXLY_Display_long_text = '显示长文本'; ZhHans.MIXLY_BROADCAST_SYSTEM_TIME = '播报系统时间'; ZhHans.MIXLY_DETAILED = '详细地'; -ZhHans.MIXLY_Concise = '简洁地'; })(); \ No newline at end of file diff --git a/common/msg/blockly/zh-hant.js b/common/msg/blockly/zh-hant.js index ee495693..1bf8a03f 100644 --- a/common/msg/blockly/zh-hant.js +++ b/common/msg/blockly/zh-hant.js @@ -4090,18 +4090,32 @@ ZhHant.MIXlY_SCREEN_SHOW_CAM_SHOOT = '屏幕顯示攝像頭採集圖像'; ZhHant.MIXlY_STOP_SCREEN_DISPLAY = '關閉攝像頭採集圖像LCD實時顯示'; ZhHant.MIXLY_RECOGNITION = '檢測'; ZhHant.MIXLY_GET_QR_CODE_RECOGNITION_RESULT = '獲取二維碼檢測結果'; -ZhHant.MIXLY_GET_QR_CODE_RECOGNITION_RESULT_TOOLTIP = '無檢測結果返回None,有結果左上角出現綠色小方塊,並返回二維碼信息。' +// ZhHant.MIXLY_GET_QR_CODE_RECOGNITION_RESULT_TOOLTIP = '無檢測結果返回None,有結果左上角出現綠色小方塊,並返回二維碼信息。' ZhHant.COLOUR_RGB_GREY = "灰色"; ZhHant.MIXLY_CUSTOM_STUDY = "自定義學習"; -ZhHant.MIXLY_GET_COLOR_DETECTION_RESULT = '獲取顏色檢測結果'; +// ZhHant.MIXLY_GET_COLOR_DETECTION_RESULT = '獲取顏色檢測結果'; ZhHant.MIXLY_GET_COLOR_DETECTION_RESULT_TOOLTIP ='獲取顏色採集結果,返回矩形區域數量和對應的左上角和右下角坐標(4個值)。'; ZhHant.MIXLY_CAT_FACE = '貓臉'; ZhHant.MIXLY_GET_CAT_FACE_DETECTION_RESULT = '獲取貓臉檢測結果'; ZhHant.MIXLY_GET_CAT_FACE_DETECTION_RESULT_TOOLTIP = '獲取貓臉檢測結果,返回矩形區域數量和對應的左上角和右下角坐標(4個值)。'; -ZhHant.MIXLY_GET_PEOPLE_FACE_DETECTION_RESULT = '獲取人臉檢測結果'; -ZhHant.MIXLY_GET_PEOPLE_FACE_DETECTION_RESULT_TOOLTIP = '獲取人臉檢測結果,返回矩形區域數量、對應的矩形框左邊以及五點關鍵特徵值。說明:v[0]:人臉數量;v[1-4]:矩形左上角和右下角坐標;v[5-14]:左眼、右眼、鼻子、左嘴角、右嘴角坐標。'; -ZhHant.MIXLY_GET_PEOPLE_FACE_RECOGNITION_RESULT = '獲取人臉識別結果'; -ZhHant.MIXLY_GET_PEOPLE_FACE_RECOGNITION_RESULT_TOOLTIP = '獲取人臉識別結果,獲取人識別結果,返回人臉ID(ID從1開始)、矩形區域和和對應的5點坐標。說明:v[0]:人臉數量;v[1-4]:矩形左上角和右下角坐標;v[5-14]:左眼、右眼、鼻子、左嘴角、右嘴角坐標。'; +// ZhHant.MIXLY_GET_PEOPLE_FACE_DETECTION_RESULT = '獲取人臉檢測結果'; +// ZhHant.MIXLY_GET_PEOPLE_FACE_DETECTION_RESULT_TOOLTIP = '獲取人臉檢測結果,返回矩形區域數量、對應的矩形框左邊以及五點關鍵特徵值。說明:v[0]:人臉數量;v[1-4]:矩形左上角和右下角坐標;v[5-14]:左眼、右眼、鼻子、左嘴角、右嘴角坐標。'; +// ZhHant.MIXLY_GET_PEOPLE_FACE_RECOGNITION_RESULT = '獲取人臉識別結果'; +// ZhHant.MIXLY_GET_PEOPLE_FACE_RECOGNITION_RESULT_TOOLTIP = '獲取人臉識別結果,獲取人識別結果,返回人臉ID(ID從1開始)、矩形區域和和對應的5點坐標。說明:v[0]:人臉數量;v[1-4]:矩形左上角和右下角坐標;v[5-14]:左眼、右眼、鼻子、左嘴角、右嘴角坐標。'; ZhHant.FACE_ENROLL = '錄入人臉'; ZhHant.MIXLY_DELETE_PEOPLE_FACE_ID = '刪除人臉ID信息'; +ZhHant.MIXLY_GET_PICTURE_DATA_TOOLTIP = '返回圖像的(寬,高,數據)'; +ZhHant.MIXLY_HOW_MUCH = '有幾個'; +ZhHant.MIXLY_Pixel_block = '像素塊'; +ZhHant.MIXLY_KEYPOINT = '關鍵點'; +ZhHant.MIXLY_LEFT_EYE = '左眼'; +ZhHant.MIXLY_RIGHT_EYE = '右眼'; +ZhHant.MIXLY_NOSE = '鼻子'; +ZhHant.MIXLY_LEFT_MOUSE_CORNER = '左嘴角'; +ZhHant.MIXLY_RIGHT_MOUSE_CORNER = '右嘴角'; +ZhHant.MIXLY_RECOGNITION_RECGNITION = '識別'; +ZhHant.MIXLY_synchronize = '實時刷新'; +ZhHant.MIXLY_Display_long_text = '顯示長文本'; +ZhHant.MIXLY_BROADCAST_SYSTEM_TIME = '播報系統時間'; +ZhHant.MIXLY_DETAILED = '詳細地'; })(); \ No newline at end of file