extension_module.prod.js 56 KB

1
  1. "use strict";Blockly.Blocks.serial_write_data={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage("blockly/media/uart_serial_send_header.png",110,35,{alt:"*",flipRtl:"FALSE"})),this.appendDummyInput().appendField(Blockly.Msg.serialcomm_write_on).appendField(new Blockly.FieldDropdown([[Blockly.Msg.serialcomm_write_on_iot,"iot"],[Blockly.Msg.serialcomm_write_on_ai,"ai"]]),"type"),this.appendDummyInput().appendField(Blockly.Msg.serialcomm_write_title_text),this.appendDummyInput().appendField(Blockly.Msg.serialcomm_write_data_bps_title).appendField(new Blockly.FieldNumber(115200,0,5e5,1),"uart_bps").appendField(Blockly.Msg.serialcomm_write_data_bps_attrib),this.itemCount_=1,this.updateShape_(),this.setMutator(new Blockly.Mutator(["serial_write_data_create_with_item"])),this.setColour("#22b845"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var thisBlock = this;this.setTooltip(function () {var mode = thisBlock.getFieldValue('type');var TOOLTIPS = {'iot': Blockly.Msg.Serial_Write_Data_TOOLTIP.replace('%1', Blockly.Msg.serialcomm_write_on_iot),'ai': Blockly.Msg.Serial_Write_Data_TOOLTIP.replace('%1', Blockly.Msg.serialcomm_write_on_ai)};return TOOLTIPS[mode];}),this.setHelpUrl("")},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("serial_write_data_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i<this.itemCount_;i++){var o=t.newBlock("serial_write_data_create_with_item");o.initSvg(),n.connect(o.previousConnection),n=o.nextConnection}return e},compose:function(t){for(var e=t.getInputTargetBlock("STACK"),n=[];e;)n.push(e.valueConnection_),e=e.nextConnection&&e.nextConnection.targetBlock();for(var i=0;i<this.itemCount_;i++){var o=this.getInput("ADD"+i).connection.targetConnection;o&&-1==n.indexOf(o)&&o.disconnect()}this.itemCount_=n.length,this.updateShape_();for(i=0;i<this.itemCount_;i++)Blockly.Mutator.reconnect(n[i],this,"ADD"+i)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),n=0;e;){var i=this.getInput("ADD"+n);e.valueConnection_=i&&i.connection.targetConnection,n++,e=e.nextConnection&&e.nextConnection.targetBlock()}},updateShape_:function(){for(var t=0;t<this.itemCount_;t++){if(!this.getInput("ADD"+t))this.appendValueInput("ADD"+t).appendField(Blockly.Msg.serialcomm_write_item_first+t+Blockly.Msg.serialcomm_write_item_last)}for(;this.getInput("ADD"+t);)this.removeInput("ADD"+t),t++}},Blockly.Blocks.serial_write_data_create_with_container={init:function(){this.setColour("#22b845"),this.appendDummyInput().appendField(Blockly.Msg.serialcomm_write_item),this.appendStatementInput("STACK"),this.setTooltip(""),this.contextMenu=!1}},Blockly.Blocks.serial_write_data_create_with_item={init:function(){this.setColour("#22b845"),this.appendDummyInput().appendField(Blockly.Msg.serialcomm_write_data),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(""),this.contextMenu=!1}},Blockly.Python.serial_write_data=function(t){t.getFieldValue("t_api");var e=t.getFieldValue("uart_bps"),n=t.getFieldValue("type");if("ai"==n){Blockly.Python.definitions_.import_machine_uart="import machine, time\nfrom fpioa_manager import fm\n\n",Blockly.Python.addVariable("uart_data",'uart_data = ""',!0),Blockly.Python.definitions_.uart_setup="fm.register(13,fm.fpioa.UART2_TX)\nfm.register(14,fm.fpioa.UART2_RX)\nai_uart = machine.UART(machine.UART.UART2,"+e+",bits=8,parity=None,stop=1)\n";for(var i=item_value="",o=0;o<this.itemCount_;o++)item_value=Blockly.Python.valueToCode(this,"ADD"+o,Blockly.Python.ORDER_NONE)||"",i+="str("+item_value+') + "|" + ';var _="uart_data = "+(i+"").slice(0,-8)+'\nai_uart.write(b"SOF|" + str(uart_data) + "|\\r\\n")\ntime.sleep_ms(20)\n'}else if("iot"==n){Blockly.Python.definitions_.import_machine_uart="from machine import UART, Pin\nimport time\n\n",Blockly.Python.definitions_.uart_setup="_iot_uart = UART(2, tx=17, rx=16)\n_iot_uart.init(115200, bits=8, parity=None, stop=1)\n",Blockly.Python.addVariable("_iot_uart_data",'_iot_uart_data = ""',!0);var l=item_value="";for(o=0;o<this.itemCount_;o++)item_value=Blockly.Python.valueToCode(this,"ADD"+o,Blockly.Python.ORDER_NONE)||"",l+="str("+item_value+') + "|" + ';_="_iot_uart_data = "+(l+"").slice(0,-8)+'\n_iot_uart.write("SOF|" + str(_iot_uart_data) + "|\\r\\n")\ntime.sleep_ms(20)\n'}return _},Blockly.Blocks.serial_send_data_to_microbit={init:function(){var t=getLocalStorage("type");this.appendDummyInput().appendField(new Blockly.FieldImage("blockly/media/microbit_data_send_header.png",90,70,{alt:"*",flipRtl:"FALSE"})),1==t?this.appendValueInput("NAME").appendField(Blockly.Msg.serial_send_data_on).setCheck(null).appendField(new Blockly.FieldDropdown([["A.I.","ai"],["IoT","iot"]]),"module_type_microbit").appendField(Blockly.Msg.serial_send_data_on_send_data):this.appendValueInput("NAME").appendField(Blockly.Msg.serial_send_data_on).setCheck(null).appendField(new Blockly.FieldDropdown([["IoT","iot"],["A.I.","ai"]]),"module_type_microbit").appendField(Blockly.Msg.serial_send_data_on_send_data),this.setInputsInline(!1),this.setColour("#22b845"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setHelpUrl("");var thisBlock = this;this.setTooltip(function () {var mode = thisBlock.getFieldValue('module_type_microbit');var TOOLTIPS = {'iot': Blockly.Msg.Serial_Send_Data_To_Microbit_TOOLTIP.replace('%1', "IoT"),'ai': Blockly.Msg.Serial_Send_Data_To_Microbit_TOOLTIP.replace('%1', "A.I.")};return TOOLTIPS[mode];});}},Blockly.Python.serial_send_data_to_microbit=function(t){var e=t.getFieldValue("module_type_microbit"),n=Blockly.Python.valueToCode(t,"NAME",Blockly.Python.ORDER_ATOMIC)||"",i="";if("iot"==e){Blockly.Python.definitions_.import_microbit_iot_uart="from machine import UART, Pin \nimport time\n";Blockly.Python.addVariable("_iot_microbit_uart","\n_iot_microbit_uart = UART(2, tx=17, rx=16)\n_iot_microbit_uart.init(115200, bits=8, parity=None, stop=1)",!0),i="\n_iot_microbit_uart_data ="+n+"\n_iot_microbit_uart.write(str(_iot_uart_data))\ntime.sleep_ms(20)\n"}else{Blockly.Python.definitions_.import_microbit_ai_uart="import machine, time \nfrom fpioa_manager import fm\n";Blockly.Python.addVariable("ai_microbit_uart","\nfm.register(13,fm.fpioa.UART2_TX)\nfm.register(14,fm.fpioa.UART2_RX)\nai_microbit_uart = machine.UART(machine.UART.UART2,115200,bits=8,parity=None,stop=1)",!0),i="\nuart_microbit_data ="+n+'\nai_microbit_uart.write(b""+str(uart_microbit_data)+"")\ntime.sleep_ms(20)\n'}return i};var SERVO_BLOCK_COLOR="#5bb2d6",ai_servo_timer=["Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PWM","Timer.TIMER0, Timer.CHANNEL1, mode=Timer.MODE_PWM","Timer.TIMER0, Timer.CHANNEL2, mode=Timer.MODE_PWM","Timer.TIMER0, Timer.CHANNEL3, mode=Timer.MODE_PWM","Timer.TIMER1, Timer.CHANNEL0, mode=Timer.MODE_PWM","Timer.TIMER1, Timer.CHANNEL1, mode=Timer.MODE_PWM","Timer.TIMER1, Timer.CHANNEL2, mode=Timer.MODE_PWM","Timer.TIMER1, Timer.CHANNEL3, mode=Timer.MODE_PWM","Timer.TIMER2, Timer.CHANNEL0, mode=Timer.MODE_PWM","Timer.TIMER2, Timer.CHANNEL1, mode=Timer.MODE_PWM","Timer.TIMER2, Timer.CHANNEL2, mode=Timer.MODE_PWM","Timer.TIMER2, Timer.CHANNEL3, mode=Timer.MODE_PWM"],ai_servo_pin=["0","1","2","3","13","14","15","17","21","22","23","24"];Blockly.Blocks.extension_servo_setup_on_ai={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage("blockly/media/esp32_servo_setup.png",50,40,{alt:"*",flipRtl:"FALSE"})),this.appendDummyInput().appendField(Blockly.Msg.servo_setup_ai),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(servoCloor),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.extension_servo_setup_on_ai=function(t){Blockly.Python.definitions_.extension_servo_import="from machine import Timer,PWM",Blockly.Python.addSetup("extension_servo_setup","def _ai_servo_write(servo,angle):\n\tangle = angle - 90\n\tleftSpan = 180 - 0\n\trightSpan = 175 - 5\n\tvalueScaled = float(angle - 0) / float(leftSpan)\n\tservo.duty(((10 + (valueScaled * rightSpan))+90)/180*10+2.5)\n");return"\n"},Blockly.Blocks.extension_servo_write_on_ai={init:function(){this.appendDummyInput().appendField(Blockly.Msg.servo_set_gpio_ai).appendField(new Blockly.FieldDropdown([["0","0"],["1","1"],["2","2"],["3","3"],["13","4"],["14","5"],["15","6"],["17","7"],["21","8"],["22","9"],["23","10"],["24","11"]]),"gpio"),this.appendValueInput("degree").setCheck(null).appendField(Blockly.Msg.servo_rotate_to_ai),this.appendDummyInput().appendField(Blockly.Msg.servo_degree_ai),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(servoCloor),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.extension_servo_write_on_ai=function(t){var e=Blockly.Python.valueToCode(t,"degree",Blockly.Python.ORDER_ATOMIC),n=t.getFieldValue("gpio");Blockly.Python.addSetup("extension_servo_write_ai_"+n,"_servo_tim1 = Timer("+ai_servo_timer[n]+")\n_servo_gpio"+ai_servo_pin[n]+" = PWM(_servo_tim1, freq=50, duty=0, pin="+ai_servo_pin[n]+")\n");var i=e;return"_ai_servo_write(_servo_gpio"+ai_servo_pin[n]+","+i+")\n"};var servoCloor="#386dc8";Blockly.Blocks.esp32_main_controller_servo_setup={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage("blockly/media/esp32_servo_setup.png",50,40,{alt:"*",flipRtl:"FALSE"})),this.appendDummyInput().appendField(Blockly.Msg.servo_setup),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(servoCloor),this.setTooltip(Blockly.Msg.Esp32_Main_Controller_Servo_Setup_TOOLTIP),this.setHelpUrl("")}},Blockly.Python.esp32_main_controller_servo_setup=function(t){Blockly.Python.definitions_.definition_servo_setup="from machine import Pin, PWM\n";return"\n"},Blockly.Blocks.esp32_main_controller_servo_set={init:function(){this.appendDummyInput().appendField(Blockly.Msg.servo_set_gpio),this.appendValueInput("pin_select").setCheck(null),this.appendDummyInput().appendField(Blockly.Msg.servo_rotate_to),this.appendValueInput("degree").setCheck(null),this.appendDummyInput().appendField(Blockly.Msg.servo_degree),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(servoCloor),this.setTooltip(Blockly.Msg.Esp32_Main_Controller_Servo_Set_TOOLTIP),this.setHelpUrl("")}},Blockly.Python.esp32_main_controller_servo_set=function(t){var e=Blockly.Python.valueToCode(t,"pin_select",Blockly.Python.ORDER_ATOMIC),n=Blockly.Python.valueToCode(t,"degree",Blockly.Python.ORDER_ATOMIC);return Blockly.Python.addVariable("S"+e,"S"+e+" = PWM(Pin("+e+"), freq=50, duty=0)",!0),Blockly.Python.definitions_.definition_servo_set="def Servo(servo,angle):\n angle = angle - 90\n servo.duty(int(((angle+90)*2/180+0.5)/20*1023))\n","Servo(S"+e+","+n+")\n"};var MOTOR_BLOCK_COLOR=SERVO_BLOCK_COLOR;Blockly.Blocks.esp32_motor_setup={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage("blockly/media/motor_setup.png",50,40,{alt:"*",flipRtl:"FALSE"})),this.appendDummyInput().appendField(Blockly.Msg.x_motor_set_motor),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(MOTOR_BLOCK_COLOR),this.setTooltip(Blockly.Msg.Esp32_Motor_Setup_TOOLTIP),this.setHelpUrl("")}},Blockly.Python.esp32_motor_setup=function(t){Blockly.Python.definitions_.esp32_controller_set_motor="import pca9685, motor\n\n_iot_motor_i2c = machine.I2C(scl=machine.Pin(22), sda=machine.Pin(21))\n_iot_motor = motor.DCMotors(_iot_motor_i2c)";return""},Blockly.Blocks.esp32_motor_run={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_motor_set_motor_turn).appendField(new Blockly.FieldDropdown([["A","0"],["B","1"],["C","3"],["D","2"]]),"motor_type").appendField(Blockly.Msg.x_motor_set_motor_speed),this.appendValueInput("speed").setCheck(null),this.appendDummyInput().appendField(Blockly.Msg.x_motor_exec).appendField(new Blockly.FieldDropdown([[Blockly.Msg.x_motor_cw,"pos"],[Blockly.Msg.x_motor_acw,"neg"]]),"direction").appendField(Blockly.Msg.x_motor_set_motor_turns),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(MOTOR_BLOCK_COLOR),this.setTooltip(Blockly.Msg.Esp32_Motor_Run_TOOLTIP),this.setHelpUrl("")}},Blockly.Python.esp32_motor_run=function(t){var e=t.getFieldValue("motor_type"),n=Blockly.Python.valueToCode(t,"speed",Blockly.Python.ORDER_ATOMIC),i=t.getFieldValue("direction");return"pos"==i?n=n:"neg"==i&&(n=-n),"_iot_motor.speed("+e+",("+n+"*16))\n"},Blockly.Blocks.ai_motor_setup={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage("blockly/media/motor_setup.png",50,40,{alt:"*",flipRtl:"FALSE"})),this.appendDummyInput().appendField(Blockly.Msg.x_motor_set_motor_ai),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(MOTOR_BLOCK_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.ai_motor_setup=function(t){Blockly.Python.definitions_.ai_controller_set_motor="import pca9685, motor\nfrom machine import I2C\n\n_ai_motor_scl = 30\n_ai_motor_sda = 29\n\n_ai_motor_i2c = I2C(I2C.I2C0, freq=100000, scl=_ai_motor_scl, sda=_ai_motor_sda)\n_ai_motor = motor.DCMotors(_ai_motor_i2c)\n";return""},Blockly.Blocks.ai_motor_run={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_motor_set_motor_turn_ai).appendField(new Blockly.FieldDropdown([["A","0"],["B","1"],["C","3"],["D","2"]]),"motor_type").appendField(Blockly.Msg.x_motor_set_motor_speed_ai),this.appendValueInput("speed").setCheck(null),this.appendDummyInput().appendField(Blockly.Msg.x_motor_exec_ai).appendField(new Blockly.FieldDropdown([[Blockly.Msg.x_motor_cw_ai,"pos"],[Blockly.Msg.x_motor_acw_ai,"neg"]]),"direction").appendField(Blockly.Msg.x_motor_set_motor_turns_ai),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(MOTOR_BLOCK_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.ai_motor_run=function(t){var e=t.getFieldValue("motor_type"),n=Blockly.Python.valueToCode(t,"speed",Blockly.Python.ORDER_ATOMIC),i=t.getFieldValue("direction");return"pos"==i?n=n:"neg"==i&&(n=-n),"_ai_motor.speed("+e+", ("+n+"*16))\n"};var AILEDCOLOR="#e8795b";Blockly.Blocks.ai_led_matrix_setup={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage("blockly/media/led_setup.png",50,40,{alt:"*",flipRtl:"FALSE"})),this.appendDummyInput().appendField(Blockly.Msg.x_led_matrix_setup_ai),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(AILEDCOLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.ai_led_matrix_setup=function(t){Blockly.Python.definitions_.ai_controller_led_setup="from modules import ws2812\n\n_ai_led_matrix_total = 36\n_ai_led_matrix = ws2812(24,_ai_led_matrix_total)\n";return""},Blockly.Blocks.ai_led_matrix_xy={init:function(){this.appendValueInput("x").setCheck(null).appendField(Blockly.Msg.x_led_matrix_width_ai_x),this.appendValueInput("y").setCheck(null).appendField(Blockly.Msg.x_led_matrix_width_ai_y),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(AILEDCOLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.ai_led_matrix_xy=function(t){return[Blockly.Python.valueToCode(t,"x",Blockly.Python.ORDER_ATOMIC)+","+Blockly.Python.valueToCode(t,"y",Blockly.Python.ORDER_ATOMIC),Blockly.Python.ORDER_NONE]},Blockly.Blocks.ai_led_matrix_wh={init:function(){this.appendValueInput("w").setCheck(null).appendField(Blockly.Msg.x_led_matrix_width_ai),this.appendValueInput("h").setCheck(null).appendField(Blockly.Msg.x_led_matrix_height_ai),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(AILEDCOLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.ai_led_matrix_wh=function(t){return[Blockly.Python.valueToCode(t,"w",Blockly.Python.ORDER_ATOMIC)+","+Blockly.Python.valueToCode(t,"h",Blockly.Python.ORDER_ATOMIC),Blockly.Python.ORDER_NONE]},Blockly.Blocks.ai_led_matrix_color_picker={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_led_matrix_color_ai).appendField(new Blockly.FieldColour("#ff0000"),"color"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(AILEDCOLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.ai_led_matrix_color_picker=function(t){var e=t.getFieldValue("color"),n=0,i=0,o=0;try{7==e.length&&(n=parseInt(e.substring(1,3),16),i=parseInt(e.substring(3,5),16),o=parseInt(e.substring(5,7),16))}catch(t){}return[n+","+i+","+o,Blockly.Python.ORDER_NONE]},Blockly.Blocks.ai_led_matrix_draw_pixel={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_led_matrix_draw_title_ai),this.appendDummyInput().appendField(Blockly.Msg.x_led_matrix_draw_pixel_ai),this.appendValueInput("color").setCheck(null).appendField(Blockly.Msg.x_led_matrix_parameter_color_ai),this.appendValueInput("coordinate").setCheck(null).appendField(Blockly.Msg.x_led_matrix_parameter_coord_ai),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(AILEDCOLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.ai_led_matrix_draw_pixel=function(t){var e=Blockly.Python.valueToCode(t,"color",Blockly.Python.ORDER_ATOMIC),n=Blockly.Python.valueToCode(t,"coordinate",Blockly.Python.ORDER_ATOMIC);return"_a = _ai_led_matrix.set_led(((("+n.substr(3,1)+"*6)//6)-1)*6+("+n.substr(1,1)+"-1),("+e+"))\n"},Blockly.Blocks.ai_led_matrix_show_above={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_led_matrix_show_above_ai),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(AILEDCOLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.ai_led_matrix_show_above=function(t){return"_ai_led_matrix.display()\n"},Blockly.Blocks.iot_led_matrix_setup={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage("blockly/media/led_setup.png",50,40,{alt:"*",flipRtl:"FALSE"})),this.appendDummyInput().appendField(Blockly.Msg.x_led_matrix_setup_iot),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(AILEDCOLOR),this.setTooltip(Blockly.Msg.Iot_Led_Matrix_Setup_TOOLTIP),this.setHelpUrl("")}},Blockly.Python.iot_led_matrix_setup=function(t){Blockly.Python.definitions_.iot_controller_led_setup="import machine, neopixel, time\n_6x6_led_matrix = neopixel.NeoPixel(machine.Pin(15), 36)\n\n";return""},Blockly.Blocks.iot_led_matrix_xy={init:function(){this.appendValueInput("x").setCheck(null).appendField(Blockly.Msg.x_led_matrix_width_iot_x),this.appendValueInput("y").setCheck(null).appendField(Blockly.Msg.x_led_matrix_width_iot_y),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(AILEDCOLOR),this.setTooltip(Blockly.Msg.Iot_Led_Matrix_xy_TOOLTIP),this.setHelpUrl("")}},Blockly.Python.iot_led_matrix_xy=function(t){return[Blockly.Python.valueToCode(t,"x",Blockly.Python.ORDER_ATOMIC)+","+Blockly.Python.valueToCode(t,"y",Blockly.Python.ORDER_ATOMIC),Blockly.Python.ORDER_NONE]},Blockly.Blocks.iot_led_matrix_wh={init:function(){this.appendValueInput("w").setCheck(null).appendField(Blockly.Msg.x_led_matrix_width_iot),this.appendValueInput("h").setCheck(null).appendField(Blockly.Msg.x_led_matrix_height_iot),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(AILEDCOLOR),this.setTooltip(Blockly.Msg.Iot_Led_Matrix_wh_TOOLTIP),this.setHelpUrl("")}},Blockly.Python.iot_led_matrix_wh=function(t){return[Blockly.Python.valueToCode(t,"w",Blockly.Python.ORDER_ATOMIC)+","+Blockly.Python.valueToCode(t,"h",Blockly.Python.ORDER_ATOMIC),Blockly.Python.ORDER_NONE]},Blockly.Blocks.iot_led_matrix_color_picker={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_led_matrix_color_iot).appendField(new Blockly.FieldColour("#ff0000"),"color"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(AILEDCOLOR),this.setTooltip(Blockly.Msg.Iot_Led_Matrix_Color_Picker_TOOLTIP),this.setHelpUrl("")}},Blockly.Python.iot_led_matrix_color_picker=function(t){var e=t.getFieldValue("color"),n=0,i=0,o=0;try{7==e.length&&(n=parseInt(e.substring(1,3),16),i=parseInt(e.substring(3,5),16),o=parseInt(e.substring(5,7),16))}catch(t){}return[n+","+i+","+o,Blockly.Python.ORDER_NONE]},Blockly.Blocks.iot_led_matrix_draw_pixel={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_led_matrix_draw_title_iot),this.appendDummyInput().appendField(Blockly.Msg.x_led_matrix_draw_pixel_iot),this.appendValueInput("color").setCheck(null).appendField(Blockly.Msg.x_led_matrix_parameter_color_iot),this.appendValueInput("coordinate").setCheck(null).appendField(Blockly.Msg.x_led_matrix_parameter_coord_iot),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(AILEDCOLOR),this.setTooltip(Blockly.Msg.Iot_Led_Matrix_Draw_Pixel_TOOLTIP),this.setHelpUrl("")}},Blockly.Python.iot_led_matrix_draw_pixel=function(t){var e=Blockly.Python.valueToCode(t,"color",Blockly.Python.ORDER_ATOMIC),n=Blockly.Python.valueToCode(t,"coordinate",Blockly.Python.ORDER_ATOMIC);return"_6x6_led_matrix[((("+n.substr(3,1)+"*6)//6)-1)*6+("+n.substr(1,1)+"-1)] = ("+e+")\n"},Blockly.Blocks.iot_led_matrix_show_above={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_led_matrix_show_above_iot),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(AILEDCOLOR),this.setTooltip(Blockly.Msg.Iot_Led_Matrix_Show_Above_TOOLTIP),this.setHelpUrl("")}},Blockly.Python.iot_led_matrix_show_above=function(t){return"_6x6_led_matrix.write()\n"};var ESP32_LED_STRIP_COLOR="#3dade2";Blockly.Blocks.esp32_main_controller_led_strip_setup={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage("blockly/media/led_strip_setup.png",45,45,{alt:"*",flipRtl:"FALSE"})),this.appendDummyInput().appendField(Blockly.Msg.ledstrip_setup_text).appendField(new Blockly.FieldVariable("STRIP"),"varitem").appendField(Blockly.Msg.ledstrip_setup),this.appendValueInput("io").setCheck(null).appendField(Blockly.Msg.ledstrip_set_gpio),this.appendValueInput("count").setCheck(null).appendField(Blockly.Msg.ledstrip_set_total_led),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ESP32_LED_STRIP_COLOR),this.setHelpUrl(""); var thisBlock = this;this.setTooltip(function () {var mode = thisBlock.getFieldValue('type');var TOOLTIPS = {'iot': Blockly.Msg.Esp32_Main_Controller_Led_Strip_Setup_TOOLTIP.replace('%1', Blockly.Msg.ledstrip_setup_text_iot),'ai': Blockly.Msg.Esp32_Main_Controller_Led_Strip_Setup_TOOLTIP.replace('%1', Blockly.Msg.ledstrip_setup_text_ai)};return TOOLTIPS[mode];});}},Blockly.Python.esp32_main_controller_led_strip_setup=function(t){var e=Blockly.Python.variableDB_.getName(t.getFieldValue("varitem"),Blockly.Variables.NAME_TYPE),n=Blockly.Python.valueToCode(t,"io",Blockly.Python.ORDER_ATOMIC),i=Blockly.Python.valueToCode(t,"count",Blockly.Python.ORDER_ATOMIC);Blockly.Python.definitions_.led_strip_definition="import machine, neopixel\n",Blockly.Python.addVariable(e,e+" = neopixel.NeoPixel(machine.Pin("+n+"), "+i+")",!0);return"\n"},Blockly.Blocks.esp32_main_controller_led_strip_set={init:function(){this.appendDummyInput().appendField(Blockly.Msg.ledstrip_set_light_up).appendField(new Blockly.FieldVariable("STRIP"),"varitem"),this.appendValueInput("location").setCheck(null).appendField(Blockly.Msg.ledstrip_set_no),this.appendValueInput("color").setCheck(null).appendField(Blockly.Msg.ledstrip_set_color),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ESP32_LED_STRIP_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.esp32_main_controller_led_strip_set=function(t){Blockly.Python.variableDB_.getName(t.getFieldValue("varitem"),Blockly.Variables.NAME_TYPE);var e=Blockly.Python.valueToCode(t,"location",Blockly.Python.ORDER_ATOMIC),n=Blockly.Python.valueToCode(t,"color",Blockly.Python.ORDER_ATOMIC);if("#"!=n.charAt(0))var i="np["+e+"] = "+n+"\nnp.write()\n\n";else if("#"==n.charAt(0)){var o=0,_=0,l=0;try{7==color.length&&(o=parseInt(color.substring(1,3),16),_=parseInt(color.substring(3,5),16),l=parseInt(color.substring(5,7),16))}catch(t){}i="np["+e+"] = ("+o+","+_+","+l+")\nnp.write()\n\n"}return i};var GAMEPAD_COLOR="#183895";Blockly.Blocks.x_iot_read_gamepad_button_pressed={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_gamepad_read_button_first_text_iot).appendField(new Blockly.FieldDropdown([["X","x"],["Y","y"],["A","a"],["B","b"],["L","l"],["R","r"]]),"type").appendField(Blockly.Msg.x_gamepad_read_button_first_text_pressed_iot),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(GAMEPAD_COLOR),this.setHelpUrl("");var thisBlock = this;this.setTooltip(function () {var mode = thisBlock.getFieldValue('type');var TOOLTIPS = {'x': Blockly.Msg.x_iot_read_gamepad_button_pressed_TOOLTIP.replace('%1', "X"),'y': Blockly.Msg.x_iot_read_gamepad_button_pressed_TOOLTIP.replace('%1', "Y"),'a':Blockly.Msg.x_iot_read_gamepad_button_pressed_TOOLTIP.replace('%1', "A"),'b':Blockly.Msg.x_iot_read_gamepad_button_pressed_TOOLTIP.replace('%1', "B"),'l':Blockly.Msg.x_iot_read_gamepad_button_pressed_TOOLTIP.replace('%1', "L"),'r':Blockly.Msg.x_iot_read_gamepad_button_pressed_TOOLTIP.replace('%1', "R") };return TOOLTIPS[mode];});}},Blockly.Python.x_iot_read_gamepad_button_pressed=function(t){var e=t.getFieldValue("type");return Blockly.Python.definitions_.gamepad_all_def_iot="from machine import ADC, Pin\n\n",Blockly.Python.definitions_.gamepad_button_def_iot="_px = Pin(21, Pin.IN,Pin.PULL_UP) \n_py = Pin(22, Pin.IN,Pin.PULL_UP) \n_pa = Pin(4, Pin.IN,Pin.PULL_UP) \n_pb = Pin(2, Pin.IN,Pin.PULL_UP) \n_pl = Pin(17, Pin.IN,Pin.PULL_UP) \n_pr = Pin(16, Pin.IN,Pin.PULL_UP)\n\n",["_p"+e+".value() == 1",Blockly.Python.ORDER_NONE]},Blockly.Blocks.x_iot_read_gamepad_button_released={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_gamepad_read_button_first_text_iot).appendField(new Blockly.FieldDropdown([["X","x"],["Y","y"],["A","a"],["B","b"],["L","l"],["R","r"]]),"type").appendField(Blockly.Msg.x_gamepad_read_button_first_text_released_iot),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(GAMEPAD_COLOR),this.setHelpUrl("");var thisBlock = this;this.setTooltip(function () {var mode = thisBlock.getFieldValue('type');var TOOLTIPS = {'x': Blockly.Msg.x_iot_read_gamepad_button_released_TOOLTIP.replace('%1', "X"),'y': Blockly.Msg.x_iot_read_gamepad_button_released_TOOLTIP.replace('%1', "Y"),'a': Blockly.Msg.x_iot_read_gamepad_button_released_TOOLTIP.replace('%1', "A"),'b': Blockly.Msg.x_iot_read_gamepad_button_released_TOOLTIP.replace('%1', "B"),'l': Blockly.Msg.x_iot_read_gamepad_button_released_TOOLTIP.replace('%1', "L"),'r': Blockly.Msg.x_iot_read_gamepad_button_released_TOOLTIP.replace('%1', "R")};return TOOLTIPS[mode];});}},Blockly.Python.x_iot_read_gamepad_button_released=function(t){var e=t.getFieldValue("type");return Blockly.Python.definitions_.gamepad_all_def_iot="from machine import ADC, Pin\n\n",Blockly.Python.definitions_.gamepad_button_def_iot="_px = Pin(21, Pin.IN,Pin.PULL_UP) \n_py = Pin(22, Pin.IN,Pin.PULL_UP) \n_pa = Pin(4, Pin.IN,Pin.PULL_UP) \n_pb = Pin(2, Pin.IN,Pin.PULL_UP) \n_pl = Pin(17, Pin.IN,Pin.PULL_UP) \n_pr = Pin(16, Pin.IN,Pin.PULL_UP)\n\n",["_p"+e+".value() == 0",Blockly.Python.ORDER_NONE]},Blockly.Blocks["x_iot_read_gamepad_button_x-r"]={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_gamepad_read_button_status_first_text_iot).appendField(new Blockly.FieldDropdown([["X","x"],["Y","y"],["A","a"],["B","b"],["L","l"],["R","r"]]),"type").appendField(Blockly.Msg.x_gamepad_read_button_status_after_text_iot),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(GAMEPAD_COLOR),this.setHelpUrl("");var thisBlock = this;this.setTooltip(function () {var mode = thisBlock.getFieldValue('type');var TOOLTIPS = {'x': Blockly.Msg.x_iot_read_gamepad_button_xr_TOOLTIP.replace('%1', "X"),'y': Blockly.Msg.x_iot_read_gamepad_button_xr_TOOLTIP.replace('%1', "Y"),'a':Blockly.Msg.x_iot_read_gamepad_button_xr_TOOLTIP.replace('%1', "A"),'b':Blockly.Msg.x_iot_read_gamepad_button_xr_TOOLTIP.replace('%1', "B"),'l':Blockly.Msg.x_iot_read_gamepad_button_xr_TOOLTIP.replace('%1', "L"),'r':Blockly.Msg.x_iot_read_gamepad_button_xr_TOOLTIP.replace('%1', "R")};return TOOLTIPS[mode];});}},Blockly.Python["x_iot_read_gamepad_button_x-r"]=function(t){var e=t.getFieldValue("type");return Blockly.Python.definitions_.gamepad_all_def_iot="from machine import ADC, Pin\n\n",Blockly.Python.definitions_.gamepad_button_def_iot="_px = Pin(21, Pin.IN,Pin.PULL_UP) \n_py = Pin(22, Pin.IN,Pin.PULL_UP) \n_pa = Pin(4, Pin.IN,Pin.PULL_UP) \n_pb = Pin(2, Pin.IN,Pin.PULL_UP) \n_pl = Pin(17, Pin.IN,Pin.PULL_UP) \n_pr = Pin(16, Pin.IN,Pin.PULL_UP)\n\n",["_p"+e+".value()",Blockly.Python.ORDER_NONE]},Blockly.Blocks.x_iot_read_gamepad_joystick={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_gamepad_read_joystick_read_iot).appendField(new Blockly.FieldDropdown([[Blockly.Msg.x_gamepad_read_joystick_read_iot_x,"X"],[Blockly.Msg.x_gamepad_read_joystick_read_iot_y,"Y"]]),"type").appendField(Blockly.Msg.x_gamepad_read_joystick_read_after_iot),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(GAMEPAD_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.x_iot_read_gamepad_joystick=function(t){var e=t.getFieldValue("type");return Blockly.Python.definitions_.gamepad_all_def_iot="from machine import ADC, Pin\n\n",Blockly.Python.definitions_.gamepad_joystick_def_iot="_adcX = machine.ADC(Pin(36))\n_adcY = machine.ADC(Pin(39))\n\n_adcX.atten(ADC.ATTN_11DB)\n_adcY.atten(ADC.ATTN_11DB)\n_adcX.width(ADC.WIDTH_10BIT)\n_adcY.width(ADC.WIDTH_10BIT)\n\n",["_adc"+e+".read()",Blockly.Python.ORDER_NONE]},Blockly.Blocks.x_iot_read_gamepad_joystick_check={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_gamepad_read_joystick_when_iot).appendField(new Blockly.FieldDropdown([[Blockly.Msg.x_gamepad_read_joystick_when_top_iot,"top"],[Blockly.Msg.x_gamepad_read_joystick_when_bottom_iot,"bottom"],[Blockly.Msg.x_gamepad_read_joystick_when_left_iot,"left"],[Blockly.Msg.x_gamepad_read_joystick_when_right_iot,"right"],[Blockly.Msg.x_gamepad_read_joystick_when_not_iot,"still"]]),"type"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(GAMEPAD_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.x_iot_read_gamepad_joystick_check=function(t){var e=t.getFieldValue("type");return Blockly.Python.definitions_.gamepad_all_def_iot="from machine import ADC, Pin\n\n",Blockly.Python.definitions_.gamepad_joystick_def_iot="_adcX = machine.ADC(Pin(36))\n_adcY = machine.ADC(Pin(39))\n\n_adcX.atten(ADC.ATTN_11DB)\n_adcY.atten(ADC.ATTN_11DB)\n_adcX.width(ADC.WIDTH_10BIT)\n_adcY.width(ADC.WIDTH_10BIT)\n\n",Blockly.Python.definitions_.gamepad_joystick_check_direction_def='def _read_direction():\n if (_adcY > 300) and (_adcY < 500) and (_adcX > 300) and (_adcX < 500):\n return "still" \n elif _adcX > 500:\n return "left"\n elif _adcX < 300:\n return "right"\n elif _adcY > 500:\n return "top"\n elif _adcY < 300:\n return "bottom"\n\n',['_read_direction() == "'+e+'"',Blockly.Python.ORDER_NONE]},Blockly.Blocks.x_ai_read_gamepad_button_pressed={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_gamepad_read_button_first_text_ai).appendField(new Blockly.FieldDropdown([["X","x"],["Y","y"],["A","a"],["B","b"],["L","l"],["R","r"]]),"type").appendField(Blockly.Msg.x_gamepad_read_button_first_text_pressed_ai),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(GAMEPAD_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.x_ai_read_gamepad_button_pressed=function(t){var e=t.getFieldValue("type");return Blockly.Python.definitions_.gamepad_all_def="from fpioa_manager import *\nfrom Maix import FPIOA, GPIO\n\n",Blockly.Python.definitions_.gamepad_button_def="_gp_side_button = [13, 14]\n_gp_right_button = [29, 30, 17, 15]\nFPIOA().set_function(_gp_side_button[0],FPIOA.GPIO0)\nFPIOA().set_function(_gp_side_button[1],FPIOA.GPIO1)\nFPIOA().set_function(_gp_right_button[0],FPIOA.GPIO2)\nFPIOA().set_function(_gp_right_button[1],FPIOA.GPIO3)\nFPIOA().set_function(_gp_right_button[2],FPIOA.GPIO4)\nFPIOA().set_function(_gp_right_button[3],FPIOA.GPIO5)\n_gp_button_l = GPIO(GPIO.GPIO0,GPIO.IN)\n_gp_button_r = GPIO(GPIO.GPIO1,GPIO.IN)\n_gp_button_x = GPIO(GPIO.GPIO2,GPIO.IN)\n_gp_button_y = GPIO(GPIO.GPIO3,GPIO.IN)\n_gp_button_a = GPIO(GPIO.GPIO4,GPIO.IN)\n_gp_button_b = GPIO(GPIO.GPIO5,GPIO.IN)\n\n",["_gp_button_"+e+".value() == 1",Blockly.Python.ORDER_NONE]},Blockly.Blocks.x_ai_read_gamepad_button_released={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_gamepad_read_button_first_text_ai).appendField(new Blockly.FieldDropdown([["X","x"],["Y","y"],["A","a"],["B","b"],["L","l"],["R","r"]]),"type").appendField(Blockly.Msg.x_gamepad_read_button_first_text_released_ai),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(GAMEPAD_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.x_ai_read_gamepad_button_released=function(t){var e=t.getFieldValue("type");return Blockly.Python.definitions_.gamepad_all_def="from fpioa_manager import *\nfrom Maix import FPIOA, GPIO\n\n",Blockly.Python.definitions_.gamepad_button_def="_gp_side_button = [13, 14]\n_gp_right_button = [29, 30, 15, 17]\nFPIOA().set_function(_gp_side_button[0],FPIOA.GPIO0)\nFPIOA().set_function(_gp_side_button[1],FPIOA.GPIO1)\nFPIOA().set_function(_gp_right_button[0],FPIOA.GPIO2)\nFPIOA().set_function(_gp_right_button[1],FPIOA.GPIO3)\nFPIOA().set_function(_gp_right_button[2],FPIOA.GPIO4)\nFPIOA().set_function(_gp_right_button[3],FPIOA.GPIO5)\n_gp_button_l = GPIO(GPIO.GPIO0,GPIO.IN)\n_gp_button_r = GPIO(GPIO.GPIO1,GPIO.IN)\n_gp_button_x = GPIO(GPIO.GPIO2,GPIO.IN)\n_gp_button_y = GPIO(GPIO.GPIO3,GPIO.IN)\n_gp_button_a = GPIO(GPIO.GPIO4,GPIO.IN)\n_gp_button_b = GPIO(GPIO.GPIO5,GPIO.IN)\n\n",["_gp_button_"+e+".value() == 1",Blockly.Python.ORDER_NONE]},Blockly.Blocks["x_ai_read_gamepad_button_x-r"]={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_gamepad_read_button_status_first_text_ai).appendField(new Blockly.FieldDropdown([["X","x"],["Y","y"],["A","a"],["B","b"],["L","l"],["R","r"]]),"type").appendField(Blockly.Msg.x_gamepad_read_button_status_after_text_ai),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(GAMEPAD_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python["x_ai_read_gamepad_button_x-r"]=function(t){var e=t.getFieldValue("type");return Blockly.Python.definitions_.gamepad_all_def="from fpioa_manager import *\nfrom Maix import FPIOA, GPIO\n\n",Blockly.Python.definitions_.gamepad_button_def="_gp_side_button = [13, 14]\n_gp_right_button = [29, 30, 15, 17]\nFPIOA().set_function(_gp_side_button[0],FPIOA.GPIO0)\nFPIOA().set_function(_gp_side_button[1],FPIOA.GPIO1)\nFPIOA().set_function(_gp_right_button[0],FPIOA.GPIO2)\nFPIOA().set_function(_gp_right_button[1],FPIOA.GPIO3)\nFPIOA().set_function(_gp_right_button[2],FPIOA.GPIO4)\nFPIOA().set_function(_gp_right_button[3],FPIOA.GPIO5)\n_gp_button_l = GPIO(GPIO.GPIO0,GPIO.IN)\n_gp_button_r = GPIO(GPIO.GPIO1,GPIO.IN)\n_gp_button_x = GPIO(GPIO.GPIO2,GPIO.IN)\n_gp_button_y = GPIO(GPIO.GPIO3,GPIO.IN)\n_gp_button_a = GPIO(GPIO.GPIO4,GPIO.IN)\n_gp_button_b = GPIO(GPIO.GPIO5,GPIO.IN)\n\n",["_gp_button_"+e+".value()",Blockly.Python.ORDER_NONE]},Blockly.Blocks.x_ai_read_gamepad_joystick={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_gamepad_read_joystick_read_ai).appendField(new Blockly.FieldDropdown([[Blockly.Msg.x_gamepad_read_joystick_read_iot_x,"0"],[Blockly.Msg.x_gamepad_read_joystick_read_iot_y,"1"]]),"type").appendField(Blockly.Msg.x_gamepad_read_joystick_read_after_ai),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(GAMEPAD_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.x_ai_read_gamepad_joystick=function(t){var e=t.getFieldValue("type");return Blockly.Python.definitions_.gamepad_joystick_def="from machine import I2C\nfrom ads1x15 import ADS1115\n\n_adc_i2c = I2C(I2C.I2C0, freq=100000, scl=24, sda=23)\n_joystick_adc = ADS1115(_adc_i2c, 0x48, 1)\n\n",["int(_joystick_adc.read(channel1="+e+")/25.75)",Blockly.Python.ORDER_NONE]},Blockly.Blocks.x_ai_read_gamepad_joystick_check={init:function(){this.appendDummyInput().appendField(Blockly.Msg.x_gamepad_read_joystick_when_ai).appendField(new Blockly.FieldDropdown([[Blockly.Msg.x_gamepad_read_joystick_when_top_ai,"top"],[Blockly.Msg.x_gamepad_read_joystick_when_bottom_ai,"bottom"],[Blockly.Msg.x_gamepad_read_joystick_when_left_ai,"left"],[Blockly.Msg.x_gamepad_read_joystick_when_right_ai,"right"],[Blockly.Msg.x_gamepad_read_joystick_when_not_ai,"still"]]),"type"),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(GAMEPAD_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.x_ai_read_gamepad_joystick_check=function(t){var e=t.getFieldValue("type");return Blockly.Python.definitions_.gamepad_joystick_def="from machine import I2C\nfrom ads1x15 import ADS1115\n\n_adc_i2c = I2C(I2C.I2C0, freq=100000, scl=24, sda=23)\n_joystick_adc = ADS1115(_adc_i2c, 0x48, 1)\n\n",Blockly.Python.definitions_.gamepad_joystick_check_direction_def='def _read_direction():\n if (int(_joystick_adc.read(channel1=0)/25.75) > 400) and (int(_joystick_adc.read(channel1=0)/25.75) < 600) and (int(_joystick_adc.read(channel1=1)/25.75) > 400) and (int(_joystick_adc.read(channel1=1)/25.75) < 600):\n return "still" \n elif int(_joystick_adc.read(channel1=1)/25.75) > 600:\n return "left"\n elif int(_joystick_adc.read(channel1=1)/25.75) < 400:\n return "right"\n elif int(_joystick_adc.read(channel1=0)/25.75) > 600:\n return "top"\n elif int(_joystick_adc.read(channel1=0)/25.75) < 400:\n return "bottom"\n\n',['_read_direction() == "'+e+'"',Blockly.Python.ORDER_NONE]};var ESP32_NBIOT_COLOR="#629978";Blockly.Blocks.esp32_nbiot_setup={init:function(){var t=getLocalStorage("type");this.appendDummyInput().appendField(new Blockly.FieldImage("blockly/media/nbiot_esp32_header.png",110,40,{alt:"*",flipRtl:"FALSE"})),1==t?this.appendDummyInput().appendField(new Blockly.FieldDropdown([[Blockly.Msg.nbiot_module_which_module_ai,"ai"],[Blockly.Msg.nbiot_module_which_module_iot,"iot"]]),"module_type"):this.appendDummyInput().appendField(new Blockly.FieldDropdown([[Blockly.Msg.nbiot_module_which_module_iot,"iot"],[Blockly.Msg.nbiot_module_which_module_ai,"ai"]]),"module_type"),this.appendDummyInput().appendField(Blockly.Msg.nbiot_module_init),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ESP32_NBIOT_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.esp32_nbiot_setup=function(t){var e=t.getFieldValue("module_type");if("iot"==e){Blockly.Python.addVariable("_nbiot_serial_read",'_nbiot_serial_read = ""',!0),Blockly.Python.addVariable("_nbiot_readings",'_nbiot_readings = ""',!0),Blockly.Python.addVariable("_nbiot_power_on_status","_nbiot_power_on_status = False",!0),Blockly.Python.addVariable("_nbiot_internet_status","_nbiot_internet_status = False",!0),Blockly.Python.addVariable("_nbiot_internet_ip_address",'_nbiot_internet_ip_address = ""',!0),Blockly.Python.definitions_.import_definition='from machine import UART\nfrom machine import Timer\nimport ubinascii as binascii\nimport time\n\n_nbiot_serial = UART(2,rx=17, tx=16, baudrate=115200, timeout=10)\n\n_nbiot_serial_timer = Timer(1)\n_nbiot_serial_timer.init(period=50, mode=Timer.PERIODIC, callback=lambda t: _read_nbiot_serial(_nbiot_serial))\n\ndef _read_nbiot_serial(uart):\n global _nbiot_readings, _nbiot_power_on_status, _nbiot_internet_status, _nbiot_internet_ip_address\n if _nbiot_serial.any():\n _nbiot_serial_read = _nbiot_serial.readline().decode("utf-8")\n _nbiot_serial_read = _nbiot_serial_read.strip()\n _nbiot_readings = _nbiot_serial_read.strip()\n\n if _nbiot_serial_read == "+CPIN: READY":\n _nbiot_power_on_status = True\n print("NB-IoT Module Initiated!\\n")\n _nbiot_serial.write(b\'AT+CMSYSCTRL=0,2,50,300,100,800\\r\\n\')\n\n if "+IP" in _nbiot_serial_read:\n _nbiot_internet_status = True\n _nbiot_internet_ip_address = _nbiot_serial_read[5:len(_nbiot_serial_read)]\n';var n=""}else if("ai"==e){Blockly.Python.addVariable("_nbiot_serial_read",'_nbiot_serial_read = ""',!0),Blockly.Python.addVariable("_nbiot_readings",'_nbiot_readings = ""',!0),Blockly.Python.addVariable("_nbiot_power_on_status","_nbiot_power_on_status = False",!0),Blockly.Python.addVariable("_nbiot_internet_status","_nbiot_internet_status = False",!0),Blockly.Python.addVariable("_nbiot_internet_ip_address",'_nbiot_internet_ip_address = ""',!0),Blockly.Python.definitions_.import_definition='import machine, time\nfrom fpioa_manager import fm\nfrom machine import Timer\n\nfm.register(14,fm.fpioa.UART2_TX)\nfm.register(13,fm.fpioa.UART2_RX)\n\n_nbiot_serial = machine.UART(machine.UART.UART2,115200, 8, None, 1, timeout=50)\n\ndef _on_timer(timer):\n _read_nbiot_serial(_nbiot_serial)\n\n_periodic_tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PERIODIC, period=1, callback=_on_timer, arg=_on_timer)\n_periodic_tim.start()\n\ndef _read_nbiot_serial(uart):\n global _nbiot_readings, _nbiot_power_on_status, _nbiot_internet_status, _nbiot_internet_ip_address\n if _nbiot_serial.any():\n _nbiot_serial_read = _nbiot_serial.readline().decode("utf-8")\n print(_nbiot_serial_read)\n _nbiot_serial_read = _nbiot_serial_read.strip()\n _nbiot_readings = _nbiot_serial_read.strip()\n\n if _nbiot_serial_read == "+CPIN: READY":\n _nbiot_power_on_status = True\n print("NB-IoT Module Initiated!\\n")\n _nbiot_serial.write(b\'AT+CMSYSCTRL=0,2,50,300,100,800\\r\\n\')\n\n if "+IP" in _nbiot_serial_read:\n _nbiot_internet_status = True\n _nbiot_internet_ip_address = _nbiot_serial_read[5:len(_nbiot_serial_read)]\n print("NB-IoT is Online! Public IP is: " + str(_nbiot_internet_ip_address))\n\n_nbiot_serial_read = ""\n_nbiot_readings = ""\n_nbiot_power_on_status = False\n_nbiot_internet_status = False\n_nbiot_internet_ip_address = ""\n';n=""}return n},Blockly.Blocks.esp32_nbiot_get_power_status={init:function(){this.appendDummyInput().appendField(Blockly.Msg.nbiot_module_power),this.setOutput(!0,null),this.setColour(ESP32_NBIOT_COLOR),this.setTooltip(Blockly.Msg.esp32_nbiot_get_power_status_TOOLTIP),this.setHelpUrl("")}},Blockly.Python.esp32_nbiot_get_power_status=function(t){return["_nbiot_power_on_status",Blockly.Python.ORDER_NONE]},Blockly.Blocks.esp32_nbiot_get_network_status={init:function(){this.appendDummyInput().appendField(Blockly.Msg.nbiot_module_connectivity),this.setOutput(!0,null),this.setColour(ESP32_NBIOT_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.esp32_nbiot_get_network_status=function(t){return["_nbiot_internet_status",Blockly.Python.ORDER_NONE]},Blockly.Blocks.esp32_nbiot_get_network_ip={init:function(){this.appendDummyInput().appendField(Blockly.Msg.nbiot_module_ip),this.setOutput(!0,null),this.setColour(ESP32_NBIOT_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.esp32_nbiot_get_network_ip=function(t){return["_nbiot_internet_ip_address",Blockly.Python.ORDER_NONE]},Blockly.Blocks.esp32_nbiot_onenet_init={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage("blockly/media/nbiot_onenet.png",200,60,{alt:"*",flipRtl:"FALSE"})),this.appendDummyInput().appendField(Blockly.Msg.nbiot_onenet_title),this.appendValueInput("product_id").setCheck(null).appendField(Blockly.Msg.nbiot_onenet_connect_productid),this.appendValueInput("device_id").setCheck(null).appendField(Blockly.Msg.nbiot_onenet_connect_deviceid),this.appendValueInput("device_apikey").setCheck(null).appendField(Blockly.Msg.nbiot_onenet_connect_device_api),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ONENET_BLOCK_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.esp32_nbiot_onenet_init=function(t){var e=Blockly.Python.valueToCode(t,"product_id",Blockly.Python.ORDER_ATOMIC),n=Blockly.Python.valueToCode(t,"device_id",Blockly.Python.ORDER_ATOMIC),i=Blockly.Python.valueToCode(t,"device_apikey",Blockly.Python.ORDER_ATOMIC);Blockly.Python.addVariable("_nbiot_onenet_product_id","",!0),Blockly.Python.addVariable("_nbiot_onenet_device_id","",!0),Blockly.Python.addVariable("_nbiot_onent_device_apikey","",!0),Blockly.Python.addVariable("_nbiot_onenet_connection_status","",!0),Blockly.Python.addVariable("_nbiot_onenet_read_anything","",!0),Blockly.Python.addVariable("_nbiot_onenet_init_state","",!0),Blockly.Python.addSetup("setup","_nbiot_onenet_init_state = False\n_nbiot_onenet_connection_status = False\n_nbiot_onenet_read_anything = False\n_nbiot_onenet_product_id = "+e+"\n_nbiot_onenet_device_id = "+n+"\n_nbiot_onent_device_apikey = "+i+'\n\ndef _nbiot_send_onenet_data(data):\n _nbiot_send_message = data\n _nbiot_send_data_content = binascii.hexlify(_nbiot_send_message).decode("utf-8")\n _nbiot_send_header = ",0300" + str(hex(len(_nbiot_send_message)).split(\'x\')[-1])\n _nbiot_send_at_content = "AT+MQTTPUB=$dp,0,1,0," + str(len(_nbiot_send_message)+len(_nbiot_send_header[1:7].replace("0",""))) + ",0300" + str(hex(len(_nbiot_send_message)).split(\'x\')[-1]) + str(_nbiot_send_data_content)\n return _nbiot_send_at_content\n\ndef _nbiot_read_onenet_data(raw_response):\n _nbiot_receive = raw_response\n if "+MQTTPUBLISH" not in raw_response:\n return ""\n elif "+MQTTPUBLISH" in raw_response:\n _nbiot_occur = -1\n for i in range(0, 6): _nbiot_occur = _nbiot_receive.find(",", _nbiot_occur + 1)\n return _nbiot_receive[_nbiot_occur+1:len(_nbiot_receive)]\n\ndef _read_nbiot_onenet(_incoming_data):\n global _nbiot_onenet_connection_status, _nbiot_onenet_read_anything\n\n if "+MQTTOPEN: OK" in _incoming_data:\n _nbiot_onenet_connection_status = True\n # print("OneNET Connected!")\n if "+MQTTOPEN: FAIL" in _incoming_data:\n _nbiot_onenet_connection_status = False\n # print("OneNET Lost Connection!")\n\n if "+MQTTPUBLISH" in _incoming_data:\n _nbiot_onenet_read_anything = True\n else:\n _nbiot_onenet_read_anything = False\n\n if "+MQTTDISC" in _incoming_data:\n _nbiot_onenet_read_anything = False\n _nbiot_onenet_configuration = "AT+MQTTCFG=183.230.40.39,6002,"+_nbiot_onenet_device_id+",100,"+_nbiot_onenet_product_id+","+_nbiot_onent_device_apikey+",1,0\\r\\n"\n print("Enabling OneNET Connection...")\n _nbiot_serial.write(_nbiot_onenet_configuration.encode())\n time.sleep_ms(100)\n _nbiot_serial.write(b\'AT+MQTTOPEN=1,1,0\\r\\n\')\n\ndef _init_onenet_connection():\n _nbiot_onenet_configuration = "AT+MQTTCFG=183.230.40.39,6002,"+_nbiot_onenet_device_id+",100,"+_nbiot_onenet_product_id+","+_nbiot_onent_device_apikey+",1,0\\r\\n"\n print("Enabling OneNET Connection...")\n _nbiot_serial.write(_nbiot_onenet_configuration.encode())\n time.sleep_ms(100)\n _nbiot_serial.write(b\'AT+MQTTOPEN=1,1,0\\r\\n\')\n time.sleep_ms(100)\n');return"if (_nbiot_internet_status == True) and (_nbiot_onenet_init_state == False) and (_nbiot_onenet_connection_status == False):\n _init_onenet_connection()\n _nbiot_onenet_init_state = True\n\n_read_nbiot_onenet(_nbiot_readings)\n"},Blockly.Blocks.esp32_nbiot_onenet_connection_status={init:function(){this.appendDummyInput().appendField(Blockly.Msg.nbiot_onenet_connectivity),this.setOutput(!0,null),this.setColour(ONENET_BLOCK_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.esp32_nbiot_onenet_connection_status=function(t){return["_nbiot_onenet_connection_status",Blockly.Python.ORDER_NONE]},Blockly.Blocks.iot_service_nbiot_onenet={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage("blockly/media/nbiot_onenet_send.png",210,60,{alt:"*",flipRtl:"FALSE"})),this.appendDummyInput().appendField(Blockly.Msg.nbiot_onenet_send_title),this.itemCount_=1,this.updateShape_(),this.setMutator(new Blockly.Mutator(["iot_service_nbiot_onenet_create_with_item"])),this.setColour(ONENET_BLOCK_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setHelpUrl("")},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("iot_service_nbiot_onenet_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i<this.itemCount_;i++){var o=t.newBlock("iot_service_nbiot_onenet_create_with_item");o.initSvg(),n.connect(o.previousConnection),n=o.nextConnection}return e},compose:function(t){for(var e=t.getInputTargetBlock("STACK"),n=[];e;)n.push(e.valueConnection_),e=e.nextConnection&&e.nextConnection.targetBlock();for(var i=0;i<this.itemCount_;i++){var o=this.getInput("ADD"+i).connection.targetConnection;o&&-1==n.indexOf(o)&&o.disconnect()}this.itemCount_=n.length,this.updateShape_();for(i=0;i<this.itemCount_;i++)Blockly.Mutator.reconnect(n[i],this,"ADD"+i)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),n=0;e;){var i=this.getInput("ADD"+n);e.valueConnection_=i&&i.connection.targetConnection,n++,e=e.nextConnection&&e.nextConnection.targetBlock()}},updateShape_:function(){for(var t=0;t<this.itemCount_;t++){if(!this.getInput("ADD"+t))this.appendValueInput("ADD"+t).appendField(Blockly.Msg.nbiot_onenet_send_property).appendField(new Blockly.FieldTextInput("Property"+t),"field"+t)}for(;this.getInput("ADD"+t);)this.removeInput("ADD"+t),t++}},Blockly.Blocks.iot_service_nbiot_onenet_create_with_container={init:function(){this.setColour(ONENET_BLOCK_COLOR),this.appendDummyInput().appendField("Items"),this.appendStatementInput("STACK"),this.setTooltip(""),this.contextMenu=!1}},Blockly.Blocks.iot_service_nbiot_onenet_create_with_item={init:function(){this.setColour(ONENET_BLOCK_COLOR),this.appendDummyInput().appendField("Field"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(""),this.contextMenu=!1}},Blockly.Python.iot_service_nbiot_onenet=function(t){for(var e="'{",n=0;n<this.itemCount_;n++)e+='"'+t.getFieldValue("field"+n)+'":"\' + str('+(Blockly.Python.valueToCode(this,"ADD"+n,Blockly.Python.ORDER_NONE)||"")+") + '\",";return"_data_to_be_send = "+(e+"}'").slice(0,-3)+'}\\r\\n\'\n_data_add_rn = _nbiot_send_onenet_data(_data_to_be_send) + "\\r\\n"\n_data_for_at = _data_add_rn.encode()\n_nbiot_serial.write(_data_for_at)\n\n'},Blockly.Blocks.iot_service_nbiot_onenet_read={init:function(){this.appendDummyInput().appendField(Blockly.Msg.nbiot_onenet_when_incoming_msg),this.appendValueInput("message").setCheck(null),this.appendDummyInput().appendField(Blockly.Msg.nbiot_onenet_when_incoming_msg_when),this.appendStatementInput("exec").setCheck(null).appendField(Blockly.Msg.nbiot_onenet_when_incoming_msg_exec),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ONENET_BLOCK_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.iot_service_nbiot_onenet_read=function(t){return"if (_nbiot_read_onenet_data(_nbiot_readings) == "+Blockly.Python.valueToCode(t,"message",Blockly.Python.ORDER_ATOMIC)+"):\n"+Blockly.Python.statementToCode(t,"exec")+"\n"},Blockly.Blocks.esp32_nbiot_onenet_read_value={init:function(){this.appendDummyInput().appendField(Blockly.Msg.nbiot_onenet_receive_command),this.setOutput(!0,null),this.setColour(ONENET_BLOCK_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.esp32_nbiot_onenet_read_value=function(t){return["_nbiot_read_onenet_data(_nbiot_readings)",Blockly.Python.ORDER_NONE]},Blockly.Blocks.iot_service_nbiot_cococloud_read={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage("blockly/media/nbiot_cococloud_get.png",260,60,{alt:"*",flipRtl:"FALSE"})),this.appendDummyInput().appendField(Blockly.Msg.nbiot_cococloud_get_event_title),this.appendDummyInput().appendField(Blockly.Msg.nbiot_cococloud_get_event_api).appendField(new Blockly.FieldTextInput("ENTER_YOUR_EVENT_API_KEY"),"t_api"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(COCOCLOUD_BLOCK_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.iot_service_nbiot_cococloud_read=function(t){t.getFieldValue("t_api");return"\n"},Blockly.Blocks.iot_service_nbiot_cococloud_read_data={init:function(){this.appendDummyInput().appendField(Blockly.Msg.nbiot_cococloud_get_property),this.appendValueInput("property").setCheck(null),this.appendDummyInput().appendField(Blockly.Msg.nbiot_cococloud_get_data),this.setInputsInline(!0),this.setOutput(!0,null),this.setColour(COCOCLOUD_BLOCK_COLOR),this.setTooltip(""),this.setHelpUrl("")}},Blockly.Python.iot_service_nbiot_cococloud_read_data=function(t){Blockly.Python.valueToCode(t,"property",Blockly.Python.ORDER_ATOMIC);return["\n",Blockly.Python.ORDER_NONE]},Blockly.Blocks.iot_service_nbiot_cococloud={init:function(){this.appendDummyInput().appendField(new Blockly.FieldImage("blockly/media/nbiot_cococloud_send.png",260,60,{alt:"*",flipRtl:"FALSE"})),this.appendDummyInput().appendField(Blockly.Msg.nbiot_cococloud_send_title),this.appendDummyInput().appendField(Blockly.Msg.nbiot_cococloud_send_api).appendField(new Blockly.FieldTextInput("ENTET_YOUT_EVENT_API_KEY"),"t_api"),this.itemCount_=1,this.updateShape_(),this.setMutator(new Blockly.Mutator(["iot_service_nbiot_cococloud_create_with_item"])),this.setColour(COCOCLOUD_BLOCK_COLOR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Blockly.Msg.iot_service_nbiot_cococloud_TOOLTIP),this.setHelpUrl("")},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("iot_service_nbiot_cococloud_create_with_container");e.initSvg();for(var n=e.getInput("STACK").connection,i=0;i<this.itemCount_;i++){var o=t.newBlock("iot_service_nbiot_cococloud_create_with_item");o.initSvg(),n.connect(o.previousConnection),n=o.nextConnection}return e},compose:function(t){for(var e=t.getInputTargetBlock("STACK"),n=[];e;)n.push(e.valueConnection_),e=e.nextConnection&&e.nextConnection.targetBlock();for(var i=0;i<this.itemCount_;i++){var o=this.getInput("ADD"+i).connection.targetConnection;o&&-1==n.indexOf(o)&&o.disconnect()}this.itemCount_=n.length,this.updateShape_();for(i=0;i<this.itemCount_;i++)Blockly.Mutator.reconnect(n[i],this,"ADD"+i)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),n=0;e;){var i=this.getInput("ADD"+n);e.valueConnection_=i&&i.connection.targetConnection,n++,e=e.nextConnection&&e.nextConnection.targetBlock()}},updateShape_:function(){for(var t=0;t<this.itemCount_;t++){if(!this.getInput("ADD"+t))this.appendValueInput("ADD"+t).appendField(Blockly.Msg.nbiot_cococloud_send_property).appendField(new Blockly.FieldTextInput("Property"+t),"field"+t)}for(;this.getInput("ADD"+t);)this.removeInput("ADD"+t),t++}},Blockly.Blocks.iot_service_nbiot_cococloud_create_with_container={init:function(){this.setColour(ESP32_NBIOT_COLOR),this.appendDummyInput().appendField("Items"),this.appendStatementInput("STACK"),this.setTooltip(""),this.contextMenu=!1}},Blockly.Blocks.iot_service_nbiot_cococloud_create_with_item={init:function(){this.setColour(COCOCLOUD_BLOCK_COLOR),this.appendDummyInput().appendField("Field"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(""),this.contextMenu=!1}},Blockly.Python.iot_service_nbiot_cococloud=function(t){var e=t.getFieldValue("t_api");Blockly.Python.addVariable("_nbiot_cococloud_send_init_state","",!0),Blockly.Python.addVariable("_nbiot_cococloud_json_content","",!0),Blockly.Python.definitions_.import="_nbiot_cococloud_send_init_state = False\n\ndef _nbiot_cococloud_send(data):\n _nbiot_cococloud_send_data = 'AT+HTTPCONTENT=0,\"'+ data + '\"\\r\\n'\n print(_nbiot_cococloud_send_data)\n _nbiot_serial.write(b'AT+HTTPCLOSE=0\\r\\n')\n time.sleep_ms(500)\n _nbiot_serial.write(b'AT+HTTPCREATE=\"http://api.cocorobo.cn/\"\\r\\n')\n time.sleep_ms(500)\n _nbiot_serial.write(b'AT+HTTPHEADER=0,\"Content-Type: application/json\\\\r\\\\n\"\\r\\n')\n time.sleep_ms(500)\n _nbiot_serial.write(_nbiot_cococloud_send_data.encode())\n time.sleep_ms(500)\n _nbiot_serial.write(b'AT+HTTPSEND=0,1,\"/iot/data/eventAPIKey/"+e+"\"\\r\\n')\n time.sleep_ms(500)\n";for(var n="'{",i=0;i<this.itemCount_;i++)n+='"'+t.getFieldValue("field"+i)+'":"\' + str('+(Blockly.Python.valueToCode(this,"ADD"+i,Blockly.Python.ORDER_NONE)||"")+") + '\",";return"_nbiot_cococloud_json_content = "+(n+"}'").slice(0,-3)+"}'\n_nbiot_cococloud_send(_nbiot_cococloud_json_content)\n"};