From 30ff827d7ade97ae39c26197b1e4fdd8b30124e8 Mon Sep 17 00:00:00 2001 From: Zhi-Wei Cai Date: Thu, 28 Sep 2017 07:23:26 +0800 Subject: [PATCH 1/3] Otto related changes. --- .manifest.5196.json | 0 .manifest.5247.json | 0 blockly/arduino_compressed.js | 254 +- blockly/blockly_compressed.js | 206 +- blockly/blockly_uncompressed.js | 3068 +++++++++++----------- blockly/blocks/otto.js | 45 + blockly/blocks_compressed.js | 540 ++-- blockly/generators/arduino/otto.js | 91 +- blockly/i18n/common.pyc | Bin 8141 -> 8108 bytes blockly/msg/json/en.json | 2 +- closure-library/closure/bin/calcdeps.pyc | Bin 18176 -> 18176 bytes offline-editor/js/arduino_compressed.js | 254 +- offline-editor/js/blockly_compressed.js | 206 +- offline-editor/js/blocks_compressed.js | 540 ++-- offline-editor/manifest.json | 4 +- 15 files changed, 2649 insertions(+), 2561 deletions(-) delete mode 100644 .manifest.5196.json delete mode 100644 .manifest.5247.json diff --git a/.manifest.5196.json b/.manifest.5196.json deleted file mode 100644 index e69de29..0000000 diff --git a/.manifest.5247.json b/.manifest.5247.json deleted file mode 100644 index e69de29..0000000 diff --git a/blockly/arduino_compressed.js b/blockly/arduino_compressed.js index 965e706..2704686 100644 --- a/blockly/arduino_compressed.js +++ b/blockly/arduino_compressed.js @@ -13,43 +13,32 @@ Blockly.Arduino.init=function(a){Blockly.Arduino.definitions_=Object.create(null Unsigned_Long:"unsigned long"},d=0;d";Blockly.Arduino.setups_.init_aerobot="initAERobot();";Blockly.Arduino.setups_.seed_aerobot="randomSeed(1);\n";return"move_"+a+"();\n"}; +Blockly.Arduino.scrub_=function(a,b){if(null===b)return"";var c="";if(!a.outputConnection||!a.outputConnection.targetConnection){var d=a.getCommentText();d&&(c+=Blockly.Arduino.prefixLines(d,"// ")+"\n");for(var e=0;e= ")+c+"; "+a+(e?"++":"--")+") {\n"+d+"}\n"}else d="",e=b,b.match(/^\w+$/)||b.match(/^-?\d+(\.\d+)?$/)||(e=Blockly.Arduino.variableDB_.getDistinctName(a+"_start",Blockly.Variables.NAME_TYPE),d+="int "+e+" = "+b+";\n"),b=c,c.match(/^\w+$/)||c.match(/^-?\d+(\.\d+)?$/)||(b=Blockly.Arduino.variableDB_.getDistinctName(a+"_end",Blockly.Variables.NAME_TYPE),d+="int "+b+" = "+c+";\n"),d+="for ("+a+" = "+e+";\n ("+e+" <= "+b+") ? "+a+ +" <= "+b+" : "+a+" >= "+b+";\n "+a+" += ("+e+" <= "+b+") ? 1 : -1) {\n"+branch0+"}\n";return d};Blockly.Arduino.controls_whileUntil=function(a){var b="UNTIL"==a.getFieldValue("MODE"),c=Blockly.Arduino.valueToCode(a,"BOOL",Blockly.Arduino.ORDER_NONE)||"false",d=Blockly.Arduino.statementToCode(a,"DO");d=Blockly.Arduino.addLoopTrap(d,a.id);b&&(c="!"+c);return"while ("+c+") {\n"+d+"}\n"}; +Blockly.Arduino.controls_while=function(a){var b=Blockly.Arduino.valueToCode(a,"BOOL",Blockly.Arduino.ORDER_NONE)||"false",c=Blockly.Arduino.statementToCode(a,"DO");c=Blockly.Arduino.addLoopTrap(c,a.id);return"while ("+b+") {\n"+c+"}\n"}; +Blockly.Arduino.controls_repeat=function(a){var b=Number(a.getFieldValue("TIMES")),c=Blockly.Arduino.statementToCode(a,"DO");c=Blockly.Arduino.addLoopTrap(c,a.id);a=Blockly.Arduino.variableDB_.getDistinctName("count",Blockly.Variables.NAME_TYPE);return"for (int "+a+" = 0; "+a+" < "+b+"; "+a+"++) {\n"+c+"}\n"};Blockly.Arduino.controls_flow_statements=function(a){switch(a.getFieldValue("FLOW")){case "BREAK":return"break;\n";case "CONTINUE":return"continue;\n"}throw"Unknown flow statement.";}; +Blockly.Arduino.controls_return=function(a){return"return "+(Blockly.Arduino.valueToCode(a,"VAL",Blockly.Arduino.ORDER_NONE)||"")+";\n"};Blockly.Arduino.involt={};Blockly.Arduino.involt_directmode=function(){var a="TRUE"==this.getFieldValue("BOOL")?"true":"false";Blockly.Arduino.definitions_.define_directmode="boolean directMode = "+a+";\n";return""}; +Blockly.Arduino.involt_chromereceive=function(){Blockly.Arduino.definitions_.define_chromeDigital="int chromeDigital[] = {};\n";Blockly.Arduino.definitions_.define_stringV='String V = "V";\n';Blockly.Arduino.setups_["setup_serial_"+profile["default"].serial]="Serial.begin(115200);\n";Blockly.Arduino.definitions_.define_chromeSend='void chromeSend(int pinNumber, int sendValue)\n{\n String A = "A";\n String E = "E";\n Serial.println(A+pinNumber+V+sendValue+E);\n}\n\n';Blockly.Arduino.definitions_.define_chromeReceive= +'void chromeReceive()\n{\n String chrome;\n String pwm = "P";\n String dig = "D";\n int pin;\n int val;\n int chromeLen;\n if(Serial.available() > 0){\n String chrome = Serial.readStringUntil(\'\u00a5n\');\n int chromeLen = chrome.length();\n String pinRaw = chrome.substring(1,chrome.indexOf(V));\n String valRaw = chrome.substring(chrome.indexOf(V)+1,chromeLen);\n pin = pinRaw.toInt();\n val = valRaw.toInt();\n \n if(directMode){\n if (chrome.indexOf(dig) == 0){\n digitalWrite(pin, val);\n }\n else if (chrome.indexOf(pwm) == 0 ){\n analogWrite(pin, val);\n }\n }\n else{\n chromeDigital[pin]=val;\n }\n }\n}\n\n'; +return"chromeReceive();\n"};Blockly.Arduino.involt_sendvalue=function(){return"pinMode("+this.getFieldValue("PIN")+",OUTPUT);\n"};Blockly.Arduino.involt_receivevalue=function(){return"chromeSend(0, analogRead("+this.getFieldValue("PIN")+"));\n"};Blockly.Arduino.variables={};Blockly.Arduino.variables_get=function(a){return[Blockly.Arduino.variableDB_.getName(this.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE),Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.variables_set=function(a){var b=Blockly.Arduino.valueToCode(a,"VALUE",Blockly.Arduino.ORDER_ASSIGNMENT)||"0",c=Blockly.Arduino.variableDB_.getName(this.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE);a=Blockly.Variables.allVariablesAndTypes(this.workspace);for(var d=0;d";Blockly.Arduino.definitions_.define_adafruit_ledbackpack='#include "Adafruit_LEDBackpack.h"';Blockly.Arduino.definitions_.define_adafruit_gfx='#include "Adafruit_GFX.h"';Blockly.Arduino.definitions_.define_sevenseg="Adafruit_7segment sevenseg = Adafruit_7segment();\n";Blockly.Arduino.setups_["setup_sevenseg_"+a]="sevenseg.begin("+a+");";return""}; +Blockly.Arduino.i2c_sevenseg_print=function(){var a=Blockly.Arduino.valueToCode(this,"NUM",Blockly.Arduino.ORDER_ATOMIC)||"7777";9999a&&(a=1);return"sevenseg.print("+a+");\n"};Blockly.Arduino.i2c_sevenseg_writedisplay=function(){return"sevenseg.writeDisplay();\n"}; +Blockly.Arduino.i2c_sevenseg_writedigitnum=function(){var a=Blockly.Arduino.valueToCode(this,"POSITION",Blockly.Arduino.ORDER_ATOMIC)||"0",b=Blockly.Arduino.valueToCode(this,"NUM",Blockly.Arduino.ORDER_ATOMIC)||"0",c=Blockly.Arduino.valueToCode(this,"DOTS",Blockly.Arduino.ORDER_NONE)||"false";9",GTE:">="}; +Blockly.Arduino.logic_operation=function(){var a="AND"==this.getFieldValue("OP")?"&&":"||",b="&&"==a?Blockly.Arduino.ORDER_LOGICAL_AND:Blockly.Arduino.ORDER_LOGICAL_OR,c=Blockly.Arduino.valueToCode(this,"A",b)||"false",d=Blockly.Arduino.valueToCode(this,"B",b)||"false";return[c+" "+a+" "+d,b]};Blockly.Arduino.logic_negate=function(){var a=Blockly.Arduino.ORDER_UNARY_PREFIX;return["!"+(Blockly.Arduino.valueToCode(this,"BOOL",a)||"false"),a]}; +Blockly.Arduino.logic_boolean=function(){return["TRUE"==this.getFieldValue("BOOL")?"true":"false",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.logic_null=function(){return["NULL",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.times={};Blockly.Arduino.delay=function(){return"delay("+this.getFieldValue("DELAY_TIME")+");\n"};Blockly.Arduino.delay_custom=function(){return"delay("+(Blockly.Arduino.valueToCode(this,"DELAY_TIME",Blockly.Arduino.ORDER_ATOMIC)||"1000")+");\n"};Blockly.Arduino.delayMicroseconds_custom=function(){return"delayMicroseconds("+(Blockly.Arduino.valueToCode(this,"DELAY_TIME",Blockly.Arduino.ORDER_ATOMIC)||"1000")+");\n"}; +Blockly.Arduino.delayMicroseconds=function(){return"delayMicroseconds("+this.getFieldValue("DELAY_TIME")+");\n"};Blockly.Arduino.millis=function(){return["millis()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.micros=function(){return["micros()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.aerobot={};Blockly.Arduino.aerobot_move=function(){var a=this.getFieldValue("DIRECTION");Blockly.Arduino.definitions_.include_aerobot="#include ";Blockly.Arduino.setups_.init_aerobot="initAERobot();";Blockly.Arduino.setups_.seed_aerobot="randomSeed(1);\n";return"move_"+a+"();\n"}; Blockly.Arduino.aerobot_rotate=function(){var a=this.getFieldValue("DIRECTION");Blockly.Arduino.definitions_.include_aerobot="#include ";Blockly.Arduino.setups_.init_aerobot="initAERobot();";Blockly.Arduino.setups_.seed_aerobot="randomSeed(1);\n";return"rotate_"+a+"();\n"}; Blockly.Arduino.aerobot_lightsens=function(){var a=this.getFieldValue("SENS");Blockly.Arduino.definitions_.include_aerobot="#include ";Blockly.Arduino.setups_.init_aerobot="initAERobot();\n";Blockly.Arduino.setups_.seed_aerobot="randomSeed(1);\n";return"lightSens("+a+");\n"}; Blockly.Arduino.aerobot_distsens=function(){var a=this.getFieldValue("SENS");Blockly.Arduino.definitions_.include_aerobot="#include ";Blockly.Arduino.setups_.init_aerobot="initAERobot();";Blockly.Arduino.setups_.seed_aerobot="randomSeed(1);\n";return"distSens("+a+");\n"}; Blockly.Arduino.aerobot_linesens=function(){this.getFieldValue("SENS");Blockly.Arduino.definitions_.include_aerobot="#include ";Blockly.Arduino.setups_.init_aerobot="initAERobot();";Blockly.Arduino.setups_.seed_aerobot="randomSeed(1);\n";return["lineSens();\n",Blockly.Arduino.ORDER_ATOMIC]};function hexToR(a){return parseInt(cutHex(a).substring(0,2),16)}function hexToG(a){return parseInt(cutHex(a).substring(2,4),16)}function hexToB(a){return parseInt(cutHex(a).substring(4,6),16)} -function cutHex(a){return"#"==a.charAt(0)?a.substring(1,7):a}Blockly.Arduino.aerobot_setled=function(){var a=this.getFieldValue("RGB");Blockly.Arduino.definitions_.include_aerobot="#include ";Blockly.Arduino.setups_.init_aerobot="initAERobot();";Blockly.Arduino.setups_.seed_aerobot="randomSeed(1);\n";return"setLED("+hexToR(a)+","+hexToG(a)+","+hexToB(a)+");\n"}; -// Copyright 2012 Google Inc. Apache License 2.0 -Blockly.Arduino.array={};Blockly.Arduino.array_create_with=function(){for(var a=Array(this.itemCount_),b=0;b\n";Blockly.Arduino.definitions_["var_servo"+a]="Servo servo_"+a+";\n";Blockly.Arduino.setups_["setup_servo_"+a]="servo_"+a+".attach("+a+");\n";return"servo_"+a+".write("+b+");\ndelay("+c+");\n"}; -Blockly.Arduino.servo_read_degrees=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.definitions_.define_servo="#include <Servo.h>\n";Blockly.Arduino.definitions_["var_servo"+a]="Servo servo_"+a+";\n";Blockly.Arduino.setups_["setup_servo_"+a]="servo_"+a+".attach("+a+");\n";return"servo_"+a+".read()"};Blockly.Arduino.blynk={}; -Blockly.Arduino.blynk_ethernet_begin=function(){this.getFieldValue("VERSION");var a=Blockly.Arduino.valueToCode(this,"AUTH",Blockly.Arduino.ORDER_ATOMIC)||"",b=Blockly.Arduino.valueToCode(this,"MAC_ADDRESS",Blockly.Arduino.ORDER_ATOMIC)||"0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED";b=b.replace(/"/g,"");Blockly.Arduino.definitions_.define_spi="#include ";Blockly.Arduino.definitions_.define_ethernet="#include ";Blockly.Arduino.definitions_.define_blynk_simple_ethernet="#define BLYNK_PRINT Serial\n#include \n"; -Blockly.Arduino.definitions_.define_arduino_mac="byte mac[] = {"+b+"};\n";Blockly.Arduino.setups_["setup_serial_"+profile["default"].serial]="Serial.begin("+profile["default"].serial+");\n";Blockly.Arduino.setups_.setup_blynk_begin="Blynk.begin("+a+", BLYNK_DEFAULT_DOMAIN,BLYNK_DEFAULT_PORT,mac);\n";return"Blynk.run();\n"}; -Blockly.Arduino.blynk_write=function(){var a=this.getFieldValue("PIN"),b=Blockly.Arduino.statementToCode(this,"ACTION");Blockly.Arduino.definitions_["define_blynk_virtual_"+a]="BLYNK_WRITE(V"+a+")\n{\n"+b+"}\n";return""};Blockly.Arduino.blynk_param=function(){return["param."+this.getFieldValue("TYPE")+"()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.blynk_merge_param=function(){var a=this.getFieldValue("INDEX"),b=this.getFieldValue("TYPE");return["param["+a+"]."+b+"()",Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.blynk_virtual_write=function(){var a=this.getFieldValue("PIN"),b=Blockly.Arduino.valueToCode(this,"VALUE",Blockly.Arduino.ORDER_ATOMIC)||"0";return"Blynk.virtualWrite(V"+a+", "+b+");\n"}; -Blockly.Arduino.blynk_email=function(){var a=Blockly.Arduino.valueToCode(this,"ADDRESS",Blockly.Arduino.ORDER_ATOMIC)||"",b=Blockly.Arduino.valueToCode(this,"TITLE",Blockly.Arduino.ORDER_ATOMIC)||"",c=Blockly.Arduino.valueToCode(this,"BODY",Blockly.Arduino.ORDER_ATOMIC)||"";return"Blynk.email("+a+", "+b+", "+c+");\n"};Blockly.Arduino.blynk_notify=function(){return"Blynk.notify("+(Blockly.Arduino.valueToCode(this,"TEXT",Blockly.Arduino.ORDER_ATOMIC)||"")+");\n"}; -Blockly.Arduino.blynk_tweet=function(){return"Blynk.tweet("+(Blockly.Arduino.valueToCode(this,"TEXT",Blockly.Arduino.ORDER_ATOMIC)||"")+");\n"};Blockly.Arduino.blynk_connect=function(){return["Blynk.connect()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.cast={};Blockly.Arduino.cast_number=function(){var a=this.getFieldValue("TYPE"),b=Blockly.Arduino.valueToCode(this,"VAR",Blockly.Arduino.ORDER_ATOMIC)||"0";return[a+" "+b,Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.loops={}; -Blockly.Arduino.controls_for=function(){var a=Blockly.Arduino.variableDB_.getName(this.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE);var b=Blockly.Arduino.valueToCode(this,"FROM",Blockly.Arduino.ORDER_ASSIGNMENT)||"0";var c=Blockly.Arduino.valueToCode(this,"TO",Blockly.Arduino.ORDER_ASSIGNMENT)||"0";var d=Blockly.Arduino.statementToCode(this,"DO");Blockly.Arduino.INFINITE_LOOP_TRAP&&(d=Blockly.Arduino.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+d);if(b.match(/^-?\d+(\.\d+)?$/)&&c.match(/^-?\d+(\.\d+)?$/)){var e= -parseFloat(b)<=parseFloat(c);e="for ("+a+" = "+b+"; "+a+(e?" <= ":" >= ")+c+"; "+a+(e?"++":"--")+") {\n"+d+"}\n"}else e="",d=b,b.match(/^\w+$/)||b.match(/^-?\d+(\.\d+)?$/)||(d=Blockly.Arduino.variableDB_.getDistinctName(a+"_start",Blockly.Variables.NAME_TYPE),e+="int "+d+" = "+b+";\n"),b=c,c.match(/^\w+$/)||c.match(/^-?\d+(\.\d+)?$/)||(b=Blockly.Arduino.variableDB_.getDistinctName(a+"_end",Blockly.Variables.NAME_TYPE),e+="int "+b+" = "+c+";\n"),e+="for ("+a+" = "+d+";\n ("+d+" <= "+b+") ? "+a+ -" <= "+b+" : "+a+" >= "+b+";\n "+a+" += ("+d+" <= "+b+") ? 1 : -1) {\n"+branch0+"}\n";return e};Blockly.Arduino.controls_whileUntil=function(a){var b="UNTIL"==a.getFieldValue("MODE"),c=Blockly.Arduino.valueToCode(a,"BOOL",Blockly.Arduino.ORDER_NONE)||"false",d=Blockly.Arduino.statementToCode(a,"DO");d=Blockly.Arduino.addLoopTrap(d,a.id);b&&(c="!"+c);return"while ("+c+") {\n"+d+"}\n"}; -Blockly.Arduino.controls_while=function(a){var b=Blockly.Arduino.valueToCode(a,"BOOL",Blockly.Arduino.ORDER_NONE)||"false",c=Blockly.Arduino.statementToCode(a,"DO");c=Blockly.Arduino.addLoopTrap(c,a.id);return"while ("+b+") {\n"+c+"}\n"}; -Blockly.Arduino.controls_repeat=function(a){var b=Number(a.getFieldValue("TIMES")),c=Blockly.Arduino.statementToCode(a,"DO");c=Blockly.Arduino.addLoopTrap(c,a.id);a=Blockly.Arduino.variableDB_.getDistinctName("count",Blockly.Variables.NAME_TYPE);return"for (int "+a+" = 0; "+a+" < "+b+"; "+a+"++) {\n"+c+"}\n"};Blockly.Arduino.controls_flow_statements=function(a){switch(a.getFieldValue("FLOW")){case "BREAK":return"break;\n";case "CONTINUE":return"continue;\n"}throw"Unknown flow statement.";}; -Blockly.Arduino.controls_return=function(a){return"return "+(Blockly.Arduino.valueToCode(a,"VAL",Blockly.Arduino.ORDER_NONE)||"")+";\n"};Blockly.Arduino.dht={}; -Blockly.Arduino.dht_read=function(){var a=this.getFieldValue("SENSOR"),b=this.getFieldValue("PIN"),c="";switch(this.getFieldValue("TYPE")){case "h":c+="(int)(dht_"+b+"_"+a+".readHumidity())";break;case "C":c+="(int)(dht_"+b+"_"+a+".readTemperature())";break;case "F":c+="(int)(dht_"+b+"_"+a+".readTemperature(true))"}Blockly.Arduino.definitions_["define_dht_"+b+"_"+a]="#include \nDHT dht_"+b+"_"+a+"("+b+","+a+");\n";Blockly.Arduino.setups_["setup_dht_"+b+"_"+a]="dht_"+b+"_"+a+".begin();\n";return[c, -Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.ethernet={}; -Blockly.Arduino.ethernet_begin_dhcp=function(){var a=this.getFieldValue("VERSION"),b=Blockly.Arduino.valueToCode(this,"MAC_ADDRESS",Blockly.Arduino.ORDER_ATOMIC)||"0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED";b=b.replace(/"/g,"");Blockly.Arduino.definitions_.define_spi="#include ";Blockly.Arduino.definitions_.define_ethernet="#include ";Blockly.Arduino.definitions_.define_ethernet_client="EthernetClient client;";Blockly.Arduino.definitions_.define_arduino_mac="byte mac[] = {"+b+"};\n"; -return["Ethernet.begin(mac)",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.ethernet_mac_address=function(){var a=this.getFieldValue("MAC_ADDRESS_1"),b=this.getFieldValue("MAC_ADDRESS_2"),c=this.getFieldValue("MAC_ADDRESS_3"),d=this.getFieldValue("MAC_ADDRESS_4"),e=this.getFieldValue("MAC_ADDRESS_5"),f=this.getFieldValue("MAC_ADDRESS_6");return["0x"+a+", 0x"+b+", 0x"+c+", 0x"+d+", 0x"+e+", 0x"+f,Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.ethernet_localip=function(){return["Ethernet.localIP()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.ethernet_available=function(){return["client.available()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.ethernet_connected=function(){return["client.connected()",Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.ethernet_connect=function(){var a=Blockly.Arduino.valueToCode(this,"SERVER",Blockly.Arduino.ORDER_ATOMIC)||"",b=this.getFieldValue("PORT");return["client.connect("+a+","+b+")",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.ethernet_print=function(){return"client.print("+(Blockly.Arduino.valueToCode(this,"TEXT",Blockly.Arduino.ORDER_ATOMIC)||"")+");\n"}; -Blockly.Arduino.ethernet_println=function(){return"client.println("+(Blockly.Arduino.valueToCode(this,"TEXT",Blockly.Arduino.ORDER_ATOMIC)||"")+");\n"};Blockly.Arduino.ethernet_stop=function(){return"client.stop();\n"};Blockly.Arduino.ethernet_read=function(){return["(char)client.read()",Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.ethernet_get_request=function(){var a=Blockly.Arduino.valueToCode(this,"URL",Blockly.Arduino.ORDER_ATOMIC)||"",b=Blockly.Arduino.valueToCode(this,"SERVER",Blockly.Arduino.ORDER_ATOMIC)||"";a=a.replace(/\"/g,"");b=b.replace(/\"/g,"");a='client.println("GET '+a+' HTTP/1.1");\n'+('client.println(F("Host: '+b+'"));\n')+'client.println(F("Connection: close"));\n';return a+="client.println();\n"}; -Blockly.Arduino.ethernet_post_request=function(){var a=Blockly.Arduino.valueToCode(this,"URL",Blockly.Arduino.ORDER_ATOMIC)||"",b=Blockly.Arduino.valueToCode(this,"SERVER",Blockly.Arduino.ORDER_ATOMIC)||"",c=Blockly.Arduino.valueToCode(this,"POST_DATA",Blockly.Arduino.ORDER_ATOMIC)||"";a=a.replace(/\"/g,"");b=b.replace(/\"/g,"");a='client.println("POST '+a+' HTTP/1.1");\n'+('client.print(F("Host: '+b+");\n")+'client.println(F("Connection: close"));\n';a+='client.println(F("Content-Type: application/x-www-form-urlencoded"));\n'; -a+='client.println(F("Content-Length: '+c.length-2+'"));\n';return a+="client.print("+c+");\n"};Blockly.Arduino.grove={};Blockly.Arduino.grove_led=function(){var a=this.getFieldValue("PIN"),b=this.getFieldValue("STAT");Blockly.Arduino.setups_["setup_green_led_"+a]="pinMode("+a+", OUTPUT);";return"digitalWrite("+a+","+b+");\n"};Blockly.Arduino.grove_button=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.setups_["setup_button_"+a]="pinMode("+a+", INPUT);";return["digitalRead("+a+")",Blockly.Arduino.ORDER_ATOMIC]}; +function cutHex(a){return"#"==a.charAt(0)?a.substring(1,7):a}Blockly.Arduino.aerobot_setled=function(){var a=this.getFieldValue("RGB");Blockly.Arduino.definitions_.include_aerobot="#include ";Blockly.Arduino.setups_.init_aerobot="initAERobot();";Blockly.Arduino.setups_.seed_aerobot="randomSeed(1);\n";return"setLED("+hexToR(a)+","+hexToG(a)+","+hexToB(a)+");\n"};Blockly.Arduino.grove={};Blockly.Arduino.grove_led=function(){var a=this.getFieldValue("PIN"),b=this.getFieldValue("STAT");Blockly.Arduino.setups_["setup_green_led_"+a]="pinMode("+a+", OUTPUT);";return"digitalWrite("+a+","+b+");\n"};Blockly.Arduino.grove_button=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.setups_["setup_button_"+a]="pinMode("+a+", INPUT);";return["digitalRead("+a+")",Blockly.Arduino.ORDER_ATOMIC]}; Blockly.Arduino.grove_touch=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.setups_["setup_touch_"+a]="pinMode("+a+", INPUT);";return["digitalRead("+a+")",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.grove_light_sensor=function(){return["analogRead("+this.getFieldValue("PIN")+")",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.grove_rotary_angle=function(){return["analogRead("+this.getFieldValue("PIN")+")",Blockly.Arduino.ORDER_ATOMIC]}; Blockly.Arduino.grove_tilt_switch=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.setups_["setup_tilt_switch_"+a]="pinMode("+a+", INPUT);";return["digitalRead("+a+")",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.grove_buzzer=function(){var a=this.getFieldValue("PIN"),b=this.getFieldValue("STAT");Blockly.Arduino.setups_["setup_piezo_buzzer_"+a]="pinMode("+a+", OUTPUT);";return"digitalWrite("+a+","+b+");\n"}; Blockly.Arduino.grove_relay=function(){var a=this.getFieldValue("PIN"),b=this.getFieldValue("STAT");Blockly.Arduino.setups_["setup_relay_"+a]="pinMode("+a+", OUTPUT);";return"digitalWrite("+a+", "+b+");\n"};Blockly.Arduino.grove_temporature_sensor=function(){var a=this.getFieldValue("PIN");return["round(1/(log(((float)(1023-analogRead("+a+"))*10000/analogRead("+a+"))/10000)/3975+1/298.15)-273.15)",Blockly.Arduino.ORDER_ATOMIC]}; @@ -101,13 +90,99 @@ Blockly.Arduino.i2c_matrix_drawrect=function(){var a=Blockly.Arduino.valueToCode Blockly.Arduino.i2c_matrix_drawline=function(){var a=Blockly.Arduino.valueToCode(this,"X0",Blockly.Arduino.ORDER_ATOMIC)||"0",b=Blockly.Arduino.valueToCode(this,"Y0",Blockly.Arduino.ORDER_ATOMIC)||"0",c=Blockly.Arduino.valueToCode(this,"X1",Blockly.Arduino.ORDER_ATOMIC)||"0",d=Blockly.Arduino.valueToCode(this,"Y1",Blockly.Arduino.ORDER_ATOMIC)||"0",e=this.getFieldValue("COLOR");return"matrix.drawLine("+a+","+b+","+c+","+d+","+e+");\n"}; Blockly.Arduino.i2c_matrix_fillrect=function(){var a=Blockly.Arduino.valueToCode(this,"X0",Blockly.Arduino.ORDER_ATOMIC)||"0",b=Blockly.Arduino.valueToCode(this,"Y0",Blockly.Arduino.ORDER_ATOMIC)||"0",c=Blockly.Arduino.valueToCode(this,"X1",Blockly.Arduino.ORDER_ATOMIC)||"0",d=Blockly.Arduino.valueToCode(this,"Y1",Blockly.Arduino.ORDER_ATOMIC)||"0",e=this.getFieldValue("COLOR");return"matrix.fillRect("+a+","+b+","+c+","+d+","+e+");\n"}; Blockly.Arduino.i2c_matrix_setrotation=function(){return"matrix.setRotation("+this.getFieldValue("ANGLE")+");\n"};Blockly.Arduino.i2c_matrix_writedisplay=function(){return"matrix.writeDisplay();\n"};Blockly.Arduino.i2c_matrix_writedigitnum=function(){var a=this.getFieldValue("POSITION"),b=Blockly.Arduino.valueToCode(this,"NUM",Blockly.Arduino.ORDER_ATOMIC)||"0",c=Blockly.Arduino.valueToCode(this,"DOTS",Blockly.Arduino.ORDER_NONE)||"false";return"matrix.writeDigitNum("+a+","+b+","+c+");\n"}; -Blockly.Arduino.i2c_matrix_drawcolon=function(){return"matrix.drawColon("+(Blockly.Arduino.valueToCode(this,"DOTS",Blockly.Arduino.ORDER_NONE)||"false")+");\n"};Blockly.Arduino.i2c_sevenseg={}; -Blockly.Arduino.i2c_sevenseg_begin=function(){var a=this.getFieldValue("ADDRESS");Blockly.Arduino.definitions_.define_wire="#include ";Blockly.Arduino.definitions_.define_adafruit_ledbackpack='#include "Adafruit_LEDBackpack.h"';Blockly.Arduino.definitions_.define_adafruit_gfx='#include "Adafruit_GFX.h"';Blockly.Arduino.definitions_.define_sevenseg="Adafruit_7segment sevenseg = Adafruit_7segment();\n";Blockly.Arduino.setups_["setup_sevenseg_"+a]="sevenseg.begin("+a+");";return""}; -Blockly.Arduino.i2c_sevenseg_print=function(){var a=Blockly.Arduino.valueToCode(this,"NUM",Blockly.Arduino.ORDER_ATOMIC)||"7777";9999a&&(a=1);return"sevenseg.print("+a+");\n"};Blockly.Arduino.i2c_sevenseg_writedisplay=function(){return"sevenseg.writeDisplay();\n"}; -Blockly.Arduino.i2c_sevenseg_writedigitnum=function(){var a=Blockly.Arduino.valueToCode(this,"POSITION",Blockly.Arduino.ORDER_ATOMIC)||"0",b=Blockly.Arduino.valueToCode(this,"NUM",Blockly.Arduino.ORDER_ATOMIC)||"0",c=Blockly.Arduino.valueToCode(this,"DOTS",Blockly.Arduino.ORDER_NONE)||"false";9a&&(a=0);Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot.setMaxSpeed("+String(a)+");\n"}; +Blockly.Arduino.shield_bot_setmaxspeed_lr=function(){var a=this.getFieldValue("LEFT"),b=this.getFieldValue("RIGHT");a=a.replace(/[(|)]/g,"");b=b.replace(/[(|)]/g,"");255a&&(a=0);255b&&(b=0);Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot.setMaxSpeed("+String(a)+","+String(b)+");\n"}; +Blockly.Arduino.shield_bot_motor=function(){var a=this.getFieldValue("RL"),b=Blockly.Arduino.valueToCode(this,"DIRECTION",Blockly.Arduino.ORDER_ATOMIC)||"0";b=b.replace(/[(|)]/g,"");127b&&(b=-128);Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot."+a+"("+String(b)+");\n"}; +Blockly.Arduino.shield_bot_move=function(){var a=this.getFieldValue("MOVE");Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot."+a+"();\n"}; +Blockly.Arduino.shield_bot_drive=function(){var a=Blockly.Arduino.valueToCode(this,"LEFT",Blockly.Arduino.ORDER_ATOMIC)||"127",b=Blockly.Arduino.valueToCode(this,"RIGHT",Blockly.Arduino.ORDER_ATOMIC)||"127";a=a.replace(/[(|)]/g,"");b=b.replace(/[(|)]/g,"");127a&&(a=-128);127b&&(b=-128);Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot.drive("+String(a)+ +","+String(b)+");\n"};Blockly.Arduino.shield_bot_faststop=function(){Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot.fastStop();\n"};Blockly.Arduino.shield_bot_faststop_left=function(){Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot.fastStopLeft();\n"}; +Blockly.Arduino.shield_bot_faststop_right=function(){Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot.fastStopRight();\n"}; +Blockly.Arduino.shield_bot_readsensor=function(){var a=this.getFieldValue("SENSOR");Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return["shieldbot.readS"+a+"()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.ultrasonic={}; +Blockly.Arduino.ultrasonic_setting=function(){var a=this.getFieldValue("TRIG"),b=this.getFieldValue("ECHO"),c=this.getFieldValue("RESET");Blockly.Arduino.definitions_.define_sonic_timeout="int Sonic_Time_out = 3000;\n";Blockly.Arduino.setups_["setup_output_"+a]="pinMode("+a+", OUTPUT);";Blockly.Arduino.setups_["setup_output_"+b]="pinMode("+b+", INPUT);";Blockly.Arduino.setups_["setup_output_"+c]="pinMode("+c+", OUTPUT);";Blockly.Arduino.definitions_.define_Sonic_Timing="long Sonic_Timing(){\n digitalWrite("+ +a+", LOW);\n delayMicroseconds(2);\n digitalWrite("+a+", HIGH);\n delayMicroseconds(10);\n digitalWrite("+a+", LOW);\n long duration = pulseIn("+b+",HIGH,Sonic_Time_out);\n if ( duration == 0 ){\n duration = Sonic_Time_out;\n digitalWrite("+c+", HIGH);\n delay(25);\n digitalWrite("+c+" ,LOW);\n delay(225);\n }\n return duration;\n}\n";return""}; +Blockly.Arduino.ultrasonic_maxrange=function(){var a=this.getFieldValue("UNIT"),b=this.getFieldValue("MAXRANGE");Blockly.Arduino.definitions_.define_sonic_timeout="CM"==a?"int Sonic_Time_out = "+b+"*2*29;\n":"int Sonic_Time_out = "+b+"*2*72;\n";return""};Blockly.Arduino.ultrasonic_distance=function(){return["CM"==this.getFieldValue("UNIT")?"Sonic_Timing()/29/2":"Sonic_Timing()/74/2",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.lcd={};Blockly.Arduino.lcd_init=function(){var a=this.getFieldValue("RS"),b=this.getFieldValue("ENABLE"),c=this.getFieldValue("RW"),d=this.getFieldValue("D4"),e=this.getFieldValue("D5"),f=this.getFieldValue("D6"),g=this.getFieldValue("D7");Blockly.Arduino.definitions_.liquidcrystal="#include \n"+("-"==c?"LiquidCrystal lcd("+a+","+b+","+d+","+e+","+f+","+g+");\n":"LiquidCrystal lcd("+a+","+c+","+b+","+d+","+e+","+f+","+g+");\n");return""}; +Blockly.Arduino.lcd_begin=function(){var a=this.getFieldValue("COLS"),b=this.getFieldValue("ROWS");return"lcd.begin("+a+","+b+");\n"};Blockly.Arduino.lcd_print=function(){return"lcd.print("+Blockly.Arduino.valueToCode(this,"PRINT",Blockly.Arduino.ORDER_NONE)+");\n"};Blockly.Arduino.lcd_setcursor=function(){var a=this.getFieldValue("COL"),b=this.getFieldValue("ROW");return"lcd.setCursor("+a+","+b+");\n"}; +Blockly.Arduino.lcd_custom_setcursor=function(){var a=Blockly.Arduino.valueToCode(this,"COL",Blockly.Arduino.ORDER_NONE)||"0",b=Blockly.Arduino.valueToCode(this,"ROW",Blockly.Arduino.ORDER_NONE)||"0";return"lcd.setCursor("+a+","+b+");\n"};Blockly.Arduino.lcd_clear=function(){return"lcd.clear();\n"};Blockly.Arduino.lcd_scrolldisplayleft=function(){return"lcd.scrollDisplayLeft();\n"};Blockly.Arduino.lcd_scrolldisplayright=function(){return"lcd.scrollDisplayRight();\n"}; +Blockly.Arduino.lcd_switch_scroll=function(){var a="lcd.";return a=1==this.getFieldValue("SW")?a+"autoscroll();\n":a+"noAutoscroll();\n"};Blockly.Arduino.lcd_autoscroll=function(){return"lcd.autoscroll();\n"};Blockly.Arduino.lcd_noautoscroll=function(){return"lcd.noAutoscroll();\n"};Blockly.Arduino.lcd_lefttoright=function(){return"lcd.leftToRight();\n"};Blockly.Arduino.lcd_righttoleft=function(){return"lcd.rightToLeft();\n"};Blockly.Arduino.servo={};Blockly.Arduino.servo_attach=function(){var a=this.getFieldValue("PIN"),b="";Blockly.Arduino.definitions_.define_servo="#include ";Blockly.Arduino.definitions_["define_class_servo_"+a]="Servo __myservo"+a+";";void 0===Blockly.Arduino.setups_["servo_"+a]?Blockly.Arduino.setups_["servo_"+a]="__myservo"+a+".attach("+a+");":b="__myservo"+a+".attach("+a+");\n";return b}; +Blockly.Arduino.servo_custom_attach=function(){var a=this.getFieldValue("PIN"),b=this.getFieldValue("MAX"),c=this.getFieldValue("MIN"),d="";Blockly.Arduino.definitions_.define_servo="#include ";Blockly.Arduino.definitions_["define_class_servo_"+a]="Servo __myservo"+a+";";void 0===Blockly.Arduino.setups_["servo_"+a]?Blockly.Arduino.setups_["servo_"+a]="__myservo"+a+".attach("+a+","+c+","+b+");":d="__myservo"+a+".attach("+a+","+c+","+b+");\n";return d}; +Blockly.Arduino.servo_write=function(){var a=this.getFieldValue("PIN"),b=Blockly.Arduino.valueToCode(this,"ANGLE",Blockly.Arduino.ORDER_ATOMIC)||"90";Blockly.Arduino.definitions_.define_servo="#include ";Blockly.Arduino.definitions_["define_class_servo_"+a]="Servo __myservo"+a+";";Blockly.Arduino.setups_["servo_"+a]||(Blockly.Arduino.setups_["servo_"+a]="__myservo"+a+".attach("+a+");");return"__myservo"+a+".write("+b+");\n"}; +Blockly.Arduino.servo_writeus=function(){var a=this.getFieldValue("PIN"),b=Blockly.Arduino.valueToCode(this,"ANGLE_US",Blockly.Arduino.ORDER_ATOMIC)||"1500";Blockly.Arduino.definitions_.define_servo="#include ";Blockly.Arduino.definitions_["define_class_servo_"+a]="Servo __myservo"+a+";";void 0===Blockly.Arduino.setups_["servo_"+a]&&(Blockly.Arduino.setups_["servo_"+a]="__myservo"+a+".attach("+a+");");return"__myservo"+a+".writeMicroseconds("+b+");\n"}; +Blockly.Arduino.servo_read=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.definitions_.define_servo="#include ";Blockly.Arduino.definitions_["define_class_servo_"+a]="Servo __myservo"+a+";";return["__myservo"+a+".read()",Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.servo_attached=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.definitions_.define_servo="#include ";Blockly.Arduino.definitions_["define_class_servo_"+a]="Servo __myservo"+a+";";void 0===Blockly.Arduino.setups_["servo_"+a]&&(Blockly.Arduino.setups_["servo_"+a]="__myservo"+a+".attach("+a+");");return["__myservo"+a+".attached()",Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.servo_detach=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.definitions_.define_servo="#include ";Blockly.Arduino.definitions_["define_class_servo_"+a]="Servo __myservo"+a+";";return"__myservo"+a+".detach();\n"};Blockly.Arduino.ir_remote={}; +Blockly.Arduino.ir_remote_get=function(a){a=a.getFieldValue("PIN");Blockly.Arduino.definitions_.include_IR_remote="#include \n";Blockly.Arduino.definitions_.define_IR_buttons="#define POWER 0x10EFD827\n#define A 0x10EFF807\n#define B 0x10EF7887\n#define C 0x10EF58A7\n#define UP 0x10EFA05F\n#define DOWN 0x10EF00FF\n#define LEFT 0x10EF10EF\n#define RIGHT 0x10EF807F\n#define SELECT 0x10EF20DF\n";Blockly.Arduino.definitions_["setup_ir_reader_"+a]="IRrecv irrecv"+a+"("+a+");\ndecode_results results"+ +a+";\n";Blockly.Arduino.definitions_.ir_remote_shell="unsigned long getDecodedValue(IRrecv receiver, decode_results results) {\n if (receiver.decode(&results)) {\n receiver.resume();\n return results.value;\n }\n return 0;\n}\n";Blockly.Arduino.setups_["setup_ir_reader_"+a]="irrecv"+a+".enableIRIn(); // Start the receiver\n";return["getDecodedValue(irrecv"+a+",results"+a+")",Blockly.Arduino.ORDER_MEMBER]}; +Blockly.Arduino.ir_remote_button=function(a){return[a.getFieldValue("BUTTON"),Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.m2x={}; +Blockly.Arduino.m2x_begin=function(){var a=this.getFieldValue("VERSION"),b=Blockly.Arduino.valueToCode(this,"ID",Blockly.Arduino.ORDER_ATOMIC)||"",c=Blockly.Arduino.valueToCode(this,"STREAM_NAME",Blockly.Arduino.ORDER_ATOMIC)||"",d=Blockly.Arduino.valueToCode(this,"KEY",Blockly.Arduino.ORDER_ATOMIC)||"";Blockly.Arduino.definitions_.define_spi="#include ";Blockly.Arduino.definitions_.define_ethernet="#include ";Blockly.Arduino.definitions_.define_jsonlite="#include "; +Blockly.Arduino.definitions_.define_M2XStreamClient="#include ";Blockly.Arduino.definitions_.define_ethernet_client="EthernetClient client;";Blockly.Arduino.definitions_.define_m2x_id="char m2xId[] = "+b+";";Blockly.Arduino.definitions_.define_m2x_stream_name="char m2xStream[] = "+c+";";Blockly.Arduino.definitions_.define_m2x_key="char m2xKey[] = "+d+";";Blockly.Arduino.definitions_.define_m2xstreamclient="M2XStreamClient m2xClient(&client, m2xKey);\n";return""}; +Blockly.Arduino.m2x_update_value=function(){return["m2xClient.updateStreamValue(m2xId, m2xStream, "+(Blockly.Arduino.valueToCode(this,"VALUE",Blockly.Arduino.ORDER_ATOMIC)||"0")+")",Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.m2x_list_value=function(){Blockly.Arduino.setups_["setup_serial_"+profile["default"].serial]="Serial.begin("+profile["default"].serial+");\n";Blockly.Arduino.definitions_.define_on_data_point_found='void on_data_point_found(const char* at, const char* value, int index, void* context, int type) {\n Serial.print("Found a data point, index:");\n Serial.println(index);\n Serial.print("Type:");\n Serial.println(type);\n Serial.print("At:");\n Serial.println(at);\n Serial.print("Value:");\n Serial.println(value);\n}\n';return"m2xClient.listStreamValues(m2xId, m2xStream, on_data_point_found, NULL);\n"}; +Blockly.Arduino.m2x_custom_list_value=function(){var a=this.getFieldValue("DATE0"),b=this.getFieldValue("HOUR0"),c=this.getFieldValue("MIN0"),d=this.getFieldValue("SEC0"),e=this.getFieldValue("DATE1"),f=this.getFieldValue("HOUR1"),g=this.getFieldValue("MIN1"),h=this.getFieldValue("SEC1");Blockly.Arduino.setups_["setup_serial_"+profile["default"].serial]="Serial.begin("+profile["default"].serial+");\n";Blockly.Arduino.definitions_.define_on_data_point_found='void on_data_point_found(const char* at, const char* value, int index, void* context, int type) {\n Serial.print("Found a data point, index:");\n Serial.println(index);\n Serial.print("Type:");\n Serial.println(type);\n Serial.print("At:");\n Serial.println(at);\n Serial.print("Value:");\n Serial.println(value);\n}\n'; +return'm2xClient.listStreamValues(m2xId, m2xStream, on_data_point_found, NULL, "start='+a+"T"+b+":"+c+":"+d+"Z&end="+e+"T"+f+":"+g+":"+h+'Z");\n'}; +Blockly.Arduino.m2x_delete_values=function(){var a=this.getFieldValue("DATE0"),b=this.getFieldValue("HOUR0"),c=this.getFieldValue("MIN0"),d=this.getFieldValue("SEC0"),e=this.getFieldValue("DATE1"),f=this.getFieldValue("HOUR1"),g=this.getFieldValue("MIN1"),h=this.getFieldValue("SEC1");return['m2xClient.deleteValues(m2xId, m2xStream, "'+a+"T"+b+":"+c+":"+d+'Z","'+e+"T"+f+":"+g+":"+h+'Z")',Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.m2x_update_location=function(){var a=Blockly.Arduino.valueToCode(this,"LOCATION_NAME",Blockly.Arduino.ORDER_ATOMIC)||"0",b=Blockly.Arduino.valueToCode(this,"LATITUDE",Blockly.Arduino.ORDER_ATOMIC)||"0",c=Blockly.Arduino.valueToCode(this,"LONGITUDE",Blockly.Arduino.ORDER_ATOMIC)||"0",d=Blockly.Arduino.valueToCode(this,"ELEVATION",Blockly.Arduino.ORDER_ATOMIC)||"0";return["m2xClient.updateLocation(m2xId, "+a+", (double)"+b+", (double)"+c+", (double)"+d+")",Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.m2x_read_location=function(){Blockly.Arduino.setups_["setup_serial_"+profile["default"].serial]="Serial.begin("+profile["default"].serial+");\n";Blockly.Arduino.definitions_.define_on_location_found='void on_location_found(const char* name,\n double latitude,\n double longitude,\n double elevation,\n const char* timestamp,\n int index,\n void* context) {\n Serial.print("Found a location, index:");\n Serial.println(index);\n Serial.print("Name: ");\n Serial.println(name);\n Serial.print("Latitude: ");\n Serial.println(latitude);\n Serial.print("Longitude: ");\n Serial.println(longitude);\n Serial.print("Elevation: ");\n Serial.println(elevation);\n Serial.print("Timestamp: ");\n Serial.println(timestamp);\n}\n'; +return["m2xClient.readLocation(m2xId, on_location_found, NULL)",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.rgbled={}; +Blockly.Arduino.rgbled_begin=function(){var a=this.getFieldValue("NUM"),b=this.getFieldValue("PIN"),c=this.getFieldValue("BRIGHTNESS");Blockly.Arduino.definitions_.define_include_neopixel="#include \n";Blockly.Arduino.definitions_.define_rgbled="Adafruit_NeoPixel rgbled = Adafruit_NeoPixel("+a+","+b+",NEO_RGB + NEO_KHZ400);\n";Blockly.Arduino.setups_.setup_rgbled_begin="rgbled.begin();\n";Blockly.Arduino.setups_.setup_rgbled_brightness="rgbled.setBrightness("+c+");\n";return""}; +function hexToR(a){return parseInt(cutHex(a).substring(0,2),16)}function hexToG(a){return parseInt(cutHex(a).substring(2,4),16)}function hexToB(a){return parseInt(cutHex(a).substring(4,6),16)}function cutHex(a){return"#"==a.charAt(0)?a.substring(1,7):a}Blockly.Arduino.rgbled_setpixelcolor=function(){var a=this.getFieldValue("TARGET"),b=this.getFieldValue("RGB");return"rgbled.setPixelColor("+a+",rgbled.Color("+hexToR(b)+","+hexToG(b)+","+hexToB(b)+"));\n"}; +Blockly.Arduino.rgbled_setpixelcolor2=function(){var a=Blockly.Arduino.valueToCode(this,"TARGET",Blockly.Arduino.ORDER_ATOMIC)||"0",b=this.getFieldValue("RGB");return"rgbled.setPixelColor("+a+",rgbled.Color("+hexToR(b)+","+hexToG(b)+","+hexToB(b)+"));\n"}; +Blockly.Arduino.rgbled_custom_setpixelcolor=function(){var a=Blockly.Arduino.valueToCode(this,"TARGET",Blockly.Arduino.ORDER_ATOMIC)||"0",b=Blockly.Arduino.valueToCode(this,"R",Blockly.Arduino.ORDER_ATOMIC)||"255",c=Blockly.Arduino.valueToCode(this,"G",Blockly.Arduino.ORDER_ATOMIC)||"0",d=Blockly.Arduino.valueToCode(this,"B",Blockly.Arduino.ORDER_ATOMIC)||"0";return"rgbled.setPixelColor("+a+", rgbled.Color("+b+","+c+","+d+"));\n"};Blockly.Arduino.rgbled_show=function(){return"rgbled.show();\n"};Blockly.Arduino.otto={}; +Blockly.Arduino.otto_init=function(){var a=this.getFieldValue("YL"),b=this.getFieldValue("YR"),c=this.getFieldValue("RL"),d=this.getFieldValue("RR");Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";Blockly.Arduino.definitions_.define_define_otto_ascii="/*\n --------------- \n | O O |\n |---------------|\n RIGHT LEG ==> | | <== LEFT LEG \n --------------- \n || ||\n || ||\n RIGHT FOOT ==> ----- ----- <== LEFT FOOT \n |----- -----|\n*/\n";Blockly.Arduino.definitions_.define_define_otto_init_yl= +"#define OTTO_PIN_LEFT_LEG "+a;Blockly.Arduino.definitions_.define_define_otto_init_yr="#define OTTO_PIN_RIGHT_LEG "+b;Blockly.Arduino.definitions_.define_define_otto_init_rl="#define OTTO_PIN_LEFT_FOOT "+c;Blockly.Arduino.definitions_.define_define_otto_init_rr="#define OTTO_PIN_RIGHT_FOOT "+d;Blockly.Arduino.setups_.setup_otto_init="__otto.initLegs(OTTO_PIN_LEFT_LEG, OTTO_PIN_RIGHT_LEG, OTTO_PIN_LEFT_FOOT, OTTO_PIN_RIGHT_FOOT, false);";return""}; +Blockly.Arduino.otto_calibrate=function(){var a=Blockly.Arduino.valueToCode(this,"YL",Blockly.Arduino.ORDER_ATOMIC)||0,b=Blockly.Arduino.valueToCode(this,"YR",Blockly.Arduino.ORDER_ATOMIC)||0,c=Blockly.Arduino.valueToCode(this,"RL",Blockly.Arduino.ORDER_ATOMIC)||0,d=Blockly.Arduino.valueToCode(this,"RR",Blockly.Arduino.ORDER_ATOMIC)||0;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";Blockly.Arduino.definitions_.define_define_otto_trim_yl= +"#define OTTO_TRIM_LEFT_LEG "+a;Blockly.Arduino.definitions_.define_define_otto_trim_yr="#define OTTO_TRIM_RIGHT_LEG "+b;Blockly.Arduino.definitions_.define_define_otto_trim_rl="#define OTTO_TRIM_LEFT_FOOT "+c;Blockly.Arduino.definitions_.define_define_otto_trim_rr="#define OTTO_TRIM_RIGHT_FOOT "+d;"setup_otto_init"in Blockly.Arduino.setups_&&(Blockly.Arduino.setups_.setup_otto_init="__otto.initLegs(OTTO_PIN_LEFT_LEG, OTTO_PIN_RIGHT_LEG, OTTO_PIN_LEFT_FOOT, OTTO_PIN_RIGHT_FOOT, true);");Blockly.Arduino.setups_.setup_otto_trim= +"__otto.setTrims(OTTO_TRIM_LEFT_LEG, OTTO_TRIM_RIGHT_LEG, OTTO_TRIM_LEFT_FOOT, OTTO_TRIM_RIGHT_FOOT);";return""};Blockly.Arduino.otto_home=function(){Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.home();\n"}; +Blockly.Arduino.otto_walk=function(){var a=this.getFieldValue("DIRECTION"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||4,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||1E3;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.walk("+b+", "+c+", "+a+");\n"}; +Blockly.Arduino.otto_turn=function(){var a=this.getFieldValue("DIRECTION"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||4,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||1E3;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.turn("+b+", "+c+", "+a+");\n"}; +Blockly.Arduino.otto_bend=function(){var a=this.getFieldValue("DIRECTION"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||1,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||1400;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.bend("+b+", "+c+", "+a+");\n"}; +Blockly.Arduino.otto_shake_leg=function(){var a=this.getFieldValue("DIRECTION"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||1,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||2E3;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.shakeLeg("+b+", "+c+", "+a+");\n"}; +Blockly.Arduino.otto_freestyle=function(){var a=this.getFieldValue("STYLE"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||1,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||1E3,d=Blockly.Arduino.valueToCode(this,"HEIGHT",Blockly.Arduino.ORDER_ATOMIC)||20;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto."+a+"("+b+", "+c+", "+d+");\n"}; +Blockly.Arduino.otto_moonwalk=function(){var a=this.getFieldValue("DIRECTION"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||4,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||1E3,d=Blockly.Arduino.valueToCode(this,"HEIGHT",Blockly.Arduino.ORDER_ATOMIC)||20;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.moonwalker("+b+", "+c+", "+d+ +", "+a+");\n"}; +Blockly.Arduino.otto_crusaito=function(){var a=this.getFieldValue("DIRECTION"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||4,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||1E3,d=Blockly.Arduino.valueToCode(this,"HEIGHT",Blockly.Arduino.ORDER_ATOMIC)||20;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.crusaito("+b+", "+c+", "+d+", "+ +a+");\n"}; +Blockly.Arduino.otto_flapping=function(){var a=this.getFieldValue("DIRECTION"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||4,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||1E3,d=Blockly.Arduino.valueToCode(this,"HEIGHT",Blockly.Arduino.ORDER_ATOMIC)||20;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.flapping("+b+", "+c+", "+d+", "+ +a+");\n"};Blockly.Arduino.otto_height=function(){return[this.getFieldValue("HEIGHT"),Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.otto_ultrasonic_init=function(){var a=this.getFieldValue("TRIGGER_PIN"),b=this.getFieldValue("ECHO_PIN");Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";Blockly.Arduino.definitions_.define_define_otto_ultrasonic_init_trigger="#define OTTO_PIN_TRIGGER "+a;Blockly.Arduino.definitions_.define_define_otto_ultrasonic_init_echo="#define OTTO_PIN_ECHO "+b;Blockly.Arduino.setups_.setup_otto_ultrasonic_init= +"__otto.initUltrasonic(OTTO_PIN_TRIGGER, OTTO_PIN_ECHO);";return""};Blockly.Arduino.otto_ultrasonic_distance=function(){Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return["__otto.getDistance()",Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.otto_buzzer_init=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";Blockly.Arduino.definitions_.define_define_otto_buzzer_init="#define OTTO_PIN_BUZZER "+a;Blockly.Arduino.setups_.setup_otto_buzzer_init="__otto.initBuzzer(OTTO_PIN_BUZZER);";return""}; +Blockly.Arduino.otto_buzzer_sing=function(){var a=this.getFieldValue("SING");Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.sing("+a+");\n"};Blockly.Arduino.array={};Blockly.Arduino.array_create_with=function(){for(var a=Array(this.itemCount_),b=0;b";Blockly.Arduino.definitions_.define_mpr121="#include \nAdafruit_MPR121 cap = Adafruit_MPR121();\nuint16_t lasttouched = 0;\nuint16_t currtouched = 0;";Blockly.Arduino.setups_.setup_cap_begin="cap.begin(0x5A);\n";return"currtouched = cap.touched();\n"}; +Blockly.Arduino.mpr121_touched=function(){var a=Blockly.Arduino.valueToCode(this,"CH",Blockly.Arduino.ORDER_ATOMIC)||"0";Blockly.Arduino.definitions_.define_wire="#include ";Blockly.Arduino.definitions_.define_mpr121="#include \nAdafruit_MPR121 cap = Adafruit_MPR121();\nuint16_t lasttouched = 0;\nuint16_t currtouched = 0;";Blockly.Arduino.setups_.setup_cap_begin="cap.begin(0x5A);\n";return["(currtouched & _BV("+a+")) && !(lasttouched & _BV("+a+"))",Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.mpr121_released=function(){var a=Blockly.Arduino.valueToCode(this,"CH",Blockly.Arduino.ORDER_ATOMIC)||"0";Blockly.Arduino.definitions_.define_wire="#include ";Blockly.Arduino.definitions_.define_mpr121="#include \nAdafruit_MPR121 cap = Adafruit_MPR121();\nuint16_t lasttouched = 0;\nuint16_t currtouched = 0;";Blockly.Arduino.setups_.setup_cap_begin="cap.begin(0x5A);\n";return["!(currtouched & _BV("+a+")) && (lasttouched & _BV("+a+"))",Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.mpr121_value=function(){var a=Blockly.Arduino.valueToCode(this,"CH",Blockly.Arduino.ORDER_ATOMIC)||"0";Blockly.Arduino.definitions_.define_wire="#include ";Blockly.Arduino.definitions_.define_mpr121="#include \nAdafruit_MPR121 cap = Adafruit_MPR121();\nuint16_t lasttouched = 0;\nuint16_t currtouched = 0;";Blockly.Arduino.setups_.setup_cap_begin="cap.begin(0x5A);\n";return["cap.filteredData("+a+")",Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.mpr121_reset=function(){Blockly.Arduino.definitions_.define_wire="#include ";Blockly.Arduino.definitions_.define_mpr121="#include \nAdafruit_MPR121 cap = Adafruit_MPR121();\nuint16_t lasttouched = 0;\nuint16_t currtouched = 0;";Blockly.Arduino.setups_.setup_cap_begin="cap.begin(0x5A);\n";return"lasttouched = currtouched;\n"};Blockly.Arduino.blynk={}; +Blockly.Arduino.blynk_ethernet_begin=function(){this.getFieldValue("VERSION");var a=Blockly.Arduino.valueToCode(this,"AUTH",Blockly.Arduino.ORDER_ATOMIC)||"",b=Blockly.Arduino.valueToCode(this,"MAC_ADDRESS",Blockly.Arduino.ORDER_ATOMIC)||"0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED";b=b.replace(/"/g,"");Blockly.Arduino.definitions_.define_spi="#include ";Blockly.Arduino.definitions_.define_ethernet="#include ";Blockly.Arduino.definitions_.define_blynk_simple_ethernet="#define BLYNK_PRINT Serial\n#include \n"; +Blockly.Arduino.definitions_.define_arduino_mac="byte mac[] = {"+b+"};\n";Blockly.Arduino.setups_["setup_serial_"+profile["default"].serial]="Serial.begin("+profile["default"].serial+");\n";Blockly.Arduino.setups_.setup_blynk_begin="Blynk.begin("+a+", BLYNK_DEFAULT_DOMAIN,BLYNK_DEFAULT_PORT,mac);\n";return"Blynk.run();\n"}; +Blockly.Arduino.blynk_write=function(){var a=this.getFieldValue("PIN"),b=Blockly.Arduino.statementToCode(this,"ACTION");Blockly.Arduino.definitions_["define_blynk_virtual_"+a]="BLYNK_WRITE(V"+a+")\n{\n"+b+"}\n";return""};Blockly.Arduino.blynk_param=function(){return["param."+this.getFieldValue("TYPE")+"()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.blynk_merge_param=function(){var a=this.getFieldValue("INDEX"),b=this.getFieldValue("TYPE");return["param["+a+"]."+b+"()",Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.blynk_virtual_write=function(){var a=this.getFieldValue("PIN"),b=Blockly.Arduino.valueToCode(this,"VALUE",Blockly.Arduino.ORDER_ATOMIC)||"0";return"Blynk.virtualWrite(V"+a+", "+b+");\n"}; +Blockly.Arduino.blynk_email=function(){var a=Blockly.Arduino.valueToCode(this,"ADDRESS",Blockly.Arduino.ORDER_ATOMIC)||"",b=Blockly.Arduino.valueToCode(this,"TITLE",Blockly.Arduino.ORDER_ATOMIC)||"",c=Blockly.Arduino.valueToCode(this,"BODY",Blockly.Arduino.ORDER_ATOMIC)||"";return"Blynk.email("+a+", "+b+", "+c+");\n"};Blockly.Arduino.blynk_notify=function(){return"Blynk.notify("+(Blockly.Arduino.valueToCode(this,"TEXT",Blockly.Arduino.ORDER_ATOMIC)||"")+");\n"}; +Blockly.Arduino.blynk_tweet=function(){return"Blynk.tweet("+(Blockly.Arduino.valueToCode(this,"TEXT",Blockly.Arduino.ORDER_ATOMIC)||"")+");\n"};Blockly.Arduino.blynk_connect=function(){return["Blynk.connect()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.math={};Blockly.Arduino.math_number=function(){var a=window.parseFloat(this.getFieldValue("NUM"));return[a,0>a?Blockly.Arduino.ORDER_UNARY_PREFIX:Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.math_arithmetic=function(){var a=this.getFieldValue("OP"),b=Blockly.Arduino.math_arithmetic.OPERATORS[a];a=b[0];b=b[1];var c=Blockly.Arduino.valueToCode(this,"A",b)||"0",d=Blockly.Arduino.valueToCode(this,"B",b)||"0";return a?[c+a+d,b]:["Math.pow("+c+", "+d+")",Blockly.Arduino.ORDER_UNARY_POSTFIX]}; +Blockly.Arduino.math_arithmetic.OPERATORS={ADD:[" + ",Blockly.Arduino.ORDER_ADDITIVE],MINUS:[" - ",Blockly.Arduino.ORDER_ADDITIVE],MULTIPLY:[" * ",Blockly.Arduino.ORDER_MULTIPLICATIVE],DIVIDE:[" / ",Blockly.Arduino.ORDER_MULTIPLICATIVE],MODULO:[" % ",Blockly.Arduino.ORDER_MULTIPLICATIVE],POWER:[null,Blockly.Arduino.ORDER_NONE]}; +Blockly.Arduino.math_random_max_min=function(a){var b=Blockly.Arduino.valueToCode(a,"MAX",Blockly.Arduino.ORDER_ATOMIC)||"1";a=Blockly.Arduino.valueToCode(a,"MIN",Blockly.Arduino.ORDER_ATOMIC)||"0";return[0d;d++)0d;d++)0\n";Blockly.Arduino.definitions_["var_servo"+a]="Servo servo_"+a+";\n";Blockly.Arduino.setups_["setup_servo_"+a]="servo_"+a+".attach("+a+");\n";return"servo_"+a+".write("+b+");\ndelay("+c+");\n"}; +Blockly.Arduino.servo_read_degrees=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.definitions_.define_servo="#include <Servo.h>\n";Blockly.Arduino.definitions_["var_servo"+a]="Servo servo_"+a+";\n";Blockly.Arduino.setups_["setup_servo_"+a]="servo_"+a+".attach("+a+");\n";return"servo_"+a+".read()"};Blockly.Arduino.dht={}; +Blockly.Arduino.dht_read=function(){var a=this.getFieldValue("SENSOR"),b=this.getFieldValue("PIN"),c="";switch(this.getFieldValue("TYPE")){case "h":c+="(int)(dht_"+b+"_"+a+".readHumidity())";break;case "C":c+="(int)(dht_"+b+"_"+a+".readTemperature())";break;case "F":c+="(int)(dht_"+b+"_"+a+".readTemperature(true))"}Blockly.Arduino.definitions_["define_dht_"+b+"_"+a]="#include \nDHT dht_"+b+"_"+a+"("+b+","+a+");\n";Blockly.Arduino.setups_["setup_dht_"+b+"_"+a]="dht_"+b+"_"+a+".begin();\n";return[c, +Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.inout={};Blockly.Arduino.inout_buildin_led=function(){var a=this.getFieldValue("STAT");Blockly.Arduino.setups_.setup_output_led_builtin="pinMode(LED_BUILTIN, OUTPUT);";return"digitalWrite(LED_BUILTIN, "+a+");\n"};Blockly.Arduino.inout_digital_write=function(){var a=this.getFieldValue("PIN"),b=this.getFieldValue("STAT");Blockly.Arduino.setups_["setup_output_"+a]="pinMode("+a+", OUTPUT);";return"digitalWrite("+a+", "+b+");\n"}; Blockly.Arduino.inout_custom_digital_write=function(){var a=Blockly.Arduino.valueToCode(this,"PIN",Blockly.Arduino.ORDER_ATOMIC)||"13",b=Blockly.Arduino.valueToCode(this,"STAT",Blockly.Arduino.ORDER_ATOMIC)||"HIGH";Blockly.Arduino.setups_["setup_output_"+a]="pinMode("+a+", OUTPUT);";return"digitalWrite("+a+", "+b+");\n"}; Blockly.Arduino.inout_digital_read=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.setups_["setup_input_"+a]||(Blockly.Arduino.setups_["setup_input_"+a]="pinMode("+a+", INPUT);");return["digitalRead("+a+")",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.inout_custom_digital_read=function(){var a=Blockly.Arduino.valueToCode(this,"PIN_READ",Blockly.Arduino.ORDER_ATOMIC);Blockly.Arduino.setups_["setup_output_"+a]="pinMode("+a+", INPUT);";return["digitalRead("+a+")",Blockly.Arduino.ORDER_ATOMIC]}; Blockly.Arduino.inout_custom_digital_read_pullup=function(){var a=Blockly.Arduino.valueToCode(this,"PIN_READ",Blockly.Arduino.ORDER_ATOMIC);Blockly.Arduino.setups_["setup_output_"+a]="pinMode("+a+", INPUT_PULLUP);";return["digitalRead("+a+")",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.inout_enable_pullup=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.setups_["setup_input_"+a]="pinMode("+a+", INPUT_PULLUP);";return["",Blockly.Arduino.ORDER_ATOMIC]}; @@ -116,17 +191,7 @@ Blockly.Arduino.inout_custom_analog_write=function(){var a=Blockly.Arduino.value Blockly.Arduino.inout_custom_analog_read=function(){return["analogRead("+Blockly.Arduino.valueToCode(this,"PIN_ANALOGREAD",Blockly.Arduino.ORDER_ATOMIC)+")",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.inout_highlow=function(){return["HIGH"==this.getFieldValue("BOOL")?"HIGH":"LOW",Blockly.Arduino.ORDER_ATOMIC]}; Blockly.Arduino.pulsein=function(){var a=this.getFieldValue("PIN"),b=this.getFieldValue("TIMEOUT"),c="HIGH"==this.getFieldValue("type")?"HIGH":"LOW";console.log(b);Blockly.Arduino.setups_["setup_output_"+a]="pinMode("+a+", INPUT);";return[0 0){\n String chrome = Serial.readStringUntil(\'\u00a5n\');\n int chromeLen = chrome.length();\n String pinRaw = chrome.substring(1,chrome.indexOf(V));\n String valRaw = chrome.substring(chrome.indexOf(V)+1,chromeLen);\n pin = pinRaw.toInt();\n val = valRaw.toInt();\n \n if(directMode){\n if (chrome.indexOf(dig) == 0){\n digitalWrite(pin, val);\n }\n else if (chrome.indexOf(pwm) == 0 ){\n analogWrite(pin, val);\n }\n }\n else{\n chromeDigital[pin]=val;\n }\n }\n}\n\n'; -return"chromeReceive();\n"};Blockly.Arduino.involt_sendvalue=function(){return"pinMode("+this.getFieldValue("PIN")+",OUTPUT);\n"};Blockly.Arduino.involt_receivevalue=function(){return"chromeSend(0, analogRead("+this.getFieldValue("PIN")+"));\n"};Blockly.Arduino.ir_remote={}; -Blockly.Arduino.ir_remote_get=function(a){a=a.getFieldValue("PIN");Blockly.Arduino.definitions_.include_IR_remote="#include \n";Blockly.Arduino.definitions_.define_IR_buttons="#define POWER 0x10EFD827\n#define A 0x10EFF807\n#define B 0x10EF7887\n#define C 0x10EF58A7\n#define UP 0x10EFA05F\n#define DOWN 0x10EF00FF\n#define LEFT 0x10EF10EF\n#define RIGHT 0x10EF807F\n#define SELECT 0x10EF20DF\n";Blockly.Arduino.definitions_["setup_ir_reader_"+a]="IRrecv irrecv"+a+"("+a+");\ndecode_results results"+ -a+";\n";Blockly.Arduino.definitions_.ir_remote_shell="unsigned long getDecodedValue(IRrecv receiver, decode_results results) {\n if (receiver.decode(&results)) {\n receiver.resume();\n return results.value;\n }\n return 0;\n}\n";Blockly.Arduino.setups_["setup_ir_reader_"+a]="irrecv"+a+".enableIRIn(); // Start the receiver\n";return["getDecodedValue(irrecv"+a+",results"+a+")",Blockly.Arduino.ORDER_MEMBER]}; -Blockly.Arduino.ir_remote_button=function(a){return[a.getFieldValue("BUTTON"),Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.lcd={};Blockly.Arduino.lcd_init=function(){var a=this.getFieldValue("RS"),b=this.getFieldValue("ENABLE"),c=this.getFieldValue("RW"),d=this.getFieldValue("D4"),e=this.getFieldValue("D5"),f=this.getFieldValue("D6"),g=this.getFieldValue("D7");Blockly.Arduino.definitions_.liquidcrystal="#include \n"+("-"==c?"LiquidCrystal lcd("+a+","+b+","+d+","+e+","+f+","+g+");\n":"LiquidCrystal lcd("+a+","+c+","+b+","+d+","+e+","+f+","+g+");\n");return""}; -Blockly.Arduino.lcd_begin=function(){var a=this.getFieldValue("COLS"),b=this.getFieldValue("ROWS");return"lcd.begin("+a+","+b+");\n"};Blockly.Arduino.lcd_print=function(){return"lcd.print("+Blockly.Arduino.valueToCode(this,"PRINT",Blockly.Arduino.ORDER_NONE)+");\n"};Blockly.Arduino.lcd_setcursor=function(){var a=this.getFieldValue("COL"),b=this.getFieldValue("ROW");return"lcd.setCursor("+a+","+b+");\n"}; -Blockly.Arduino.lcd_custom_setcursor=function(){var a=Blockly.Arduino.valueToCode(this,"COL",Blockly.Arduino.ORDER_NONE)||"0",b=Blockly.Arduino.valueToCode(this,"ROW",Blockly.Arduino.ORDER_NONE)||"0";return"lcd.setCursor("+a+","+b+");\n"};Blockly.Arduino.lcd_clear=function(){return"lcd.clear();\n"};Blockly.Arduino.lcd_scrolldisplayleft=function(){return"lcd.scrollDisplayLeft();\n"};Blockly.Arduino.lcd_scrolldisplayright=function(){return"lcd.scrollDisplayRight();\n"}; -Blockly.Arduino.lcd_switch_scroll=function(){var a="lcd.";return a=1==this.getFieldValue("SW")?a+"autoscroll();\n":a+"noAutoscroll();\n"};Blockly.Arduino.lcd_autoscroll=function(){return"lcd.autoscroll();\n"};Blockly.Arduino.lcd_noautoscroll=function(){return"lcd.noAutoscroll();\n"};Blockly.Arduino.lcd_lefttoright=function(){return"lcd.leftToRight();\n"};Blockly.Arduino.lcd_righttoleft=function(){return"lcd.rightToLeft();\n"};Blockly.Arduino.linkit={};var controlch;Blockly.Arduino.linkit_ble_periphral_is_written=function(){var a=Blockly.Arduino.valueToCode(this,"CHARACTERISTIC",Blockly.Arduino.ORDER_ATOMIC)||"";this.getFieldValue("TYPE");a=a.replace(/\"/g,"");a=a.replace(/-/g,"_");a=a.toLowerCase();return["__"+a+".isWritten()",Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.inout_digitalpin=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.setups_["setup_output_"+a]="pinMode("+a+", OUTPUT);";return[a,Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.inout_analogpin=function(){return[this.getFieldValue("PIN"),Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.linkit={};var controlch;Blockly.Arduino.linkit_ble_periphral_is_written=function(){var a=Blockly.Arduino.valueToCode(this,"CHARACTERISTIC",Blockly.Arduino.ORDER_ATOMIC)||"";this.getFieldValue("TYPE");a=a.replace(/\"/g,"");a=a.replace(/-/g,"_");a=a.toLowerCase();return["__"+a+".isWritten()",Blockly.Arduino.ORDER_ATOMIC]}; Blockly.Arduino.linkit_ble_periphral_write=function(){var a=Blockly.Arduino.valueToCode(this,"CHARACTERISTIC",Blockly.Arduino.ORDER_ATOMIC)||"",b=Blockly.Arduino.valueToCode(this,"VALUE",Blockly.Arduino.ORDER_ATOMIC)||"",c=this.getFieldValue("TYPE");a=a.replace(/\"/g,"");a=a.replace(/-/g,"_");a=a.toLowerCase();return("int"==c?"__"+a+".setValue("+b+");":"__"+a+'.setValue("'+b+'");')+"\n"}; Blockly.Arduino.linkit_ble_periphral_get_value=function(){var a=Blockly.Arduino.valueToCode(this,"CHARACTERISTIC",Blockly.Arduino.ORDER_ATOMIC)||"";this.getFieldValue("TYPE");a=a.replace(/\"/g,"");a=a.replace(/-/g,"_");a=a.toLowerCase();return["__"+a+".getValue()",Blockly.Arduino.ORDER_ATOMIC]}; Blockly.Arduino.linkit_ble_Characteristic=function(){var a=Blockly.Arduino.valueToCode(this,"CHARACTERISTIC",Blockly.Arduino.ORDER_ATOMIC)||"",b=this.getFieldValue("TYPE"),c=this.getFieldValue("CHARACTERISTIC_TYPE");a=a.replace(/\"/g,"");var d=a.replace(/-/g,"_");d=d.toLowerCase();Blockly.Arduino.definitions_.define_linkit_ble_include="#include ";Blockly.Arduino.definitions_.define_linkit_ble_periphral_include="#include ";Blockly.Arduino.definitions_["define_linkit_ble_periphral_include_characteristic"+ @@ -163,86 +228,21 @@ return["(WiFi.begin(_lwifi_ssid, _lwifi_pass) == WL_CONNECTED)",Blockly.Arduino. Blockly.Arduino.linkit_wifi=function(){var a=Blockly.Arduino.valueToCode(this,"SSID",Blockly.Arduino.ORDER_ATOMIC)||"",b=Blockly.Arduino.valueToCode(this,"PASSWORD",Blockly.Arduino.ORDER_ATOMIC)||"";a=a.replace(/\"/g,"");b=b.replace(/\"/g,"");Blockly.Arduino.definitions_.define_linkit_wifi_include="#include ";Blockly.Arduino.definitions_.define_linkit_wifi_ssid='char _lwifi_ssid[] = "'+a+'";';Blockly.Arduino.definitions_.define_linkit_wifi_pass='char _lwifi_pass[] = "'+b+'";';return["WiFi.begin(_lwifi_ssid, _lwifi_pass)", Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.linkit_wifi_disconnect=function(){return"WiFi.disconnect();"}; Blockly.Arduino.linkit_wifi_ignore_result=function(){var a=Blockly.Arduino.valueToCode(this,"SSID",Blockly.Arduino.ORDER_ATOMIC)||"",b=Blockly.Arduino.valueToCode(this,"PASSWORD",Blockly.Arduino.ORDER_ATOMIC)||"";a=a.replace(/\"/g,"");b=b.replace(/\"/g,"");Blockly.Arduino.definitions_.define_linkit_wifi_include="#include ";Blockly.Arduino.definitions_.define_linkit_wifi_ssid='char _lwifi_ssid[] = "'+a+'";';Blockly.Arduino.definitions_.define_linkit_wifi_pass='char _lwifi_pass[] = "'+b+'";'; -Blockly.Arduino.setups_.define_linkit_wifi_setup="WiFi.begin(_lwifi_ssid, _lwifi_pass);";return"\n"};Blockly.Arduino.linkit_wifi_status=function(){return[this.getFieldValue("String"),Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.logic={}; -Blockly.Arduino.controls_if=function(){var a=0,b=Blockly.Arduino.valueToCode(this,"IF"+a,Blockly.Arduino.ORDER_NONE)||"false",c=Blockly.Arduino.statementToCode(this,"DO"+a),d="if ("+b+") {\n"+c+"\n}";for(a=1;a<=this.elseifCount_;a++)b=Blockly.Arduino.valueToCode(this,"IF"+a,Blockly.Arduino.ORDER_NONE)||"false",c=Blockly.Arduino.statementToCode(this,"DO"+a),d+=" else if ("+b+") {\n"+c+"}";this.elseCount_&&(c=Blockly.Arduino.statementToCode(this,"ELSE"),d+=" else {\n"+c+"\n}");return d+"\n"}; -Blockly.Arduino.logic_compare=function(){var a=this.getFieldValue("OP");a=Blockly.Arduino.logic_compare.OPERATORS[a];var b="=="==a||"!="==a?Blockly.Arduino.ORDER_EQUALITY:Blockly.Arduino.ORDER_RELATIONAL,c=Blockly.Arduino.valueToCode(this,"A",b)||"0",d=Blockly.Arduino.valueToCode(this,"B",b)||"0";return[c+" "+a+" "+d,b]};Blockly.Arduino.logic_compare.OPERATORS={EQ:"==",NEQ:"!=",LT:"<",LTE:"<=",GT:">",GTE:">="}; -Blockly.Arduino.logic_operation=function(){var a="AND"==this.getFieldValue("OP")?"&&":"||",b="&&"==a?Blockly.Arduino.ORDER_LOGICAL_AND:Blockly.Arduino.ORDER_LOGICAL_OR,c=Blockly.Arduino.valueToCode(this,"A",b)||"false",d=Blockly.Arduino.valueToCode(this,"B",b)||"false";return[c+" "+a+" "+d,b]};Blockly.Arduino.logic_negate=function(){var a=Blockly.Arduino.ORDER_UNARY_PREFIX;return["!"+(Blockly.Arduino.valueToCode(this,"BOOL",a)||"false"),a]}; -Blockly.Arduino.logic_boolean=function(){return["TRUE"==this.getFieldValue("BOOL")?"true":"false",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.logic_null=function(){return["NULL",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.m2x={}; -Blockly.Arduino.m2x_begin=function(){var a=this.getFieldValue("VERSION"),b=Blockly.Arduino.valueToCode(this,"ID",Blockly.Arduino.ORDER_ATOMIC)||"",c=Blockly.Arduino.valueToCode(this,"STREAM_NAME",Blockly.Arduino.ORDER_ATOMIC)||"",d=Blockly.Arduino.valueToCode(this,"KEY",Blockly.Arduino.ORDER_ATOMIC)||"";Blockly.Arduino.definitions_.define_spi="#include ";Blockly.Arduino.definitions_.define_ethernet="#include ";Blockly.Arduino.definitions_.define_jsonlite="#include "; -Blockly.Arduino.definitions_.define_M2XStreamClient="#include ";Blockly.Arduino.definitions_.define_ethernet_client="EthernetClient client;";Blockly.Arduino.definitions_.define_m2x_id="char m2xId[] = "+b+";";Blockly.Arduino.definitions_.define_m2x_stream_name="char m2xStream[] = "+c+";";Blockly.Arduino.definitions_.define_m2x_key="char m2xKey[] = "+d+";";Blockly.Arduino.definitions_.define_m2xstreamclient="M2XStreamClient m2xClient(&client, m2xKey);\n";return""}; -Blockly.Arduino.m2x_update_value=function(){return["m2xClient.updateStreamValue(m2xId, m2xStream, "+(Blockly.Arduino.valueToCode(this,"VALUE",Blockly.Arduino.ORDER_ATOMIC)||"0")+")",Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.m2x_list_value=function(){Blockly.Arduino.setups_["setup_serial_"+profile["default"].serial]="Serial.begin("+profile["default"].serial+");\n";Blockly.Arduino.definitions_.define_on_data_point_found='void on_data_point_found(const char* at, const char* value, int index, void* context, int type) {\n Serial.print("Found a data point, index:");\n Serial.println(index);\n Serial.print("Type:");\n Serial.println(type);\n Serial.print("At:");\n Serial.println(at);\n Serial.print("Value:");\n Serial.println(value);\n}\n';return"m2xClient.listStreamValues(m2xId, m2xStream, on_data_point_found, NULL);\n"}; -Blockly.Arduino.m2x_custom_list_value=function(){var a=this.getFieldValue("DATE0"),b=this.getFieldValue("HOUR0"),c=this.getFieldValue("MIN0"),d=this.getFieldValue("SEC0"),e=this.getFieldValue("DATE1"),f=this.getFieldValue("HOUR1"),g=this.getFieldValue("MIN1"),h=this.getFieldValue("SEC1");Blockly.Arduino.setups_["setup_serial_"+profile["default"].serial]="Serial.begin("+profile["default"].serial+");\n";Blockly.Arduino.definitions_.define_on_data_point_found='void on_data_point_found(const char* at, const char* value, int index, void* context, int type) {\n Serial.print("Found a data point, index:");\n Serial.println(index);\n Serial.print("Type:");\n Serial.println(type);\n Serial.print("At:");\n Serial.println(at);\n Serial.print("Value:");\n Serial.println(value);\n}\n'; -return'm2xClient.listStreamValues(m2xId, m2xStream, on_data_point_found, NULL, "start='+a+"T"+b+":"+c+":"+d+"Z&end="+e+"T"+f+":"+g+":"+h+'Z");\n'}; -Blockly.Arduino.m2x_delete_values=function(){var a=this.getFieldValue("DATE0"),b=this.getFieldValue("HOUR0"),c=this.getFieldValue("MIN0"),d=this.getFieldValue("SEC0"),e=this.getFieldValue("DATE1"),f=this.getFieldValue("HOUR1"),g=this.getFieldValue("MIN1"),h=this.getFieldValue("SEC1");return['m2xClient.deleteValues(m2xId, m2xStream, "'+a+"T"+b+":"+c+":"+d+'Z","'+e+"T"+f+":"+g+":"+h+'Z")',Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.m2x_update_location=function(){var a=Blockly.Arduino.valueToCode(this,"LOCATION_NAME",Blockly.Arduino.ORDER_ATOMIC)||"0",b=Blockly.Arduino.valueToCode(this,"LATITUDE",Blockly.Arduino.ORDER_ATOMIC)||"0",c=Blockly.Arduino.valueToCode(this,"LONGITUDE",Blockly.Arduino.ORDER_ATOMIC)||"0",d=Blockly.Arduino.valueToCode(this,"ELEVATION",Blockly.Arduino.ORDER_ATOMIC)||"0";return["m2xClient.updateLocation(m2xId, "+a+", (double)"+b+", (double)"+c+", (double)"+d+")",Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.m2x_read_location=function(){Blockly.Arduino.setups_["setup_serial_"+profile["default"].serial]="Serial.begin("+profile["default"].serial+");\n";Blockly.Arduino.definitions_.define_on_location_found='void on_location_found(const char* name,\n double latitude,\n double longitude,\n double elevation,\n const char* timestamp,\n int index,\n void* context) {\n Serial.print("Found a location, index:");\n Serial.println(index);\n Serial.print("Name: ");\n Serial.println(name);\n Serial.print("Latitude: ");\n Serial.println(latitude);\n Serial.print("Longitude: ");\n Serial.println(longitude);\n Serial.print("Elevation: ");\n Serial.println(elevation);\n Serial.print("Timestamp: ");\n Serial.println(timestamp);\n}\n'; -return["m2xClient.readLocation(m2xId, on_location_found, NULL)",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.math={};Blockly.Arduino.math_number=function(){var a=window.parseFloat(this.getFieldValue("NUM"));return[a,0>a?Blockly.Arduino.ORDER_UNARY_PREFIX:Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.math_arithmetic=function(){var a=this.getFieldValue("OP"),b=Blockly.Arduino.math_arithmetic.OPERATORS[a];a=b[0];b=b[1];var c=Blockly.Arduino.valueToCode(this,"A",b)||"0",d=Blockly.Arduino.valueToCode(this,"B",b)||"0";return a?[c+a+d,b]:["Math.pow("+c+", "+d+")",Blockly.Arduino.ORDER_UNARY_POSTFIX]}; -Blockly.Arduino.math_arithmetic.OPERATORS={ADD:[" + ",Blockly.Arduino.ORDER_ADDITIVE],MINUS:[" - ",Blockly.Arduino.ORDER_ADDITIVE],MULTIPLY:[" * ",Blockly.Arduino.ORDER_MULTIPLICATIVE],DIVIDE:[" / ",Blockly.Arduino.ORDER_MULTIPLICATIVE],MODULO:[" % ",Blockly.Arduino.ORDER_MULTIPLICATIVE],POWER:[null,Blockly.Arduino.ORDER_NONE]}; -Blockly.Arduino.math_random_max_min=function(a){var b=Blockly.Arduino.valueToCode(a,"MAX",Blockly.Arduino.ORDER_ATOMIC)||"1";a=Blockly.Arduino.valueToCode(a,"MIN",Blockly.Arduino.ORDER_ATOMIC)||"0";return[0";Blockly.Arduino.definitions_.define_mpr121="#include \nAdafruit_MPR121 cap = Adafruit_MPR121();\nuint16_t lasttouched = 0;\nuint16_t currtouched = 0;";Blockly.Arduino.setups_.setup_cap_begin="cap.begin(0x5A);\n";return"currtouched = cap.touched();\n"}; -Blockly.Arduino.mpr121_touched=function(){var a=Blockly.Arduino.valueToCode(this,"CH",Blockly.Arduino.ORDER_ATOMIC)||"0";Blockly.Arduino.definitions_.define_wire="#include ";Blockly.Arduino.definitions_.define_mpr121="#include \nAdafruit_MPR121 cap = Adafruit_MPR121();\nuint16_t lasttouched = 0;\nuint16_t currtouched = 0;";Blockly.Arduino.setups_.setup_cap_begin="cap.begin(0x5A);\n";return["(currtouched & _BV("+a+")) && !(lasttouched & _BV("+a+"))",Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.mpr121_released=function(){var a=Blockly.Arduino.valueToCode(this,"CH",Blockly.Arduino.ORDER_ATOMIC)||"0";Blockly.Arduino.definitions_.define_wire="#include ";Blockly.Arduino.definitions_.define_mpr121="#include \nAdafruit_MPR121 cap = Adafruit_MPR121();\nuint16_t lasttouched = 0;\nuint16_t currtouched = 0;";Blockly.Arduino.setups_.setup_cap_begin="cap.begin(0x5A);\n";return["!(currtouched & _BV("+a+")) && (lasttouched & _BV("+a+"))",Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.mpr121_value=function(){var a=Blockly.Arduino.valueToCode(this,"CH",Blockly.Arduino.ORDER_ATOMIC)||"0";Blockly.Arduino.definitions_.define_wire="#include ";Blockly.Arduino.definitions_.define_mpr121="#include \nAdafruit_MPR121 cap = Adafruit_MPR121();\nuint16_t lasttouched = 0;\nuint16_t currtouched = 0;";Blockly.Arduino.setups_.setup_cap_begin="cap.begin(0x5A);\n";return["cap.filteredData("+a+")",Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.mpr121_reset=function(){Blockly.Arduino.definitions_.define_wire="#include ";Blockly.Arduino.definitions_.define_mpr121="#include \nAdafruit_MPR121 cap = Adafruit_MPR121();\nuint16_t lasttouched = 0;\nuint16_t currtouched = 0;";Blockly.Arduino.setups_.setup_cap_begin="cap.begin(0x5A);\n";return"lasttouched = currtouched;\n"};Blockly.Arduino.neopixel={}; +Blockly.Arduino.setups_.define_linkit_wifi_setup="WiFi.begin(_lwifi_ssid, _lwifi_pass);";return"\n"};Blockly.Arduino.linkit_wifi_status=function(){return[this.getFieldValue("String"),Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.ethernet={}; +Blockly.Arduino.ethernet_begin_dhcp=function(){var a=this.getFieldValue("VERSION"),b=Blockly.Arduino.valueToCode(this,"MAC_ADDRESS",Blockly.Arduino.ORDER_ATOMIC)||"0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED";b=b.replace(/"/g,"");Blockly.Arduino.definitions_.define_spi="#include ";Blockly.Arduino.definitions_.define_ethernet="#include ";Blockly.Arduino.definitions_.define_ethernet_client="EthernetClient client;";Blockly.Arduino.definitions_.define_arduino_mac="byte mac[] = {"+b+"};\n"; +return["Ethernet.begin(mac)",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.ethernet_mac_address=function(){var a=this.getFieldValue("MAC_ADDRESS_1"),b=this.getFieldValue("MAC_ADDRESS_2"),c=this.getFieldValue("MAC_ADDRESS_3"),d=this.getFieldValue("MAC_ADDRESS_4"),e=this.getFieldValue("MAC_ADDRESS_5"),f=this.getFieldValue("MAC_ADDRESS_6");return["0x"+a+", 0x"+b+", 0x"+c+", 0x"+d+", 0x"+e+", 0x"+f,Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.ethernet_localip=function(){return["Ethernet.localIP()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.ethernet_available=function(){return["client.available()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.ethernet_connected=function(){return["client.connected()",Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.ethernet_connect=function(){var a=Blockly.Arduino.valueToCode(this,"SERVER",Blockly.Arduino.ORDER_ATOMIC)||"",b=this.getFieldValue("PORT");return["client.connect("+a+","+b+")",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.ethernet_print=function(){return"client.print("+(Blockly.Arduino.valueToCode(this,"TEXT",Blockly.Arduino.ORDER_ATOMIC)||"")+");\n"}; +Blockly.Arduino.ethernet_println=function(){return"client.println("+(Blockly.Arduino.valueToCode(this,"TEXT",Blockly.Arduino.ORDER_ATOMIC)||"")+");\n"};Blockly.Arduino.ethernet_stop=function(){return"client.stop();\n"};Blockly.Arduino.ethernet_read=function(){return["(char)client.read()",Blockly.Arduino.ORDER_ATOMIC]}; +Blockly.Arduino.ethernet_get_request=function(){var a=Blockly.Arduino.valueToCode(this,"URL",Blockly.Arduino.ORDER_ATOMIC)||"",b=Blockly.Arduino.valueToCode(this,"SERVER",Blockly.Arduino.ORDER_ATOMIC)||"";a=a.replace(/\"/g,"");b=b.replace(/\"/g,"");a='client.println("GET '+a+' HTTP/1.1");\n'+('client.println(F("Host: '+b+'"));\n')+'client.println(F("Connection: close"));\n';return a+="client.println();\n"}; +Blockly.Arduino.ethernet_post_request=function(){var a=Blockly.Arduino.valueToCode(this,"URL",Blockly.Arduino.ORDER_ATOMIC)||"",b=Blockly.Arduino.valueToCode(this,"SERVER",Blockly.Arduino.ORDER_ATOMIC)||"",c=Blockly.Arduino.valueToCode(this,"POST_DATA",Blockly.Arduino.ORDER_ATOMIC)||"";a=a.replace(/\"/g,"");b=b.replace(/\"/g,"");a='client.println("POST '+a+' HTTP/1.1");\n'+('client.print(F("Host: '+b+");\n")+'client.println(F("Connection: close"));\n';a+='client.println(F("Content-Type: application/x-www-form-urlencoded"));\n'; +a+='client.println(F("Content-Length: '+c.length-2+'"));\n';return a+="client.print("+c+");\n"};Blockly.Arduino.initializes={};Blockly.Arduino.initializes_setup=function(){var a=Blockly.Arduino.statementToCode(this,"CONTENT");a=a.replace(/(^\s+)|(\s+$)/g,"");Blockly.Arduino.setups_.manual_add=a;return""};Blockly.Arduino.initializes_loop=function(){var a=Blockly.Arduino.statementToCode(this,"CONTENT");return a=a.replace(/(^\s+)|(\s+$)/g,"")};Blockly.Arduino.initializes_temp=function(){return""};Blockly.Arduino.neopixel={}; Blockly.Arduino.neopixel_begin=function(){var a=this.getFieldValue("NUM"),b=this.getFieldValue("PIN"),c=this.getFieldValue("BRIGHTNESS");Blockly.Arduino.definitions_.define_include_neopixel="#include \n";Blockly.Arduino.definitions_.define_neopixel="Adafruit_NeoPixel pixels = Adafruit_NeoPixel("+a+","+b+",NEO_GRB + NEO_KHZ800);\n";Blockly.Arduino.setups_.setup_neopixel_begin="pixels.begin();\n";Blockly.Arduino.setups_.setup_neopixel_brightness="pixels.setBrightness("+c+");\n"; return""};function hexToR(a){return parseInt(cutHex(a).substring(0,2),16)}function hexToG(a){return parseInt(cutHex(a).substring(2,4),16)}function hexToB(a){return parseInt(cutHex(a).substring(4,6),16)}function cutHex(a){return"#"==a.charAt(0)?a.substring(1,7):a} Blockly.Arduino.neopixel_setpixelcolor=function(){var a=Blockly.Arduino.valueToCode(this,"TARGET",Blockly.Arduino.ORDER_ATOMIC)||"0",b=this.getFieldValue("RGB");return"pixels.setPixelColor("+a+",pixels.Color("+hexToR(b)+","+hexToG(b)+","+hexToB(b)+"));\n"}; -Blockly.Arduino.neopixel_custom_setpixelcolor=function(){var a=Blockly.Arduino.valueToCode(this,"TARGET",Blockly.Arduino.ORDER_ATOMIC)||"0",b=Blockly.Arduino.valueToCode(this,"R",Blockly.Arduino.ORDER_ATOMIC)||"255",c=Blockly.Arduino.valueToCode(this,"G",Blockly.Arduino.ORDER_ATOMIC)||"0",d=Blockly.Arduino.valueToCode(this,"B",Blockly.Arduino.ORDER_ATOMIC)||"0";return"pixels.setPixelColor("+a+", pixels.Color("+b+","+c+","+d+"));\n"};Blockly.Arduino.neopixel_show=function(){return"pixels.show();\n"};Blockly.Arduino.otto={}; -Blockly.Arduino.otto_init=function(){var a=this.getFieldValue("YL"),b=this.getFieldValue("YR"),c=this.getFieldValue("RL"),d=this.getFieldValue("RR");Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";Blockly.Arduino.definitions_.define_define_otto_ascii="/*\n --------------- \n | O O |\n |---------------|\n YR ==> | | <== YL \n --------------- \n || ||\n || ||\n RR ==> ----- ----- <== RL \n |----- -----|\n*/\n";Blockly.Arduino.definitions_.define_define_otto_init_yl= -"#define OTTO_PIN_YL "+a;Blockly.Arduino.definitions_.define_define_otto_init_yr="#define OTTO_PIN_YR "+b;Blockly.Arduino.definitions_.define_define_otto_init_rl="#define OTTO_PIN_RL "+c;Blockly.Arduino.definitions_.define_define_otto_init_rr="#define OTTO_PIN_RR "+d;Blockly.Arduino.setups_.setup_otto_init="__otto.initLegs(OTTO_PIN_YL, OTTO_PIN_YR, OTTO_PIN_RL, OTTO_PIN_RR, false);";return""}; -Blockly.Arduino.otto_calibrate=function(){var a=Blockly.Arduino.valueToCode(this,"YL",Blockly.Arduino.ORDER_ATOMIC)||0,b=Blockly.Arduino.valueToCode(this,"YR",Blockly.Arduino.ORDER_ATOMIC)||0,c=Blockly.Arduino.valueToCode(this,"RL",Blockly.Arduino.ORDER_ATOMIC)||0,d=Blockly.Arduino.valueToCode(this,"RR",Blockly.Arduino.ORDER_ATOMIC)||0;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";Blockly.Arduino.definitions_.define_define_otto_trim_yl= -"#define OTTO_TRIM_YL "+a;Blockly.Arduino.definitions_.define_define_otto_trim_yr="#define OTTO_TRIM_YR "+b;Blockly.Arduino.definitions_.define_define_otto_trim_rl="#define OTTO_TRIM_RL "+c;Blockly.Arduino.definitions_.define_define_otto_trim_rr="#define OTTO_TRIM_RR "+d;Blockly.Arduino.setups_.setup_otto_trim="__otto.setTrims(OTTO_TRIM_YL, OTTO_TRIM_YR, OTTO_TRIM_RL, OTTO_TRIM_RR);";return""}; -Blockly.Arduino.otto_home=function(){Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.home();\n"}; -Blockly.Arduino.otto_walk=function(){var a=this.getFieldValue("DIRECTION"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||4,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||1E3;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.walk("+b+", "+c+", "+a+");\n"}; -Blockly.Arduino.otto_turn=function(){var a=this.getFieldValue("DIRECTION"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||4,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||1E3;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.turn("+b+", "+c+", "+a+");\n"}; -Blockly.Arduino.otto_bend=function(){var a=this.getFieldValue("DIRECTION"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||1,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||1400;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.bend("+b+", "+c+", "+a+");\n"}; -Blockly.Arduino.otto_shake_leg=function(){var a=this.getFieldValue("DIRECTION"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||1,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||2E3;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.shakeLeg("+b+", "+c+", "+a+");\n"}; -Blockly.Arduino.otto_freestyle=function(){var a=this.getFieldValue("STYLE"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||1,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||1E3,d=Blockly.Arduino.valueToCode(this,"HEIGHT",Blockly.Arduino.ORDER_ATOMIC)||20;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto."+a+"("+b+", "+c+", "+d+");\n"}; -Blockly.Arduino.otto_moonwalk=function(){var a=this.getFieldValue("DIRECTION"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||4,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||1E3,d=Blockly.Arduino.valueToCode(this,"HEIGHT",Blockly.Arduino.ORDER_ATOMIC)||20;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.moonwalker("+b+", "+c+", "+d+ -", "+a+");\n"}; -Blockly.Arduino.otto_crusaito=function(){var a=this.getFieldValue("DIRECTION"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||4,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||1E3,d=Blockly.Arduino.valueToCode(this,"HEIGHT",Blockly.Arduino.ORDER_ATOMIC)||20;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.crusaito("+b+", "+c+", "+d+", "+ -a+");\n"}; -Blockly.Arduino.otto_flapping=function(){var a=this.getFieldValue("DIRECTION"),b=Blockly.Arduino.valueToCode(this,"DISTANCE",Blockly.Arduino.ORDER_ATOMIC)||4,c=Blockly.Arduino.valueToCode(this,"DURATION",Blockly.Arduino.ORDER_ATOMIC)||1E3,d=Blockly.Arduino.valueToCode(this,"HEIGHT",Blockly.Arduino.ORDER_ATOMIC)||20;Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.flapping("+b+", "+c+", "+d+", "+ -a+");\n"};Blockly.Arduino.otto_height=function(){return[this.getFieldValue("HEIGHT"),Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.otto_ultrasonic_init=function(){var a=this.getFieldValue("TRIGGER_PIN"),b=this.getFieldValue("ECHO_PIN");Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";Blockly.Arduino.definitions_.define_define_otto_ultrasonic_init_trigger="#define OTTO_PIN_TRIGGER "+a;Blockly.Arduino.definitions_.define_define_otto_ultrasonic_init_echo="#define OTTO_PIN_ECHO "+b;Blockly.Arduino.setups_.setup_otto_ultrasonic_init= -"__otto.initUltrasonic(OTTO_PIN_TRIGGER, OTTO_PIN_ECHO);";return""};Blockly.Arduino.otto_ultrasonic_distance=function(){Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return["__otto.getDistance()",Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.otto_buzzer_init=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";Blockly.Arduino.definitions_.define_define_otto_buzzer_init="#define OTTO_PIN_BUZZER "+a;Blockly.Arduino.setups_.setup_otto_buzzer_init="__otto.initBuzzer(OTTO_PIN_BUZZER);";return""}; -Blockly.Arduino.otto_buzzer_sing=function(){var a=this.getFieldValue("SING");Blockly.Arduino.definitions_.define_include_otto="#include \n";Blockly.Arduino.definitions_.define_define_otto_item="Otto __otto;\n";return"__otto.sing("+a+");\n"};Blockly.Arduino.procedures={}; -Blockly.Arduino.procedures_defreturn=function(){var a=Blockly.Arduino.variableDB_.getName(this.getFieldValue("NAME"),Blockly.Procedures.NAME_TYPE),b=Blockly.Arduino.statementToCode(this,"STACK");Blockly.Arduino.INFINITE_LOOP_TRAP&&(b=Blockly.Arduino.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+b);var c=Blockly.Arduino.valueToCode(this,"RETURN",Blockly.Arduino.ORDER_NONE)||"",d=this.getFieldValue("TYPE");c&&(c=" return "+c+";\n");d=c?d:"void";for(var e=[],f=0;f\n";Blockly.Arduino.definitions_.define_rgbled="Adafruit_NeoPixel rgbled = Adafruit_NeoPixel("+a+","+b+",NEO_RGB + NEO_KHZ400);\n";Blockly.Arduino.setups_.setup_rgbled_begin="rgbled.begin();\n";Blockly.Arduino.setups_.setup_rgbled_brightness="rgbled.setBrightness("+c+");\n";return""}; -function hexToR(a){return parseInt(cutHex(a).substring(0,2),16)}function hexToG(a){return parseInt(cutHex(a).substring(2,4),16)}function hexToB(a){return parseInt(cutHex(a).substring(4,6),16)}function cutHex(a){return"#"==a.charAt(0)?a.substring(1,7):a}Blockly.Arduino.rgbled_setpixelcolor=function(){var a=this.getFieldValue("TARGET"),b=this.getFieldValue("RGB");return"rgbled.setPixelColor("+a+",rgbled.Color("+hexToR(b)+","+hexToG(b)+","+hexToB(b)+"));\n"}; -Blockly.Arduino.rgbled_setpixelcolor2=function(){var a=Blockly.Arduino.valueToCode(this,"TARGET",Blockly.Arduino.ORDER_ATOMIC)||"0",b=this.getFieldValue("RGB");return"rgbled.setPixelColor("+a+",rgbled.Color("+hexToR(b)+","+hexToG(b)+","+hexToB(b)+"));\n"}; -Blockly.Arduino.rgbled_custom_setpixelcolor=function(){var a=Blockly.Arduino.valueToCode(this,"TARGET",Blockly.Arduino.ORDER_ATOMIC)||"0",b=Blockly.Arduino.valueToCode(this,"R",Blockly.Arduino.ORDER_ATOMIC)||"255",c=Blockly.Arduino.valueToCode(this,"G",Blockly.Arduino.ORDER_ATOMIC)||"0",d=Blockly.Arduino.valueToCode(this,"B",Blockly.Arduino.ORDER_ATOMIC)||"0";return"rgbled.setPixelColor("+a+", rgbled.Color("+b+","+c+","+d+"));\n"};Blockly.Arduino.rgbled_show=function(){return"rgbled.show();\n"};Blockly.Arduino.serial={};Blockly.Arduino.serial_init=function(){var a=Blockly.Arduino.valueToCode(this,"SPEED",Blockly.Arduino.ORDER_ATOMIC)||profile["default"].serial;void 0==Blockly.Arduino.setups_.setup_serial&&(Blockly.Arduino.setups_.setup_serial="Serial.begin("+a+");\n");return""}; +Blockly.Arduino.neopixel_custom_setpixelcolor=function(){var a=Blockly.Arduino.valueToCode(this,"TARGET",Blockly.Arduino.ORDER_ATOMIC)||"0",b=Blockly.Arduino.valueToCode(this,"R",Blockly.Arduino.ORDER_ATOMIC)||"255",c=Blockly.Arduino.valueToCode(this,"G",Blockly.Arduino.ORDER_ATOMIC)||"0",d=Blockly.Arduino.valueToCode(this,"B",Blockly.Arduino.ORDER_ATOMIC)||"0";return"pixels.setPixelColor("+a+", pixels.Color("+b+","+c+","+d+"));\n"};Blockly.Arduino.neopixel_show=function(){return"pixels.show();\n"};Blockly.Arduino.texts={};Blockly.Arduino.text=function(){return[Blockly.Arduino.quote_(this.getFieldValue("TEXT")),Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.text_commentout=function(){return"/*\n"+Blockly.Arduino.statementToCode(this,"COMMENTOUT")+"\n*/\n"};Blockly.Arduino.text_length=function(){return[(Blockly.Arduino.valueToCode(this,"VALUE",Blockly.Arduino.ORDER_FUNCTION_CALL)||"''")+".length()",Blockly.Arduino.ORDER_MEMBER]}; +Blockly.Arduino.text_charAt=function(){var a=Blockly.Arduino.valueToCode(this,"VALUE",Blockly.Arduino.ORDER_ATOMIC)||"",b=Blockly.Arduino.valueToCode(this,"INDEX",Blockly.Arduino.ORDER_ATOMIC)||0;return[a+".charAt("+b+")",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.serial={};Blockly.Arduino.serial_init=function(){var a=Blockly.Arduino.valueToCode(this,"SPEED",Blockly.Arduino.ORDER_ATOMIC)||profile["default"].serial;void 0==Blockly.Arduino.setups_.setup_serial&&(Blockly.Arduino.setups_.setup_serial="Serial.begin("+a+");\n");return""}; Blockly.Arduino.serial_print=function(){var a=Blockly.Arduino.valueToCode(this,"CONTENT",Blockly.Arduino.ORDER_ATOMIC)||"0";void 0==Blockly.Arduino.setups_.setup_serial&&(Blockly.Arduino.setups_.setup_serial="Serial.begin("+profile["default"].serial+");\n");return"Serial.print("+a+");\n"}; Blockly.Arduino.serial_read=function(){Blockly.Arduino.valueToCode(this,"CONTENT",Blockly.Arduino.ORDER_ATOMIC);void 0==Blockly.Arduino.setups_.setup_serial&&(Blockly.Arduino.setups_.setup_serial="Serial.begin("+profile["default"].serial+");\n");return["Serial.read()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.serial_byte_number=function(){return[this.getFieldValue("NUM"),Blockly.Arduino.ORDER_ATOMIC]}; Blockly.Arduino.serial_available=function(){Blockly.Arduino.valueToCode(this,"CONTENT",Blockly.Arduino.ORDER_ATOMIC);void 0==Blockly.Arduino.setups_.setup_serial&&(Blockly.Arduino.setups_.setup_serial="Serial.begin("+profile["default"].serial+");\n");return["Serial.available()",Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.serial_println=function(){var a=Blockly.Arduino.valueToCode(this,"CONTENT",Blockly.Arduino.ORDER_ATOMIC)||"0";void 0==Blockly.Arduino.setups_.setup_serial&&(Blockly.Arduino.setups_.setup_serial="Serial.begin("+profile["default"].serial+");\n");return"Serial.println("+a+");\n"};Blockly.Arduino.servo={};Blockly.Arduino.servo_attach=function(){var a=this.getFieldValue("PIN"),b="";Blockly.Arduino.definitions_.define_servo="#include ";Blockly.Arduino.definitions_["define_class_servo_"+a]="Servo __myservo"+a+";";void 0===Blockly.Arduino.setups_["servo_"+a]?Blockly.Arduino.setups_["servo_"+a]="__myservo"+a+".attach("+a+");":b="__myservo"+a+".attach("+a+");\n";return b}; -Blockly.Arduino.servo_custom_attach=function(){var a=this.getFieldValue("PIN"),b=this.getFieldValue("MAX"),c=this.getFieldValue("MIN"),d="";Blockly.Arduino.definitions_.define_servo="#include ";Blockly.Arduino.definitions_["define_class_servo_"+a]="Servo __myservo"+a+";";void 0===Blockly.Arduino.setups_["servo_"+a]?Blockly.Arduino.setups_["servo_"+a]="__myservo"+a+".attach("+a+","+c+","+b+");":d="__myservo"+a+".attach("+a+","+c+","+b+");\n";return d}; -Blockly.Arduino.servo_write=function(){var a=this.getFieldValue("PIN"),b=Blockly.Arduino.valueToCode(this,"ANGLE",Blockly.Arduino.ORDER_ATOMIC)||"90";Blockly.Arduino.definitions_.define_servo="#include ";Blockly.Arduino.definitions_["define_class_servo_"+a]="Servo __myservo"+a+";";Blockly.Arduino.setups_["servo_"+a]||(Blockly.Arduino.setups_["servo_"+a]="__myservo"+a+".attach("+a+");");return"__myservo"+a+".write("+b+");\n"}; -Blockly.Arduino.servo_writeus=function(){var a=this.getFieldValue("PIN"),b=Blockly.Arduino.valueToCode(this,"ANGLE_US",Blockly.Arduino.ORDER_ATOMIC)||"1500";Blockly.Arduino.definitions_.define_servo="#include ";Blockly.Arduino.definitions_["define_class_servo_"+a]="Servo __myservo"+a+";";void 0===Blockly.Arduino.setups_["servo_"+a]&&(Blockly.Arduino.setups_["servo_"+a]="__myservo"+a+".attach("+a+");");return"__myservo"+a+".writeMicroseconds("+b+");\n"}; -Blockly.Arduino.servo_read=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.definitions_.define_servo="#include ";Blockly.Arduino.definitions_["define_class_servo_"+a]="Servo __myservo"+a+";";return["__myservo"+a+".read()",Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.servo_attached=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.definitions_.define_servo="#include ";Blockly.Arduino.definitions_["define_class_servo_"+a]="Servo __myservo"+a+";";void 0===Blockly.Arduino.setups_["servo_"+a]&&(Blockly.Arduino.setups_["servo_"+a]="__myservo"+a+".attach("+a+");");return["__myservo"+a+".attached()",Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.servo_detach=function(){var a=this.getFieldValue("PIN");Blockly.Arduino.definitions_.define_servo="#include ";Blockly.Arduino.definitions_["define_class_servo_"+a]="Servo __myservo"+a+";";return"__myservo"+a+".detach();\n"};Blockly.Arduino.shield_bot={};Blockly.Arduino.shield_bot_setmaxspeed=function(){var a=this.getFieldValue("SPEED");a=a.replace(/[(|)]/g,"");255a&&(a=0);Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot.setMaxSpeed("+String(a)+");\n"}; -Blockly.Arduino.shield_bot_setmaxspeed_lr=function(){var a=this.getFieldValue("LEFT"),b=this.getFieldValue("RIGHT");a=a.replace(/[(|)]/g,"");b=b.replace(/[(|)]/g,"");255a&&(a=0);255b&&(b=0);Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot.setMaxSpeed("+String(a)+","+String(b)+");\n"}; -Blockly.Arduino.shield_bot_motor=function(){var a=this.getFieldValue("RL"),b=Blockly.Arduino.valueToCode(this,"DIRECTION",Blockly.Arduino.ORDER_ATOMIC)||"0";b=b.replace(/[(|)]/g,"");127b&&(b=-128);Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot."+a+"("+String(b)+");\n"}; -Blockly.Arduino.shield_bot_move=function(){var a=this.getFieldValue("MOVE");Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot."+a+"();\n"}; -Blockly.Arduino.shield_bot_drive=function(){var a=Blockly.Arduino.valueToCode(this,"LEFT",Blockly.Arduino.ORDER_ATOMIC)||"127",b=Blockly.Arduino.valueToCode(this,"RIGHT",Blockly.Arduino.ORDER_ATOMIC)||"127";a=a.replace(/[(|)]/g,"");b=b.replace(/[(|)]/g,"");127a&&(a=-128);127b&&(b=-128);Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot.drive("+String(a)+ -","+String(b)+");\n"};Blockly.Arduino.shield_bot_faststop=function(){Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot.fastStop();\n"};Blockly.Arduino.shield_bot_faststop_left=function(){Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot.fastStopLeft();\n"}; -Blockly.Arduino.shield_bot_faststop_right=function(){Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return"shieldbot.fastStopRight();\n"}; -Blockly.Arduino.shield_bot_readsensor=function(){var a=this.getFieldValue("SENSOR");Blockly.Arduino.definitions_.include_shield_bot="#include ";Blockly.Arduino.definitions_.define_shield_bot="Shieldbot shieldbot = Shieldbot();\n";return["shieldbot.readS"+a+"()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.texts={};Blockly.Arduino.text=function(){return[Blockly.Arduino.quote_(this.getFieldValue("TEXT")),Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.text_commentout=function(){return"/*\n"+Blockly.Arduino.statementToCode(this,"COMMENTOUT")+"\n*/\n"};Blockly.Arduino.text_length=function(){return[(Blockly.Arduino.valueToCode(this,"VALUE",Blockly.Arduino.ORDER_FUNCTION_CALL)||"''")+".length()",Blockly.Arduino.ORDER_MEMBER]}; -Blockly.Arduino.text_charAt=function(){var a=Blockly.Arduino.valueToCode(this,"VALUE",Blockly.Arduino.ORDER_ATOMIC)||"",b=Blockly.Arduino.valueToCode(this,"INDEX",Blockly.Arduino.ORDER_ATOMIC)||0;return[a+".charAt("+b+")",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.times={};Blockly.Arduino.delay=function(){return"delay("+this.getFieldValue("DELAY_TIME")+");\n"};Blockly.Arduino.delay_custom=function(){return"delay("+(Blockly.Arduino.valueToCode(this,"DELAY_TIME",Blockly.Arduino.ORDER_ATOMIC)||"1000")+");\n"};Blockly.Arduino.delayMicroseconds_custom=function(){return"delayMicroseconds("+(Blockly.Arduino.valueToCode(this,"DELAY_TIME",Blockly.Arduino.ORDER_ATOMIC)||"1000")+");\n"}; -Blockly.Arduino.delayMicroseconds=function(){return"delayMicroseconds("+this.getFieldValue("DELAY_TIME")+");\n"};Blockly.Arduino.millis=function(){return["millis()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.micros=function(){return["micros()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.ultrasonic={}; -Blockly.Arduino.ultrasonic_setting=function(){var a=this.getFieldValue("TRIG"),b=this.getFieldValue("ECHO"),c=this.getFieldValue("RESET");Blockly.Arduino.definitions_.define_sonic_timeout="int Sonic_Time_out = 3000;\n";Blockly.Arduino.setups_["setup_output_"+a]="pinMode("+a+", OUTPUT);";Blockly.Arduino.setups_["setup_output_"+b]="pinMode("+b+", INPUT);";Blockly.Arduino.setups_["setup_output_"+c]="pinMode("+c+", OUTPUT);";Blockly.Arduino.definitions_.define_Sonic_Timing="long Sonic_Timing(){\n digitalWrite("+ -a+", LOW);\n delayMicroseconds(2);\n digitalWrite("+a+", HIGH);\n delayMicroseconds(10);\n digitalWrite("+a+", LOW);\n long duration = pulseIn("+b+",HIGH,Sonic_Time_out);\n if ( duration == 0 ){\n duration = Sonic_Time_out;\n digitalWrite("+c+", HIGH);\n delay(25);\n digitalWrite("+c+" ,LOW);\n delay(225);\n }\n return duration;\n}\n";return""}; -Blockly.Arduino.ultrasonic_maxrange=function(){var a=this.getFieldValue("UNIT"),b=this.getFieldValue("MAXRANGE");Blockly.Arduino.definitions_.define_sonic_timeout="CM"==a?"int Sonic_Time_out = "+b+"*2*29;\n":"int Sonic_Time_out = "+b+"*2*72;\n";return""};Blockly.Arduino.ultrasonic_distance=function(){return["CM"==this.getFieldValue("UNIT")?"Sonic_Timing()/29/2":"Sonic_Timing()/74/2",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.variables={};Blockly.Arduino.variables_get=function(a){return[Blockly.Arduino.variableDB_.getName(this.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE),Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.variables_set=function(a){var b=Blockly.Arduino.valueToCode(a,"VALUE",Blockly.Arduino.ORDER_ASSIGNMENT)||"0",c=Blockly.Arduino.variableDB_.getName(this.getFieldValue("VAR"),Blockly.Variables.NAME_TYPE);a=Blockly.Variables.allVariablesAndTypes(this.workspace);for(var d=0;d\x3c/script>')},goog.appendScriptSrcNode_=function(a){var b=goog.global.document,c=b.createElement("script"); c.type="text/javascript";c.src=a;c.defer=!1;c.async=!1;b.head.appendChild(c)},goog.writeScriptTag_=function(a,b){if(goog.inHtmlDocument_()){var c=goog.global.document;if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&"complete"==c.readyState){if(/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');}if(void 0===b)if(goog.IS_OLD_IE_){goog.oldIeWaiting_=!0;var d=" onreadystatechange='goog.onScriptLoad_(this, "+ ++goog.lastNonModuleScriptIndex_+")' ";c.write('