Files
mixly3/boards/default_src/micropython_esp32c2/template.xml
2025-11-01 21:26:53 +08:00

7431 lines
211 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<%= 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_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>
</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_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="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="set_system_timer">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">tim</field>
</shadow>
</value>
<value name="PIN">
<shadow type="timer_id_pin">
</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="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"></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_bytes">
<field name="TEXT">Mixly</field>
</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:esp32c3: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="sensor_mixgocar42_button_is_pressed" m-show='micropython:esp32c3:mixgocar_c3'></block>
<block type="sensor_mixgocar42_button_was_pressed" m-show='micropython:esp32c3:mixgocar_c3'>
</block>
<block type="sensor_mixgocar42_button_get_presses" m-show='micropython:esp32c3:mixgocar_c3'>
<value name="VAR">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="sensor_mixgocar42_button_attachInterrupt" m-show='micropython:esp32c3:mixgocar_c3'>
<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_sound" m-show='micropython:esp32c2:mixgo_mini'></block>
<!-- <block type="sensor_mixgocar_pin_near_line"
m-show='micropython:esp32c3:mixgocar_c3'></block>
<block type="sensor_mixgocar_pin_near" m-show='micropython:esp32c3:mixgocar_c3'></block>
<block type="sensor_mixgocar_pin_near_state_change"
m-show='micropython:esp32c3:mixgocar_c3'></block>
<block type="sensor_mixgocar_battery_left" m-show='micropython:esp32c3:mixgocar_c3'></block>
-->
<block type="sensor_mixgo_pin_near_single" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="sensor_LTR308" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="sensor_eulerangles" m-show="micropython:esp32c2:mixgo_mini"></block>
<!-- MixGo Me Onboard_sensor: -->
<block type="sensor_mixgome_temperature" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="sensor_hp203" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="sensor_aht11" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="sensor_get_acceleration" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="sensor_mixgo_cc_mmc5603_calibrate_compass" m-show="micropython:esp32c2:mixgo_mini"></block>
<block type="sensor_mixgo_cc_mmc5603_get_magnetic" m-show="micropython:esp32c2:mixgo_mini"></block>
<block type="sensor_mixgo_cc_mmc5603_get_angle" m-show="micropython:esp32c2:mixgo_mini"></block>
<block type="sensor_get_the_coprocessor_version" m-show="micropython:esp32c2:mixgo_mini"></block>
<block type="rfid_readid" m-show='micropython:esp32c3:mixgo_cc'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">rfid</field>
</shadow>
</value>
</block>
<block type="rfid_readcontent" m-show='micropython:esp32c3:mixgo_cc'>
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="rfid_write" m-show='micropython:esp32c3:mixgo_cc'>
<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-show='micropython:esp32c3:mixgo_cc'>
<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="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:esp32c3:generic'>
<block type="actuator_led_bright" m-show='micropython:esp32c2:mixgo_mini'>
<value name="led">
<shadow type="number">
</shadow>
</value>
<value name="bright">
<shadow type="ledswitch">
</shadow>
</value>
</block>
<block type="actuator_mixgo_zero_led_color" m-show='micropython:esp32c2:mixgo_mini'>
<value name="led">
<shadow type="number">
</shadow>
</value>
<value name="colorvalue">
<shadow>
</shadow>
</value>
</block>
<block type="actuator_led_brightness" m-show='micropython:esp32c2:mixgo_mini'>
<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" m-show='micropython:esp32c2:mixgo_mini'>
<value name="led">
<shadow type="number">
</shadow>
</value>
</block>
<block type="actuator_get_led_state" m-show='micropython:esp32c2:mixgo_mini'>
<value name="led">
<shadow type="number">
</shadow>
</value>
</block>
<block type="esp32_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">
<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">
<value name="PIN">
<shadow type="pins_pwm_pin">
<field name="PIN">0</field>
</shadow>
</value>
</block>
<block type="set_music_volume">
<value name="percent">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="esp32_onboard_music_play_list">
<value name="LIST">
<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">
<field name="NUM">4</field>
</shadow>
</value>
<value name="BPM">
<shadow type="math_number">
<field name="NUM">120</field>
</shadow>
</value>
</block>
<block type="esp32_music_get_tempo"></block>
<block type="esp32_music_reset"></block>
<block type="actuator_onboard_neopixel_rgb">
<value name="_LED_">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="RVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="GVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="BVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="actuator_onboard_neopixel_rgb_all">
<value name="RVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="GVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="BVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="actuator_onboard_neopixel_rgb_show_all_chase">
<value name="RVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="GVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="BVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">1000</field>
</shadow>
</value>
</block>
<block type="actuator_onboard_neopixel_rgb_show_all_rainbow">
<value name="time">
<shadow type="math_number">
<field name="NUM">1000</field>
</shadow>
</value>
</block>
<block type="actuator_onboard_neopixel_write">
</block>
<block type="set_power_output" m-show="micropython:esp32c2:mixgo_mini">
<value name="duty">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="get_power_output" m-show="micropython:esp32c2:mixgo_mini"></block>
<block type="set_all_power_output" m-show="micropython:esp32c2:mixgo_mini">
<value name="duty">
<shadow type="math_number">
<field name="NUM">20000</field>
</shadow>
</value>
</block>
<block type="analog_keyboard_input" m-show="micropython:esp32c2:mixgo_mini">
<value name="special">
<block type="special_key">
</block>
</value>
<value name="general">
<block type="general_key">
</block>
</value>
</block>
<block type="general_key_tuple" m-show="micropython:esp32c2:mixgo_mini">
<value name="general">
<block type="general_key">
</block>
</value>
</block>
<block type="analog_mouse_input" m-show="micropython:esp32c2:mixgo_mini">
<value name="key">
<block type="mouse_key">
</block>
</value>
<value name="x">
<shadow type="math_number">
</shadow>
</value>
<value name="y">
<shadow type="math_number">
</shadow>
</value>
<value name="wheel">
<shadow type="math_number">
</shadow>
</value>
</block>
<block type="analog_keyboard_str" m-show="micropython:esp32c2:mixgo_mini">
<value name="str">
<shadow type="text">
<field name="TEXT">Hello, Mixly!</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="set_microphone_amplification" m-show="micropython:esp32c2:mixgo_mini">
</block>
<block type="record_audio" m-show="micropython:esp32c2:mixgo_mini">
<value name="str">
<shadow type="text">
<field name="TEXT">mixly.wav</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
</block>
</category>
<category id="catOnBoardDisplay" name="catOnBoardDisplay" colour='#569A98'
m-hide='micropython:esp32c3:generic micropython:esp32c3:mixgocar_c3'>
<block type="display_show_image">
<value name="data">
<shadow type="pins_builtinimg"></shadow>
</value>
</block>
<block type="display_show_image_or_string_delay">
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
<value name="space">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="display_scroll_string">
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="display_scroll_string_delay">
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">50</field>
</shadow>
</value>
<value name="space">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="display_scroll_way" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="display_show_frame_string">
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="display_show_frame_string_delay">
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">500</field>
</shadow>
</value>
</block>
<block type="mixgomini_display_bitmap_create" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="display_image_builtins_all" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="image_arithmetic">
<value name="A">
<shadow type="pins_builtinimg"></shadow>
</value>
<value name="B">
<shadow type="pins_builtinimg"></shadow>
</value>
</block>
<block type="image_invert">
<value name="A">
<shadow type="pins_builtinimg"></shadow>
</value>
</block>
<block type="display_shift">
<value name="val">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="display_get_pixel">
<value name="x">
<shadow type="pins_exlcdh"></shadow>
</value>
<value name="y">
<shadow type="pins_exlcdv"></shadow>
</value>
</block>
<block type="display_bright_point">
<value name="x">
<shadow type="pins_exlcdh"></shadow>
</value>
<value name="y">
<shadow type="pins_exlcdv"></shadow>
</value>
<value name="STAT">
<shadow type="display_onoff">
</shadow>
</value>
</block>
<block type="display_bright_screen">
<value name="x">
<shadow type="math_number">
<field name="NUM">0.5</field>
</shadow>
</value>
</block>
<block type="display_get_screen_pixel"></block>
<block type="display_clear"></block>
<block type="draw_pointer">
<value name="angle">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
</category>
<category id="catME_GO" colour="100" m-show='micropython:esp32c2:mixgo_mini'>
<block type="ce_go_led_bright">
<value name="led">
<shadow type="ce_go_light_number">
</shadow>
</value>
<value name="bright">
<shadow type="ledswitch">
</shadow>
</value>
</block>
<block type="ce_go_get_led_state">
<value name="led">
<shadow type="ce_go_light_number">
</shadow>
</value>
</block>
<block type="ce_go_led_brightness">
<value name="led">
<shadow type="ce_go_light_number">
</shadow>
</value>
<value name="bright">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="ce_go_get_led_bright">
<value name="led">
<shadow type="ce_go_light_number">
</shadow>
</value>
</block>
<block type="ce_go_stepper_keep">
<value name="speed">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="ce_go_stepper_stop"></block>
<block type="ce_go_dc_motor">
<value name="speed">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="ce_go_hall_initialize">
<value name="num">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="ce_go_hall_data">
</block>
<block type="ce_go_hall_attachInterrupt">
<value name="DO">
<shadow type="factory_block_return">
<field name="VALUE">interrupt_func</field>
</shadow>
</value>
</block>
<block type="procedures_defnoreturn">
<mutation>
<arg name="turns"></arg>
<arg name="distance"></arg>
</mutation>
<field name="NAME">interrupt_func</field>
<statement name="STACK">
<block type="system_print_many">
<mutation items="2"></mutation>
<value name="ADD0">
<block type="variables_get">
<field name="VAR">turns</field>
</block>
</value>
<value name="ADD1">
<block type="variables_get">
<field name="VAR">distance</field>
</block>
</value>
</block>
</statement>
</block>
<block type="ce_go_pin_near_state_change"></block>
<block type="ce_go_pin_near_line"></block>
<block type="ce_go_pin_near"></block>
<block type="ce_go_pin_light"></block>
<block type="sensor_mixgome_eulerangles" m-show='micropython:esp32c3:mixgo_me'></block>
</category>
<category id="catCC_G1" colour="40" m-show="micropython:esp32c2:mixgo_mini">
<block type="cc_g1_read_bat"></block>
<block type="cc_g1_read_joystick"></block>
<block type="cc_g1_read_key"></block>
<block type="cc_g1_turnoff"></block>
</category>
<category id="catMINI_G2" colour="40" m-show='micropython:esp32c2:mixgo_mini'>
<block type="rfid_status"></block>
<block type="rfid_readid"></block>
<block type="rfid_readcontent">
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="rfid_write">
<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">
<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>
</category>
<category id="catMINI_G5" colour="40" m-show='micropython:esp32c2:mixgo_mini'>
<block type="rfid_status"></block>
<block type="rfid_readid"></block>
<block type="rfid_readcontent">
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="rfid_write">
<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">
<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_OPEN_AND_CLOSE"></block>
<block type="CI130X_IDENTIFY_AND_SAVE_SANT"></block>
<block type="CI130X_GET_WHETHER_IDENTIFY_SANT"></block>
<block type="CI130X_GET_THE_RECOGNIZED_CMD_SANT"></block>
<block type="CI130X_BROADCAST_SANT">
<value name="NUM">
<block type="logic_null"></block>
</value>
</block>
<block type="CI130X_SET_SYSTEM_CMD_SANT"></block>
</category>
<category id="catIot" colour="#2FAD7A">
<category id="catBlynk" colour="#2FAD7A">
<block type="iot_wifi_connect">
<value name="WIFINAME">
<shadow type="text">
<field name="TEXT">wifiname</field>
</shadow>
</value>
<value name="PASSWORD">
<shadow type="text">
<field name="TEXT">wifipassword</field>
</shadow>
</value>
</block>
<block type="mpython_blynk_setup">
<value name="server">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
<value name="port">
<shadow type="math_number">
<field name="NUM">8080</field>
</shadow>
</value>
<value name="auth">
<shadow type="text">
<field name="TEXT">AUTH TOKEN</field>
</shadow>
</value>
</block>
<block type="mpython_blynk_app_data">
<value name="virtual_pin">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="virtual_pin_val">
<block type="variables_get">
<field name="VAR">_value</field>
</block>
</value>
<statement name="DO">
</statement>
</block>
<block type="mpython_blynktimer">
<value name="Num">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="period">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
</block>
<block type="mpython_blynk_get_timers"></block>
<block type="mpython_blynk_stop_timers">
<value name="timer_num">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="mpython_blynk_run"></block>
<block type="mpython_blynktimer_run"></block>
<block type="mpython_blynk_sensor_data_to_app">
<value name="sensor_data">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="virtual_pin">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="mpython_blynk_app_notify">
<value name="notification">
<shadow type="text">
<field name="TEXT">notify</field>
</shadow>
</value>
</block>
<block type="mpython_blynk_on_connected">
</block>
<block type="mpython_blynk_on_disconnected">
</block>
<block type="mpython_blynk_sync_virtual">
<value name="virtual_pin">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="mpython_blynk_email">
<value name="TargetEmail">
<shadow type="text">
<field name="TEXT">Your Target Email</field>
</shadow>
</value>
<value name="subject">
<shadow type="text">
<field name="TEXT">subject</field>
</shadow>
</value>
<value name="body">
<shadow type="text">
<field name="TEXT">body</field>
</shadow>
</value>
</block>
<block type="mpython_blynk_set_property">
<value name="attribute_name">
<shadow type="text">
<field name="TEXT">color</field>
</shadow>
</value>
<value name="attribute_value">
<shadow type="text">
<field name="TEXT">#FF0000</field>
</shadow>
</value>
</block>
</category>
<category id="catMixIO" colour="#526FC3">
<block type="iot_wifi_connect">
<value name="WIFINAME">
<shadow type="text">
<field name="TEXT">wifiname</field>
</shadow>
</value>
<value name="PASSWORD">
<shadow type="text">
<field name="TEXT">wifipassword</field>
</shadow>
</value>
</block>
<block type="IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE">
<value name="SERVER">
<shadow type="text">
<field name="TEXT">mixio.mixly.cn</field>
</shadow>
</value>
<value name="KEY">
<shadow type="iot_mixly_key">
<field name="TEXT"></field>
</shadow>
</value>
</block>
<block type="IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE">
<value name="SERVER">
<shadow type="text">
<field name="TEXT">mixio.mixly.cn</field>
</shadow>
</value>
<value name="KEY">
<shadow type="factory_block_return">
<field name="VALUE">A1B2C3</field>
</shadow>
</value>
</block>
<block type="iot_mixio_connect">
<value name="SERVER">
<shadow type="text">
<field name="TEXT">mixio.mixly.cn</field>
</shadow>
</value>
<value name="USERNAME">
<shadow type="text">
<field name="TEXT">username</field>
</shadow>
</value>
<value name="PASSWORD">
<shadow type="text">
<field name="TEXT">password</field>
</shadow>
</value>
<value name="PROJECT">
<shadow type="text">
<field name="TEXT">MyProject</field>
</shadow>
</value>
</block>
<block type="IOT_MIXIO_PUBLISH">
<value name="TOPIC">
<shadow type="text">
<field name="TEXT">topic</field>
</shadow>
</value>
<value name="MSG">
<shadow type="text">
<field name="TEXT">msg</field>
</shadow>
</value>
</block>
<block type="IOT_MIXIO_PUBLISHEX">
<value name="TOPIC">
<shadow type="text">
<field name="TEXT">topic</field>
</shadow>
</value>
<value name="MSG">
<shadow type="text">
<field name="TEXT">msg</field>
</shadow>
</value>
</block>
<block type="IOT_MIXIO_SUBSCRIBE">
<value name="TOPIC">
<shadow type="text">
<field name="TEXT">topic</field>
</shadow>
</value>
<value name="METHOD">
<shadow type="factory_block_return">
<field name="VALUE">method</field>
</shadow>
</value>
</block>
<block type="procedures_defnoreturn">
<mutation>
<arg name="client"></arg>
<arg name="topic"></arg>
<arg name="msg"></arg>
</mutation>
<field name="NAME">method</field>
<statement name="STACK">
<block type="controls_if">
<value name="IF0">
<block type="logic_compare">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get">
<field name="VAR">msg</field>
</block>
</value>
<value name="B">
<block type="text">
<field name="TEXT">1</field>
</block>
</value>
</block>
</statement>
</block>
<block type="iot_mixio_check"></block>
<block type="iot_client_onboard"></block>
<block type="IOT_FORMATTING">
<value name="VAR">
<block type="dicts_create_with_noreturn" inline="true">
<field name="VAR">content</field>
<mutation items="3"></mutation>
<field name="KEY0">"long"</field>
<field name="KEY1">"lat"</field>
<field name="KEY2">"message"</field>
<value name="ADD0">
<block type="math_number">
<field name="NUM">0</field>
</block>
</value>
<value name="ADD1">
<block type="math_number">
<field name="NUM">1</field>
</block>
</value>
<value name="ADD2">
<block type="math_number">
<field name="NUM">2</field>
</block>
</value>
</block>
</value>
</block>
<block type="IOT_FORMAT_STRING">
<value name="VAR">
<block type="dicts_create_with_noreturn" inline="true">
<field name="VAR">content</field>
<mutation items="3"></mutation>
<field name="KEY0">"key1"</field>
<field name="KEY1">"key2"</field>
<field name="KEY2">"key3"</field>
<value name="ADD0">
<block type="math_number">
<field name="NUM">0</field>
</block>
</value>
<value name="ADD1">
<block type="math_number">
<field name="NUM">1</field>
</block>
</value>
<value name="ADD2">
<block type="math_number">
<field name="NUM">2</field>
</block>
</value>
</block>
</value>
</block>
<block type="iot_mixio_connect_only"></block>
<block type="iot_mixio_disconnect"></block>
<block type="IOT_EMQX_PING"></block>
<!-- <block type="IOT_MIXIO_NTP">
<value name="addr">
<shadow type="text">
<field name="TEXT">mixio.mixly.cn</field>
</shadow>
</value>
</block>
<block type="iot_mixio_format_topic">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">topic</field>
</shadow>
</value>
</block>
<block type="iot_mixio_format_msg">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">msg</field>
</shadow>
</value>
</block> -->
<block type="iot_http_client">
<value name="addr">
<shadow type="text">
<field name="TEXT">http://mixio.mixly.org/time.php</field>
</shadow>
</value>
</block>
<block type="iot_http_data"></block>
<block type="iot_mqtt_client">
<value name="addr">
<shadow type="text">
<field name="TEXT">mixio.mixly.cn</field>
</shadow>
</value>
</block>
<block type="iot_mqtt_data"></block>
</category>
<category id="catOnenet" colour="#78AAE0">
<block type="iot_wifi_connect">
<value name="WIFINAME">
<shadow type="text">
<field name="TEXT">wifiname</field>
</shadow>
</value>
<value name="PASSWORD">
<shadow type="text">
<field name="TEXT">wifipassword</field>
</shadow>
</value>
</block>
<block type="iot_onenet_connect">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">c</field>
</shadow>
</value>
<value name="SUB">
<shadow type="factory_block_return">
<field name="VALUE">sub_cb</field>
</shadow>
</value>
<value name="CLIENT">
<shadow type="text">
<field name="TEXT">31444082</field>
</shadow>
</value>
<value name="SERVER">
<shadow type="text">
<field name="TEXT">183.230.40.39</field>
</shadow>
</value>
<value name="USERNAME">
<shadow type="text">
<field name="TEXT">141092</field>
</shadow>
</value>
<value name="PASSWORD">
<shadow type="text">
<field name="TEXT">61n63JySRowo13ZLDBKw6y896E0=</field>
</shadow>
</value>
<value name="TOPIC">
<shadow type="text">
<field name="TEXT">MixlyRobot</field>
</shadow>
</value>
</block>
<block type="procedures_defnoreturn">
<mutation>
<arg name="topic"></arg>
<arg name="msg"></arg>
</mutation>
<field name="NAME">sub_cb</field>
<statement name="STACK">
<block type="controls_if">
<value name="IF0">
<block type="logic_compare">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get">
<field name="VAR">msg</field>
</block>
</value>
<value name="B">
<block type="text">
<field name="TEXT">1</field>
</block>
</value>
</block>
</value>
</block>
</statement>
</block>
<block type="iot_onenet_publish">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">c</field>
</shadow>
</value>
</block>
<block type="dicts_create_with" inline="true">
<mutation items="1"></mutation>
<field name="VAR">iot_dict</field>
<field name="KEY0">"sound"</field>
<value name="ADD0">
<block type="sensor_sound"></block>
</value>
<next>
<block type="iot_onenet_publish_dict">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">c</field>
</shadow>
</value>
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">iot_dict</field>
</shadow>
</value>
</block>
</block>
<block type="iot_onenet_disconnect">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">c</field>
</shadow>
</value>
</block>
<block type="iot_onenet_check">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">c</field>
</shadow>
</value>
</block>
</category>
<category id="catAIOT" colour="205"
m-show="micropython:esp32c3:mixgo_me micropython:esp32c3:mixgo_cc">
<block type="iot_wifi_connect">
<value name="WIFINAME">
<shadow type="text">
<field name="TEXT">wifiname</field>
</shadow>
</value>
<value name="PASSWORD">
<shadow type="text">
<field name="TEXT">wifipassword</field>
</shadow>
</value>
</block>
<block type="MICROPYTHON_AI_client">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">client</field>
</shadow>
</value>
<value name="API_KEY">
<shadow type="text">
<field name="TEXT">Enter Your API_KEY</field>
</shadow>
</value>
<value name="SECRET_KEY">
<shadow type="text">
<field name="TEXT">Enter Your SECRET_KEY</field>
</shadow>
</value>
</block>
<block type="MICROPYTHON_AI_Speech_asr">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">client</field>
</shadow>
</value>
<value name="FILE">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="MICROPYTHON_AI_Speech_unit">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">client</field>
</shadow>
</value>
<value name="ID">
<shadow type="text">
<field name="TEXT">S72099</field>
</shadow>
</value>
<value name="STR">
<shadow type="text">
<field name="TEXT">北京今天天气如何?</field>
</shadow>
</value>
</block>
</category>
<category id="catweather" colour="#27b6ac">
<block type="iot_wifi_connect">
<value name="WIFINAME">
<shadow type="text">
<field name="TEXT">wifiname</field>
</shadow>
</value>
<value name="PASSWORD">
<shadow type="text">
<field name="TEXT">wifipassword</field>
</shadow>
</value>
</block>
<!-- <block type="WEATHER_NOW">
<value name="key">
<shadow type="text">
<field name="TEXT">SVa3S0UKHIy9dDArs</field>
</shadow>
</value>
<value name="addr">
<shadow type="text">
<field name="TEXT">北京</field>
</shadow>
</value>
</block>
<block type="WEATHER_DAILY">
<value name="key">
<shadow type="text">
<field name="TEXT">SVa3S0UKHIy9dDArs</field>
</shadow>
</value>
<value name="addr">
<shadow type="text">
<field name="TEXT">北京</field>
</shadow>
</value>
<value name="day">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="WEATHER_HOUR">
<value name="key">
<shadow type="text">
<field name="TEXT">SVa3S0UKHIy9dDArs</field>
</shadow>
</value>
<value name="addr">
<shadow type="text">
<field name="TEXT">北京</field>
</shadow>
</value>
<value name="hour">
<shadow type="math_number">
<field name="NUM">24</field>
</shadow>
</value>
</block> -->
<block type="Weather_now">
<value name="key">
<shadow type="text">
<field name="TEXT">SVa3S0UKHIy9dDArs</field>
</shadow>
</value>
<value name="addr">
<shadow type="text">
<field name="TEXT">北京</field>
</shadow>
</value>
</block>
<block type="Weather_now_content"></block>
<block type="Weather_alarm_content"></block>
<block type="Air_now_content"></block>
<block type="Tide_daily_content"></block>
<block type="Location_search_content"></block>
<block type="Life_suggestion_content"></block>
<block type="Weather_daily">
<value name="key">
<shadow type="text">
<field name="TEXT">SVa3S0UKHIy9dDArs</field>
</shadow>
</value>
<value name="addr">
<shadow type="text">
<field name="TEXT">北京</field>
</shadow>
</value>
<value name="day">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="Weather_daily_content">
<value name="day">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="Air_daily_content">
<value name="day">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="Geo_sun_content">
<value name="day">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="Geo_moon_content">
<value name="day">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
</category>
<category id="catTinyWebDB" colour="0">
<block type="iot_tiny_web_db_init">
<value name="ADDR">
<shadow type="text">
<field name="TEXT">https://mixio.mixly.cn/tinydb</field>
</shadow>
</value>
<value name="USERNAME">
<shadow type="text">
<field name="TEXT">username</field>
</shadow>
</value>
<value name="PASSWORD">
<shadow type="text">
<field name="TEXT">password</field>
</shadow>
</value>
</block>
<block type="iot_tiny_web_db_init_with_mqtt">
<value name="MQTT">
<shadow type="variables_get">
<field name="VAR">mqtt_client</field>
</shadow>
</value>
</block>
<block type="iot_tiny_web_db_update">
<value name="TAG">
<shadow type="text">
<field name="TEXT">mixly</field>
</shadow>
</value>
<value name="VALUE">
<shadow type="text">
<field name="TEXT">hello</field>
</shadow>
</value>
</block>
<block type="iot_tiny_web_db_get">
<value name="TAG">
<shadow type="text">
<field name="TEXT">mixly</field>
</shadow>
</value>
</block>
<block type="iot_tiny_web_db_count">
</block>
<block type="iot_tiny_web_db_search">
<value name="NO">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="COUNT">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="TAG">
<shadow type="text">
<field name="TEXT">mixly</field>
</shadow>
</value>
</block>
<block type="iot_tiny_web_db_delete">
<value name="TAG">
<shadow type="text">
<field name="TEXT">mixly</field>
</shadow>
</value>
</block>
</category>
</category>
<category id="catCloudAI" colour="#75878a">
<category id="catVI" colour="88ada6">
<block type="init_xunfei_vi">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">asr</field>
</shadow>
</value>
<value name="APPID">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
<value name="APISecret">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
<value name="APIKey">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
<value>
</block>
<block type="init_xunfei_Spark_Ultra">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">llm</field>
</shadow>
</value>
<value name="APPID">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
<value name="APISecret">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
<value name="APIKey">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
<value name="DBG">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
</block>
<block type="init_xunfei_Chinese_Model">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">asr</field>
</shadow>
</value>
<value name="APPID">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
<value name="APISecret">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
<value name="APIKey">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
<value name="HW">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
</block>
<block type="xunfei_vi_run">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">asr</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">3</field>
</shadow>
</value>
</block>
<block type="xunfei_Spark_Ultra_run">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">llm</field>
</shadow>
</value>
<value name="qus">
<shadow type="text">
<field name="TEXT">question</field>
</shadow>
</value>
</block>
<block type="init_xunfei_Spark_Ultra_clr_his">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">llm</field>
</shadow>
</value>
</block>
<block type="llm_set_callback">
<value name="VAR1">
<shadow type="variables_get">
<field name="VAR">llm</field>
</shadow>
</value>
<value name="callback">
<shadow type="factory_block_return">
<field name="VALUE">cb_func</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="text">
<field name="TEXT">灯光控制</field>
</shadow>
</value>
<value name="VAR3">
<shadow type="text">
<field name="TEXT">用来控制LED灯光的开关</field>
</shadow>
</value>
<mutation items="1"></mutation>
<value name="ADD0">
<block type="tuple_create_llm_params">
<value name="params">
<shadow type="text">
<field name="TEXT">power</field>
</shadow>
</value>
<value name="des">
<shadow type="text">
<field name="TEXT">开为true,关为false</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="procedures_defnoreturn">
<mutation>
<arg name="xx"></arg>
</mutation>
<field name="NAME">cb_func</field>
<statement name="STACK">
<block type="system_print_many">
<mutation items="2"></mutation>
<value name="ADD0">
<block type="text">
<field name="TEXT">cb------</field>
</block>
</value>
<value name="ADD1">
<block type="variables_get">
<field name="VAR">xx</field>
</block>
</value>
</block>
</statement>
</block>
</category>
</category>
<category id="catGroup" colour="140">
<category id="catBLE" colour="140">
<block type="communicate_bluetooth_central_init">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ble_c</field>
</shadow>
</value>
</block>
<block type="communicate_bluetooth_peripheral_init">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ble_p</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="communicate_bluetooth_scan">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ble_c</field>
</shadow>
</value>
</block>
<block type="communicate_bluetooth_connect">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ble_c</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="communicate_bluetooth_disconnect">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ble_c</field>
</shadow>
</value>
</block>
<block type="communicate_bluetooth_mac">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ble_x</field>
</shadow>
</value>
</block>
<block type="communicate_bluetooth_is_connected">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ble_x</field>
</shadow>
</value>
</block>
<block type="communicate_bluetooth_send">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ble_x</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="communicate_bluetooth_recv_only">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ble_x</field>
</shadow>
</value>
</block>
<block type="communicate_bluetooth_recv">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ble_x</field>
</shadow>
</value>
<value name="METHOD">
<shadow type="factory_block_return">
<field name="VALUE">ble_method</field>
</shadow>
</value>
</block>
<block type="procedures_defnoreturn">
<mutation>
<arg name="data"></arg>
</mutation>
<field name="NAME">ble_method</field>
<statement name="STACK">
<block type="controls_if">
<value name="IF0">
<block type="logic_compare">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get">
<field name="VAR">data</field>
</block>
</value>
<value name="B">
<block type="text">
<field name="TEXT">Mixly</field>
</block>
</value>
</block>
</value>
</block>
</statement>
</block>
</category>
<category id="catBLEC" colour="140">
<block type="communicate_bluetooth_handle">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">handle</field>
</shadow>
</value>
<value name="METHOD">
<shadow type="factory_block_return">
<field name="VALUE">handle_method</field>
</shadow>
</value>
</block>
<block type="procedures_defnoreturn">
<mutation>
<arg name="key1"></arg>
<arg name="key2"></arg>
<arg name="key3"></arg>
<arg name="keyx"></arg>
</mutation>
<field name="NAME">handle_method</field>
<statement name="STACK">
<block type="system_print_many">
<mutation items="4"></mutation>
<value name="ADD0">
<block type="variables_get">
<field name="VAR">key1</field>
</block>
</value>
<value name="ADD1">
<block type="variables_get">
<field name="VAR">key2</field>
</block>
</value>
<value name="ADD2">
<block type="variables_get">
<field name="VAR">key3</field>
</block>
</value>
<value name="ADD3">
<block type="variables_get">
<field name="VAR">keyx</field>
</block>
</value>
</block>
</statement>
</block>
</category>
<category id="catBLEKM" colour="140">
<!-- <block type="analog_ble_keyboard_init">
<value name="kname">
<shadow type="text">
<field name="TEXT">ble_keyboard</field>
</shadow>
</value>
</block>
<block type="ble_keyboard_get_mac"></block>
<block type="ble_keyboard_connect"></block>
<block type="analog_ble_keyboard_input" >
<value name="special">
<block type="special_key">
</block>
</value>
<value name="general">
<block type="general_key">
</block>
</value>
</block>
<block type="analog_ble_keyboard_str">
<value name="str">
<shadow type="text">
<field name="TEXT">Hello, Mixly!</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_keyboard_send_battery">
<value name="battery">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_mouse_init">
<value name="name">
<shadow type="text">
<field name="TEXT">ble_Mouse</field>
</shadow>
</value>
</block>
<block type="ble_mouse_get_mac"></block>
<block type="ble_mouse_connect"></block>
<block type="analog_ble_mouse_input" >
<value name="key">
<block type="mouse_key">
</block>
</value>
<value name="x">
<shadow type="math_number">
</shadow>
</value>
<value name="y">
<shadow type="math_number">
</shadow>
</value>
<value name="wheel">
<shadow type="math_number">
</shadow>
</value>
</block>
<block type="analog_ble_mouse_send_battery">
<value name="battery">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block> -->
<block type="analog_ble_keyboard_mouse_init">
<value name="kname">
<shadow type="text">
<field name="TEXT">ble_keyboard_mouse</field>
</shadow>
</value>
</block>
<block type="ble_keyboard_mouse_get_mac"></block>
<block type="ble_keyboard_mouse_connect"></block>
<block type="analog_ble_keyboard_mouse_send_battery">
<value name="battery">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_keyboard_mouse_input">
<value name="special">
<block type="special_key">
</block>
</value>
<value name="general">
<block type="general_key">
</block>
</value>
</block>
<block type="analog_ble_keyboard_mouse_str">
<value name="str">
<shadow type="text">
<field name="TEXT">Hello, Mixly!</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="analog_ble_mouse_keyboard_input">
<value name="key">
<block type="mouse_key">
</block>
</value>
<value name="x">
<shadow type="math_number">
</shadow>
</value>
<value name="y">
<shadow type="math_number">
</shadow>
</value>
<value name="wheel">
<shadow type="math_number">
</shadow>
</value>
</block>
</category>
<category id="catIR" colour="140">
<block type="communicate_ir_recv_init">
<value name="PIN">
<shadow type="pins_digital_pin">
<field name="PIN">0</field>
</shadow>
</value>
<value name="SUB">
<shadow type="factory_block_return">
<field name="VALUE"></field>
</shadow>
</value>
</block>
<block type="internal_variable"></block>
<block type="recv_fun"></block>
<block type="ir_whether_recv"></block>
<block type="ir_recv_timeout">
<value name="time">
<shadow type="math_number">
<field name="NUM">20000</field>
</shadow>
</value>
</block>
<block type="communicate_ir_send_init">
<value name="PIN">
<shadow type="pins_digital_pin">
<field name="PIN">0</field>
</shadow>
</value>
<value name="power">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="ir_transmit_conventional_data">
<value name="cmd">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="addr">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="toggle">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="ir_transmit_study_code">
<value name="LIST">
<shadow type="list_many_input">
<field name="CONTENT">9000,4500,563,563</field>
</shadow>
</value>
</block>
<block type="ir_transmit_raw_code">
<value name="raw">
<shadow type="math_number">
<field name="NUM">0x1234</field>
</shadow>
</value>
</block>
<block type="ir_transmit_busy"></block>
<block type="procedures_defnoreturn">
<mutation>
<arg name="cmd"></arg>
<arg name="addr"></arg>
<arg name="raw"></arg>
<arg name="pulses"></arg>
</mutation>
<field name="NAME">callback</field>
<statement name="STACK">
<block type="system_print_many">
<mutation items="4"></mutation>
<value name="ADD0">
<block type="variables_get">
<field name="VAR">cmd</field>
</block>
</value>
<value name="ADD1">
<block type="variables_get">
<field name="VAR">addr</field>
</block>
</value>
<value name="ADD2">
<block type="variables_get">
<field name="VAR">raw</field>
</block>
</value>
<value name="ADD3">
<block type="variables_get">
<field name="VAR">pulses</field>
</block>
</value>
</block>
</statement>
</block>
</category>
<category id="catI2C" colour="140">
<block type="communicate_i2c_onboard" m-hide='micropython:esp32c3:generic'></block>
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">i2c</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">22</field>
</shadow>
</value>
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">21</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">100000</field>
</shadow>
</value>
</block>
<block type="communicate_i2c_read">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">i2c</field>
</shadow>
</value>
<value name="address">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="data">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="communicate_i2c_write">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">i2c</field>
</shadow>
</value>
<value name="address">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="data">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="communicate_i2c_scan">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">i2c</field>
</shadow>
</value>
</block>
<block type="communicate_i2c_master_read">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">i2c</field>
</shadow>
</value>
</block>
<block type="communicate_i2c_available">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">i2c</field>
</shadow>
</value>
</block>
</category>
<category id="catSPI" colour="140">
<block type="communicate_spi_init">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">spi</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">200000</field>
</shadow>
</value>
<value name="sck">
<shadow type="pins_digital_pin">
<field name="PIN">4</field>
</shadow>
</value>
<value name="mosi">
<shadow type="pins_digital_pin">
<field name="PIN">5</field>
</shadow>
</value>
<value name="miso">
<shadow type="pins_digital_pin">
<field name="PIN">12</field>
</shadow>
</value>
</block>
<block type="communicate_spi_set">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">spi</field>
</shadow>
</value>
<value name="data">
<shadow type="math_number">
<field name="NUM">200000</field>
</shadow>
</value>
</block>
<block type="communicate_spi_buffer">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">buf</field>
</shadow>
</value>
<value name="data">
<shadow type="math_number">
<field name="NUM">50</field>
</shadow>
</value>
</block>
<block type="communicate_spi_read">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">spi</field>
</shadow>
</value>
<value name="data">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="communicate_spi_read_output">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">spi</field>
</shadow>
</value>
<value name="data">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
<value name="val">
<shadow type="math_number">
<field name="NUM">0xff</field>
</shadow>
</value>
</block>
<block type="communicate_spi_readinto">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">spi</field>
</shadow>
</value>
<value name="data">
<shadow type="variables_get">
<field name="VAR">buf</field>
</shadow>
</value>
</block>
<block type="communicate_spi_readinto_output">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">spi</field>
</shadow>
</value>
<value name="data">
<shadow type="variables_get">
<field name="VAR">buf</field>
</shadow>
</value>
<value name="val">
<shadow type="math_number">
<field name="NUM">0xff</field>
</shadow>
</value>
</block>
<block type="communicate_spi_write">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">spi</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">12345</field>
</shadow>
</value>
</block>
<block type="communicate_spi_write_readinto">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">spi</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">12345</field>
</shadow>
</value>
<value name="val">
<shadow type="variables_get">
<field name="VAR">buf</field>
</shadow>
</value>
</block>
</category>
<category id="catRadio" colour="140">
<block type="espnow_radio_channel">
<value name="CHNL">
<shadow type="espnow_channel">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="espnow_radio_txpower"></block>
<block type="espnow_radio_on_off">
</block>
<block type="espnow_radio_send">
<value name="send">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="espnow_radio_rec">
</block>
<block type="espnow_radio_recv_new">
<statement name="DO">
<block type="system_print">
<value name="VAR">
<block type="espnow_radio_recv_msg"></block>
</value>
</block>
</statement>
</block>
<block type="espnow_radio_recv_certain_msg_new"></block>
</category>
<category id="catOneWire" colour="140">
<block type="communicate_ow_init">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ow</field>
</shadow>
</value>
<value name="BUS">
<shadow type="pins_digital_pin">
<field name="PIN">12</field>
</shadow>
</value>
</block>
<block type="communicate_ow_scan">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ow</field>
</shadow>
</value>
</block>
<block type="communicate_ow_read">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ow</field>
</shadow>
</value>
</block>
<block type="communicate_ow_write">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ow</field>
</shadow>
</value>
<value name="byte">
<shadow type="text">
<field name="TEXT">12345</field>
</shadow>
</value>
</block>
<block type="communicate_ow_select">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ow</field>
</shadow>
</value>
<value name="byte">
<shadow type="text">
<field name="TEXT">12345</field>
</shadow>
</value>
</block>
<block type="communicate_ow_reset">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ow</field>
</shadow>
</value>
</block>
</category>
<category id="catESPNow" colour="140">
<block type="communicate_espnow_init">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">my_now</field>
</shadow>
</value>
<value name="CHNL">
<shadow type="espnow_channel">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="network_espnow_mac">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">my_now</field>
</shadow>
</value>
</block>
<block type="network_espnow_info">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">my_now</field>
</shadow>
</value>
</block>
<block type="network_espnow_send">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">my_now</field>
</shadow>
</value>
<value name="mac">
<shadow type="text">
<field name="TEXT">FFFFFFFFFFFF</field>
</shadow>
</value>
<value name="content">
<shadow type="text">
<field name="TEXT">mixly</field>
</shadow>
</value>
</block>
<block type="network_espnow_recv">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">my_now</field>
</shadow>
</value>
</block>
<block type="network_espnow_recv_handle">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">my_now</field>
</shadow>
</value>
<value name="METHOD">
<shadow type="factory_block_return">
<field name="VALUE">cb</field>
</shadow>
</value>
</block>
<block type="procedures_defnoreturn">
<mutation>
<arg name="mac"></arg>
<arg name="msg"></arg>
</mutation>
<field name="NAME">cb</field>
<statement name="STACK">
<block type="controls_if">
<value name="IF0">
<block type="logic_compare">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get">
<field name="VAR">msg</field>
</block>
</value>
<value name="B">
<block type="text">
<field name="TEXT">1</field>
</block>
</value>
</block>
</value>
</block>
</statement>
</block>
</category>
<category id="catLora" colour="140">
<block type="communicate_spi_init">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">spi</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">1000000</field>
</shadow>
</value>
<value name="sck">
<shadow type="pins_digital_pin">
<field name="PIN">4</field>
</shadow>
</value>
<value name="mosi">
<shadow type="pins_digital_pin">
<field name="PIN">5</field>
</shadow>
</value>
<value name="miso">
<shadow type="pins_digital_pin">
<field name="PIN">12</field>
</shadow>
</value>
</block>
<block type="lora_init">
<value name="SPISUB">
<shadow type="variables_get">
<field name="VAR">spi</field>
</shadow>
</value>
<value name="PINSUB">
<shadow type="pins_output_pin">
<field name="PIN">8</field>
</shadow>
</value>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">my_lora</field>
</shadow>
</value>
<value name="frequency">
<shadow type="math_number">
<field name="NUM">433.92</field>
</shadow>
</value>
<value name="rate">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
<value name="factor">
<shadow type="math_number">
<field name="NUM">7</field>
</shadow>
</value>
<value name="power">
<shadow type="math_number">
<field name="NUM">16</field>
</shadow>
</value>
</block>
<block type="lora_packet">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">my_lora</field>
</shadow>
</value>
</block>
<block type="lora_recv">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">my_lora</field>
</shadow>
</value>
</block>
<block type="lora_send">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">my_lora</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
</category>
</category>
<category id="catExternSensor" colour='#A58C5B'>
<!--
<block type="sensor_lm35">
<value name="PIN">
<shadow type="pins_analog_pin"></shadow>
</value>
</block>
<block type="sensor_dht11">
<value name="PIN">
<shadow type="pins_digital_pin"></shadow>
</value>
</block>
<block type="sensor_ds18x20">
<value name="PIN">
<shadow type="pins_digital_pin"></shadow>
</value>
</block>
<block type="HCSR04">
<value name="PIN1">
<shadow type="pins_digital_pin">
<field name="PIN">0</field>
</shadow>
</value>
<value name="PIN2">
<shadow type="pins_digital_pin">
<field name="PIN">4</field>
</shadow>
</value>
</block>
-->
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">4</field>
</shadow>
</value>
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">5</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">100000</field>
</shadow>
</value>
<next>
<block type="sensor_use_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
<value name="I2CSUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="sensor_mpu9250_get_acceleration">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_mpu9250_get_magnetic">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_mpu9250_get_gyro">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_mpu9250_temperature">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_bmp">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_sht">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_adxl345_get_acceleration">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_LTR308_extern">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_LTR390UV_extern">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_hp203_extern">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_spl06_001_extern">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_ms5611_extern">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_ms5611_extern_altitude">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
<value name="VAR">
<shadow type="math_number">
<field name="NUM">1013.25</field>
</shadow>
</value>
</block>
<block type="sensor_shtc3_extern">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_aht11_extern">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_ltr381_extern">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_ucs12071_extern">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_VL530LX_extern">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_QMC5883L_extern">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_MAX30102_extern">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_APDS9960_extern">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="radar_set_DETECTION_THRESHOLD">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
<value name="VAR">
<shadow type="math_number">
<field name="NUM">5000</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="math_number">
<field name="NUM">500</field>
</shadow>
</value>
</block>
<block type="interaction_whether_to_interaction">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="CI130X_IDENTIFY_AND_SAVE">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="CI130X_GET_WHETHER_IDENTIFY">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="CI130X_GET_THE_RECOGNIZED_CMD">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="CI130X_BROADCAST">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
<value name="NUM">
<block type="logic_null"></block>
</value>
</block>
<block type="CI130X_SET_SYSTEM_CMD">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</block>
<block type="communicate_spi_init">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">spi</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">1000000</field>
</shadow>
</value>
<value name="sck">
<shadow type="pins_digital_pin">
<field name="PIN">4</field>
</shadow>
</value>
<value name="mosi">
<shadow type="pins_digital_pin">
<field name="PIN">5</field>
</shadow>
</value>
<value name="miso">
<shadow type="pins_digital_pin">
<field name="PIN">12</field>
</shadow>
</value>
<next>
<block type="sensor_use_spi_init">
<value name="SPISUB">
<shadow type="variables_get">
<field name="VAR">spi</field>
</shadow>
</value>
<value name="PINSUB">
<shadow type="pins_output_pin">
<field name="PIN">8</field>
</shadow>
</value>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="extern_rfid_status">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
</shadow>
</value>
</block>
<block type="extern_rfid_readid">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
</shadow>
</value>
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="extern_rfid_readcontent">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
</shadow>
</value>
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="extern_rfid_write">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
</shadow>
</value>
<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="extern_rfid_write_return">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
</shadow>
</value>
<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="weather_have_data">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
</shadow>
</value>
</block>
<block type="weather_set_label">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
</shadow>
</value>
<mutation items="1"></mutation>
<value name="ADD0">
<block type="tuple_create_with_text_return">
<field name="TEXT">39,119.96,31.67</field>
</block>
</value>
</block>
<block type="weather_data">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
</shadow>
</value>
</block>
<block type="weather_uart_mixio">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
</shadow>
</value>
<value name="BASE">
<shadow type="text">
<field name="TEXT">station</field>
</shadow>
</value>
</block>
<block type="sensor_dht11">
<value name="PIN">
<shadow type="pins_digital_pin"></shadow>
</value>
</block>
<block type="sensor_DS18X20">
<value name="PIN">
<shadow type="pins_digital_pin"></shadow>
</value>
</block>
<block type="HCSR04">
<value name="PIN1">
<shadow type="pins_digital_pin">
<field name="PIN">4</field>
</shadow>
</value>
<value name="PIN2">
<shadow type="pins_digital_pin">
<field name="PIN">5</field>
</shadow>
</value>
</block>
<block type="PS2_init_new">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ps2_handle</field>
</shadow>
</value>
<value name="CLK">
<shadow type="pins_digital_pin">
<field name="PIN">2</field>
</shadow>
</value>
<value name="DOU">
<shadow type="pins_digital_pin">
<field name="PIN">4</field>
</shadow>
</value>
<value name="DIN">
<shadow type="pins_digital_pin">
<field name="PIN">5</field>
</shadow>
</value>
<value name="CS">
<shadow type="pins_digital_pin">
<field name="PIN">12</field>
</shadow>
</value>
</block>
<block type="PS2_vibration_new">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ps2_handle</field>
</shadow>
</value>
<value name="AMP">
<shadow type="math_number">
<field name="NUM">50</field>
</shadow>
</value>
</block>
<block type="PS2_Buttons_new">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ps2_handle</field>
</shadow>
</value>
</block>
<block type="PS2_stk_new">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ps2_handle</field>
</shadow>
</value>
</block>
<block type="sensor_weather_solo_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ws_wr</field>
</shadow>
</value>
<value name="wd">
<shadow type="pins_digital_pin">
<field name="PIN">0</field>
</shadow>
</value>
<value name="ws">
<shadow type="pins_digital_pin">
<field name="PIN">1</field>
</shadow>
</value>
<value name="rain">
<shadow type="pins_digital_pin">
<field name="PIN">21</field>
</shadow>
</value>
</block>
<block type="sensor_weather_solo_wd">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ws_wr</field>
</shadow>
</value>
</block>
<block type="sensor_weather_solo_ws">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ws_wr</field>
</shadow>
</value>
</block>
<block type="sensor_weather_solo_rain">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ws_wr</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">3600</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>
<next>
<block type="sensor_use_uart_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">zsensor</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="pm25_get_data">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">zsensor</field>
</shadow>
</value>
</block>
<block type="gnss_have_data">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">zsensor</field>
</shadow>
</value>
</block>
<block type="gnss_get_data">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">zsensor</field>
</shadow>
</value>
</block>
<block type="tvoc_get_data">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">zsensor</field>
</shadow>
</value>
</block>
<block type="sensor_weigh_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">weight</field>
</shadow>
</value>
<value name="sck">
<shadow type="pins_digital_pin">
<field name="PIN">1</field>
</shadow>
</value>
<value name="dat">
<shadow type="pins_digital_pin">
<field name="PIN">2</field>
</shadow>
</value>
<value name="pc">
<shadow type="math_number">
<field name="NUM">500</field>
</shadow>
</value>
</block>
<block type="weigh_sensor_get_weight">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">weight</field>
</shadow>
</value>
</block>
<block type="init_init_rotary_encoder">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">var_re</field>
</shadow>
</value>
<value name="PIN1">
<shadow type="pins_digital_pin">3
</shadow>
</value>
<value name="PIN2">
<shadow type="pins_digital_pin">4
</shadow>
</value>
<value name="KEY">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
<value name="METHOD">
<shadow type="factory_block_return">
<field name="VALUE">rotary_cb</field>
</shadow>
</value>
</block>
<block type="rotary_key"></block>
<block type="procedures_defnoreturn">
<mutation>
<arg name="value"></arg>
</mutation>
<field name="NAME">rotary_cb</field>
<statement name="STACK">
<block type="controls_pass"></block>
</statement>
</block>
</category>
<category id="catExternActuator" colour='#74A55B'>
<block type="servo_move" m-show='micropython:esp32c3:mixgocar_c3'>
<value name="PIN">
<shadow type="pins_pwm_pin"></shadow>
</value>
<value name="DEGREE">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="esp32_music_pitch_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
</shadow>
</value>
<value name="PIN">
<shadow type="pins_digital_pin">
<field name="PIN">0</field>
</shadow>
</value>
</block>
<block type="esp32_music_pitch">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
</shadow>
</value>
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
</shadow>
</value>
</block>
<block type="esp32_music_pitch_with_time">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
</shadow>
</value>
<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_music_stop">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
</shadow>
</value>
</block>
<block type="esp32_set_music_volume">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
</shadow>
</value>
<value name="percent">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="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">
<field name="VAR">midi</field>
</shadow>
</value>
<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>
</value>
</block>
<block type="esp32_music_get_tempo_extern">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
</shadow>
</value>
</block>
<block type="esp32_music_reset_extern">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
</shadow>
</value>
</block>
<block type="actuator_neopixel_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">rgb</field>
</shadow>
</value>
<value name="PIN">
<shadow type="pins_digital_pin">
<field name="PIN">0</field>
</shadow>
</value>
<value name="LEDCOUNT">
<shadow type="math_number">
<field name="NUM">4</field>
</shadow>
</value>
</block>
<block type="actuator_neopixel_rgb">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">rgb</field>
</shadow>
</value>
<value name="_LED_">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="RVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="GVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="BVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="actuator_neopixel_rgb_all">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">rgb</field>
</shadow>
</value>
<value name="RVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="GVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="BVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="actuator_neopixel_rgb_show_all_chase">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">rgb</field>
</shadow>
</value>
<value name="RVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="GVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="BVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">1000</field>
</shadow>
</value>
</block>
<block type="actuator_neopixel_rgb_show_all_rainbow">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">rgb</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">1000</field>
</shadow>
</value>
</block>
<block type="actuator_neopixel_write">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">rgb</field>
</shadow>
</value>
</block>
<block type="servo_set_angle">
<value name="PIN">
<shadow type="pins_pwm_pin"></shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="servo_get_angle">
<value name="PIN">
<shadow type="pins_pwm_pin"></shadow>
</value>
</block>
<block type="servo_set_speed">
<value name="PIN">
<shadow type="pins_pwm_pin"></shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="servo_get_speed">
<value name="PIN">
<shadow type="pins_pwm_pin"></shadow>
</value>
</block>
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">4</field>
</shadow>
</value>
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">5</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">400000</field>
</shadow>
</value>
<next>
<block type="actuator_ms32006_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">Motor</field>
</shadow>
</value>
<value name="SUB1">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="actuator_ms32006_dcmotor">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">Motor</field>
</shadow>
</value>
<value name="speed">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="actuator_ms32006_stepper">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">Motor</field>
</shadow>
</value>
<value name="speed">
<shadow type="math_number">
<field name="NUM">1024</field>
</shadow>
</value>
<value name="steps">
<shadow type="math_number">
<field name="NUM">1024</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>
<next>
<block type="actuator_use_uart_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">actuator</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="syn6288_set_voice">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">actuator</field>
</shadow>
</value>
<value name="VOICE">
<shadow type="pins_tts_voice"></shadow>
</value>
</block>
<block type="syn6288_get_voice">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">actuator</field>
</shadow>
</value>
</block>
<block type="syn6288_builtin_voice">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">actuator</field>
</shadow>
</value>
<value name="VOICE">
<shadow type="pins_tts_builtin_music"></shadow>
</value>
</block>
<block type="syn6288_tts_play">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">actuator</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">你好米思齐</field>
</shadow>
</value>
<value name="VOICE">
<shadow type="pins_tts_bgmusic"></shadow>
</value>
</block>
<block type="player_whether_stop">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">actuator</field>
</shadow>
</value>
</block>
<block type="player_set_play">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">actuator</field>
</shadow>
</value>
</block>
<block type="player_set_volume">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">actuator</field>
</shadow>
</value>
<value name="volume">
<shadow type="math_number">
<field name="NUM">20</field>
</shadow>
</value>
</block>
<block type="player_set_mode">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">actuator</field>
</shadow>
</value>
</block>
<block type="player_play_music">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">actuator</field>
</shadow>
</value>
<value name="song">
<shadow type="text">
<field name="TEXT">mixly*.mp3</field>
</shadow>
</value>
</block>
</category>
</category>
<category id="catExternMonitor" colour='5BA5A5'>
<category id="catMatrix" colour='5BA5A5'>
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">4</field>
</shadow>
</value>
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">5</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">400000</field>
</shadow>
</value>
<next>
<block type="display_matrix_use_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
<value name="I2CSUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="display_matrix_extern_show_image">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
<value name="data">
<block type="display_matrix_extern_image_builtins">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="display_matrix_extern_show_image_or_string_delay">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
<value name="space">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="display_matrix_extern_scroll_string">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="display_matrix_extern_scroll_string_delay">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">50</field>
</shadow>
</value>
<value name="space">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="display_matrix_extern_show_frame_string">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="display_matrix_extern_show_frame_string_delay">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">500</field>
</shadow>
</value>
</block>
<block type="display_bitmap_create"></block>
<block type="display_matrix_extern_image_builtins">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
</block>
<block type="matrix_extern_image_arithmetic">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
<value name="A">
<shadow type="pins_builtinimg_extern"></shadow>
</value>> <value name="B">
<shadow type="pins_builtinimg_extern"></shadow>
</value>
</block>
<block type="matrix_extern_image_invert">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
<value name="A">
<shadow type="pins_builtinimg_extern"></shadow>
</value>
</block>
<block type="display_matrix_extern_shift">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
<value name="val">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="display_matrix_extern_get_pixel">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
<value name="x">
<shadow type="pins_exlcdh"></shadow>
</value>
<value name="y">
<shadow type="pins_exlcdv"></shadow>
</value>
</block>
<block type="display_matrix_extern_bright_point">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
<value name="x">
<shadow type="pins_exlcdh"></shadow>
</value>
<value name="y">
<shadow type="pins_exlcdv"></shadow>
</value>
<value name="STAT">
<shadow type="display_onoff">
</shadow>
</value>
</block>
<block type="display_matrix_extern_bright_screen">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
<value name="x">
<shadow type="math_number">
<field name="NUM">0.5</field>
</shadow>
</value>
</block>
<block type="display_matrix_extern_get_screen_pixel">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
</block>
<block type="display_matrix_extern_clear">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">matrix</field>
</shadow>
</value>
</block>
</category>
<category id="cat4Digitdisplay" colour='5BA5A5'>
<block type="display_tm_use_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">disp</field>
</shadow>
</value>
<value name="CLK">
<shadow type="pins_digital_pin">
<field name="PIN">3</field>
</shadow>
</value>
<value name="DIO">
<shadow type="pins_digital_pin">
<field name="PIN">4</field>
</shadow>
</value>
</block>
<block type="display_tm1650_show_num">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">disp</field>
</shadow>
</value>
<value name="VALUE">
<shadow type="math_number">
<field name="NUM">2333</field>
</shadow>
</value>
</block>
<block type="display_tm1650_show_dot">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">disp</field>
</shadow>
</value>
<value name="NO">
<shadow type="pins_digital_dot"></shadow>
</value>
<value name="STAT">
<shadow type="display_onoff">
</shadow>
</value>
</block>
<block type="display_tm1650_set_brightness">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">disp</field>
</shadow>
</value>
<value name="VALUE">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</category>
<category id="catLCD" colour='5BA5A5'>
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">4</field>
</shadow>
</value>
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">5</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">100000</field>
</shadow>
</value>
<next>
<block type="display_lcd_use_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">lcd</field>
</shadow>
</value>
<value name="I2CSUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
<value name="ADDR">
<shadow type="math_number">
<field name="NUM">0x27</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="lcd_show_image_or_string_delay">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">lcd</field>
</shadow>
</value>
<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>
</block>
<block type="lcd_print_string">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">lcd</field>
</shadow>
</value>
<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="time">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
</block>
<block type="lcd_backlight">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">lcd</field>
</shadow>
</value>
</block>
<block type="lcd_clear">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">lcd</field>
</shadow>
</value>
</block>
</category>
<category id="catOLED" colour='5BA5A5'>
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">4</field>
</shadow>
</value>
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">5</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">100000</field>
</shadow>
</value>
<next>
<block type="display_oled_use_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</field>
</shadow>
</value>
<value name="I2CSUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
<value name="ADDR">
<shadow type="math_number">
<field name="NUM">0x3c</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="mpython_pbm_image"></block>
<block type="extern_oled_show_image">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</field>
</shadow>
</value>
<value name="data">
<shadow type="mpython_pbm_image">
</shadow>
</value>
</block>
<block type="extern_oled_show_image_xy">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</field>
</shadow>
</value>
<value name="data">
<shadow type="mpython_pbm_image">
</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>
</block>
<block type="extern_oled_show_string">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="extern_oled_show_image_or_string_delay">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</field>
</shadow>
</value>
<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="space">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="extern_oled_scroll_string">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="extern_oled_scroll_string_delay">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</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">5</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
<value name="space">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="extern_oled_show_frame_string">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="extern_oled_show_frame_string_delay">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
<value name="size">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">500</field>
</shadow>
</value>
</block>
<block type="extern_oled_hvline">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</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="length">
<shadow type="math_number">
<field name="NUM">20</field>
</shadow>
</value>
</block>
<block type="extern_oled_line">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</field>
</shadow>
</value>
<value name="x1">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="y1">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="x2">
<shadow type="math_number">
<field name="NUM">50</field>
</shadow>
</value>
<value name="y2">
<shadow type="math_number">
<field name="NUM">50</field>
</shadow>
</value>
</block>
<block type="extern_oled_shape_rect">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</field>
</shadow>
</value>
<value name="x">
<shadow type="math_number">
<field name="NUM">20</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">20</field>
</shadow>
</value>
<value name="w">
<shadow type="math_number">
<field name="NUM">20</field>
</shadow>
</value>
<value name="h">
<shadow type="math_number">
<field name="NUM">15</field>
</shadow>
</value>
</block>
<block type="extern_oled_shift">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</field>
</shadow>
</value>
<value name="val">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="extern_oled_get_pixel">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</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>
</block>
<block type="extern_oled_bright_point">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</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="STAT">
<shadow type="display_onoff">
</shadow>
</value>
</block>
<block type="extern_oled_clear">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">oled</field>
</shadow>
</value>
</block>
</category>
<category id="catTFT" colour='5BA5A5'>
<block type="communicate_spi_init">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">spi</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">1000000</field>
</shadow>
</value>
<value name="sck">
<shadow type="pins_digital_pin">
<field name="PIN">4</field>
</shadow>
</value>
<value name="mosi">
<shadow type="pins_digital_pin">
<field name="PIN">5</field>
</shadow>
</value>
<value name="miso">
<shadow type="pins_digital_pin">
<field name="PIN">0</field>
</shadow>
</value>
<next>
<block type="tft_use_spi_init">
<value name="SPISUB">
<shadow type="variables_get">
<field name="VAR">spi</field>
</shadow>
</value>
<value name="PINDC">
<shadow type="pins_output_pin">
<field name="PIN">7</field>
</shadow>
</value>
<value name="PINCS">
<shadow type="pins_output_pin">
<field name="PIN">8</field>
</shadow>
</value>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">tft_st7789</field>
</shadow>
</value>
<value name="WIDTH">
<shadow type="math_number">
<field name="NUM">135</field>
</shadow>
</value>
<value name="HEIGHT">
<shadow type="math_number">
<field name="NUM">240</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="mpython_pbm_image"></block>
<block type="tft_show_image_xy">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">tft_st7789</field>
</shadow>
</value>
<value name="data">
<shadow type="mpython_pbm_image">
</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>
</block>
<block type="tft_show_image_or_string_delay">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">tft_st7789</field>
</shadow>
</value>
<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">5</field>
</shadow>
</value>
<value name="space">
<shadow type="math_number">
<field name="NUM">0</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>
</block>
<block type="tft_scroll_string_delay">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">tft_st7789</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</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">5</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
<value name="space">
<shadow type="math_number">
<field name="NUM">0</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>
</block>
<block type="tft_show_frame_string_delay">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">tft_st7789</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
<value name="size">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">500</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>
</block>
<block type="tft_line_arbitrarily">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">tft_st7789</field>
</shadow>
</value>
<value name="x1">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="y1">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="x2">
<shadow type="math_number">
<field name="NUM">40</field>
</shadow>
</value>
<value name="y2">
<shadow type="math_number">
<field name="NUM">40</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>
</block>
<block type="tft_fill">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">tft_st7789</field>
</shadow>
</value>
</block>
</category>
</category>
<category id="catAIsensor" colour="#90A244">
<block type="serial_softserial_new">
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">1</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">2</field>
</shadow>
</value>
<next>
<block type="ai_sensor_use_uart_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="ai_sensor_config">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="RX">
<shadow type="math_number">
<field name="NUM">9</field>
</shadow>
</value>
<value name="TX">
<shadow type="math_number">
<field name="NUM">8</field>
</shadow>
</value>
</block>
<block type="ai_sensor_rgb">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="led1">
<shadow type="tuple_create_with_text_return">
<field name="TEXT">255,255,0</field>
</shadow>
</value>
<value name="led2">
<shadow type="tuple_create_with_text_return">
<field name="TEXT">0,0,255</field>
</shadow>
</value>
</block>
<block type="ai_sensor_asr_recognize">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="list_many_input">
<field name="CONTENT">'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="math_number">
<field name="NUM">0.1</field>
</shadow>
</value>
</block>
<block type="ai_sensor_audio_record">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="text">
<field name="TEXT">1.wav</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
</block>
<block type="ai_sensor_audio_play">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="text">
<field name="TEXT">1.wav</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="ai_sensor_qrcode_lite">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_qrcodes">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_qrcode">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">qrcode</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_barcodes">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_barcode">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">barcode</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_tags">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_tag">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">tag</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_lines">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="math_number">
<field name="NUM">2500</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="math_number">
<field name="NUM">25</field>
</shadow>
</value>
<value name="VAR3">
<shadow type="math_number">
<field name="NUM">25</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_line">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">line</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_circles">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="math_number">
<field name="NUM">3500</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
<value name="VAR3">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_circle">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">circle</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_rects">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="math_number">
<field name="NUM">10000</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_rect">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">rect</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_colors">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_color">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">info</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_color_chases">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="variables_get">
<field name="VAR">color_lab</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
<value name="VAR3">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_color_chases_result">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">colors</field>
</shadow>
</value>
</block>
<block type="ai_sensor_ailocal_train">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="list_many_input">
<field name="CONTENT">'猫','狗','笔记本','笔'</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="text">
<field name="TEXT">mixgo</field>
</shadow>
</value>
<value name="VAR3">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
<value name="VAR4">
<shadow type="text">
<field name="TEXT">自模型训练</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_ailocal_class">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="list_many_input">
<field name="CONTENT">'猫','狗','笔记本','笔'</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="text">
<field name="TEXT">mixgo</field>
</shadow>
</value>
<value name="VAR4">
<shadow type="text">
<field name="TEXT">自模型识别</field>
</shadow>
</value>
</block>
</block>
<block type="ai_sensor_ailocal_class_result">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">objects</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_yolo_recognize">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="tuple_create_with_text_return">
<field name="TEXT">0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310,
3.4423, 5.6823</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="text">
<field name="TEXT">/sd/masks.kmodel</field>
</shadow>
</value>
<value name="VAR4">
<shadow type="text">
<field name="TEXT">外部模型加载</field>
</shadow>
</value>
</block>
</block>
<block type="ai_sensor_yolo_recognize_result">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">objects</field>
</shadow>
</value>
</block>
</category>
<category id="catAIsensor2" colour="#90A244">
<block type="serial_softserial_new">
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">1</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">2</field>
</shadow>
</value>
<next>
<block type="ai_sensor_use_uart_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="ai_sensor_config">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="RX">
<shadow type="math_number">
<field name="NUM">9</field>
</shadow>
</value>
<value name="TX">
<shadow type="math_number">
<field name="NUM">8</field>
</shadow>
</value>
</block>
<block type="ai_sensor_rgb">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="led1">
<shadow type="tuple_create_with_text_return">
<field name="TEXT">255,255,0</field>
</shadow>
</value>
<value name="led2">
<shadow type="tuple_create_with_text_return">
<field name="TEXT">0,0,255</field>
</shadow>
</value>
</block>
<block type="ai_sensor_audio_record">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="text">
<field name="TEXT">1.wav</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
</block>
<block type="ai_sensor_audio_play">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="text">
<field name="TEXT">1.wav</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_licenseplates">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_licenseplate">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">licensePlate</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_classifier_faces">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_face">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">face</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_20objects">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_20object">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">20objects</field>
</shadow>
</value>
</block>
<block type="ai_sensor_qrcode_lite">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_qrcodes">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_qrcode">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">qrcode</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_barcodes">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_barcode">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">barcode</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_tags">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_tag">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">tag</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_lines">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="math_number">
<field name="NUM">2500</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="math_number">
<field name="NUM">25</field>
</shadow>
</value>
<value name="VAR3">
<shadow type="math_number">
<field name="NUM">25</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_line">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">line</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_circles">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="math_number">
<field name="NUM">3500</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
<value name="VAR3">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_circle">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">circle</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_rects">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="math_number">
<field name="NUM">10000</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_rect">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">rect</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_find_colors">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_color">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">info</field>
</shadow>
</value>
</block>
<block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_color_chases">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="variables_get">
<field name="VAR">color_lab</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
<value name="VAR3">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ai_sensor_color_chases_result">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">colors</field>
</shadow>
</value>
</block>
<!-- <block type="variables_set">
<field name="VAR">info</field>
<value name="VALUE">
<block type="ai_sensor_yolo_recognize">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai_sensor</field>
</shadow>
</value>
<value name="VAR1">
<shadow type="tuple_create_with_text_return">
<field name="TEXT">0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423,
5.6823</field>
</shadow>
</value>
<value name="VAR2">
<shadow type="text">
<field name="TEXT">/sd/masks.kmodel</field>
</shadow>
</value>
<value name="VAR4">
<shadow type="text">
<field name="TEXT">外部模型加载</field>
</shadow>
</value>
</block>
</block>
<block type="ai_sensor_yolo_recognize_result">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">objects</field>
</shadow>
</value>
</block> -->
</category>
<!-- </category> -->
<category id="catFile" colour="0">
<block type="storage_fileopen">
<value name="FILENAME">
<shadow type="text">
<field name="TEXT">filename.txt</field>
</shadow>
</value>
<value name="FILE">
<shadow type="variables_get">
<field name="VAR">f</field>
</shadow>
</value>
</block>
<block type="storage_file_write">
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
<value name="FILE">
<shadow type="variables_get">
<field name="VAR">f</field>
</shadow>
</value>
</block>
<block type="storage_get_contents_without_para">
<value name="FILE">
<shadow type="variables_get">
<field name="VAR">f</field>
</shadow>
</value>
</block>
<block type="storage_get_contents">
<value name="FILE">
<shadow type="variables_get">
<field name="VAR">f</field>
</shadow>
</value>
<value name="SIZE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="storage_can_write_ornot">
<value name="FILE">
<shadow type="variables_get">
<field name="VAR">f</field>
</shadow>
</value>
</block>
<block type="storage_get_filename">
<value name="FILE">
<shadow type="variables_get">
<field name="VAR">f</field>
</shadow>
</value>
</block>
<block type="storage_close_file">
<value name="FILE">
<shadow type="variables_get">
<field name="VAR">f</field>
</shadow>
</value>
</block>
<block type="storage_list_all_files"> </block>
<block type="storage_get_current_dir"> </block>
<block type="storage_change_dir">
<value name="FILE">
<shadow type="text">
<field name="TEXT">path</field>
</shadow>
</value>
</block>
<block type="storage_make_dir">
<value name="PATH">
<shadow type="text">
<field name="TEXT">path</field>
</shadow>
</value>
</block>
<block type="storage_delete_file">
<value name="FILE">
<shadow type="text">
<field name="TEXT">filename.txt</field>
</shadow>
</value>
</block>
<block type="storage_rename">
<value name="FILE">
<shadow type="text">
<field name="TEXT">srcname.txt</field>
</shadow>
</value>
<value name="NEWFILE">
<shadow type="text">
<field name="TEXT">dstname.txt</field>
</shadow>
</value>
</block>
<!-- <block type="storage_get_file_size">
<value name="FILE">
<shadow type="text">
<field name="TEXT">filename.txt</field>
</shadow>
</value>
</block> -->
<block type="storage_file_tell">
<value name="FILE">
<shadow type="variables_get">
<field name="VAR">f</field>
</shadow>
</value>
</block>
<block type="storage_file_seek">
<value name="FILE">
<shadow type="variables_get">
<field name="VAR">f</field>
</shadow>
</value>
<value name="SIZE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
</category>
<category id="catNetwork" colour="225">
<block type="iot_wifi_connect">
<value name="WIFINAME">
<shadow type="text">
<field name="TEXT">wifiname</field>
</shadow>
</value>
<value name="PASSWORD">
<shadow type="text">
<field name="TEXT">wifipassword</field>
</shadow>
</value>
</block>
<block type="network_init">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">wlan</field>
</shadow>
</value>
</block>
<block type="network_open">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">wlan</field>
</shadow>
</value>
</block>
<block type="network_is_active">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">wlan</field>
</shadow>
</value>
</block>
<block type="network_scan">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">wlan</field>
</shadow>
</value>
</block>
<block type="network_connect">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">wlan</field>
</shadow>
</value>
<value name="id">
<shadow type="text">
<field name="TEXT">127.16.0.8</field>
</shadow>
</value>
<value name="password">
<shadow type="text">
<field name="TEXT">01234567</field>
</shadow>
</value>
</block>
<block type="network_wifi_connect">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">wlan</field>
</shadow>
</value>
</block>
<block type="network_get_connect">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">wlan</field>
</shadow>
</value>
</block>
<block type="network_stop">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">wlan</field>
</shadow>
</value>
</block>
<block type="network_get_wifi">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">wlan</field>
</shadow>
</value>
</block>
<block type="network_ap_connect">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">wlan</field>
</shadow>
</value>
<value name="essid">
<shadow type="text">
<field name="TEXT">mixly</field>
</shadow>
</value>
<value name="password">
<shadow type="text">
<field name="TEXT">12345678</field>
</shadow>
</value>
<value name="channel">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="procedures_defreturn">
<field name="NAME">connect_wifi</field>
<statement name="STACK">
<block type="variables_global">
<value name="VAR">
<block type="variables_get">
<field name="VAR">wlan</field>
</block>
</value>
<next>
<block type="network_init">
<field name="mode">AP</field>
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">wlan</field>
</shadow>
</value>
<next>
<block type="network_open">
<field name="op">True</field>
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">wlan</field>
</shadow>
</value>
<next>
<block type="network_ap_connect">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">wlan</field>
</shadow>
</value>
<value name="essid">
<shadow type="text">
<field name="TEXT">SmallCabbage</field>
</shadow>
</value>
<value name="password">
<shadow type="text">
<field name="TEXT">123456</field>
</shadow>
</value>
<value name="channel">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<next>
<block type="controls_whileUntil">
<field name="MODE">WHILE</field>
<value name="BOOL">
<shadow type="logic_boolean">
<field name="BOOL">TRUE</field>
</shadow>
<block type="logic_compare">
<field name="OP">EQ</field>
<value name="A">
<block type="network_get_connect">
<field name="mode">0</field>
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">wlan</field>
</shadow>
</value>
</block>
</value>
<value name="B">
<block type="text">
<field name="TEXT">0.0.0.0</field>
</block>
</value>
</block>
</value>
<statement name="DO">
<block type="base_delay">
<field name="Time">ms</field>
<value name="DELAY_TIME">
<shadow type="math_number">
<field name="NUM">1000</field>
</shadow>
</value>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
<value name="RETURN">
<block type="logic_boolean">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
<block type="network_socket_init">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">s</field>
</shadow>
</value>
</block>
<block type="network_socket_bind">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">s</field>
</shadow>
</value>
<value name="address">
<block type="tuple_create_with_noreturn" inline="true">
<mutation items="2"></mutation>
<value name="ADD0">
<block type="text">
<field name="TEXT">0.0.0.0</field>
</block>
</value>
<value name="ADD1">
<block type="math_number">
<field name="NUM">80</field>
</block>
</value>
</block>
</value>
</block>
<block type="network_socket_connect">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">s</field>
</shadow>
</value>
<value name="address">
<block type="tuple_create_with_noreturn" inline="true">
<mutation items="2"></mutation>
<value name="ADD0">
<block type="text">
<field name="TEXT">192.168.0.1</field>
</block>
</value>
<value name="ADD1">
<block type="math_number">
<field name="NUM">80</field>
</block>
</value>
</block>
</value>
</block>
<block type="network_socket_listen">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">s</field>
</shadow>
</value>
<value name="queue">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
</block>
<block type="network_socket_accept">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">s</field>
</shadow>
</value>
</block>
<block type="network_socket_readline">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">s</field>
</shadow>
</value>
</block>
<block type="network_socket_receive">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">s</field>
</shadow>
</value>
<value name="size">
<shadow type="math_number">
<field name="NUM">1024</field>
</shadow>
</value>
</block>
<block type="network_socket_send">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">s</field>
</shadow>
</value>
<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="variables_get">
<field name="VAR">response</field>
</shadow>
</value>
</block>
<block type="network_socket_receive_from">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">s</field>
</shadow>
</value>
<value name="size">
<shadow type="math_number">
<field name="NUM">1024</field>
</shadow>
</value>
</block>
<block type="network_socket_send_to">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">s</field>
</shadow>
</value>
<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="variables_get">
<field name="VAR">response</field>
</shadow>
</value>
<value name="address">
<block type="tuple_create_with_noreturn" inline="true">
<mutation items="2"></mutation>
<value name="ADD0">
<block type="text">
<field name="TEXT">127.0.0.1</field>
</block>
</value>
<value name="ADD1">
<block type="math_number">
<field name="NUM">80</field>
</block>
</value>
</block>
</value>
</block>
<block type="network_socket_close">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">s</field>
</shadow>
</value>
</block>
<block type="ntptime_time">
<value name="data">
<block type="ntptime_address"></block>
<shadow type="text">
<field name="TEXT">ntp.aliyun.com</field>
</shadow>
</value>
</block>
</category>
<category id="catCommunicate" colour="#3288dd">
<block type="variables_set">
<field name="VAR">response</field>
<value name="VALUE">
<block type="requests_get2">
<value name="URL">
<shadow type="text">
<field name="TEXT">http://mixio.mixly.cn</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="variables_set">
<field name="VAR">response</field>
<value name="VALUE">
<block type="requests_post">
<value name="URL">
<shadow type="text">
<field name="TEXT">http://mixio.mixly.cn</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
</block>
</value>
</block>
<block type="requests_attribute2">
<value name="VAL">
<shadow type="variables_get">
<field name="VAR">response</field>
</shadow>
</value>
</block>
<block type="iot_connect_ollama">
<value name="SERVER">
<shadow type="text">
<field name="TEXT">http://192.168.1.1:11434</field>
</shadow>
</value>
<value name="NAME">
<shadow type="text">
<field name="TEXT">qwen2.5-coder:0.5b</field>
</shadow>
</value>
<value name="NUMBER">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
</block>
<block type="iot_connect_openai">
<value name="SERVER">
<shadow type="text">
<field name="TEXT">https://api.deepseek.com</field>
</shadow>
</value>
<value name="KEY">
<shadow type="text">
<field name="TEXT">API Key</field>
</shadow>
</value>
<value name="NAME">
<shadow type="text">
<field name="TEXT">deepseek-chat</field>
</shadow>
</value>
<value name="NUMBER">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
</block>
<block type="use_ollama_llm_to_chat">
<value name="TOPIC">
<shadow type="text">
<field name="TEXT">请介绍一下米思齐?</field>
</shadow>
</value>
<value name="METHOD">
<shadow type="factory_block_return">
<field name="VALUE">content_callback</field>
</shadow>
</value>
</block>
<block type="procedures_defnoreturn">
<mutation>
<arg name="content"></arg>
</mutation>
<field name="NAME">content_callback</field>
<statement name="STACK">
<block type="system_print_end">
<value name="VAR">
<block type="variables_get">
<field name="VAR">content</field>
</block>
</value>
<value name="END">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
</block>
</statement>
</block>
<block type="use_ollama_llm_to_chat_return">
<value name="TOPIC">
<shadow type="text">
<field name="TEXT">请介绍一下米思齐?</field>
</shadow>
</value>
</block>
<block type="ollama_empty_history"></block>
</category>
<category id="catFactory" name="Factory" colour="#777777">
<block type="factory_import"></block>
<block type="factory_from_import"></block>
<block type="factory_function_noreturn"></block>
<block type="factory_function_return"></block>
<block type="factory_declare"></block>
<block type="factory_callMethod_noreturn"></block>
<block type="factory_callMethod_return"></block>
<block type="factory_block"></block>
<block type="factory_block_return"></block>
<block type="factory_block_with_textarea"></block>
<block type="factory_block_return_with_textarea"></block>
</category>
</xml>