Files
mixly3/boards/default_src/micropython_esp32s3/template.xml
Irene-Maxine 753447359e 飞翔板
隐藏rfid、加速度
增加陀螺仪
2025-09-29 17:01:27 +08:00

7631 lines
217 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_pressed_init">
<value name="PIN">
<shadow type="pins_touch_pin">
</shadow>
</value>
</block>
<block type="inout_pin_pressed">
<value name="pin">
<shadow type="pins_touch">
</shadow>
</value>
</block>
<block type="inout_pin_attachInterrupt">
<value name="PIN">
<shadow type="pins_digital_pin"></shadow>
</value>
<value name="DO">
<shadow type="factory_block_return">
<field name="VALUE">attachInterrupt_func</field>
</shadow>
</value>
</block>
<block type="procedures_defnoreturn">
<mutation>
<arg name="x"></arg>
</mutation>
<field name="NAME">attachInterrupt_func</field>
<statement name="STACK">
<block type="controls_pass"></block>
</statement>
</block>
<!-- <block type="inout_analog_write_init">
<value name="PIN">
<shadow type="pins_dac_pin"></shadow>
</value>
</block>
<block type="inout_analog_write">
<value name="PIN">
<shadow type="pins_dac"></shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block> -->
</category>
<category id="catControl" colour="120">
<block type="controls_whileUntil">
<value name="BOOL">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="controls_delay_new">
<value name="DELAY_TIME">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="controls_if"></block>
<block type="controls_forEach">
<value name="LIST">
<shadow type="list_many_input">
<field name="CONTENT">0,1,2,3</field>
</shadow>
<block type="controls_range">
<value name="FROM">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="TO">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
<value name="STEP">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</value>
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">i</field>
</shadow>
</value>
</block>
<block type="do_while">
</block>
<block type="controls_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_mp"></block>
<block type="math_trig">
<value name="NUM">
<shadow type="math_number">
<field name="NUM">90</field>
</shadow>
</value>
</block>
<block type="text_to_number">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">x</field>
</shadow>
</value>
</block>
<block type="math_dec">
<value name="NUM">
<shadow type="math_number">
<field name="NUM">15</field>
</shadow>
</value>
</block>
<block type="math_arithmetic">
<value name="A">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="math_bit">
<value name="A">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="math_selfcalcu">
<value name="A">
<shadow type="variables_get">
<field name="VAR">a</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="math_to_int">
<value name="A">
<shadow type="math_number">
<field name="NUM">0.998</field>
</shadow>
</value>
</block>
<block type="math_max_min">
<value name="A">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
</block>
<block type="math_round">
<value name="VALUE">
<shadow type="math_number">
<field name="NUM">4.8</field>
</shadow>
</value>
<value name="VAR">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
</block>
<block type="math_random_seed">
<value name="NUM">
<block type="controls_millis"></block>
<shadow type="math_number">
<field name="NUM">997</field>
</shadow>
</value>
</block>
<block type="math_random">
<value name="FROM">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="TO">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="math_number_base_conversion">
<value name="NUM">
<shadow type="math_number">
<field name="NUM">1010</field>
</shadow>
</block>
<block type="math_constrain">
<value name="VALUE">
<shadow type="math_number">
<field name="NUM">1000</field>
</shadow>
</value>
<value name="LOW">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="HIGH">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="math_map">
<value name="NUM">
<shadow type="math_number">
<field name="NUM">50</field>
</shadow>
</value>
<value name="fromLow">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="fromHigh">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="toLow">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="toHigh">
<shadow type="math_number">
<field name="NUM">1000</field>
</shadow>
</value>
</block>
<block type="math_radian_to_degree">
<value name="VAR">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="math_degree_to_radian">
<value name="VAR">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</category>
<category id="catLogic" colour="210">
<block type="logic_compare"></block>
<block type="logic_compare_continous">
<value name="A">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="B">
<shadow type="variables_get">
<field name="VAR">x</field>
</shadow>
</value>
<value name="C">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
</block>
<block type="logic_operation"></block>
<block type="logic_negate"></block>
<block type="logic_boolean"></block>
<block type="logic_null"></block>
<block type="logic_true_or_false"></block>
<block type="logic_is_in">
<value name="A">
<shadow type="variables_get">
<field name="VAR">x</field>
</shadow>
</value>
<value name="B">
<shadow type="list_many_input">
<field name="CONTENT">0,1,2,3</field>
</shadow>
</value>
</block>
<block type="logic_is">
<value name="A">
<shadow type="list_many_input">
<field name="CONTENT">0,1,2,3</field>
</shadow>
</value>
<value name="B">
<shadow type="list_many_input">
<field name="CONTENT">0,1,2,3</field>
</shadow>
</value>
</block>
<block type="logic_tobool">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">x</field>
</shadow>
</value>
</block>
</category>
<category id="catText" colour="160">
<block type="text">
<field name="TEXT">Mixly</field>
</block>
<block type="text_textarea">
</block>
<block type="text_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="catOnBoardSensor" name="catOnBoardSensor" colour="#947C54"
m-hide='micropython:esp32s3:generic'>
<block type="sensor_mixgo_button_is_pressed">
<value name="btn">
<shadow type="pins_button">
</shadow>
</value>
</block>
<block type="sensor_mixgo_button_was_pressed">
<value name="btn">
<shadow type="pins_button">
</shadow>
</value>
</block>
<block type="sensor_mixgo_button_get_presses">
<value name="btn">
<shadow type="pins_button">
</shadow>
</value>
<value name="VAR">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="sensor_mixgo_button_attachInterrupt">
<value name="btn">
<shadow type="pins_buttonB">
</shadow>
</value>
<value name="DO">
<shadow type="factory_block_return">
<field name="VALUE">attachInterrupt_func</field>
</shadow>
</value>
</block>
<block type="procedures_defnoreturn">
<mutation>
<arg name="x"></arg>
</mutation>
<field name="NAME">attachInterrupt_func</field>
<statement name="STACK">
<block type="controls_pass"></block>
</statement>
</block>
<block type="sensor_mixgoce_pin_pressed">
<value name="button">
<shadow type="number7">
</shadow>
</value>
</block>
<block type="sensor_mixgo_touch_slide"></block>
<block type="sensor_mixgo_pin_near_single" m-show='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_mixgo_nova_pin_near" m-hide='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_LTR308" m-show='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_mixgo_nova_LTR308" m-hide='micropython:esp32s3:mixgo_soar'></block>
<block type="simulated_light_sensor" m-show='micropython:esp32s3:mixgo_soar'></block>
<!-- <block type="sensor_mixgo_sant_color" m-show='micropython:esp32s3:mixgo_sant'></block> -->
<block type="sensor_sound"></block>
<block type="sensor_hp203" m-show='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_aht11" m-hide='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_get_acceleration" m-hide='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_mixbot_get_gyro" m-show='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_mixgo_cc_mmc5603_calibrate_compass" m-hide='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_mixgo_cc_mmc5603_get_magnetic" m-hide='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_mixgo_cc_mmc5603_get_angle" m-hide='micropython:esp32s3:mixgo_soar'></block>
<block type="rfid_status" m-hide='micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar'></block>
<block type="rfid_readid" m-hide='micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar'></block>
<block type="rfid_readcontent" m-hide='micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar'>
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="rfid_write" m-hide='micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar'>
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="CONTENT">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="rfid_write_return" m-hide='micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar'>
<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:esp32s3:generic'>
<block type="actuator_led_bright">
<value name="led">
<shadow type="number">
</shadow>
</value>
<value name="bright">
<shadow type="ledswitch">
</shadow>
</value>
</block>
<block type="actuator_get_led_state">
<value name="led">
<shadow type="number">
</shadow>
</value>
</block>
<block type="actuator_led_brightness">
<value name="led">
<shadow type="number">
</shadow>
</value>
<value name="bright">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="actuator_get_led_bright">
<value name="led">
<shadow type="number">
</shadow>
</value>
</block>
<block type="actuator_get_led_onoff">
<value name="led">
<shadow type="number">
</shadow>
</value>
</block>
<block type="actuator_mixgo_nova_mic_set" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="bright">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="actuator_mixgo_nova_mic_get" m-hide='micropython:esp32s3:mixgo_sant'></block>
<block type="actuator_mixgo_nova_voice_set" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="bright">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="actuator_mixgo_nova_voice_get" m-hide='micropython:esp32s3:mixgo_sant'></block>
<!-- <block type="actuator_mixgo_nova_onboard_music_pitch">
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
</shadow>
</value>
</block> -->
<block type="esp32_onboard_music_pitch_with_time" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">1000</field>
</shadow>
</value>
</block>
<!-- <block type="actuator_mixgo_nova_onboard_music_stop">
<value name="PIN">
<shadow type="pins_pwm_pin">
<field name="PIN">0</field>
</shadow>
</value>
</block> -->
<block type="esp32_onboard_music_play_list" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="LIST">
<shadow type="pins_playlist"></shadow>
</value>
</block>
<block type="actuator_mixgo_nova_record_audio" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="PATH">
<shadow type="text">
<field name="TEXT">/sd/1.wav</field>
</shadow>
</value>
<value name="TIME">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
</block>
<block type="actuator_mixgo_nova_play_audio" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="PATH">
<shadow type="text">
<field name="TEXT">/sd/1.wav</field>
</shadow>
</value>
</block>
<block type="actuator_mixgo_nova_play_online_audio" m-hide='micropython:esp32s3:mixgo_sant'>
<value name="PATH">
<shadow type="text">
<field name="TEXT">https://gitee.com/dahanzimin/test/raw/master/wav/8.wav</field>
</shadow>
</value>
</block>
<block type="esp32_onboard_music_pitch" m-show='micropython:esp32s3:mixgo_sant'>
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
</shadow>
</value>
</block>
<block type="esp32_onboard_music_pitch_with_time" m-show='micropython:esp32s3:mixgo_sant'>
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
</shadow>
</value>
<value name="time">
<shadow type="math_number">
<field name="NUM">1000</field>
</shadow>
</value>
</block>
<block type="esp32_onboard_music_stop" m-show='micropython:esp32s3:mixgo_sant'>
<value name="PIN">
<shadow type="pins_pwm_pin">
<field name="PIN">0</field>
</shadow>
</value>
</block>
<block type="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" m-show='micropython:esp32s3:mixgo_sant'>
<value name="LIST">
<shadow type="pins_playlist"></shadow>
</value>
</block>
<block type="esp32_music_set_tempo" m-show='micropython:esp32s3:mixgo_sant'>
<value name="TICKS">
<shadow type="math_number">
<field name="NUM">4</field>
</shadow>
</value>
<value name="BPM">
<shadow type="math_number">
<field name="NUM">120</field>
</shadow>
</value>
</block>
<block type="esp32_music_get_tempo" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="esp32_music_reset" m-show='micropython:esp32s3:mixgo_sant'></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:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar">
<value name="duty">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="set_all_power_output" m-show="micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar">
<value name="duty">
<shadow type="math_number">
<field name="NUM">20000</field>
</shadow>
</value>
</block>
<block type="get_keyboard_light" m-show="micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar"></block>
<block type="analog_keyboard_input" m-show="micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar">
<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:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar">
<value name="general">
<block type="general_key">
</block>
</value>
</block>
<block type="analog_mouse_input" m-show="micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar">
<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:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar">
<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>
</category>
<category id="catOnBoardDisplay" colour='#78B5B4' m-hide='micropython:esp32s3:generic'>
<block type="display_image_builtins_all"></block>
<block type="display_show_image">
<value name="data">
<shadow type="pins_builtinimg"></shadow>
</value>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="onboard_tft_show_image_xy">
<value name="data">
<shadow type="pins_builtinimg"></shadow>
</value>
<value name="x">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="size">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="VAR">
<block type="display_color_seclet">
<field name="COLOR">#ffffff</field>
</block>
<shadow type="tuple_create_with_text_return">
<field name="TEXT">255,255,0</field>
</shadow>
</value>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="display_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>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="onboard_tft_show_image_or_string_delay">
<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>
<value name="VAR">
<block type="display_color_seclet">
<field name="COLOR">#ffffff</field>
</block>
<shadow type="tuple_create_with_text_return">
<field name="TEXT">255,255,0</field>
</shadow>
</value>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="onboard_tft_show_texts">
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
<value name="x">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="size">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="VAR">
<block type="display_color_seclet">
<field name="COLOR">#ffffff</field>
</block>
<shadow type="tuple_create_with_text_return">
<field name="TEXT">255,255,0</field>
</shadow>
</value>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="onboard_tft_show_image_xy_direct" m-show="micropython:esp32s3:mixgo_sant">
<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="direct">
<shadow type="text">
<field name="TEXT">12.jpg</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="onboard_tft_scroll_string_delay">
<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="display_show_frame_string">
<value name="data">
<shadow type="text">
<field name="TEXT">Mixly</field>
</shadow>
</value>
</block>
<block type="onboard_tft_show_frame_string_delay">
<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="onboard_tft_display_hvline">
<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>
<value name="VAR">
<block type="display_color_seclet">
<field name="COLOR">#ffffff</field>
</block>
<shadow type="tuple_create_with_text_return">
<field name="TEXT">255,255,0</field>
</shadow>
</value>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="onboard_tft_display_line">
<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>
<value name="VAR">
<block type="display_color_seclet">
<field name="COLOR">#ffffff</field>
</block>
<shadow type="tuple_create_with_text_return">
<field name="TEXT">255,255,0</field>
</shadow>
</value>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="onboard_tft_display_shape_rect">
<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>
<value name="VAR">
<block type="display_color_seclet">
<field name="COLOR">#ffffff</field>
</block>
<shadow type="tuple_create_with_text_return">
<field name="TEXT">255,255,0</field>
</shadow>
</value>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="onboard_tft_display_shape_circle">
<value name="x">
<shadow type="math_number">
<field name="NUM">60</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">60</field>
</shadow>
</value>
<value name="r">
<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>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="display_shift">
<value name="val">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="onboard_tft_get_pixel">
<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="onboard_tft_bright_point">
<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="VAR">
<block type="display_color_seclet">
<field name="COLOR">#ffffff</field>
</block>
<shadow type="tuple_create_with_text_return">
<field name="TEXT">255,255,0</field>
</shadow>
</value>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="display_get_screen_pixel"></block>
<block type="display_bright_screen">
<value name="x">
<shadow type="math_number">
<field name="NUM">0.5</field>
</shadow>
</value>
</block>
<block type="onboard_tft_fill">
<value name="VAR">
<block type="display_color_seclet">
<field name="COLOR">#ffffff</field>
</block>
<shadow type="tuple_create_with_text_return">
<field name="TEXT">255,255,0</field>
</shadow>
</value>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="display_clear">
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="display_available"></block>
<block type="onboard_tft_clock_init" m-show="micropython:esp32s3:mixgo_sant">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">new_clock</field>
</shadow>
</value>
<value name="x">
<shadow type="math_number">
<field name="NUM">160</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">120</field>
</shadow>
</value>
<value name="size">
<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="onboard_tft_clock_init" m-show="micropython:esp32s3:mixgo_nova">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">new_clock</field>
</shadow>
</value>
<value name="x">
<shadow type="math_number">
<field name="NUM">80</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">64</field>
</shadow>
</value>
<value name="size">
<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="onboard_tft_clock_get_rtctime">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">new_clock</field>
</shadow>
</value>
</block>
<block type="onboard_tft_clock_set_time">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">new_clock</field>
</shadow>
</value>
<value name="h">
<shadow type="math_number">
<field name="NUM">8</field>
</shadow>
</value>
<value name="m">
<shadow type="math_number">
<field name="NUM">20</field>
</shadow>
</value>
<value name="s">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="onboard_tft_clock_draw">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">new_clock</field>
</shadow>
</value>
</block>
<block type="onboard_tft_clock_clear">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">new_clock</field>
</shadow>
</value>
<value name="VAR">
<block type="display_color_seclet">
<field name="COLOR">0x000000</field>
</block>
<shadow type="tuple_create_with_text_return">
<field name="TEXT">0,0,0</field>
</shadow>
</value>
</block>
<block type="nova_draw_pointer">
<value name="angle">
<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>
</category>
<category id="catAIonboard" colour="#2FAD7A" m-show='micropython:esp32s3:mixgo_sant'>
<category id="catAIgraphsensor" colour="#90A244">
<block type="CREATE_CAMERA"></block>
<block type="SHOOT_AND_SAVE_PICTURE">
<value name="direct">
<shadow type="text">
<field name="TEXT">12.jpg</field>
</shadow>
</value>
</block>
<block type="GET_PICTURE_DATA_EXACT"></block>
<block type="SCREEN_SHOW_CAM_GRAPH_SHOOT">
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="AI_CAMERA_INIT">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai</field>
</shadow>
</value>
</block>
<block type="GET_QR_CODE_RECOGNITION_DATA">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai</field>
</shadow>
</value>
</block>
<block type="GET_COLOR_DETECTION_NUM">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai</field>
</shadow>
</value>
</block>
<block type="GET_COLOR_DETECTION_LOCATION">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai</field>
</shadow>
</value>
<value name="NO">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="GET_CAT_FACE_DETECTION_NUM">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai</field>
</shadow>
</value>
</block>
<block type="GET_CAT_FACE_DETECTION_LOCATION">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai</field>
</shadow>
</value>
<value name="NO">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="GET_FACE_DETECTION_NUM">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai</field>
</shadow>
</value>
</block>
<block type="GET_FACE_DETECTION_LOCATION">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai</field>
</shadow>
</value>
<value name="NO">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="GET_FACE_DETECTION_KEYPOINT_LOCATION">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai</field>
</shadow>
</value>
<value name="NO">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="GET_FACE_RECOGNITION_ID">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai</field>
</shadow>
</value>
</block>
<block type="GET_FACE_RECOGNITION_ID_LOCATION">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai</field>
</shadow>
</value>
<value name="NO">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="GET_FACE_RECOGNITION_ID_KEYPOINT_LOCATION">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai</field>
</shadow>
</value>
<value name="NO">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="PEOPLE_FACE_ENROLL">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai</field>
</shadow>
</value>
</block>
<block type="DELETE_PEOPLE_FACE_ID">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai</field>
</shadow>
</value>
<value name="ID">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="AI_STOP_ACQUISITION">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ai</field>
</shadow>
</value>
</block>
</category>
<category id="catAIvoicesensor" colour="#2FAD7A">
<block type="VOICE_RECOGNITION_CONTROL"></block>
<block type="CI130X_IDENTIFY_AND_SAVE_SANT" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="CI130X_GET_WHETHER_IDENTIFY_SANT" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="CI130X_GET_THE_RECOGNIZED_CMD_SANT" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="CI130X_BROADCAST_SANT" m-show='micropython:esp32s3:mixgo_sant'>
<value name="NUM">
<block type="logic_null"></block>
</value>
</block>
<block type="CI130X_SET_SYSTEM_CMD_SANT" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="CI130X_BROADCAST_SYSTEM_TIME" m-show='micropython:esp32s3:mixgo_sant'>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
</category>
</category>
<category id="catSANT_G3" colour="40" m-show='micropython:esp32s3:mixgo_sant'>
<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="interaction_whether_to_interaction_SANT"></block>
<block type="radar_set_DETECTION_THRESHOLD_SANT" >
<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>
</category>
<category id="catIot" colour="#2FAD7A">
<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.cn/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>
<block type="MIXIO_REPORT_IMAGE_DATA">
<value name="SUB">
<shadow type="text">
<field name="TEXT">12.jpg</field>
</shadow>
</value>
</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">"tc"</field>
<value name="ADD0">
<block type="inout_pin_pressed">
<value name="pin">
<shadow type="pins_touch">
<field name="PIN">tc0</field>
</shadow>
</value>
</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">Sfsxo7MfAaNO1U_Pq</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">Sfsxo7MfAaNO1U_Pq</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">Sfsxo7MfAaNO1U_Pq</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">1</field>
</shadow>
</value>
</block>
<block type="Air_daily_content">
<value name="day">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="Geo_sun_content">
<value name="day">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="Geo_moon_content">
<value name="day">
<shadow type="math_number">
<field name="NUM">1</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="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="catI2C" colour="140">
<block type="communicate_i2c_onboard"></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_onboard"></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">200000</field>
</shadow>
</value>
<value name="sck">
<shadow type="pins_digital_pin">
<field name="PIN">0</field>
</shadow>
</value>
<value name="mosi">
<shadow type="pins_digital_pin">
<field name="PIN">4</field>
</shadow>
</value>
<value name="miso">
<shadow type="pins_digital_pin">
<field name="PIN">5</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="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>
</value>
</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">1</field>
</shadow>
</value>
<value name="ws">
<shadow type="pins_digital_pin">
<field name="PIN">2</field>
</shadow>
</value>
<value name="rain">
<shadow type="pins_digital_pin">
<field name="PIN">3</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">1</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">0</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_matrix_keyboard">
<field name ="VAR">KEYPAD_4_4</field>
<value name="VALUE1">
<block type="line_tube_foot">
<value name="PIN1">
<shadow type="pins_digital_pin">
</shadow>
</value>
<value name="PIN2">
<shadow type="pins_digital_pin">
</shadow>
</value>
<value name="PIN3">
<shadow type="pins_digital_pin">
</shadow>
</value>
<value name="PIN4">
<shadow type="pins_digital_pin">
</shadow>
</value>
</block>
</value>
<value name="VALUE2">
<block type="column_tube_foot">
<value name="PIN1">
<shadow type="pins_digital_pin">
</shadow>
</value>
<value name="PIN2">
<shadow type="pins_digital_pin">
</shadow>
</value>
<value name="PIN3">
<shadow type="pins_digital_pin">
</shadow>
</value>
<value name="PIN4">
<shadow type="pins_digital_pin">
</shadow>
</value>
</block>
</value>
<value name="VALUE3">
<block type="define_keyboards">
<field name ="VAR1">1</field>
<field name ="VAR2">2</field>
<field name ="VAR3">3</field>
<field name ="VAR4">A</field>
<field name ="VAR5">4</field>
<field name ="VAR6">5</field>
<field name ="VAR7">6</field>
<field name ="VAR8">B</field>
<field name ="VAR9">7</field>
<field name ="VAR10">8</field>
<field name ="VAR11">9</field>
<field name ="VAR12">C</field>
<field name ="VAR13">*</field>
<field name ="VAR14">0</field>
<field name ="VAR15">#</field>
<field name ="VAR16">D</field>
</block>
</value>
</block>
<block type="get_keboards_value">
<field name ="VAR">KEYPAD_4_4</field>
</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="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="catNova_G1" colour='100' m-show="micropython:esp32s3:mixgo_nova">
<block type="get_potential_num">
</block>
<block type="nova_g1_motor">
<value name="PIN">
<shadow type="number7">
</shadow>
</value>
<value name="speed">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="nova_g1_usb">
<value name="PIN">
<shadow type="number7">
</shadow>
</value>
<value name="percent">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="nova_g1_spk_en"></block>
</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_image_create_bitmap"></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">1</field>
</shadow>
</value>
<value name="mosi">
<shadow type="pins_digital_pin">
<field name="PIN">2</field>
</shadow>
</value>
<value name="miso">
<shadow type="pins_digital_pin">
<field name="PIN">46</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">4</field>
</shadow>
</value>
<value name="PINCS">
<shadow type="pins_output_pin">
<field name="PIN">5</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>
</category>
<category id="catFile" colour="0">
<block type="sdcard_use_spi_init">
<value name="SPISUB">
<block type="communicate_spi_onboard"></block>
<shadow type="variables_get">
<field name="VAR">spi</field>
</shadow>
</value>
<value name="PINSUB">
<shadow type="pins_output_pin">
<field name="PIN">46</field>
</shadow>
</value>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">sd</field>
</shadow>
</value>
</block>
<block type="sdcard_mount">
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">sd</field>
</shadow>
</value>
<value name="DIR">
<shadow type="text">
<field name="TEXT">/sd</field>
</shadow>
</value>
</block>
<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>
<!-- <block type="urequests_connect_url">
<value name="url">
<block type="urequests_wifi_url">
<value name="URL">
<shadow type="text">
<field name="TEXT">url</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="urequests_response"></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>