@mixly/micropython-esp32s3
Version:
适用于mixly的micropython esp32s3模块
1,703 lines (1,695 loc) • 220 kB
text/xml
<%= htmlWebpackPlugin.tags.headTags.join('\n') %>
<xml>
<category name="" id="catInOut" colour="20">
<block type="inout_highlow"></block>
<block type="inout_digital_init">
<value name="PIN">
<shadow type="pins_digital_pin">
</shadow>
</value>
</block>
<block type="inout_digital_write">
<value name="PIN">
<shadow type="pins_digital"></shadow>
</value>
<value name="STAT">
<shadow type="inout_highlow">
</shadow>
</value>
</block>
<block type="inout_digital_read">
<value name="PIN">
<shadow type="pins_digital"></shadow>
</value>
</block>
<block type="inout_analog_read_init">
<value name="PIN">
<shadow type="pins_analog_pin"></shadow>
</value>
</block>
<block type="inout_analog_atten">
<value name="PIN">
<shadow type="pins_analog"></shadow>
</value>
</block>
<block type="inout_analog_read">
<value name="PIN">
<shadow type="pins_analog"></shadow>
</value>
</block>
<block type="inout_pwm_analog_write_init">
<value name="PIN">
<shadow type="pins_pwm_pin"></shadow>
</value>
</block>
<block type="inout_pwm_analog_write">
<value name="PIN">
<shadow type="pins_pwm"></shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="inout_pwm_analog_write_set_freq">
<value name="PIN">
<shadow type="pins_pwm"></shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">2000</field>
</shadow>
</value>
</block>
<block type="inout_pin_pressed_init">
<value name="PIN">
<shadow type="pins_touch_pin">
</shadow>
</value>
</block>
<block type="inout_pin_pressed">
<value name="pin">
<shadow type="pins_touch">
</shadow>
</value>
</block>
<block type="inout_pin_attachInterrupt">
<value name="PIN">
<shadow type="pins_digital_pin"></shadow>
</value>
<value name="DO">
<shadow type="factory_block_return">
<field name="VALUE">attachInterrupt_func</field>
</shadow>
</value>
</block>
<block type="procedures_defnoreturn">
<mutation>
<arg name="x"></arg>
</mutation>
<field name="NAME">attachInterrupt_func</field>
<statement name="STACK">
<block type="controls_pass"></block>
</statement>
</block>
<!-- <block type="inout_analog_write_init">
<value name="PIN">
<shadow type="pins_dac_pin"></shadow>
</value>
</block>
<block type="inout_analog_write">
<value name="PIN">
<shadow type="pins_dac"></shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block> -->
</category>
<category id="catControl" colour="120">
<block type="controls_whileUntil">
<value name="BOOL">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="controls_delay_new">
<value name="DELAY_TIME">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="controls_if"></block>
<block type="controls_forEach">
<value name="LIST">
<shadow type="list_many_input">
<field name="CONTENT">0,1,2,3</field>
</shadow>
<block type="controls_range">
<value name="FROM">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="TO">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
<value name="STEP">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</value>
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">i</field>
</shadow>
</value>
</block>
<block type="do_while">
</block>
<block type="controls_pass"></block>
<block type="controls_flow_statements"></block>
<block type="controls_try_finally">
<statement name="try">
<block type="system_print">
<value name="VAR">
<block type="math_arithmetic">
<field name="OP">DIVIDE</field>
<value name="A">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
</value>
</block>
</statement>
<value name="IF1">
<shadow type="factory_block_return">
<field name="VALUE">Exception as e</field>
</shadow>
</value>
<statement name="DO1">
<block type="system_print">
<value name="VAR">
<block type="variables_get">
<field name="VAR">e</field>
</block>
</value>
</block>
</statement>
</block>
<block type="controls_thread">
<value name="callback">
<shadow type="factory_block_return">
<field name="VALUE">testThread</field>
</shadow>
</value>
<value name="VAR">
<block type="tuple_create_with_noreturn" inline="true">
<mutation items="0"></mutation>
</block>
</value>
</block>
<block type="procedures_defnoreturn" inline="false">
<field name="NAME">testThread</field>
<statement name="STACK">
<block type="controls_whileUntil">
<field name="MODE">WHILE</field>
<value name="BOOL">
<block type="logic_boolean">
<field name="BOOL">TRUE</field>
</block>
</value>
<statement name="DO">
<block type="system_print" inline="false">
<value name="VAR">
<block type="text">
<field name="TEXT">Hello Mixly from Thread!</field>
</block>
</value>
<next>
<block type="controls_delay_new">
<field name="Time">ms</field>
<value name="DELAY_TIME">
<block type="math_number">
<field name="NUM">10</field>
</block>
</value>
</block>
</next>
</block>
</statement>
</block>
</statement>
</block>
<block type="system_timer_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">tim</field>
</shadow>
</value>
</block>
<block type="system_timer">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">tim</field>
</shadow>
</value>
<value name="period">
<shadow type="math_number">
<field name="NUM">1000</field>
</shadow>
</value>
<value name="callback">
<shadow type="factory_block_return">
<field name="VALUE">tim_callback</field>
</shadow>
</value>
</block>
<block type="procedures_defnoreturn">
<mutation>
<arg name="tim"></arg>
</mutation>
<field name="NAME">tim_callback</field>
<statement name="STACK">
<block type="system_print">
<value name="VAR">
<block type="number_to_text">
<value name="VAR">
<block type="controls_millis"></block>
</value>
</block>
</value>
</block>
</statement>
</block>
<block type="controls_millis"></block>
<block type="system_ticks_diff">
<value name="END">
<block type="controls_millis"></block>
<shadow type="math_number">
<field name="NUM">500</field>
</shadow>
</value>
<value name="START">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="system_wdt_init">
<value name="period">
<shadow type="math_number">
<field name="NUM">2000</field>
</shadow>
</value>
</block>
<block type="system_wdt_feed">
</block>
<block type="system_machine_reset">
</block>
<block type="garbage_collection"></block>
<block type="get_mem_alloc"></block>
<block type="get_mem_free"></block>
<block type="turn_to_int">
<value name="VAR">
<block type="get_unique_identifier"></block>
</value>
</block>
</category>
<category id="catMath" colour="230">
<block type="math_number"></block>
<block type="math_constant_mp"></block>
<block type="math_trig">
<value name="NUM">
<shadow type="math_number">
<field name="NUM">90</field>
</shadow>
</value>
</block>
<block type="text_to_number">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">x</field>
</shadow>
</value>
</block>
<block type="math_dec">
<value name="NUM">
<shadow type="math_number">
<field name="NUM">15</field>
</shadow>
</value>
</block>
<block type="math_arithmetic">
<value name="A">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="math_bit">
<value name="A">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="math_selfcalcu">
<value name="A">
<shadow type="variables_get">
<field name="VAR">a</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="math_to_int">
<value name="A">
<shadow type="math_number">
<field name="NUM">0.998</field>
</shadow>
</value>
</block>
<block type="math_max_min">
<value name="A">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
</block>
<block type="math_round">
<value name="VALUE">
<shadow type="math_number">
<field name="NUM">4.8</field>
</shadow>
</value>
<value name="VAR">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
</block>
<block type="math_random_seed">
<value name="NUM">
<block type="controls_millis"></block>
<shadow type="math_number">
<field name="NUM">997</field>
</shadow>
</value>
</block>
<block type="math_random">
<value name="FROM">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="TO">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="math_number_base_conversion">
<value name="NUM">
<shadow type="math_number">
<field name="NUM">1010</field>
</shadow>
</block>
<block type="math_constrain">
<value name="VALUE">
<shadow type="math_number">
<field name="NUM">1000</field>
</shadow>
</value>
<value name="LOW">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="HIGH">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="math_map">
<value name="NUM">
<shadow type="math_number">
<field name="NUM">50</field>
</shadow>
</value>
<value name="fromLow">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="fromHigh">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="toLow">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="toHigh">
<shadow type="math_number">
<field name="NUM">1000</field>
</shadow>
</value>
</block>
<block type="math_radian_to_degree">
<value name="VAR">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="math_degree_to_radian">
<value name="VAR">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</category>
<category id="catLogic" colour="210">
<block type="logic_compare"></block>
<block type="logic_compare_continous">
<value name="A">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="B">
<shadow type="variables_get">
<field name="VAR">x</field>
</shadow>
</value>
<value name="C">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
</block>
<block type="logic_operation"></block>
<block type="logic_negate"></block>
<block type="logic_boolean"></block>
<block type="logic_null"></block>
<block type="logic_true_or_false"></block>
<block type="logic_is_in">
<value name="A">
<shadow type="variables_get">
<field name="VAR">x</field>
</shadow>
</value>
<value name="B">
<shadow type="list_many_input">
<field name="CONTENT">0,1,2,3</field>
</shadow>
</value>
</block>
<block type="logic_is">
<value name="A">
<shadow type="list_many_input">
<field name="CONTENT">0,1,2,3</field>
</shadow>
</value>
<value name="B">
<shadow type="list_many_input">
<field name="CONTENT">0,1,2,3</field>
</shadow>
</value>
</block>
<block type="logic_tobool">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">x</field>
</shadow>
</value>
</block>
</category>
<category id="catText" colour="160">
<block type="text">
<field name="TEXT">Mixly</field>
</block>
<block type="text_textarea">
</block>
<block type="text_join">
<value name="A">
<shadow type="text">
<field name="TEXT">Hello</field>
</shadow>
</value>
<value name="B">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="ascii_to_char">
<value name="VAR">
<shadow type="math_number">
<field name="NUM">65</field>
</shadow>
</value>
</block>
<block type="char_to_ascii">
<value name="VAR">
<shadow type="text">
<field name="TEXT">a</field>
</shadow>
</value>
</block>
<block type="number_to_text">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">x</field>
</shadow>
</value>
</block>
<block type="text_length">
<value name="VAR">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="text_equals_starts_ends">
<value name="STR1">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
<value name="STR2">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
</block>
<block type="text_char_at">
<value name="VAR">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
<value name="AT">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="text_substring">
<value name="VAR">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
<value name="AT1">
<shadow type="math_indexer_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="AT2">
<shadow type="math_indexer_number">
<field name="NUM">2</field>
</shadow>
</value>
</block>
<block type="text_random_char">
<value name="VAR">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="text_encode">
<value name="VAR">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="text_find">
<value name="VAR">
<shadow type="text">
<field name="TEXT">Hello,mixly</field>
</shadow>
</value>
<value name="STR">
<shadow type="text">
<field name="TEXT">l</field>
</shadow>
</value>
</block>
<block type="text_join_seq">
<value name="VAR">
<shadow type="text">
<field name="TEXT">--</field>
</shadow>
</value>
<value name="LIST">
<shadow type="variables_get">
<field name="VAR">mylist</field>
</shadow>
</value>
</block>
<block type="text_replace">
<value name="VAR">
<shadow type="text">
<field name="TEXT">Hello,mixly</field>
</shadow>
</value>
<value name="STR1">
<shadow type="text">
<field name="TEXT">mixly</field>
</shadow>
</value>
<value name="STR2">
<shadow type="text">
<field name="TEXT">mixpy</field>
</shadow>
</value>
</block>
<block type="text_split">
<value name="VAR">
<shadow type="text">
<field name="TEXT">I love mixly!</field>
</shadow>
</value>
<value name="VAL">
<shadow type="text">
<field name="TEXT"> </field>
</shadow>
</value>
</block>
<block type="text_strip">
<value name="VAR">
<shadow type="text">
<field name="TEXT"> I love mixly </field>
</shadow>
</value>
</block>
<block type="text_format_noreturn">
<mutation items="1"></mutation>
<value name="VAR">
<shadow type="text">
<field name="TEXT">Random No. is {}</field>
</shadow>
</value>
<value name="ADD0">
<block type="math_random">
<field name="TYPE">int</field>
<value name="FROM">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="TO">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="text_eval">
<value name="VAR">
<shadow type="text">
<field name="TEXT">input('1+2*3')</field>
</shadow>
</value>
</block>
</category>
<category id="catMicropyLists" colour="260">
<block type="lists_create_with"></block>
<block type="variables_set">
<field name="VAR">mylist</field>
<value name="VALUE">
<block type="list_many_input">
<field name="CONTENT">1,2,3,4,5</field>
</block>
</value>
</block>
<!--<block
type="lists_create_with_text"></block> -->
<block type="lists_get_index">
<value name="LIST">
<shadow type="variables_get">
<field name="VAR">mylist</field>
</shadow>
</value>
<value name="AT">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="lists_get_sublist">
<value name="LIST">
<shadow type="variables_get">
<field name="VAR">mylist</field>
</shadow>
</value>
<value name="AT1">
<shadow type="math_indexer_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="AT2">
<shadow type="math_indexer_number">
<field name="NUM">2</field>
</shadow>
</value>
</block>
<block type="lists_get_random_item">
<value name="LIST">
<shadow type="variables_get">
<field name="VAR">mylist</field>
</shadow>
</value>
</block>
<block type="list_trig">
<value name="data">
<shadow type="variables_get">
<field name="VAR">mylist</field>
</shadow>
</value>
</block>
<block type="lists_find">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">mylist</field>
</shadow>
</value>
<value name="data">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="lists_set_index">
<value name="LIST">
<shadow type="variables_get">
<field name="VAR">mylist</field>
</shadow>
</value>
<value name="AT">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="TO">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="lists_insert_value">
<value name="LIST">
<shadow type="variables_get">
<field name="VAR">mylist</field>
</shadow>
</value>
<value name="AT">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="VALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="lists_append_extend">
<value name="LIST">
<shadow type="variables_get">
<field name="VAR">mylist</field>
</shadow>
</value>
<value name="DATA">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="lists_remove_at">
<value name="LIST">
<shadow type="variables_get">
<field name="VAR">mylist</field>
</shadow>
</value>
<value name="DATA">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="lists_pop">
<value name="LIST">
<shadow type="variables_get">
<field name="VAR">mylist</field>
</shadow>
</value>
<value name="VALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="lists_sort">
<value name="LIST">
<shadow type="variables_get">
<field name="VAR">mylist</field>
</shadow>
</value>
</block>
<block type="lists_reverse">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">mylist</field>
</shadow>
</value>
</block>
<block type="lists_clear">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">mylist</field>
</shadow>
</value>
</block>
<!--<block
type="lists_change_to">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">mylist</field>
</shadow>
</value>
</block>-->
<block type="list_tolist">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">x</field>
</shadow>
</value>
</block>
</category>
<category id="catTuple" colour="195">
<block type="tuple_create_with"></block>
<block type="variables_set">
<field name="VAR">mytup</field>
<value name="VALUE">
<block type="tuple_create_with_text_return">
<field name="TEXT">1,2,3,4,5</field>
</block>
</value>
</block>
<!--<block
type="tuple_create_with_text2"></block>-->
<block type="tuple_getIndex">
<value name="TUP">
<shadow type="variables_get">
<field name="VAR">mytup</field>
</shadow>
</value>
<value name="AT">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="tuple_get_sublist">
<value name="LIST">
<shadow type="variables_get">
<field name="VAR">mytup</field>
</shadow>
</value>
<value name="AT1">
<shadow type="math_indexer_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="AT2">
<shadow type="math_indexer_number">
<field name="NUM">2</field>
</shadow>
</value>
</block>
<block type="tuple_get_random_item">
<value name="TUP">
<shadow type="variables_get">
<field name="VAR">mytup</field>
</shadow>
</value>
</block>
<block type="tuple_length">
<value name="TUP">
<shadow type="variables_get">
<field name="VAR">mytup</field>
</shadow>
</value>
</block>
<block type="tuple_max">
<value name="TUP">
<shadow type="variables_get">
<field name="VAR">mytup</field>
</shadow>
</value>
</block>
<block type="tuple_find">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">mytup</field>
</shadow>
</value>
<value name="data">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="tuple_del">
<value name="TUP">
<shadow type="variables_get">
<field name="VAR">mytup</field>
</shadow>
</value>
</block>
<block type="tuple_join">
<value name="TUP1">
<shadow type="variables_get">
<field name="VAR">mytup1</field>
</shadow>
</value>
<value name="TUP2">
<shadow type="variables_get">
<field name="VAR">mytup2</field>
</shadow>
</value>
</block>
<!--<block
type="tuple_change_to">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">mytup</field>
</shadow>
</value>
</block>-->
<block type="tuple_totuple">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">x</field>
</shadow>
</value>
</block>
</category>
<category id="catDicts" colour="345">
<block type="dicts_create_with"></block>
<block type="dicts_keys">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">mydict</field>
</shadow>
</value>
</block>
<block type="dicts_get">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">mydict</field>
</shadow>
</value>
<value name="KEY">
<shadow type="text">
<field name="TEXT">key</field>
</shadow>
</value>
</block>
<block type="dicts_get_default">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">mydict</field>
</shadow>
</value>
<value name="KEY">
<shadow type="text">
<field name="TEXT">key</field>
</shadow>
</value>
<value name="VAR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="dicts_add_or_change">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">mydict</field>
</shadow>
</value>
<value name="KEY">
<shadow type="text">
<field name="TEXT">key</field>
</shadow>
</value>
<value name="VAR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="dicts_delete">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">mydict</field>
</shadow>
</value>
<value name="KEY">
<shadow type="text">
<field name="TEXT">key</field>
</shadow>
</value>
</block>
<block type="dicts_pop">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">mydict</field>
</shadow>
</value>
<value name="KEY">
<shadow type="text">
<field name="TEXT">key</field>
</shadow>
</value>
</block>
<block type="dicts_setdefault">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">mydict</field>
</shadow>
</value>
<value name="KEY">
<shadow type="text">
<field name="TEXT">key</field>
</shadow>
</value>
<value name="VAR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="dicts_clear">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">mydict</field>
</shadow>
</value>
</block>
<!--<block
type="dicts_items">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">mydict</field>
</shadow>
</value>
</block>-->
<block type="dicts_values">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">mydict</field>
</shadow>
</value>
</block>
<block type="dicts_length">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">mydict</field>
</shadow>
</value>
</block>
<block type="dicts_deldict">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">mydict</field>
</shadow>
</value>
</block>
<block type="dicts_todict">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">x</field>
</shadow>
</value>
</block>
<block type="dicts_to_json">
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">mydict</field>
</shadow>
</value>
</block>
<block type="json_to_dicts">
<value name="VAR">
<shadow type="text">
<field name="TEXT">{"name":"Mixly","color":"green"}</field>
</shadow>
</value>
</block>
</category>
<category id="catSet" colour="100">
<block type="set_create_with"></block>
<block type="variables_set">
<field name="VAR">s1</field>
<value name="VALUE">
<block type="set_create_with_text_return">
<field name="TEXT">1,2,3,4,5</field>
</block>
</value>
</block>
<block type="set_length">
<value name="SET">
<shadow type="variables_get">
<field name="VAR">s1</field>
</shadow>
</value>
</block>
<block type="set_pop">
<value name="SET">
<shadow type="variables_get">
<field name="VAR">s1</field>
</shadow>
</value>
</block>
<block type="set_operate">
<value name="SET1">
<shadow type="variables_get">
<field name="VAR">s1</field>
</shadow>
</value>
<value name="SET2">
<shadow type="variables_get">
<field name="VAR">s2</field>
</shadow>
</value>
</block>
<block type="set_operate_update">
<value name="SET1">
<shadow type="variables_get">
<field name="VAR">s1</field>
</shadow>
</value>
<value name="SET2">
<shadow type="variables_get">
<field name="VAR">s2</field>
</shadow>
</value>
</block>
<block type="set_add_discard">
<value name="SET">
<shadow type="variables_get">
<field name="VAR">s1</field>
</shadow>
</value>
<value name="data">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="set_update">
<value name="SET">
<shadow type="variables_get">
<field name="VAR">s1</field>
</shadow>
</value>
<value name="VAR">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="set_sub">
<value name="SET1">
<shadow type="variables_get">
<field name="VAR">s1</field>
</shadow>
</value>
<value name="SET2">
<shadow type="variables_get">
<field name="VAR">s2</field>
</shadow>
</value>
</block>
<block type="set_toset">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">x</field>
</shadow>
</value>
</block>
</category>
<category id="catVar" colour="330" custom="VARIABLE">
</category>
<category id="catFun" custom="PROCEDURE" colour="290"></category>
<category id="catSerialPort" colour="65">
<block type="system_print">
<value name="VAR">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="system_print_inline">
<value name="VAR">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="system_print_end">
<value name="VAR">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
<value name="END">
<shadow type="text">
<field name="TEXT">,</field>
</shadow>
</value>
</block>
<block type="system_print_many">
<mutation items="2"></mutation>
<value name="ADD0">
<block type="text">
<field name="TEXT">Hello</field>
</block>
</value>
<value name="ADD1">
<block type="text">
<field name="TEXT">Mixly</field>
</block>
</value>
</block>
<block type="system_input">
<value name="VAR">
<shadow type="text">
<field name="TEXT">prompt</field>
</shadow>
</value>
</block>
<block type="serial_softserial_new">
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">0</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">2</field>
</shadow>
</value>
</block>
<block type="serial_print">
<value name="CONTENT">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="serial_println">
<value name="CONTENT">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="serial_print_hex">
<value name="CONTENT">
<shadow type="math_number">
<field name="NUM">0XFF00FF</field>
</shadow>
</value>
</block>
<block type="serial_send_to_ai">
<value name="CONTENT">
<shadow type="variables_get">
<field name="VAR">code</field>
</shadow>
</value>
</block>
<block type="serial_read_from_ai"></block>
<block type="serial_print_byte">
<value name="CONTENT">
<block type="text_to_number">
<field name="TOWHAT">b</field>
<value name="VAR">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="serial_any"></block>
<block type="serial_readstr"></block>
<block type="serial_readline"></block>
</category>
<!--<category
id="catOnBoard" name="catOnBoard" colour="65">-->
<category id="catOnBoardSensor" name="catOnBoardSensor" colour="#947C54"
m-hide='micropython:esp32s2:generic'>
<block type="sensor_mixgo_button_is_pressed">
<value name="btn">
<shadow type="pins_button">
</shadow>
</value>
</block>
<block type="sensor_mixgo_button_was_pressed">
<value name="btn">
<shadow type="pins_button">
</shadow>
</value>
</block>
<block type="sensor_mixgo_button_get_presses">
<value name="btn">
<shadow type="pins_button">
</shadow>
</value>
<value name="VAR">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="sensor_mixgo_button_attachInterrupt">
<value name="btn">
<shadow type="pins_buttonB">
</shadow>
</value>
<value name="DO">
<shadow type="factory_block_return">
<field name="VALUE">attachInterrupt_func</field>
</shadow>
</value>
</block>
<block type="procedures_defnoreturn">
<mutation>
<arg name="x"></arg>
</mutation>
<field name="NAME">attachInterrupt_func</field>
<statement name="STACK">
<block type="controls_pass"></block>
</statement>
</block>
<block type="sensor_mixgoce_pin_pressed">
<value name="button">
<shadow type="number7">
</shadow>
</value>
</block>
<block type="sensor_mixgo_touch_slide"></block>
<block type="sensor_mixgo_pin_near" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="sensor_mixgo_nova_pin_near" m-show='micropython:esp32s3:mixgo_nova'></block>
<block type="sensor_mixgo_LTR308" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="sensor_mixgo_nova_LTR308" m-show='micropython:esp32s3:mixgo_nova'></block>
<block type="sensor_mixgo_sant_color" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="sensor_sound"></block>
<block type="sensor_hp203" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="sensor_aht11"></block>
<block type="sensor_get_acceleration"></block>
<block type="sensor_mixgo_cc_mmc5603_calibrate_compass"></block>
<block type="sensor_mixgo_cc_mmc5603_get_magnetic"></block>
<block type="sensor_mixgo_cc_mmc5603_get_angle"></block>
<block type="rfid_status" m-hide='micropython:esp32s3:mixgo_sant'></block>
<block type="rfid_readid" m-hide='micropython:esp32s3:mixgo_sant'></block>
<block type="rfid_readcontent" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="rfid_write" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="CONTENT">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="rfid_write_return" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="CONTENT">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="CI130X_IDENTIFY_AND_SAVE_SANT" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="CI130X_GET_WHETHER_IDENTIFY_SANT" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="CI130X_GET_THE_RECOGNIZED_CMD_SANT" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="CI130X_BROADCAST_SANT" m-show='micropython:esp32s3:mixgo_sant'>
<value name="NUM">
<block type="logic_null"></block>
</value>
</block>
<block type = "CI130X_SET_SYSTEM_CMD_SANT" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="onboard_RTC_set_datetime">
<value name="year">
<shadow type="math_number">
<field name="NUM">2022</field>
</shadow>
</value>
<value name="month">
<shadow type="math_number">
<field name="NUM">7</field>
</shadow>
</value>
<value name="day">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="hour">
<shadow type="math_number">
<field name="NUM">14</field>
</shadow>
</value>
<value name="minute">
<shadow type="math_number">
<field name="NUM">20</field>
</shadow>
</value>
<value name="second">
<shadow type="math_number">
<field name="NUM">45</field>
</shadow>
</value>
</block>
<block type="onboard_RTC_settime_string">
<value name="CONTENT">
<shadow type="tuple_input">
<field name="TUPLE">2023,1,1,12,0,0</field>
</shadow>
</value>
</block>
<block type="onboard_RTC_get_time"></block>
<block type="onboard_RTC_get_time_str"></block>
<block type="onboard_RTC_get_timestamp">
<value name="LIST">
<block type="onboard_RTC_get_time"></block>
</value>
</block>
<block type="onboard_RTC_timestamp_totuple">
<value name="VAR">
<shadow type="math_number">
<field name="NUM">18029</field>
</shadow>
</value>
</block>
<block type="onboard_RTC_get_timetuple_to_str">
<value name="CONTENT">
<shadow type="tuple_input">
<field name="TUPLE">2023,1,1,12,0,0</field>
</shadow>
</value>
</block>
</category>
<category id="catOnBoardActuator" name="catOnBoardActuator" colour="#6C9858"
m-hide='micropython:esp32s2:generic'>
<block type="actuator_led_bright">
<value name="led">
<shadow type="number">
</shadow>
</value>
<value name="bright">
<shadow type="ledswitch">
</shadow>
</value>
</block>
<block type="actuator_get_led_state">
<value name="led">
<shadow type="number">
</shadow>
</value>
</block>
<block type="actuator_led_brightness">
<value name="led">
<shadow type="number">
</shadow>
</value>
<value name="bright">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="actuator_get_led_bright">
<value name="led">
<shadow type="number">
</shadow>
</value>
</block>
<block type="actuator_mixgo_nova_mic_set" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="bright">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="actuator_mixgo_nova_mic_get" m-hide='micropython:esp32s3:mixgo_sant'></block>
<block type="actuator_mixgo_nova_voice_set" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="bright">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="actuator_mixgo_nova_voice_get" m-hide='micropython:esp32s3:mixgo_sant'></block>
<!-- <block type="actuator_mixgo_nova_onboard_music_pitch">
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
</shadow>
</value>
</block> -->
<block type="esp32_onboard_music_pitch_with_time" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">1000</field>
</shadow>
</value>
</block>
<!-- <block type="actuator_mixgo_nova_onboard_music_stop">
<value name="PIN">
<shadow type="pins_pwm_pin">
<field name="PIN">0</field>
</shadow>
</value>
</block> -->
<block type="esp32_onboard_music_play_list" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="LIST">
<shadow type="pins_playlist"></shadow>
</value>
</block>
<block type="actuator_mixgo_nova_record_audio" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="PATH">
<shadow type="text">
<field name="TEXT">/sd/1.wav</field>
</shadow>
</value>
<value name="TIME">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
</block>
<block type="actuator_mixgo_nova_play_audio" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="PATH">
<shadow type="text">
<field name="TEXT">/sd/1.wav</field>
</shadow>
</value>
</block>
<block type="actuator_mixgo_nova_play_online_audio" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="PATH">
<shadow type="text">
<field name="TEXT">https://gitee.com/dahanzimin/test/raw/master/wav/8.wav</field>
</shadow>
</value>
</block>
<block type="esp32_onboard_music_pitch" m-show='micropython:esp32s3:mixgo_sant'>
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
</shadow>
</value>
</block>
<block type="esp32_onboard_music_pitch_with_time" m-show='micropython:esp32s3:mixgo_sant'>
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">1000</field>
</shadow>
</value>
</block>
<block type="esp32_onboard_music_stop" m-show='micropython:esp32s3:mixgo_sant'>
<value name="PIN">
<shadow type="pins_pwm_pin">
<field name="PIN">0</field>
</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">
<field name="NUM">4</field>
</shadow>
</value>
<value name="BPM">
<shadow type="math_number">
<field name="NUM">120</field>
</shadow>
</