From 550e57033c0ca1085f04d7ad846f9aa4eedff421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=AB=8B=E5=B8=AE?= <3294713004@qq.com> Date: Wed, 10 Sep 2025 00:10:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(boards):=20micropython=20=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E5=88=86=E7=B1=BB=E4=B8=8B=E6=B7=BB=E5=8A=A0=20`?= =?UTF-8?q?=E6=8E=A5=E6=94=B6=E5=A5=97=E6=8E=A5=E5=AD=97=E7=9A=84=E4=B8=80?= =?UTF-8?q?=E8=A1=8C=E6=95=B0=E6=8D=AE`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- boards/default_src/micropython/blocks/network.js | 13 +++++++++++++ .../default_src/micropython/generators/network.js | 14 +++++++++++--- .../default_src/micropython_educore/template.xml | 7 +++++++ boards/default_src/micropython_esp32/template.xml | 7 +++++++ .../default_src/micropython_esp32c2/template.xml | 7 +++++++ .../default_src/micropython_esp32c3/template.xml | 7 +++++++ .../default_src/micropython_esp32s2/template.xml | 7 +++++++ .../default_src/micropython_esp32s3/template.xml | 7 +++++++ boards/default_src/micropython_robot/template.xml | 7 +++++++ common/msg/blockly/en.js | 2 ++ common/msg/blockly/zh-hans.js | 2 ++ common/msg/blockly/zh-hant.js | 2 ++ 12 files changed, 79 insertions(+), 3 deletions(-) diff --git a/boards/default_src/micropython/blocks/network.js b/boards/default_src/micropython/blocks/network.js index 55c55d21..1695ce42 100644 --- a/boards/default_src/micropython/blocks/network.js +++ b/boards/default_src/micropython/blocks/network.js @@ -311,6 +311,19 @@ export const network_socket_accept = { } }; +export const network_socket_readline = { + init: function () { + this.setColour(NETWORK_HUE); + this.appendValueInput('VAR') + .setCheck('var'); + this.appendDummyInput() + .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_READLINE); + this.setOutput(true); + this.setInputsInline(true); + this.setTooltip(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_READLINE_TOOLTIP); + } +}; + export const network_socket_receive = { init: function () { this.setColour(NETWORK_HUE); diff --git a/boards/default_src/micropython/generators/network.js b/boards/default_src/micropython/generators/network.js index 217b095b..370ae31f 100644 --- a/boards/default_src/micropython/generators/network.js +++ b/boards/default_src/micropython/generators/network.js @@ -145,7 +145,15 @@ export const network_socket_accept = function (_, generator) { generator.definitions_['import_socket'] = "import socket"; var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); var code = "" + varName + ".accept()"; - return [code, generator.ORDER_ASSIGNMENT]; + return [code, generator.ORDER_ATOMIC]; +} + +export const network_socket_readline = function (_, generator) { + generator.definitions_['import_network'] = 'import network'; + generator.definitions_['import_socket'] = 'import socket'; + var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); + var code = varName + '.readline()'; + return [code, generator.ORDER_ATOMIC]; } export const network_socket_receive = function (_, generator) { @@ -154,7 +162,7 @@ export const network_socket_receive = function (_, generator) { 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_ASSIGNMENT]; + return [code, generator.ORDER_ATOMIC]; } export const network_socket_send = function (_, generator) { @@ -172,7 +180,7 @@ export const network_socket_receive_from = function (_, generator) { var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); var size = generator.valueToCode(this, 'size', generator.ORDER_ATOMIC); var code = "" + varName + ".recvfrom(" + size + ")"; - return [code, generator.ORDER_ASSIGNMENT]; + return [code, generator.ORDER_ATOMIC]; } export const network_socket_send_to = function (_, generator) { diff --git a/boards/default_src/micropython_educore/template.xml b/boards/default_src/micropython_educore/template.xml index 2ff4b4aa..0221032e 100644 --- a/boards/default_src/micropython_educore/template.xml +++ b/boards/default_src/micropython_educore/template.xml @@ -7079,6 +7079,13 @@ + + + + s + + + diff --git a/boards/default_src/micropython_esp32/template.xml b/boards/default_src/micropython_esp32/template.xml index 11770862..fb1a65cc 100644 --- a/boards/default_src/micropython_esp32/template.xml +++ b/boards/default_src/micropython_esp32/template.xml @@ -6974,6 +6974,13 @@ + + + + s + + + diff --git a/boards/default_src/micropython_esp32c2/template.xml b/boards/default_src/micropython_esp32c2/template.xml index 7cc0aa16..c7223af8 100644 --- a/boards/default_src/micropython_esp32c2/template.xml +++ b/boards/default_src/micropython_esp32c2/template.xml @@ -6905,6 +6905,13 @@ + + + + s + + + diff --git a/boards/default_src/micropython_esp32c3/template.xml b/boards/default_src/micropython_esp32c3/template.xml index 425631e4..2f793ddd 100644 --- a/boards/default_src/micropython_esp32c3/template.xml +++ b/boards/default_src/micropython_esp32c3/template.xml @@ -6791,6 +6791,13 @@ + + + + s + + + diff --git a/boards/default_src/micropython_esp32s2/template.xml b/boards/default_src/micropython_esp32s2/template.xml index 3dda5e3a..fbecb5c3 100644 --- a/boards/default_src/micropython_esp32s2/template.xml +++ b/boards/default_src/micropython_esp32s2/template.xml @@ -6522,6 +6522,13 @@ + + + + s + + + diff --git a/boards/default_src/micropython_esp32s3/template.xml b/boards/default_src/micropython_esp32s3/template.xml index 1bfcef95..860a1648 100644 --- a/boards/default_src/micropython_esp32s3/template.xml +++ b/boards/default_src/micropython_esp32s3/template.xml @@ -7269,6 +7269,13 @@ + + + + s + + + diff --git a/boards/default_src/micropython_robot/template.xml b/boards/default_src/micropython_robot/template.xml index e6878c45..6fda6653 100644 --- a/boards/default_src/micropython_robot/template.xml +++ b/boards/default_src/micropython_robot/template.xml @@ -5549,6 +5549,13 @@ + + + + s + + + diff --git a/common/msg/blockly/en.js b/common/msg/blockly/en.js index f066337b..881c2493 100644 --- a/common/msg/blockly/en.js +++ b/common/msg/blockly/en.js @@ -3988,5 +3988,7 @@ En.MIXLY_W_R = "Readable and Writable, Create if File Does Not Exist"; En.MIXLY_A_R = "Appendable and Writable, Create if File Does Not Exist"; En.MIXLY_TEXT_BYTES = 'bytes'; En.MIXLY_TEXT_BYTE_ARRAY = 'bytearray'; +En.MIXLY_MICROPYTHON_SOCKET_READLINE = 'Readline'; +En.MIXLY_MICROPYTHON_SOCKET_READLINE_TOOLTIP = 'Read a line of data, ending with a newline character.'; })(); diff --git a/common/msg/blockly/zh-hans.js b/common/msg/blockly/zh-hans.js index e70246cf..b033dc8e 100644 --- a/common/msg/blockly/zh-hans.js +++ b/common/msg/blockly/zh-hans.js @@ -4147,5 +4147,7 @@ ZhHans.MIXLY_W_R = '可读可写,文件若不存在就创建'; ZhHans.MIXLY_A_R = '可追加可写,文件若不存在就创建'; ZhHans.MIXLY_TEXT_BYTES = '字节串'; ZhHans.MIXLY_TEXT_BYTE_ARRAY = '字节数组'; +ZhHans.MIXLY_MICROPYTHON_SOCKET_READLINE = '接收套接字的一行数据'; +ZhHans.MIXLY_MICROPYTHON_SOCKET_READLINE_TOOLTIP = '读取一行数据,以换行符结尾。'; })(); \ No newline at end of file diff --git a/common/msg/blockly/zh-hant.js b/common/msg/blockly/zh-hant.js index db2715ec..4d46ad15 100644 --- a/common/msg/blockly/zh-hant.js +++ b/common/msg/blockly/zh-hant.js @@ -4142,5 +4142,7 @@ ZhHant.MIXLY_W_R = "可讀可寫,文件若不存在就創建"; ZhHant.MIXLY_A_R = "可追加可寫,文件若不存在就創建"; ZhHant.MIXLY_TEXT_BYTES = '位元組字串'; ZhHant.MIXLY_TEXT_BYTE_ARRAY = '位元組數組'; +ZhHant.MIXLY_MICROPYTHON_SOCKET_READLINE = '接收套接字的一行資料'; +ZhHant.MIXLY_MICROPYTHON_SOCKET_READLINE_TOOLTIP = '讀取一行數據,以換行符號結尾。 '; })();