From f835dd2f644eb7fc2d8cf7168c4dec8519c189fc Mon Sep 17 00:00:00 2001 From: Irene-Maxine <114802521+Irene-Maxine@users.noreply.github.com> Date: Wed, 26 Mar 2025 19:24:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除S3灯颜色 统一S3和mini_g2 的rfid 增加 角度弧度转换 所有板 增加 S3根据气压获取海拔 --- .../micropython/blocks/display_onboard.js | 21 +++++++- .../micropython/blocks/sensor_extern.js | 16 ++++++ .../micropython/generators/display_onboard.js | 30 ++++++++++- .../micropython/generators/sensor_extern.js | 8 +++ .../micropython/generators/sensor_onboard.js | 39 +++++++++++--- .../css/color_esp32c3_mixgocc.css | 10 ---- .../micropython_educore/template.xml | 49 +++++------------- .../micropython_esp32/template.xml | 14 +++++ .../micropython_esp32c2/generators/mini_g2.js | 30 +++++++---- .../micropython_esp32c2/template.xml | 16 +++++- .../micropython_esp32c3/template.xml | 14 +++++ .../micropython_esp32s2/template.xml | 14 +++++ .../blocks/esp32_profile.js | 4 +- .../micropython_esp32s3/template.xml | 51 +++++++++++++++---- .../micropython_k210_mixgoai/template.xml | 14 +++++ .../template.xml | 14 +++++ .../template.xml | 14 +++++ .../micropython_robot/template.xml | 14 +++++ boards/default_src/python/blocks/math.js | 26 +++++++++- boards/default_src/python/generators/math.js | 14 +++++ boards/default_src/python_mixpy/template.xml | 14 +++++ .../default_src/python_pyodide/template.xml | 14 +++++ common/msg/blockly/en.js | 6 +++ common/msg/blockly/zh-hans.js | 7 ++- common/msg/blockly/zh-hant.js | 6 +++ 25 files changed, 379 insertions(+), 80 deletions(-) diff --git a/boards/default_src/micropython/blocks/display_onboard.js b/boards/default_src/micropython/blocks/display_onboard.js index 4566a09b..b6f0ec79 100644 --- a/boards/default_src/micropython/blocks/display_onboard.js +++ b/boards/default_src/micropython/blocks/display_onboard.js @@ -822,7 +822,9 @@ export const mpython_pbm_image = { ["Water_level_0", "progres_picture.Water_level_0"], ["Water_level_1", "progres_picture.Water_level_1"], ["Water_level_2", "progres_picture.Water_level_2"], - ["Water_level_3", "progres_picture.Water_level_3"] + ["Water_level_3", "progres_picture.Water_level_3"], + ["YES", "informatio_picture.YES"], + ["NO", "informatio_picture.NO"] ] }; @@ -1330,6 +1332,23 @@ export const draw_pointer = { } }; +export const nova_draw_pointer = { + init: function () { + this.setColour(DISPLAY_ONBOARD_HUE); + this.appendDummyInput() + .appendField(Blockly.Msg.DRAW_POINTER) + .appendField(Blockly.Msg.DRAW_POINTER_ANGLE); + this.appendValueInput('angle'); + this.appendDummyInput() + .appendField(Blockly.Msg.MIXLY_DRAW_POINTER_DU); + this.appendValueInput('VAR') + .appendField(Blockly.Msg.HTML_COLOUR); + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setInputsInline(true); + this.setTooltip(Blockly.Msg.DRAW_POINTER_TOOLTIP); + } +}; /** * @deprecated To be removed in the future */ diff --git a/boards/default_src/micropython/blocks/sensor_extern.js b/boards/default_src/micropython/blocks/sensor_extern.js index c4ddcc00..730d1873 100644 --- a/boards/default_src/micropython/blocks/sensor_extern.js +++ b/boards/default_src/micropython/blocks/sensor_extern.js @@ -896,6 +896,22 @@ export const sensor_ms5611_extern = { } }; +export const sensor_ms5611_extern_altitude = { + init: function () { + this.setColour(SENSOR_EXTERN_HUE); + this.appendValueInput('SUB') + .appendField(Blockly.Msg.MIXLY_Altitude + Blockly.Msg.MSG.catSensor + " MS5611") + .setCheck("var"); + this.appendValueInput('VAR') + .appendField(Blockly.Msg.MIXLY_REF_TO_PRESSURE); + this.appendDummyInput() + .appendField(Blockly.Msg.MIXLY_CAL_TO_ALTITUDE); + this.setPreviousStatement(true); + this.setNextStatement(true); + this.setInputsInline(true); + } +}; + export const sensor_QMC5883L_extern = { init: function () { this.setColour(SENSOR_EXTERN_HUE); diff --git a/boards/default_src/micropython/generators/display_onboard.js b/boards/default_src/micropython/generators/display_onboard.js index 40fec62d..529b04cf 100644 --- a/boards/default_src/micropython/generators/display_onboard.js +++ b/boards/default_src/micropython/generators/display_onboard.js @@ -934,9 +934,35 @@ export const onboard_tft_display_shape_circle = function (block, generator) { export const draw_pointer = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; + if (version == 'mixgo_nova'){ + 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"; + }else{ + generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; + var angle = generator.valueToCode(this, 'angle', generator.ORDER_ASSIGNMENT); + var code = "onboard_matrix.pointern(angle=" + angle + ")\n"; + } + return code; +} + +export const nova_draw_pointer = function (_, generator) { + var version = Boards.getSelectedBoardKey().split(':')[2] + generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; var angle = generator.valueToCode(this, 'angle', generator.ORDER_ASSIGNMENT); - var code = "onboard_matrix.pointern(angle=" + angle + ")\n"; + var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); + if (color.slice(0, 2) == "0x") { + var code = "onboard_tft.pointern(angle=" + angle + ","+ color +")\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.pointern(angle=" + angle + ', 0x' + rgb565.toString(16) + ")\n"; + } + var code = "onboard_tft.pointern(angle=" + angle + ")\n"; return code; } diff --git a/boards/default_src/micropython/generators/sensor_extern.js b/boards/default_src/micropython/generators/sensor_extern.js index 939eafb7..835fe056 100644 --- a/boards/default_src/micropython/generators/sensor_extern.js +++ b/boards/default_src/micropython/generators/sensor_extern.js @@ -349,6 +349,14 @@ export const sensor_ms5611_extern = function (_, generator) { return [code, generator.ORDER_ATOMIC]; } +export const sensor_ms5611_extern_altitude = function (_, generator) { + var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); + var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); + generator.definitions_['import_ms5611'] = 'import ms5611'; + var code = sub + '.altitude('+ v +')\n'; + return code ; +} + export const sensor_ltr381_extern = function (_, generator) { var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var key = this.getFieldValue('key'); diff --git a/boards/default_src/micropython/generators/sensor_onboard.js b/boards/default_src/micropython/generators/sensor_onboard.js index 7e102e04..f4fb0af2 100644 --- a/boards/default_src/micropython/generators/sensor_onboard.js +++ b/boards/default_src/micropython/generators/sensor_onboard.js @@ -268,16 +268,28 @@ export const sensor_get_temperature = function (_, generator) { export const rfid_readid = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; - var code = 'onboard_rfid.read_card(0, x="id")'; + if(version == 'mixgo_mini'){ + generator.definitions_['import_mini_g2'] = 'import mini_g2'; + generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid'; + var code = 'ext_rfid.read_card(0, x="id")'; + }else{ + generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; + var code = 'onboard_rfid.read_card(0, x="id")'; + } return [code, generator.ORDER_ATOMIC]; } export const rfid_readcontent = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); - generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; - var code = 'onboard_rfid.read_card(' + sector + ', x="content")'; + if(version == 'mixgo_mini'){ + generator.definitions_['import_mini_g2'] = 'import mini_g2'; + generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid'; + var code = 'ext_rfid.read_card(' + sector + ')'; + }else{ + generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; + var code = 'onboard_rfid.read_card(' + sector + ', x="content")'; + } return [code, generator.ORDER_ATOMIC]; } @@ -285,8 +297,14 @@ export const rfid_write = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC); - generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; - var code = 'onboard_rfid.write_card(' + cnt + ', ' + sector + ')\n'; + if(version == 'mixgo_mini'){ + generator.definitions_['import_mini_g2'] = 'import mini_g2'; + generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid'; + var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')\n'; + }else{ + generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; + var code = 'onboard_rfid.write_card(' + cnt + ', ' + sector + ')\n'; + } return code; } @@ -294,8 +312,13 @@ export const rfid_write_return = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC); - generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; - var code = 'onboard_rfid.write_card(' + cnt + ', ' + sector + ')'; + if (version == "mixgo_mini") { + generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid'; + var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')'; + } else { + generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; + var code = 'onboard_rfid.write_card(' + cnt + ', ' + sector + ')'; + } return [code, generator.ORDER_ATOMIC]; } diff --git a/boards/default_src/micropython_educore/css/color_esp32c3_mixgocc.css b/boards/default_src/micropython_educore/css/color_esp32c3_mixgocc.css index 002cf8a0..5d89272d 100644 --- a/boards/default_src/micropython_educore/css/color_esp32c3_mixgocc.css +++ b/boards/default_src/micropython_educore/css/color_esp32c3_mixgocc.css @@ -178,16 +178,6 @@ div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(12)>div.blocklyTr background-size: 100% auto; } -#catMINI_G2.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon { - background: url('../../../../common/media/mark/sensor.png') no-repeat; - background-size: 100% auto; -} - -#catMINI_G2.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon { - background: url('../../../../common/media/mark/sensor2.png') no-repeat; - background-size: 100% auto; -} - #catExternSensor.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon { background: url('../../../../common/media/mark/sensor_extern.png') no-repeat; background-size: 100% auto; diff --git a/boards/default_src/micropython_educore/template.xml b/boards/default_src/micropython_educore/template.xml index b014b759..bc2bf6ce 100644 --- a/boards/default_src/micropython_educore/template.xml +++ b/boards/default_src/micropython_educore/template.xml @@ -450,6 +450,20 @@ + + + + 1 + + + + + + + 1 + + + @@ -2183,41 +2197,6 @@ - - - - - 0 - - - - - - - - 0 - - - - - Mixly - - - - - - - 0 - - - - - Mixly - - - - - diff --git a/boards/default_src/micropython_esp32/template.xml b/boards/default_src/micropython_esp32/template.xml index 65af9369..560964bb 100644 --- a/boards/default_src/micropython_esp32/template.xml +++ b/boards/default_src/micropython_esp32/template.xml @@ -474,6 +474,20 @@ + + + + 1 + + + + + + + 1 + + + diff --git a/boards/default_src/micropython_esp32c2/generators/mini_g2.js b/boards/default_src/micropython_esp32c2/generators/mini_g2.js index e57b2dad..355bf544 100644 --- a/boards/default_src/micropython_esp32c2/generators/mini_g2.js +++ b/boards/default_src/micropython_esp32c2/generators/mini_g2.js @@ -27,8 +27,10 @@ export const mini_g2_rfid_readid = function (_, generator) { generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid'; var code = 'ext_rfid.read_card(0, x="id")'; } else { - generator.definitions_['import_mini_g2'] = 'import mini_g2'; - var code = 'mini_g2.ext_rc522.read_card(0, x="id")'; + // generator.definitions_['import_mini_g2'] = 'import mini_g2'; + // var code = 'mini_g2.ext_rc522.read_card(0, x="id")'; + generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; + var code = 'onboard_rfid.read_card(0, x="id")'; } return [code, generator.ORDER_ATOMIC]; } @@ -40,8 +42,10 @@ export const mini_g2_rfid_readcontent = function (_, generator) { generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid'; var code = 'ext_rfid.read_card(' + sector + ')'; } else { - generator.definitions_['import_mini_g2'] = 'import mini_g2'; - var code = 'mini_g2.ext_rc522.read_card(' + sector + ')'; + // generator.definitions_['import_mini_g2'] = 'import mini_g2'; + // var code = 'mini_g2.ext_rc522.read_card(' + sector + ')'; + generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; + var code = 'onboard_rfid.read_card(' + sector + ', x="content")'; } return [code, generator.ORDER_ATOMIC]; } @@ -54,8 +58,10 @@ export const mini_g2_rfid_write = function (_, generator) { generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid'; var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')\n'; } else { - generator.definitions_['import_mini_g2'] = 'import mini_g2'; - var code = 'mini_g2.ext_rc522.write_card(' + cnt + ',' + sector + ')\n'; + // generator.definitions_['import_mini_g2'] = 'import mini_g2'; + // var code = 'mini_g2.ext_rc522.write_card(' + cnt + ',' + sector + ')\n'; + generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; + var code = 'onboard_rfid.write_card(' + cnt + ', ' + sector + ')\n'; } return code; } @@ -68,8 +74,10 @@ export const mini_g2_rfid_write_outcome = function (_, generator) { generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid'; var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')'; } else { - generator.definitions_['import_mini_g2'] = 'import mini_g2'; - var code = 'mini_g2.ext_rc522.write_card(' + cnt + ',' + sector + ')'; + // generator.definitions_['import_mini_g2'] = 'import mini_g2'; + // var code = 'mini_g2.ext_rc522.write_card(' + cnt + ',' + sector + ')'; + generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; + var code = 'onboard_rfid.write_card(' + cnt + ', ' + sector + ')'; } return [code, generator.ORDER_ATOMIC]; } @@ -81,8 +89,10 @@ export const mini_g2_rfid_status = function (_, generator) { generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid'; var code = 'ext_rfid.scan_card()==' + key; } else { - generator.definitions_['import_mini_g2'] = 'import mini_g2'; - var code = 'mini_g2.ext_rc522.scan_card()==' + key; + // generator.definitions_['import_mini_g2'] = 'import mini_g2'; + // var code = 'mini_g2.ext_rc522.scan_card()==' + key; + generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; + var code = 'onboard_rfid.scan_card()==' + key; } return [code, generator.ORDER_ATOMIC]; } \ No newline at end of file diff --git a/boards/default_src/micropython_esp32c2/template.xml b/boards/default_src/micropython_esp32c2/template.xml index 4415e0c8..8aaba470 100644 --- a/boards/default_src/micropython_esp32c2/template.xml +++ b/boards/default_src/micropython_esp32c2/template.xml @@ -448,6 +448,20 @@ + + + + 1 + + + + + + + 1 + + + @@ -1972,6 +1986,7 @@ + @@ -1979,7 +1994,6 @@ - diff --git a/boards/default_src/micropython_esp32c3/template.xml b/boards/default_src/micropython_esp32c3/template.xml index 0c9aa26f..6458df6f 100644 --- a/boards/default_src/micropython_esp32c3/template.xml +++ b/boards/default_src/micropython_esp32c3/template.xml @@ -448,6 +448,20 @@ + + + + 1 + + + + + + + 1 + + + diff --git a/boards/default_src/micropython_esp32s2/template.xml b/boards/default_src/micropython_esp32s2/template.xml index c33a54df..be548ef4 100644 --- a/boards/default_src/micropython_esp32s2/template.xml +++ b/boards/default_src/micropython_esp32s2/template.xml @@ -474,6 +474,20 @@ + + + + 1 + + + + + + + 1 + + + diff --git a/boards/default_src/micropython_esp32s3/blocks/esp32_profile.js b/boards/default_src/micropython_esp32s3/blocks/esp32_profile.js index 07d6f138..09536490 100644 --- a/boards/default_src/micropython_esp32s3/blocks/esp32_profile.js +++ b/boards/default_src/micropython_esp32s3/blocks/esp32_profile.js @@ -129,7 +129,9 @@ pins["元控青春"] = { ["Water_level_0", "progres_picture.Water_level_0"], ["Water_level_1", "progres_picture.Water_level_1"], ["Water_level_2", "progres_picture.Water_level_2"], - ["Water_level_3", "progres_picture.Water_level_3"] + ["Water_level_3", "progres_picture.Water_level_3"], + ["YES", "informatio_picture.YES"], + ["NO", "informatio_picture.NO"] ], builtinimg_extern: [["HEART", "matrix32x12.Matrix.HEART"], ["HEART_SMALL", "matrix32x12.Matrix.HEART_SMALL"], ["HAPPY", "matrix32x12.Matrix.HAPPY"], ["SAD", "matrix32x12.Matrix.SAD"], ["SMILE", "matrix32x12.Matrix.SMILE"], ["SILLY", "matrix32x12.Matrix.SILLY"], ["FABULOUS", "matrix32x12.Matrix.FABULOUS"], ["SURPRISED", "matrix32x12.Matrix.SURPRISED"], ["ASLEEP", "matrix32x12.Matrix.ASLEEP"], ["ANGRY", "matrix32x12.Matrix.ANGRY"], ["CONFUSED", "matrix32x12.Matrix.CONFUSED"], ["NO", "matrix32x12.Matrix.NO"], ["YES", "matrix32x12.Matrix.YES"], ["LEFT_ARROW", "matrix32x12.Matrix.LEFT_ARROW"], ["RIGHT_ARROW", "matrix32x12.Matrix.RIGHT_ARROW"], ["DRESS", "matrix32x12.Matrix.DRESS"], ["TRANSFORMERS", "matrix32x12.Matrix.TRANSFORMERS"], ["SCISSORS", "matrix32x12.Matrix.SCISSORS"], ["EXIT", "matrix32x12.Matrix.EXIT"], ["TREE", "matrix32x12.Matrix.TREE"], ["PACMAN", "matrix32x12.Matrix.PACMAN"], ["TARGET", "matrix32x12.Matrix.TARGET"], ["TSHIRT", "matrix32x12.Matrix.TSHIRT"], ["ROLLERSKATE", "matrix32x12.Matrix.ROLLERSKATE"], ["DUCK", "matrix32x12.Matrix.DUCK"], ["HOUSE", "matrix32x12.Matrix.HOUSE"], ["TORTOISE", "matrix32x12.Matrix.TORTOISE"], ["BUTTERFLY", "matrix32x12.Matrix.BUTTERFLY"], ["STICKFIGURE", "matrix32x12.Matrix.STICKFIGURE"], ["GHOST", "matrix32x12.Matrix.GHOST"], ["PITCHFORK", "matrix32x12.Matrix.PITCHFORK"], ["onboard_music_QUAVERS", "matrix32x12.Matrix.onboard_music_QUAVERS"], ["onboard_music_QUAVER", "matrix32x12.Matrix.onboard_music_QUAVER"], ["onboard_music_CROTCHET", "matrix32x12.Matrix.onboard_music_CROTCHET"], ["COW", "matrix32x12.Matrix.COW"], ["RABBIT", "matrix32x12.Matrix.RABBIT"], ["SQUARE_SMALL", "matrix32x12.Matrix.SQUARE_SMALL"], ["SQUARE", "matrix32x12.Matrix.SQUARE"], ["DIAMOND_SMALL", "matrix32x12.Matrix.DIAMOND_SMALL"], ["DIAMOND", "matrix32x12.Matrix.DIAMOND"], ["CHESSBOARD", "matrix32x12.Matrix.CHESSBOARD"], ["TRIANGLE_LEFT", "matrix32x12.Matrix.TRIANGLE_LEFT"], ["TRIANGLE", "matrix32x12.Matrix.TRIANGLE"], ["SNAKE", "matrix32x12.Matrix.SNAKE"], ["UMBRELLA", "matrix32x12.Matrix.UMBRELLA"], ["SKULL", "matrix32x12.Matrix.SKULL"], ["GIRAFFE", "matrix32x12.Matrix.GIRAFFE"], ["SWORD", "matrix32x12.Matrix.SWORD"]], imglist: [["ALL_CLOCKS", "matrix.Image.ALL_CLOCKS"], ["ALL_ARROWS", "matrix.Image.ALL_ARROWS"]], diff --git a/boards/default_src/micropython_esp32s3/template.xml b/boards/default_src/micropython_esp32s3/template.xml index deb7230b..cf8c3e3f 100644 --- a/boards/default_src/micropython_esp32s3/template.xml +++ b/boards/default_src/micropython_esp32s3/template.xml @@ -474,6 +474,20 @@ + + + + 1 + + + + + + + 1 + + + @@ -1576,16 +1590,6 @@ - - - - - - - - - - @@ -2274,6 +2278,21 @@ + + + + 0 + + + + + #ffffff + + + 255,255,0 + + + @@ -4009,6 +4028,18 @@ + + + + xsensor + + + + + 0 + + + diff --git a/boards/default_src/micropython_k210_mixgoai/template.xml b/boards/default_src/micropython_k210_mixgoai/template.xml index 31793106..dfb38005 100644 --- a/boards/default_src/micropython_k210_mixgoai/template.xml +++ b/boards/default_src/micropython_k210_mixgoai/template.xml @@ -426,6 +426,20 @@ + + + + 1 + + + + + + + 1 + + + diff --git a/boards/default_src/micropython_nrf51822_microbit/template.xml b/boards/default_src/micropython_nrf51822_microbit/template.xml index 9f872093..f6d535ea 100644 --- a/boards/default_src/micropython_nrf51822_microbit/template.xml +++ b/boards/default_src/micropython_nrf51822_microbit/template.xml @@ -283,6 +283,20 @@ + + + + 1 + + + + + + + 1 + + + diff --git a/boards/default_src/micropython_nrf51822_mithoncc/template.xml b/boards/default_src/micropython_nrf51822_mithoncc/template.xml index eb230fd9..d6e05c3c 100644 --- a/boards/default_src/micropython_nrf51822_mithoncc/template.xml +++ b/boards/default_src/micropython_nrf51822_mithoncc/template.xml @@ -209,6 +209,20 @@ + + + + 1 + + + + + + + 1 + + + diff --git a/boards/default_src/micropython_robot/template.xml b/boards/default_src/micropython_robot/template.xml index 92dfe921..ddf629b0 100644 --- a/boards/default_src/micropython_robot/template.xml +++ b/boards/default_src/micropython_robot/template.xml @@ -461,6 +461,20 @@ + + + + 1 + + + + + + + 1 + + + diff --git a/boards/default_src/python/blocks/math.js b/boards/default_src/python/blocks/math.js index 64002e29..63419cb4 100644 --- a/boards/default_src/python/blocks/math.js +++ b/boards/default_src/python/blocks/math.js @@ -674,4 +674,28 @@ export const generate_cartesian_product = { this.setTitleValue(newName, 'VAR'); } } -} \ No newline at end of file +} + +export const math_radian_to_degree = { + init: function () { + this.setColour(MATH_HUE); + this.setOutput(true) + this.appendValueInput('VAR') + .appendField(Blockly.Msg.MIXLY_SET_RADIAN); + this.appendDummyInput() + .appendField(Blockly.Msg.MIXLY_TRANS_TO_ANGLE); + this.setInputsInline(true); + } +}; + +export const math_degree_to_radian = { + init: function () { + this.setColour(MATH_HUE); + this.setOutput(true) + this.appendValueInput('VAR') + .appendField(Blockly.Msg.MIXLY_SET_DEGREE); + this.appendDummyInput() + .appendField(Blockly.Msg.MIXLY_TRANS_TO_RADIAN); + this.setInputsInline(true); + } +}; \ No newline at end of file diff --git a/boards/default_src/python/generators/math.js b/boards/default_src/python/generators/math.js index ae212315..643f7c95 100644 --- a/boards/default_src/python/generators/math.js +++ b/boards/default_src/python/generators/math.js @@ -321,4 +321,18 @@ export const generate_cartesian_product = function (_, generator) { code = `itertools.product(${items.join(', ')}, repeat=${re})`; } return [code, generator.ORDER_ATOMIC]; +} + +export const math_radian_to_degree = function (_, generator) { + generator.definitions_.import_math = "import math"; + var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); + var code = 'math.degrees('+ v + ')'; + return [code, generator.ORDER_ATOMIC]; +} + +export const math_degree_to_radian = function (_, generator) { + generator.definitions_.import_math = "import math"; + var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); + var code = 'math.radians('+ v + ')'; + return [code, generator.ORDER_ATOMIC]; } \ No newline at end of file diff --git a/boards/default_src/python_mixpy/template.xml b/boards/default_src/python_mixpy/template.xml index 7b805f49..8797774b 100644 --- a/boards/default_src/python_mixpy/template.xml +++ b/boards/default_src/python_mixpy/template.xml @@ -396,6 +396,20 @@ + + + + 1 + + + + + + + 1 + + + diff --git a/boards/default_src/python_pyodide/template.xml b/boards/default_src/python_pyodide/template.xml index ab8d189d..d5f80f09 100644 --- a/boards/default_src/python_pyodide/template.xml +++ b/boards/default_src/python_pyodide/template.xml @@ -396,6 +396,20 @@ + + + + 1 + + + + + + + 1 + + + diff --git a/common/msg/blockly/en.js b/common/msg/blockly/en.js index e6316c6e..c4cf9525 100644 --- a/common/msg/blockly/en.js +++ b/common/msg/blockly/en.js @@ -3918,4 +3918,10 @@ En.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM = 'Set Maximum Number of Historical En.MIXLY_LLM_CHAT = 'Chat with Large Language Model'; En.MIXLY_LLM_CONTENT_CALLBACK = 'Result Output Callback'; En.MIXLY_EMPTY_HISTORY = 'Clear History'; +En.MIXLY_SET_RADIAN = 'convert radians'; +En.MIXLY_TRANS_TO_ANGLE = 'to angles'; +En.MIXLY_SET_DEGREE = 'convert angles'; +En.MIXLY_TRANS_TO_RADIAN = 'to radians'; +En.MIXLY_REF_TO_PRESSURE = 'Reference pressure'; +En.MIXLY_CAL_TO_ALTITUDE = 'Calculate the altitude'; })(); diff --git a/common/msg/blockly/zh-hans.js b/common/msg/blockly/zh-hans.js index 9c398b9f..bd7a1c3c 100644 --- a/common/msg/blockly/zh-hans.js +++ b/common/msg/blockly/zh-hans.js @@ -4078,5 +4078,10 @@ ZhHans.MIXLY_LLM_CONTENT_CALLBACK = '结果输出回调'; // ZhHans.MIXLY_SELECT_MODEL = '选择模型'; // ZhHans.MIXLY_CLEAR_USER_HISTORY = '清除用户的历史记录'; ZhHans.MIXLY_EMPTY_HISTORY = '清空历史记录'; - +ZhHans.MIXLY_SET_RADIAN = '将弧度'; +ZhHans.MIXLY_TRANS_TO_ANGLE = '转换为角度'; +ZhHans.MIXLY_SET_DEGREE = '将角度'; +ZhHans.MIXLY_TRANS_TO_RADIAN = '转换为弧度'; +ZhHans.MIXLY_REF_TO_PRESSURE = '参考气压'; +ZhHans.MIXLY_CAL_TO_ALTITUDE = '计算获取海拔'; })(); \ No newline at end of file diff --git a/common/msg/blockly/zh-hant.js b/common/msg/blockly/zh-hant.js index c3ef7551..8b9cf42f 100644 --- a/common/msg/blockly/zh-hant.js +++ b/common/msg/blockly/zh-hant.js @@ -4072,4 +4072,10 @@ ZhHant.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM = '設定歷史對話記錄最 ZhHant.MIXLY_LLM_CHAT = '與大語言模型進行對話'; ZhHant.MIXLY_LLM_CONTENT_CALLBACK = '結果輸出回調'; ZhHant.MIXLY_EMPTY_HISTORY = '清空歷史記錄'; +ZhHant.MIXLY_SET_RADIAN = '將弧度'; +ZhHant.MIXLY_TRANS_TO_ANGLE = '轉換為角度'; +ZhHant.MIXLY_SET_DEGREE = '將角度'; +ZhHant.MIXLY_TRANS_TO_RADIAN = '轉換為弧度'; +ZhHant.MIXLY_REF_TO_PRESSURE = '參考氣壓'; +ZhHant.MIXLY_CAL_TO_ALTITUDE = '計算獲取海拔'; })(); \ No newline at end of file