diff --git a/boards/default_src/micropython/blocks/ai_local.js b/boards/default_src/micropython/blocks/ai_local.js index 33bfd516..b907ab4a 100644 --- a/boards/default_src/micropython/blocks/ai_local.js +++ b/boards/default_src/micropython/blocks/ai_local.js @@ -282,6 +282,10 @@ 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.setPreviousStatement(true); this.setNextStatement(true); @@ -289,17 +293,6 @@ export const SCREEN_SHOW_CAM_GRAPH_SHOOT = { } }; -export const STOP_SCREEN_DISPLAY = { - init: function () { - this.setColour(AI_LOCAL_GRAPH_HUE); - this.appendDummyInput() - .appendField(Blockly.Msg.MIXlY_STOP_SCREEN_DISPLAY); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - export const AI_CAMERA_INIT = { init: function () { this.setColour(AI_LOCAL_GRAPH_HUE); @@ -311,7 +304,6 @@ export const AI_CAMERA_INIT = { .appendField(new Blockly.FieldDropdown([ [Blockly.Msg.MIXLY_QR_CODE + Blockly.Msg.MIXLY_RECOGNITION, "CODE_DETECTION"], [Blockly.Msg.MIXLY_COLOR_RECOGNTITION, "COLOR_DETECTION"], - [Blockly.Msg.MIXLY_EMOTION_DETEECTION, "MOTION_DETECTON"], [Blockly.Msg.MIXLY_CAT_FACE + Blockly.Msg.MIXLY_RECOGNITION, "CAT_FACE_DETECTION"], [Blockly.Msg.MIXLY_FACE_CLASSIFIER, "FACE_DETECTION"], [Blockly.Msg.MIXLY_AipFace, "FACE_RECOGNITION"] diff --git a/boards/default_src/micropython/blocks/display_onboard.js b/boards/default_src/micropython/blocks/display_onboard.js index 4847b6c9..38d9680e 100644 --- a/boards/default_src/micropython/blocks/display_onboard.js +++ b/boards/default_src/micropython/blocks/display_onboard.js @@ -299,6 +299,15 @@ export const display_shift = { .setCheck(Number); 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"); + } var thisBlock = this; this.setTooltip(function () { var mode = thisBlock.getFieldValue('OP'); @@ -387,6 +396,15 @@ export const display_clear = { this.setColour(DISPLAY_ONBOARD_HUE); 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"); + } this.setPreviousStatement(true, null); this.setNextStatement(true, null); this.setInputsInline(true); @@ -1241,6 +1259,14 @@ export const onboard_tft_display_shape_rect = { "name": "VAR", "type": "input_value", //"check": "Number" + }, + { + "name": "sync", + "options": [ + [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], + [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] + ], + "type": "field_dropdown" } ], "inputsInline": true, @@ -1288,6 +1314,14 @@ export const onboard_tft_display_hvline = { "name": "VAR", "type": "input_value", //"check": "Number" + }, + { + "name": "sync", + "options": [ + [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], + [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] + ], + "type": "field_dropdown" } ], "inputsInline": true, @@ -1331,6 +1365,14 @@ export const onboard_tft_display_line = { "name": "VAR", "type": "input_value", //"check": "Number" + }, + { + "name": "sync", + "options": [ + [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], + [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] + ], + "type": "field_dropdown" } ], "inputsInline": true, @@ -1374,6 +1416,15 @@ export const onboard_tft_bright_point = { .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y); 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"); + } this.setPreviousStatement(true, null); this.setNextStatement(true, null); this.setInputsInline(true); @@ -1385,7 +1436,16 @@ export const onboard_tft_fill = { init: function () { this.setColour(DISPLAY_ONBOARD_HUE); this.appendValueInput('VAR') - .appendField(Blockly.Msg.MIXLY_SCREEN_FILL) + .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"); + } this.setPreviousStatement(true, null); this.setNextStatement(true, null); this.setInputsInline(true); @@ -1510,6 +1570,14 @@ export const onboard_tft_display_shape_circle = { "name": "VAR", "type": "input_value", //"check": "Number" + }, + { + "name": "sync", + "options": [ + [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"1"], + [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"0"] + ], + "type": "field_dropdown" } ], "inputsInline": true, @@ -1554,6 +1622,38 @@ export const nova_draw_pointer = { this.setTooltip(Blockly.Msg.DRAW_POINTER_TOOLTIP); } }; + +export const onboard_tft_show_texts = { + init: function () { + this.setColour(DISPLAY_ONBOARD_HUE); + this.appendValueInput('data') + .appendField(Blockly.Msg.MIXLY_Display_long_text); + this.appendValueInput("x") + .setCheck(Number) + .appendField('x'); + this.appendValueInput("y") + .setCheck(Number) + .appendField('y'); + this.appendValueInput("size") + .setCheck(Number) + .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_NUMBER); + 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"); + } + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setInputsInline(true); + } +}; + /** * @deprecated To be removed in the future */ diff --git a/boards/default_src/micropython/generators/ai_local.js b/boards/default_src/micropython/generators/ai_local.js index c47acf47..70c676e8 100644 --- a/boards/default_src/micropython/generators/ai_local.js +++ b/boards/default_src/micropython/generators/ai_local.js @@ -120,12 +120,8 @@ export const GET_PICTURE_DATA = function (_, generator) { } export const SCREEN_SHOW_CAM_GRAPH_SHOOT = function (_, generator) { - var code = 'cam.display()\n'; - return code; -} - -export const STOP_SCREEN_DISPLAY = function (_, generator) { - var code = 'cam.display_stop()\n'; + var con = this.getFieldValue('control'); + var code = 'cam.'+ con +'()\n'; return code; } @@ -167,11 +163,11 @@ export const GET_CAT_FACE_DETECTION_NUM = function (_, generator) { export const GET_CAT_FACE_DETECTION_LOCATION = function (_, generator) { var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var num = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC); - var code = sub + ".cat_detection(,'pos',"+ num +')'; + var code = sub + ".cat_detection('pos',"+ num +')'; return [code, generator.ORDER_ATOMIC]; } -export const GET__FACE_DETECTION_NUM = function (_, generator) { +export const GET_FACE_DETECTION_NUM = function (_, generator) { var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var code = sub + ".face_detection('len')"; return [code, generator.ORDER_ATOMIC]; diff --git a/boards/default_src/micropython/generators/display_onboard.js b/boards/default_src/micropython/generators/display_onboard.js index 0fe969e3..dba5eef9 100644 --- a/boards/default_src/micropython/generators/display_onboard.js +++ b/boards/default_src/micropython/generators/display_onboard.js @@ -257,7 +257,8 @@ export const display_clear = function (block, generator) { var code = 'onboard_oled.fill(0)\n' + 'onboard_oled.show()\n'; } else if (version == 'mixgo_nova'||'mixgo_sant') { generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var code = 'onboard_tft.fill(0)\n'; + var s = this.getFieldValue('sync'); + var code = 'onboard_tft.fill(0,sync='+s+')\n'; } else { generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; var code = 'onboard_matrix.fill(0)\n' + 'onboard_matrix.show()\n'; @@ -301,7 +302,8 @@ export const display_shift = function (a, generator) { 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 code = 'onboard_tft.' + op + '(' + value + ')\n'; + var s = this.getFieldValue('sync'); + var code = 'onboard_tft.' + op + '(' + value + ',sync='+ s +')\n'; } else { generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; var op = a.getFieldValue("OP"); @@ -915,8 +917,9 @@ 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'); if (color.slice(0, 2) == "0x") { - var code = 'onboard_tft.' + shape + '(' + x + ', ' + y + ', ' + w + ', ' + h + ', ' + color + ')\n'; + var code = 'onboard_tft.' + shape + '(' + x + ', ' + y + ', ' + w + ', ' + h + ', ' + color + ',sync=' + s +')\n'; } else { const rgbValues = color.match(/\d+/g); const r = parseInt(rgbValues[0]); @@ -924,7 +927,7 @@ export const onboard_tft_display_shape_rect = function (block, generator) { const b = parseInt(rgbValues[2]); var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = 'onboard_tft.' + shape + '(' + x + ', ' + y + ', ' + w + ', ' + h + ', 0x' + rgb565.toString(16) + ')\n'; + var code = 'onboard_tft.' + shape + '(' + x + ', ' + y + ', ' + w + ', ' + h + ', 0x' + rgb565.toString(16) + ',sync=' + s +')\n'; } return code; } @@ -937,8 +940,9 @@ 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'); if (color.slice(0, 2) == "0x") { - var code = 'onboard_tft.' + (('0' == hv) ? 'v' : 'h') + 'line(' + x + ', ' + y + ', ' + var_length + ', ' + color + ')\n'; + var code = 'onboard_tft.' + (('0' == hv) ? 'v' : 'h') + 'line(' + x + ', ' + y + ', ' + var_length + ', ' + color + ',sync=' + s +')\n'; } else { const rgbValues = color.match(/\d+/g); const r = parseInt(rgbValues[0]); @@ -946,7 +950,7 @@ export const onboard_tft_display_hvline = function (block, generator) { //水平 const b = parseInt(rgbValues[2]); var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = 'onboard_tft.' + (('0' == hv) ? 'v' : 'h') + 'line(' + x + ', ' + y + ', ' + var_length + ', 0x' + rgb565.toString(16) + ')\n'; + var code = 'onboard_tft.' + (('0' == hv) ? 'v' : 'h') + 'line(' + x + ', ' + y + ', ' + var_length + ', 0x' + rgb565.toString(16) + ',sync=' + s +')\n'; } return code; } @@ -959,15 +963,16 @@ 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'); if (color.slice(0, 2) == "0x") { - var code = 'onboard_tft.line(' + x1 + ', ' + y1 + ', ' + x2 + ', ' + y2 + ', ' + color + ')\n'; + var code = 'onboard_tft.line(' + x1 + ', ' + y1 + ', ' + x2 + ', ' + y2 + ', ' + color + ',sync=' + s +')\n'; const rgbValues = color.match(/\d+/g); const r = parseInt(rgbValues[0]); const g = parseInt(rgbValues[1]); const b = parseInt(rgbValues[2]); var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = 'onboard_tft.line(' + x1 + ', ' + y1 + ', ' + x2 + ', ' + y2 + ', 0x' + rgb565.toString(16) + ')\n'; + var code = 'onboard_tft.line(' + x1 + ', ' + y1 + ', ' + x2 + ', ' + y2 + ', 0x' + rgb565.toString(16) + ',sync=' + s +')\n'; } return code; } @@ -987,8 +992,9 @@ 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'); if (color.slice(0, 2) == "0x") { - var code = 'onboard_tft.pixel(int(' + x + '), int(' + y + '), ' + color + ")\n"; + var code = 'onboard_tft.pixel(int(' + x + '), int(' + y + '), ' + color + ',sync='+ s + ")\n"; } else { const rgbValues = color.match(/\d+/g); const r = parseInt(rgbValues[0]); @@ -996,7 +1002,7 @@ export const onboard_tft_bright_point = function (_, generator) { const b = parseInt(rgbValues[2]); var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = 'onboard_tft.pixel(int(' + x + '), int(' + y + '), 0x' + rgb565.toString(16) + ")\n"; + var code = 'onboard_tft.pixel(int(' + x + '), int(' + y + '), 0x' + rgb565.toString(16) + ',sync='+ s + ")\n"; } return code; } @@ -1005,8 +1011,9 @@ 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'); if (color.slice(0, 2) == "0x") { - var code = 'onboard_tft.fill(' + color + ')\n'; + var code = 'onboard_tft.fill(' + color + ',sync=' + s +')\n'; } else { const rgbValues = color.match(/\d+/g); const r = parseInt(rgbValues[0]); @@ -1014,7 +1021,7 @@ export const onboard_tft_fill = function (_, generator) { const b = parseInt(rgbValues[2]); var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = 'onboard_tft.fill(0x' + rgb565.toString(16) + ')\n'; + var code = 'onboard_tft.fill(0x' + rgb565.toString(16) + ',sync=' + s + ')\n'; } return code; } @@ -1095,8 +1102,9 @@ 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'); if (color.slice(0, 2) == "0x") { - var code = 'onboard_tft.ellipse(' + x + ', ' + y + ', ' + R + ', ' + R + ', ' + color + ', ' + shape + ')\n'; + var code = 'onboard_tft.ellipse(' + x + ', ' + y + ', ' + R + ', ' + R + ', ' + color + ', ' + shape + ',sync=' + s +')\n'; } else { const rgbValues = color.match(/\d+/g); const r = parseInt(rgbValues[0]); @@ -1104,7 +1112,7 @@ export const onboard_tft_display_shape_circle = function (block, generator) { const b = parseInt(rgbValues[2]); var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = 'onboard_tft.ellipse(' + x + ', ' + y + ', ' + R + ', ' + R + ', 0x' + rgb565.toString(16) + ', ' + shape + ')\n'; + var code = 'onboard_tft.ellipse(' + x + ', ' + y + ', ' + R + ', ' + R + ', 0x' + rgb565.toString(16) + ', ' + shape + ',sync=' + s +')\n'; } return code; } @@ -1143,6 +1151,29 @@ export const nova_draw_pointer = function (_, generator) { return code; } +export const onboard_tft_show_texts = function (_, generator) { + var version = Boards.getSelectedBoardKey().split(':')[2]; + generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; + var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); + var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); + 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'); + if (color.slice(0, 2) == "0x") { + var code = "onboard_tft.texts(" + data + ', x=' + x + ', y=' + y + ', size=' + size + ', color='+ color +",sync=" + s +")\n"; + } else { + const rgbValues = color.match(/\d+/g); + const r = parseInt(rgbValues[0]); + const g = parseInt(rgbValues[1]); + const b = parseInt(rgbValues[2]); + var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); + var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; + var code = "onboard_tft.texts(" + data + ', x=' + x + ', y=' + y + ', size=' + size + ', color=0x' + rgb565.toString(16) + ",sync=" + s + ")\n"; + } + return code; +} + /** * @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 2e6b6b88..6fd5f239 100644 --- a/boards/default_src/micropython_esp32s3/template.xml +++ b/boards/default_src/micropython_esp32s3/template.xml @@ -1911,6 +1911,36 @@ + + + + Mixly + + + + + 0 + + + + + 0 + + + + + 1 + + + + + #ffffff + + + 255,255,0 + + + @@ -2310,7 +2340,6 @@ - diff --git a/common/msg/blockly/zh-hans.js b/common/msg/blockly/zh-hans.js index 3e3a09fa..772e6c3b 100644 --- a/common/msg/blockly/zh-hans.js +++ b/common/msg/blockly/zh-hans.js @@ -3689,9 +3689,9 @@ ZhHans.ANALOG = '模拟'; ZhHans.BITBOT = '飞乙'; ZhHans.MIXBOT = '超霸大师'; ZhHans.MICROPYTHON_BITBOT_SHUTDOWN_TOOLTIP = '仅电池供电下,将关机断电。USB供电下,只是关闭电机输出。'; -ZhHans.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0 = '绘制 %1 矩形 %2 x %3 y %4 宽 %5 高 %6 颜色 %7'; -ZhHans.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0 = '绘制 %1 线 %2 x %3 y %4 长度%5 颜色 %6'; -ZhHans.mpython_display_line_MESSAGE0 ='绘制 线条%1 x1%2 y1 %3 到 x2 %4 y2 %5 颜色 %6'; +ZhHans.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0 = '绘制 %1 矩形 %2 x %3 y %4 宽 %5 高 %6 颜色 %7 实时刷新: %8'; +ZhHans.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0 = '绘制 %1 线 %2 x %3 y %4 长度%5 颜色 %6 实时刷新: %7'; +ZhHans.mpython_display_line_MESSAGE0 ='绘制 线条%1 x1%2 y1 %3 到 x2 %4 y2 %5 颜色 %6 实时刷新: %7'; ZhHans.MIXLY_TOUCH_SLIDE = "滑动触摸"; ZhHans.MIXLY_TOUCH_SLIDE_TOOLTIP = "触摸值,默认接近0,往IO3方向触摸滑动值变大,往IO4方向触摸滑动值变小。"; ZhHans.MIXLY_EXTERN_SONAR = "超声波传感器"; @@ -3705,7 +3705,7 @@ ZhHans.GET_RTCTIME = "读取RTC时间"; ZhHans.SET_TIME = "设置时间"; ZhHans.DRAW_CLOCK = "绘制时钟"; ZhHans.CLEAR_CLOCK = "清除指针"; -ZhHans.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0 = '绘制 %1 圆形 %2 x %3 y %4 半径 %5 颜色 %6'; +ZhHans.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0 = '绘制 %1 圆形 %2 x %3 y %4 半径 %5 颜色 %6 实时刷新: %7'; ZhHans.RETURN_SUCCESS_OR_NOT = "返回是否成功"; ZhHans.MIXLY_MIXBOT_SOUND_SET_LOUDNESS = '设置麦克风音量'; ZhHans.MIXLY_RECORD_AUDIO = '录制音频'; @@ -4093,7 +4093,6 @@ ZhHans.MIXLY_SHOOTING_SIZE = '拍摄尺寸'; ZhHans.MIXLY_SHOOT_AND_SAVE_PICTURE = '拍摄照片并保存'; ZhHans.MIXLY_GET_PICTURE_DATA = '获取图像数据'; ZhHans.MIXlY_SCREEN_SHOW_CAM_SHOOT = '屏幕显示摄像头采集图像'; -ZhHans.MIXlY_STOP_SCREEN_DISPLAY = '关闭摄像头采集图像LCD实时显示'; ZhHans.MIXLY_RECOGNITION = '检测'; ZhHans.MIXLY_GET_QR_CODE_RECOGNITION_RESULT = '获取二维码检测结果'; // ZhHans.MIXLY_GET_QR_CODE_RECOGNITION_RESULT_TOOLTIP = '无检测结果返回None,有结果左上角出现绿色小方块,并返回二维码信息。' @@ -4111,7 +4110,7 @@ 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_EMOTION_DETEECTION = '情绪检测'; ZhHans.MIXLY_HOW_MUCH = '有几个'; ZhHans.MIXLY_Pixel_block = '像素块'; ZhHans.MIXLY_KEYPOINT = '关键点'; @@ -4122,4 +4121,5 @@ ZhHans.MIXLY_LEFT_MOUSE_CORNER = '左嘴角'; ZhHans.MIXLY_RIGHT_MOUSE_CORNER = '右嘴角'; ZhHans.MIXLY_RECOGNITION_RECGNITION = '识别'; ZhHans.MIXLY_synchronize = '实时刷新'; +ZhHans.MIXLY_Display_long_text = '显示长文本'; })(); \ No newline at end of file