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 = '上報圖像數據';
})();