From ba668049e86d40fd633d23de362a695f396c3579 Mon Sep 17 00:00:00 2001 From: Irene-Maxine <1553826735@qq.com> Date: Fri, 30 Aug 2024 20:48:53 +0800 Subject: [PATCH] =?UTF-8?q?mixgo=20mini=20=E5=A2=9E=E5=8A=A0=204=E4=B8=AA?= =?UTF-8?q?=E7=BD=91=E7=BB=9C=E5=9D=97=E3=80=81=E5=A2=9E=E5=8A=A0=E4=B8=89?= =?UTF-8?q?=E4=B8=AA=E6=98=BE=E7=A4=BA=E5=9B=BE=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../default_src/micropython/blocks/network.js | 53 +++++++++++++++++++ .../micropython/generators/network.js | 29 +++++++++- .../origin/build/lib/matrix16x8.py | 3 ++ .../blocks/esp32_profile.js | 2 +- .../micropython_esp32c2/template.xml | 31 +++++++++++ common/msg/blockly/en.js | 6 +++ common/msg/blockly/zh-hans.js | 6 +++ common/msg/blockly/zh-hant.js | 6 +++ 8 files changed, 134 insertions(+), 2 deletions(-) diff --git a/boards/default_src/micropython/blocks/network.js b/boards/default_src/micropython/blocks/network.js index 3bf420b1..b910867f 100644 --- a/boards/default_src/micropython/blocks/network.js +++ b/boards/default_src/micropython/blocks/network.js @@ -123,6 +123,59 @@ export const network_wifi_connect = { } }; +export const urequests_wifi_connect = { + init: function () { + this.setColour(NETWORK_HUE); + this.appendDummyInput() + .appendField(Blockly.Msg.MIXLY_ESP32_UREQUESTS_CONNECT_WIFI); + this.appendValueInput('WIFINAME') + .setCheck(String) + .appendField(Blockly.Msg.HTML_NAME); + this.appendValueInput('PASSWORD') + .setCheck(String) + .appendField(Blockly.Msg.HTML_PASSWORD); + this.setInputsInline(true); + this.setPreviousStatement(true); + this.setNextStatement(true); + this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP); + } +}; + +export const urequests_wifi_url = { + init: function () { + this.setColour(NETWORK_HUE); + this.appendValueInput('URL') + .setCheck(String) + .appendField('URL'); + this.setInputsInline(true); + this.setOutput(true); + this.setTooltip(Blockly.Msg.MIXLY_UREQUESTS_URL_TOOLTIP); + } +}; + +export const urequests_connect_url = { + init: function () { + this.setColour(NETWORK_HUE); + this.appendValueInput('url') + .appendField(Blockly.Msg.MIXLY_ESP32_CONNECT_URL_TOOLTIP); + this.setPreviousStatement(true); + this.setNextStatement(true); + this.setInputsInline(true); + this.setTooltip(Blockly.Msg.MIXLY_ESP32_UREQUESTS_URL_TOOLTIP); + } +}; + +export const urequests_response = { + init: function () { + this.setColour(NETWORK_HUE); + this.appendDummyInput() + .appendField(Blockly.Msg.MIXLY_ESP32_URL_REPONSE); + this.setInputsInline(true); + this.setOutput(true); + this.setTooltip(Blockly.Msg.MIXLY_ESP32_URL_REPONSE_TOOLTIP); + } +}; + export const network_get_connect = { 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 0df0f735..58fd05df 100644 --- a/boards/default_src/micropython/generators/network.js +++ b/boards/default_src/micropython/generators/network.js @@ -228,4 +228,31 @@ export const ntptime_time = function (_, generator) { export const ntptime_address = function (_, generator) { var code = "'" + this.getFieldValue('op') + "'"; return [code, generator.ORDER_ATOMIC]; -} \ No newline at end of file +} + +export const urequests_wifi_connect = function (_, generator) { + generator.definitions_['import_urequests'] = "import urequests"; + var username = generator.valueToCode(this, 'WIFINAME', generator.ORDER_ATOMIC); + var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC); + var code = 'wifi.connect(' + username + ',' + password + ')\n'; + return code; +} + +export const urequests_wifi_url = function (_, generator) { + generator.definitions_['import_urequests'] = "import urequests"; + var url = generator.valueToCode(this, 'URL', generator.ORDER_ATOMIC); + var code = url; + return [code,generator.ORDER_ATOMIC]; +} + +export const urequests_connect_url = function (_, generator) { + generator.definitions_['import_urequests'] = "import urequests"; + var url = generator.valueToCode(this, 'url', generator.ORDER_ATOMIC); + return 'response=urequests.get('+url+')\n'; +} + +export const urequests_response = function (_, generator) { + generator.definitions_['import_urequests'] = "import urequests"; + var code = 'res=response.text'; + return [code,generator.ORDER_ATOMIC]; +} diff --git a/boards/default_src/micropython/origin/build/lib/matrix16x8.py b/boards/default_src/micropython/origin/build/lib/matrix16x8.py index cbb58b6b..ed658f29 100644 --- a/boards/default_src/micropython/origin/build/lib/matrix16x8.py +++ b/boards/default_src/micropython/origin/build/lib/matrix16x8.py @@ -65,3 +65,6 @@ class Matrix(HT16K33): SKULL=b'\xe0\x03\x90\x04\x88\x08x\x0f\xf0\x07 \x02\xa0\x02\xc0\x01' GIRAFFE=b'\x80\x01\x80\x03\x80\x00\x80\x00\x80\x00\xf0\x00\x90\x00\x90\x00' SWORD=b'\x00\x00\x10\x000\x00\xfc\x1f\xfc\x1f0\x00\x10\x00\x00\x00' + DOOR_OPENING=b'\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff' + DOOR_OPEN=b'\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff' + DOOR_CLOSE=b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' diff --git a/boards/default_src/micropython_esp32c2/blocks/esp32_profile.js b/boards/default_src/micropython_esp32c2/blocks/esp32_profile.js index 2956738a..fe327c31 100644 --- a/boards/default_src/micropython_esp32c2/blocks/esp32_profile.js +++ b/boards/default_src/micropython_esp32c2/blocks/esp32_profile.js @@ -28,7 +28,7 @@ pins["MixGo MINI"] = { tts_builtin_music: Profile.generate(['0-47']), tts_bgmusic: Profile.generate(['0-15']), //builtinimg: [["HEART", "matrix.Image.HEART"],["HEART_SMALL", "matrix.Image.HEART_SMALL"],["HAPPY", "matrix.Image.HAPPY"],["SAD", "matrix.Image.SAD"],["SMILE", "matrix.Image.SMILE"],["SILLY", "matrix.Image.SILLY"],["FABULOUS", "matrix.Image.FABULOUS"],["SURPRISED", "matrix.Image.SURPRISED"],["ASLEEP", "matrix.Image.ASLEEP"],["ANGRY", "matrix.Image.ANGRY"],["CONFUSED", "matrix.Image.CONFUSED"],["NO", "matrix.Image.NO"],["YES", "matrix.Image.YES"],["LEFT_ARROW", "matrix.Image.LEFT_ARROW"],["RIGHT_ARROW", "matrix.Image.RIGHT_ARROW"],["DRESS", "matrix.Image.DRESS"],["TRANSFORMERS", "matrix.Image.TRANSFORMERS"],["SCISSORS", "matrix.Image.SCISSORS"],["EXIT", "matrix.Image.EXIT"],["TREE", "matrix.Image.TREE"],["PACMAN", "matrix.Image.PACMAN"],["TARGET", "matrix.Image.TARGET"],["TSHIRT", "matrix.Image.TSHIRT"],["ROLLERSKATE", "matrix.Image.ROLLERSKATE"],["DUCK", "matrix.Image.DUCK"],["HOUSE", "matrix.Image.HOUSE"],["TORTOISE", "matrix.Image.TORTOISE"],["BUTTERFLY", "matrix.Image.BUTTERFLY"],["STICKFIGURE", "matrix.Image.STICKFIGURE"],["GHOST", "matrix.Image.GHOST"],["PITCHFORK", "matrix.Image.PITCHFORK"],["MUSIC_QUAVERS", "matrix.Image.MUSIC_QUAVERS"],["MUSIC_QUAVER", "matrix.Image.MUSIC_QUAVER"],["MUSIC_CROTCHET", "matrix.Image.MUSIC_CROTCHET"],["COW", "matrix.Image.COW"],["RABBIT", "matrix.Image.RABBIT"],["SQUARE_SMALL", "matrix.Image.SQUARE_SMALL"],["SQUARE", "matrix.Image.SQUARE"],["DIAMOND_SMALL", "matrix.Image.DIAMOND_SMALL"],["DIAMOND", "matrix.Image.DIAMOND"],["CHESSBOARD", "matrix.Image.CHESSBOARD"],["TRIANGLE_LEFT", "matrix.Image.TRIANGLE_LEFT"],["TRIANGLE", "matrix.Image.TRIANGLE"],["SNAKE", "matrix.Image.SNAKE"],["UMBRELLA", "matrix.Image.UMBRELLA"],["SKULL", "matrix.Image.SKULL"],["GIRAFFE", "matrix.Image.GIRAFFE"],["SWORD", "matrix.Image.SWORD"]], - builtinimg: [["HEART", "onboard_matrix.HEART"], ["HEART_SMALL", "onboard_matrix.HEART_SMALL"], ["HAPPY", "onboard_matrix.HAPPY"], ["SAD", "onboard_matrix.SAD"], ["SMILE", "onboard_matrix.SMILE"], ["ANGRY", "onboard_matrix.ANGRY"], ["NO", "onboard_matrix.NO"], ["YES", "onboard_matrix.YES"]], + builtinimg: [["HEART", "onboard_matrix.HEART"], ["HEART_SMALL", "onboard_matrix.HEART_SMALL"], ["HAPPY", "onboard_matrix.HAPPY"], ["SAD", "onboard_matrix.SAD"], ["SMILE", "onboard_matrix.SMILE"], ["ANGRY", "onboard_matrix.ANGRY"], ["NO", "onboard_matrix.NO"], ["YES", "onboard_matrix.YES"], ["DOOR_OPEN", "onboard_matrix.DOOR_OPEN"], ["DOOR_OPENING", "onboard_matrix.DOOR_OPENING"], ["DOOR_CLOSE", "onboard_matrix.DOOR_CLOSE"]], 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"]], playlist: [["DADADADUM", "onboard_music.DADADADUM"], ["BIRTHDAY", "onboard_music.BIRTHDAY"], ["BA_DING", "onboard_music.BA_DING"], ["JUMP_UP", "onboard_music.JUMP_UP"], ["JUMP_DOWN", "onboard_music.JUMP_DOWN"], ["POWER_UP", "onboard_music.POWER_UP"], ["POWER_DOWN", "onboard_music.POWER_DOWN"]], diff --git a/boards/default_src/micropython_esp32c2/template.xml b/boards/default_src/micropython_esp32c2/template.xml index 65c3a8af..a8e627a5 100644 --- a/boards/default_src/micropython_esp32c2/template.xml +++ b/boards/default_src/micropython_esp32c2/template.xml @@ -6446,6 +6446,37 @@ + + + + wifi-name + + + + + wifi-password + + + + + + + url + + + + + + + + + url + + + + + + diff --git a/common/msg/blockly/en.js b/common/msg/blockly/en.js index 032cbe65..6fa717cc 100644 --- a/common/msg/blockly/en.js +++ b/common/msg/blockly/en.js @@ -3630,4 +3630,10 @@ En.MIXLY_DUTY_RATIO = "value,frequency"; En.MIXLY_OP_GARBAGE_COLLECT = "operate garbage collection"; En.MIXLY_GET_MEM_ALLOC = "get the allocated memory(Bytes)"; En.MIXLY_GET_MEM_FREE = "get the free memory (Bytes)"; +En.MIXLY_ESP32_UREQUESTS_CONNECT_WIFI = "connect to wifi network"; +En.MIXLY_UREQUESTS_URL_TOOLTIP = "the url used to initiate a network request"; +En.MIXLY_ESP32_CONNECT_URL_TOOLTIP = "initiate a network request"; +En.MIXLY_ESP32_UREQUESTS_URL_TOOLTIP = "initiate a network request through the API URL"; +En.MIXLY_ESP32_URL_REPONSE = "API return data"; +En.MIXLY_ESP32_URL_REPONSE_TOOLTIP = "get the data returned by the API"; })(); \ No newline at end of file diff --git a/common/msg/blockly/zh-hans.js b/common/msg/blockly/zh-hans.js index 6e5f6650..86713c96 100644 --- a/common/msg/blockly/zh-hans.js +++ b/common/msg/blockly/zh-hans.js @@ -3778,4 +3778,10 @@ ZhHans.MIXLY_DUTY_RATIO = "(值,频率)"; ZhHans.MIXLY_OP_GARBAGE_COLLECT = "运行垃圾回收"; ZhHans.MIXLY_GET_MEM_ALLOC = "获取已使用内存容量(Bytes)"; ZhHans.MIXLY_GET_MEM_FREE = "获取未使用内存容量(Bytes)"; +ZhHans.MIXLY_ESP32_UREQUESTS_CONNECT_WIFI = "连接Wi-Fi网络"; +ZhHans.MIXLY_UREQUESTS_URL_TOOLTIP = "用于发起网络请求的URL"; +ZhHans.MIXLY_ESP32_CONNECT_URL_TOOLTIP = "发起网络请求"; +ZhHans.MIXLY_ESP32_UREQUESTS_URL_TOOLTIP = "通过API的URL发起网络请求"; +ZhHans.MIXLY_ESP32_URL_REPONSE = "API返回数据"; +ZhHans.MIXLY_ESP32_URL_REPONSE_TOOLTIP = "获得API返回的数据"; })(); \ No newline at end of file diff --git a/common/msg/blockly/zh-hant.js b/common/msg/blockly/zh-hant.js index 5c49149a..bceac503 100644 --- a/common/msg/blockly/zh-hant.js +++ b/common/msg/blockly/zh-hant.js @@ -3633,4 +3633,10 @@ ZhHant.MIXLY_DUTY_RATIO = "(值,頻率)"; ZhHant.MIXLY_OP_GARBAGE_COLLECT = "運行垃圾回收"; ZhHant.MIXLY_GET_MEM_ALLOC = "獲取已使用内存容量(Bytes)"; ZhHant.MIXLY_GET_MEM_FREE = "獲取未使用内存容量(Bytes)"; +ZhHant.MIXLY_ESP32_UREQUESTS_CONNECT_WIFI = "連接Wi-Fi網絡"; +ZhHant.MIXLY_UREQUESTS_URL_TOOLTIP = "用於發起網絡請求的URL"; +ZhHant.MIXLY_ESP32_CONNECT_URL_TOOLTIP = "發起網絡請求"; +ZhHant.MIXLY_ESP32_UREQUESTS_URL_TOOLTIP = "通過API的URL發起網絡請求"; +ZhHant.MIXLY_ESP32_URL_REPONSE = "API返回數據"; +ZhHant.MIXLY_ESP32_URL_REPONSE_TOOLTIP = "獲得API返回的數據"; })(); \ No newline at end of file