From bb7562ef5cb7295282528a4f837be4c9affa1494 Mon Sep 17 00:00:00 2001 From: Irene-Maxine <114802521+Irene-Maxine@users.noreply.github.com> Date: Mon, 16 Jun 2025 13:09:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=9B=BE=E5=83=8F=E6=95=B0?= =?UTF-8?q?=E6=8D=AE+=E4=B8=8A=E6=8A=A5=E5=9B=BE=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../micropython/blocks/ai_local.js | 26 +++++++++++++++++++ .../micropython/generators/ai_local.js | 14 ++++++++++ .../micropython_esp32s3/template.xml | 8 ++++++ common/msg/blockly/en.js | 2 ++ common/msg/blockly/zh-hans.js | 2 ++ common/msg/blockly/zh-hant.js | 2 ++ 6 files changed, 54 insertions(+) diff --git a/boards/default_src/micropython/blocks/ai_local.js b/boards/default_src/micropython/blocks/ai_local.js index 2997601b..567a8a59 100644 --- a/boards/default_src/micropython/blocks/ai_local.js +++ b/boards/default_src/micropython/blocks/ai_local.js @@ -288,6 +288,21 @@ export const GET_PICTURE_DATA = { } }; +export const GET_PICTURE_DATA_EXACT = { + init: function () { + this.setColour(AI_LOCAL_GRAPH_HUE); + this.appendDummyInput() + .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.MIXLY_MICROBIT_IMAGE) + .appendField(new Blockly.FieldDropdown([ + ["RGB565" + Blockly.Msg.MIXLY_SD_DATA,"0"], + ["JPG" + Blockly.Msg.MIXLY_SD_DATA,"1"], + [Blockly.Msg.MIXLY_JPG_base64_CODE + Blockly.Msg.MIXLY_SD_DATA ,"2"] + ]),"kind") + this.setOutput(true); + this.setInputsInline(true); + } +}; + export const SCREEN_SHOW_CAM_GRAPH_SHOOT = { init: function () { this.setColour(AI_LOCAL_GRAPH_HUE); @@ -557,4 +572,15 @@ export const AI_STOP_ACQUISITION = { this.setOutput(true); this.setInputsInline(true); } +}; + +export const MIXIO_REPORT_IMAGE_DATA = { + init: function () { + this.setColour(AI_LOCAL_GRAPH_HUE); + this.appendDummyInput() + .appendField(Blockly.Msg.MIXLY_REPORT_IMAGE_DATA + Blockly.Msg.LANG_CONTROLS_FOR_INPUT_FROM + Blockly.Msg.MIXLY_CHOOSE_AND_GET_DIR) + this.appendValueInput('SUB'); + this.setOutput(true); + this.setInputsInline(true); + } }; \ No newline at end of file diff --git a/boards/default_src/micropython/generators/ai_local.js b/boards/default_src/micropython/generators/ai_local.js index fd5cf4b3..d125f810 100644 --- a/boards/default_src/micropython/generators/ai_local.js +++ b/boards/default_src/micropython/generators/ai_local.js @@ -123,6 +123,13 @@ export const GET_PICTURE_DATA = function (_, generator) { return [code, generator.ORDER_ATOMIC]; } +export const GET_PICTURE_DATA_EXACT = function (_, generator) { + generator.definitions_['import_base64'] = 'import base64'; + var kind = this.getFieldValue('kind'); + var code = 'cam.snapshot(' + kind +')'; + return [code, generator.ORDER_ATOMIC]; +} + export const SCREEN_SHOW_CAM_GRAPH_SHOOT = function (_, generator) { var bool = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); var code = 'cam.display(show='+ bool +')\n'; @@ -230,4 +237,11 @@ export const AI_STOP_ACQUISITION = function (_, generator) { var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var code = sub + '.stop()'; return [code, generator.ORDER_ATOMIC]; +} + +export const MIXIO_REPORT_IMAGE_DATA = function (_, generator) { + generator.definitions_['import_base64'] = 'import base64'; + var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); + var code = 'mixio.image_base64('+ sub +')'; + return [code, generator.ORDER_ATOMIC]; } \ No newline at end of file diff --git a/boards/default_src/micropython_esp32s3/template.xml b/boards/default_src/micropython_esp32s3/template.xml index 027dec62..33a1584b 100644 --- a/boards/default_src/micropython_esp32s3/template.xml +++ b/boards/default_src/micropython_esp32s3/template.xml @@ -2390,11 +2390,19 @@ + + + + + + 12.jpg + + diff --git a/common/msg/blockly/en.js b/common/msg/blockly/en.js index fd8e5f28..65f03747 100644 --- a/common/msg/blockly/en.js +++ b/common/msg/blockly/en.js @@ -3970,4 +3970,6 @@ En.MIXLY_DEFINE_KEYBOARDS= 'define the keyboard'; En.MIXLY_TVOC_CO2_SENSOR = 'TVOC,formaldehyde and carbon dioxide sensors'; En.MIXLY_TVOC_CO2_SENSOR_GRT_DATA = 'Obtain the concentrations of TVOC(mg/m³), formaldehyde (mg/m³), and carbon dioxide (ppm)'; En.MIXLY_IMAGE_ACQUISITION = 'image acquisition'; +En.MIXLY_JPG_base64_CODE= "JPG's base64 code"; +En.MIXLY_REPORT_IMAGE_DATA = 'report image data'; })(); diff --git a/common/msg/blockly/zh-hans.js b/common/msg/blockly/zh-hans.js index a9fbc770..ab85dc80 100644 --- a/common/msg/blockly/zh-hans.js +++ b/common/msg/blockly/zh-hans.js @@ -4129,4 +4129,6 @@ ZhHans.MIXLY_DEFINE_KEYBOARDS= '定义键盘'; ZhHans.MIXLY_TVOC_CO2_SENSOR = 'TVOC、甲醛、二氧化碳传感器'; ZhHans.MIXLY_TVOC_CO2_SENSOR_GRT_DATA = '获取TVOC(mg/m3) 、甲醛(mg/m3)、二氧化碳的浓度(ppm)'; ZhHans.MIXLY_IMAGE_ACQUISITION = '图像采集'; +ZhHans.MIXLY_JPG_base64_CODE= 'JPG的base64编码'; +ZhHans.MIXLY_REPORT_IMAGE_DATA = '上报图像数据'; })(); \ No newline at end of file diff --git a/common/msg/blockly/zh-hant.js b/common/msg/blockly/zh-hant.js index 065c1b5e..dc4cd90c 100644 --- a/common/msg/blockly/zh-hant.js +++ b/common/msg/blockly/zh-hant.js @@ -4124,4 +4124,6 @@ ZhHant.MIXLY_DEFINE_KEYBOARDS= '定義鍵盤'; ZhHant.MIXLY_TVOC_CO2_SENSOR = 'TVOC、甲醛、二氧化碳傳感器'; ZhHant.MIXLY_TVOC_CO2_SENSOR_GRT_DATA = '獲取TVOC(mg/m3) 、甲醛(mg/m3)、二氧化碳的濃度(ppm)'; ZhHant.MIXLY_IMAGE_ACQUISITION = '圖像採集'; +ZhHant.MIXLY_JPG_base64_CODE= 'JPG的base64編碼'; +ZhHant.MIXLY_REPORT_IMAGE_DATA = '上報圖像數據'; })();