一些板载显示修改

This commit is contained in:
Irene-Maxine
2025-11-20 22:47:53 +08:00
parent 6754e661da
commit 4aa693b7bf
16 changed files with 270 additions and 7 deletions

View File

@@ -72,6 +72,20 @@ export const esp32_music_play_list = {
}
}
export const backstage_esp32_music_play_list = {
init: function () {
this.setColour(ACTUATOR_EXTERN_HUE);
this.appendValueInput('SUB')
this.appendValueInput('LIST')
.appendField(Blockly.Msg.MIXLY_BACKSTAGE + Blockly.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_BACKSTAGE + Blockly.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS);
}
}
export const esp32_music_set_tempo_extern = {
init: function () {
this.setColour(ACTUATOR_EXTERN_HUE);

View File

@@ -349,8 +349,13 @@ export const OPEN_IMAGE = {
['180','180'],
['270','270']
]),'angle');
this.appendValueInput("w")
.appendField(Blockly.Msg.MIXLY_Enlarge_and_scale_to)
this.appendValueInput("h")
.appendField(Blockly.Msg.MIXLY_High_zoom_level_to)
this.setOutput(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_OPEN_IMAGE_TOOLTIP);
}
};

View File

@@ -1607,6 +1607,58 @@ export const onboard_tft_show_texts = {
}
};
export const onboard_tft_show_qrcode = {
init: function () {
this.setColour(DISPLAY_ONBOARD_HUE);
this.appendValueInput('direct')
.appendField(Blockly.Msg.OLED_BITMAP)
.appendField(Blockly.Msg.MIXLY_QR_CODE);
if (JSFuncs.getPlatform() === 'Python ESP32-S3') {
this.appendValueInput('boolean')
.appendField( Blockly.Msg.MIXLY_synchronize);
}
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
}
};
export const onboard_tft_show_qrcode_details = {
init: function () {
this.setColour(DISPLAY_ONBOARD_HUE);
this.appendValueInput('data')
.appendField(Blockly.Msg.OLED_BITMAP)
.appendField(Blockly.Msg.MIXLY_QR_CODE);
this.appendValueInput("x")
.setCheck(Number)
.appendField('x');
this.appendValueInput("y")
.setCheck(Number)
.appendField('y');
this.appendValueInput("size")
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_NUMBER);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_ERROR_RATE)
.appendField(new Blockly.FieldDropdown([
["0","7%"],
["1","15%"],
["2","25%"],
["3","30"]
]),"correct");
this.appendValueInput('VAR')
.appendField(Blockly.Msg.HTML_COLOUR);
if (JSFuncs.getPlatform() === 'Python ESP32-S3') {
this.appendValueInput('boolean')
.appendField( Blockly.Msg.MIXLY_synchronize);
}
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
}
};
/**
* @deprecated To be removed in the future
*/

View File

@@ -139,6 +139,14 @@ export const esp32_music_play_list = function (_, generator) {
return code;
}
export const backstage_esp32_music_play_list = function (_, generator) {
generator.definitions_['import_music'] = 'import music';
var lst = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT);
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = v + ".play_thread(" + v + '.' + lst + ")\n";
return code;
}
export const esp32_music_reset_extern = function (_, generator) {
generator.definitions_['import_music'] = 'import music';
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);

View File

@@ -815,7 +815,7 @@ export const record_audio = function (_,generator){
generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot';
var str = generator.valueToCode(this, 'str', generator.ORDER_ATOMIC);
var t = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);
var code = 'onboard_bot.mic_pga('+str+','+ t +')\n';
var code = 'onboard_bot.pcm_record('+str+','+ t +')\n';
return code;
}

View File

@@ -56,20 +56,22 @@ export const llm_set_callback = function (_, generator) {
var v1 = generator.valueToCode(this, "VAR1", generator.ORDER_NONE) || "None";
var v2 = generator.valueToCode(this, "VAR2", generator.ORDER_NONE) || "None";
var v3 = generator.valueToCode(this, "VAR3", generator.ORDER_NONE) || "None";
var a0 = generator.valueToCode(this, "ADD0", generator.ORDER_NONE) || "None";
// var a0 = generator.valueToCode(this, "ADD0", generator.ORDER_NONE) || "None";
var callback = generator.variableDB_.getName(
generator.valueToCode(this, "callback", generator.ORDER_NONE) || "None",
Blockly.Procedures.NAME_TYPE
);
var code = new Array(this.itemCount_);
var default_value = '0';
var default_value = "()";
for (var n = 0; n < this.itemCount_; n++) {
code[n] = generator.valueToCode(this, 'ADD' + n, generator.ORDER_NONE) || default_value;
}
if (this.itemCount_ > 1){
var code = v1 +'.function_call(' + callback + ', ' + v2 + ', ' + v3 + ', (' + code.join(', ') +'))\n';
}else{
}else if(this.itemCount_ == 1){
var code = v1 +'.function_call(' + callback + ', ' + v2 + ', ' + v3 + ', ' + code.join(', ') +')\n';
}else{
var code = v1 +'.function_call(' + callback + ', ' + v2 + ', ' + v3 +')\n';
}
return code;

View File

@@ -158,7 +158,9 @@ export const OPEN_IMAGE = function (_, generator) {
generator.definitions_['camera_import_Image'] = 'from camera import Image';
var direct = generator.valueToCode(this, 'direct', generator.ORDER_ATOMIC);
var a = this.getFieldValue('angle');
var code = 'Image.open(path=' + direct +',rotation=' + a + ')';
var w = generator.valueToCode(this, 'w', generator.ORDER_ATOMIC);
var h = generator.valueToCode(this, 'h', generator.ORDER_ATOMIC);
var code = 'Image.open(path=' + direct +',rotation=' + a + ',scale_width='+w+',scale_height='+h+')';
return [code, generator.ORDER_ATOMIC];
}

View File

@@ -1183,6 +1183,39 @@ export const onboard_tft_show_texts = function (_, generator) {
return code;
}
export const onboard_tft_show_qrcode = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
var direct = generator.valueToCode(this, 'direct', generator.ORDER_ATOMIC);
var bool = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC) || 'True';
var code = 'onboard_tft.qrcode(' + direct + ',sync='+ bool + ')\n';
return code;
}
export const onboard_tft_show_qrcode_details = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);
var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);
var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);
var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);
var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var s = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC) || 'True';
var correct = this.getFieldValue('correct');
if (color.slice(0, 2) == "0x") {
var code = "onboard_tft.qrcode(" + data + ',x=' + x + ',y=' + y + ',size=' + size + ',correct=' + correct+ ',color='+ color +",sync=" + s +")\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.qrcode(" + data + ',x=' + x + ',y=' + y + ',size=' + size + ',correct=' + correct + ',color=0x' + rgb565.toString(16) + ",sync=" + s + ")\n";
}
return code;
}
/**
* @deprecated To be removed in the future
*/

View File

@@ -1612,6 +1612,11 @@
</shadow>
</value>
</block>
<block type="backstage_onboard_music_play_list" m-hide='micropython:esp32:rm_e1'>
<value name="LIST">
<shadow type="pins_playlist"></shadow>
</value>
</block>
<!--<block
type="esp32_mixgo_music_play_list_show">
<value name="LIST">
@@ -4510,6 +4515,16 @@
</shadow>
</value>
</block>
<block type="backstage_esp32_music_play_list">
<value name="LIST">
<shadow type="pins_playlist_extern"></shadow>
</value>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
</shadow>
</value>
</block>
<block type="esp32_music_set_tempo_extern">
<value name="SUB">
<shadow type="variables_get">

View File

@@ -2926,7 +2926,7 @@
</shadow>
</value>
</block>
<block type="llm_set_callback">
<block type="llm_set_callback">
<value name="VAR1">
<shadow type="variables_get">
<field name="VAR">llm</field>
@@ -4631,6 +4631,16 @@
</shadow>
</value>
</block>
<block type="backstage_esp32_music_play_list">
<value name="LIST">
<shadow type="pins_playlist_extern"></shadow>
</value>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
</shadow>
</value>
</block>
<block type="esp32_music_set_tempo_extern">
<value name="SUB">
<shadow type="variables_get">

View File

@@ -1629,6 +1629,11 @@
<shadow type="pins_playlist"></shadow>
</value>
</block>
<block type="backstage_onboard_music_play_list">
<value name="LIST">
<shadow type="pins_playlist"></shadow>
</value>
</block>
<block type="esp32_music_set_tempo">
<value name="TICKS">
<shadow type="math_number">
@@ -4373,6 +4378,26 @@
</shadow>
</value>
</block>
<block type="backstage_esp32_music_play_list" m-hide='micropython:esp32c3:mixgocar_c3'>
<value name="LIST">
<shadow type="pins_playlist_extern"></shadow>
</value>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
</shadow>
</value>
</block>
<block type="backstage_esp32_music_play_list">
<value name="LIST">
<shadow type="pins_playlist_extern"></shadow>
</value>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
</shadow>
</value>
</block>
<block type="esp32_music_set_tempo_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">

View File

@@ -1574,6 +1574,11 @@
<shadow type="pins_playlist"></shadow>
</value>
</block>
<block type="backstage_onboard_music_play_list">
<value name="LIST">
<shadow type="pins_playlist"></shadow>
</value>
</block>
<block type="esp32_music_set_tempo">
<value name="TICKS">
<shadow type="math_number">
@@ -4031,6 +4036,16 @@
</shadow>
</value>
</block>
<block type="backstage_esp32_music_play_list">
<value name="LIST">
<shadow type="pins_playlist_extern"></shadow>
</value>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
</shadow>
</value>
</block>
<block type="esp32_music_set_tempo_extern">
<value name="SUB">
<shadow type="variables_get">

View File

@@ -1689,6 +1689,11 @@
<shadow type="pins_playlist"></shadow>
</value>
</block>
<block type="esp32_onboard_music_play_list" m-show='micropython:esp32s3:mixgo_sant'>
<value name="LIST">
<shadow type="pins_playlist"></shadow>
</value>
</block>
<block type="esp32_music_set_tempo" m-show='micropython:esp32s3:mixgo_sant'>
<value name="TICKS">
<shadow type="math_number">
@@ -1981,6 +1986,51 @@
</shadow>
</value>
</block>
<block type="onboard_tft_show_qrcode">
<value name="direct">
<shadow type="text">
<field name="TEXT">mixly</field>
</shadow>
</value>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="onboard_tft_show_qrcode_details">
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
<value name="x">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="size">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="VAR">
<block type="display_color_seclet">
<field name="COLOR">#ffffff</field>
</block>
<shadow type="tuple_create_with_text_return">
<field name="TEXT">255,255,0</field>
</shadow>
</value>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="display_scroll_string">
<value name="data">
<shadow type="text">
@@ -2743,7 +2793,17 @@
<shadow type="text">
<field name="TEXT">mixly.jpg</field>
</shadow>
</value>
</value>
<value name="w">
<shadow type="math_number">
<field name="NUM">240</field>
</shadow>
</value>
<value name="h">
<shadow type="math_number">
<field name="NUM">240</field>
</shadow>
</value>
</block>
</value>
</block>
@@ -5310,6 +5370,16 @@
</shadow>
</value>
</block>
<block type="backstage_esp32_music_play_list">
<value name="LIST">
<shadow type="pins_playlist_extern"></shadow>
</value>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
</shadow>
</value>
</block>
<block type="esp32_music_set_tempo_extern">
<value name="SUB">
<shadow type="variables_get">