// 'use strict'; // goog.provide('Blockly.Python.easymode'); // goog.require('Blockly.Python'); // Blockly.Python['wifiEasymode_network'] = function(block) { // var wifi_esp8266_include_declaration = "#include \n"; // var wifi_wifimulti_include_declaration = "#include "; // Blockly.Python.addInclude("wifi_esp8266_declaration", wifi_esp8266_include_declaration); // Blockly.Python.addInclude("wifi_wifimulti_include_declaration", wifi_wifimulti_include_declaration); // var ssid = block.getFieldValue("wifi_ssid"); // var pw = block.getFieldValue("wifi_pw"); // var wifiMulti_declaration = "ESP8266WiFiMulti WiFiMulti;\n"; // Blockly.Python.addDeclaration("wifiMulti_declaration", wifiMulti_declaration); // var code = " delay(10);\n" + // // Start by connecting to a WiFi network // " WiFiMulti.addAP(\"" + ssid + "\",\"" + pw + "\");\n" + // " Serial.print(\"Wait for WiFi... \");\n" + // " while(WiFiMulti.run() != WL_CONNECTED) {\n" + // " Serial.print(\".\");\n" + // " delay(500);\n" + // " }\n" + // " Serial.println(\"\");\n" + // " Serial.println(\"WiFi connected\");"; // Blockly.Python.addSetup("wifinetwork_connect", code); // return ''; // }; // Blockly.Python['wifiEasymode_thingspeak'] = function(block) { // var key = block.getFieldValue("API_KEY"); // var item_field = '', // item_value = ''; // var thingspeak_url = "http://api.thingspeak.com/update?api_key=" + key; // for (var n = 0; n < this.itemCount_; n++) { // item_field = "field" + (n + 1); // item_value = Blockly.Python.valueToCode(this, 'ADD' + n, // Blockly.Python.ORDER_NONE) || ''; // thingspeak_url += '&' + item_field + '=\"+String(' + item_value + ')+\"'; // } // var wifi_httpclient = "#include "; // Blockly.Python.addInclude("wifi_httpclient", wifi_httpclient); // Blockly.Python.addDeclaration("httpclient", "HTTPClient http;"); // var code = "http.begin(\"" + thingspeak_url + "\");\n" + // "http.GET();\n" + // "http.end();\n"; // return code; // }; // Blockly.Python['wifiEasymode_cococloud_post'] = function(block) { // var wifi_httpclient = "#include "; // Blockly.Python.addInclude('wifi_httpclient', wifi_httpclient); // var HTTPResponse = "String http_response;"; // Blockly.Python.addDeclaration('HTTP_Response', HTTPResponse); // var HTTPCode = "int httpCode;"; // Blockly.Python.addDeclaration('HTTP_code', HTTPCode); // let serial_setup = "Serial.begin(9600);"; // Blockly.Python.addSetup('serial_serial', serial_setup); // var httpclient = "HTTPClient http;"; // Blockly.Python.addDeclaration("httpclient", httpclient); // Blockly.Python.addDeclaration("payload", "String payload;"); // var json_include = "#include "; // Blockly.Python.addInclude("json_declaration", json_include); // var precode = "char JSONmessageBuffer[240];\n"; // Blockly.Python.addDeclaration("jsontool_prettyPrint", precode); // var code = ""; // var item_url = block.getFieldValue("event0"); // var item_data = Blockly.Python.valueToCode(this, 'dataA', // Blockly.Python.ORDER_NONE) || ''; // var code = "StaticJsonBuffer<240> JSONbuffer_easymode;\n" + // "JsonObject& Json_easymode = JSONbuffer_easymode.createObject();\n" + // "Json_easymode[\"EM_data\"]=" + item_data + ";\n" + // "Json_easymode.prettyPrintTo(JSONmessageBuffer, sizeof(JSONmessageBuffer));\n" + // "http.begin(\"" + item_url + "\");\n" + // "http.addHeader(\"Content-Type\", \"application/json\");\n" + // "httpCode = http.POST(JSONmessageBuffer);\n" + // "payload = http.getString();\n" + // "Serial.println(httpCode);\n" + // "Serial.println(payload);\n" + // "http.end();\n"; // return code; // } // Blockly.Python['wifiEasymode_cococloud_get'] = function(block) { // var wifi_httpclient = "#include "; // Blockly.Python.addInclude('wifi_httpclient', wifi_httpclient); // var HTTPResponse = "String http_response;"; // Blockly.Python.addDeclaration('HTTP_Response', HTTPResponse); // var HTTPCode = "int httpCode;"; // Blockly.Python.addDeclaration('HTTP_code', HTTPCode); // let serial_setup = "Serial.begin(9600);"; // Blockly.Python.addSetup('serial_serial', serial_setup); // var httpclient = "HTTPClient http;"; // Blockly.Python.addDeclaration("httpclient", httpclient); // var cococloud_Response = "String cococloud_response;"; // Blockly.Python.addDeclaration("cococloud_Response", cococloud_Response); // Blockly.Python.addDeclaration("payload", "String payload;"); // var json_include = "#include "; // Blockly.Python.addInclude("json_declaration", json_include); // var code = ""; // var item_url = block.getFieldValue("event0"); // var dataGet = Blockly.Python.variableDB_.getName( // block.getFieldValue('DATAVAR'), Blockly.Variables.NAME_TYPE); // code += "http.begin(\"" + item_url + "\");\n" + // "http.addHeader(\"Content-Type\", \"application/json\");\n" + // "httpCode = http.GET();\n" + // "payload = http.getString();\n" + // "cococloud_response = payload;\n" + // "Serial.println(httpCode);\n" + // "Serial.println(payload);\n" + // "http.end();\n" + // "StaticJsonBuffer<240> jsonBuffer_easymode;\n" + // "JsonObject& cloud_data = jsonBuffer_easymode.parseObject(cococloud_response);\n" + // "" + dataGet + " = cloud_data[\"data\"][0][\"EM_data\"].as();"; // return code; // } // Blockly.Python['wifiEasymode_cococloud2_post'] = function(block) { // var wifi_httpclient = "#include "; // Blockly.Python.addInclude('wifi_httpclient', wifi_httpclient); // var HTTPResponse = "String http_response;"; // Blockly.Python.addDeclaration('HTTP_Response', HTTPResponse); // var HTTPCode = "int httpCode;"; // Blockly.Python.addDeclaration('HTTP_code', HTTPCode); // let serial_setup = "Serial.begin(9600);"; // Blockly.Python.addSetup('serial_serial', serial_setup); // var httpclient = "HTTPClient http;"; // Blockly.Python.addDeclaration("httpclient", httpclient); // Blockly.Python.addDeclaration("payload", "String payload;"); // var json_include = "#include "; // Blockly.Python.addInclude("json_declaration", json_include); // var precode = "char JSONmessageBuffer[240];\n"; // Blockly.Python.addDeclaration("jsontool_prettyPrint", precode); // var code = ""; // // var item_url = "http://cocorobo.cn/api/iot/data/eventAPIKey/" + block.getFieldValue("event0"); // var item_url = "http://staging.cocorobo.cn/api/iot/data/eventAPIKey/" + block.getFieldValue("event0"); //staging // var code = "StaticJsonBuffer<240> JSONbuffer_easymode;\n" + // "JsonObject& Json_easymode = JSONbuffer_easymode.createObject();\n"; // for (var n = 0; n < this.itemCount_; n++) { // var item_field = block.getFieldValue("field" + n); // var item_value = Blockly.Python.valueToCode(this, 'ADD' + n, // Blockly.Python.ORDER_NONE) || '0'; // code += "Json_easymode[\"" + item_field + "\"]=" + item_value + ";\n"; // } // code += "Json_easymode.prettyPrintTo(JSONmessageBuffer, sizeof(JSONmessageBuffer));\n" + // "http.begin(\"" + item_url + "\");\n" + // "http.addHeader(\"Content-Type\", \"application/json\");\n" + // "httpCode = http.POST(JSONmessageBuffer);\n" + // "payload = http.getString();\n" + // "Serial.println(httpCode);\n" + // "Serial.println(payload);\n" + // "http.end();\n"; // return code; // } // Blockly.Python['wifiEasymode_cococloud2_get'] = function(block) { // var wifi_httpclient = "#include "; // Blockly.Python.addInclude('wifi_httpclient', wifi_httpclient); // var HTTPResponse = "String http_response;"; // Blockly.Python.addDeclaration('HTTP_Response', HTTPResponse); // var HTTPCode = "int httpCode;"; // Blockly.Python.addDeclaration('HTTP_code', HTTPCode); // let serial_setup = "Serial.begin(9600);"; // Blockly.Python.addSetup('serial_serial', serial_setup); // var httpclient = "HTTPClient http;"; // Blockly.Python.addDeclaration("httpclient", httpclient); // var cococloud_Response = "String cococloud_response;"; // Blockly.Python.addDeclaration("cococloud_Response", cococloud_Response); // Blockly.Python.addDeclaration("payload", "String payload;"); // var json_include = "#include "; // Blockly.Python.addInclude("json_declaration", json_include); // var code = ""; // // var item_url = "http://cocorobo.cn/api/iot/data/eventAPIKey/" + block.getFieldValue("event0"); // var item_url = "http://staging.cocorobo.cn/api/iot/data/eventAPIKey/" + block.getFieldValue("event0"); //staging // var dataGet, item_value; // code += "http.begin(\"" + item_url + "\");\n" + // "http.addHeader(\"Content-Type\", \"application/json\");\n" + // "httpCode = http.GET();\n" + // "payload = http.getString();\n" + // "cococloud_response = payload;\n" + // "Serial.println(httpCode);\n" + // "Serial.println(payload);\n" + // "http.end();\n" + // "StaticJsonBuffer<240> jsonBuffer_easymode;\n" + // "JsonObject& cloud_data = jsonBuffer_easymode.parseObject(cococloud_response);\n"; // for (var n = 0; n < this.itemCount_; n++) { // dataGet = Blockly.Python.variableDB_.getName( // block.getFieldValue('DATA' + n), Blockly.Variables.NAME_TYPE); // item_value = Blockly.Python.valueToCode(this, 'ADD' + n, // Blockly.Python.ORDER_NONE) || '""'; // code += "" + dataGet + "=" + item_value + ";\n"; // } // return code; // } // Blockly.Python['wifiEasymode_cococloud2_get_data'] = function(block) { // var code = ""; // var key = block.getFieldValue("KEY"); // // var varType = block.getFieldValue('VAR_TYPE'); // // if (varType == "Text") { // // varType = "char*"; // // } else if (varType == "Number") { // // varType = "int"; // // } else if (varType == "Boolean") { // // varType = "boolean"; // // } else if (varType == "Large Number") { // // varType = "long"; // // } else if (varType == "Decimal") { // // varType = "float"; // // } // code = "cloud_data[\"data\"][0][\"" + key + "\"].as()"; // return [code, Blockly.Python.ORDER_ATOMIC]; // } // Blockly.Python['wifiEasymode_IFTTT'] = function(block) { // var key = block.getFieldValue('IFTTT_KEY').replace(/\"/g, '') || ""; // var event = block.getFieldValue('IFTTT_EVENT').replace(/\"/g, '') || ""; // var value1 = Blockly.Python.valueToCode(block, 'dataA', Blockly.Python.ORDER_ATOMIC) || ""; // // var value2 = Blockly.Python.valueToCode(block, 'VALUE2', Blockly.Python.ORDER_ATOMIC) || ""; // // var value3 = Blockly.Python.valueToCode(block, 'VALUE3', Blockly.Python.ORDER_ATOMIC) || ""; // var jsontool_declaration = "#include "; // Blockly.Python.addInclude("jsontool_declaration", jsontool_declaration); // var wifi_httpclient = "#include "; // Blockly.Python.addInclude("wifi_httpclient", wifi_httpclient); // var httpclient = "HTTPClient http;"; // Blockly.Python.addDeclaration("httpclient", httpclient); // var HTTPCode = "int httpCode;"; // Blockly.Python.addDeclaration('HTTP_code', HTTPCode); // Blockly.Python.addDeclaration("payload", "String payload;"); // var precode = "char JSONmessageBuffer[240];\n"; // Blockly.Python.addDeclaration("jsontool_prettyPrint", precode); // var url = "http://maker.ifttt.com/trigger/" + event + "/with/key/" + key; // var code = "StaticJsonBuffer<240> JSONbuffer_ifttt;\n" + // "JsonObject& JSONencoder = JSONbuffer_ifttt.createObject();\n" + // "JSONencoder[\"value1\"] = String(" + value1 + ");\n" + // "JSONencoder[\"value2\"] = \"0\";\n" + // "JSONencoder[\"value3\"] = \"0\";\n" + // "JSONencoder.prettyPrintTo(JSONmessageBuffer, sizeof(JSONmessageBuffer));\n" + // "Serial.println(JSONmessageBuffer);\n" + // "if (WiFi.status() == WL_CONNECTED) {\n" + // " http.begin(\"" + url + "\");\n" + // " http.addHeader(\"Content-Type\", \"application/json\");\n" + // " httpCode = http.POST(JSONmessageBuffer);\n" + // " payload = http.getString();\n" + // " Serial.println(httpCode);\n" + // " Serial.println(payload);\n" + // " http.end();\n" + // "} else {\n" + // " Serial.println(\"Error in WiFi connection\");\n" + // "}\n"; // return code; // } // Blockly.Python['wifiEasymode_transfer_send'] = function(block) { // var dataMain = Blockly.Python.variableDB_.getName( // block.getFieldValue('DATAMAIN'), Blockly.Variables.NAME_TYPE); // Blockly.Python.addSetup('serial', "Serial.begin(9600);"); // var checkbit = "#define SOP '<'\n" + // "#define EOP '>'\n"; // Blockly.Python.addDeclaration("wifi_dataTransfer_checkbit", checkbit); // var length = "sizeof(" + dataMain + ")/sizeof(" + dataMain + "[0])"; // var dataLength = length + "+2"; // var code = "unsigned char DataOut_[" + dataLength + "];\n" + // "DataOut_[0]= SOP;\n" + // "DataOut_[" + length + "+1]= EOP;\n" + // "for (int i=0; i<" + length + ";i++) {\n" + // " DataOut_[i+1]=" + dataMain + "[i];\n" + // "}\n" + // "Serial.write(DataOut_, " + dataLength + ");\n"; // return code; // } // Blockly.Python['wifiEasymode_transfer_receive'] = function(block) { // var dataMain = Blockly.Python.variableDB_.getName( // block.getFieldValue('DATAMAIN'), Blockly.Variables.NAME_TYPE); // Blockly.Python.addSetup('serial', "Serial.begin(9600);"); // var checkbit = "#define SOP '<'\n" + // "#define EOP '>'\n"; // Blockly.Python.addDeclaration("wifi_dataTransfer_checkbit", checkbit); // var MsgReceiveStatus = "bool started = false;\n" + // "bool ended = false;\n" + // "int index_i;\n"; // Blockly.Python.addDeclaration("wifi_dataTransfer_MsgReceiveStatus", MsgReceiveStatus); // var length = 'sizeof(' + dataMain + ')/sizeof(' + dataMain + '[0])' || 1; // var dataIn_function = "int handleDataIn() {\n" + // " while (Serial.available() > 0) {\n" + // " int inChar = Serial.read();\n" + // " if(inChar == SOP) {\n" + // " index_i = 0;\n" + // " started = true;\n" + // " ended = false;\n" + // " } else if(inChar == EOP) {\n" + // " ended = true;\n" + // " break;\n" + // " }else if((index_i < " + length + ")&&started&&(!ended)) {\n" + // " " + dataMain + "[index_i] = inChar;\n" + // " index_i++;\n" + // " }\n" + // " }\n" + // " if(started && ended) {\n" + // " return 1;\n" + // " } else {\n" + // " return 0;\n" + // " }\n" + // "}\n"; // Blockly.Python.addFunction("mainwifi_dataIn_function", dataIn_function); // var code = "boolean receiveMsgsuccess_ = handleDataIn();\n" + // "if (!receiveMsgsuccess) {\n" + // " Serial.println(\"Error: Fail to receive data!\")\n" + // " return;\n" + // "}\n"; // return code; // } // Blockly.Python['wifiEasymode_transfer2_send'] = function(block) { // var dataMain = block.getFieldValue('DATAMAIN'); // var dataMain_list = "int " + dataMain + "[" + this.itemCount_ + "] = {0"; // for (var i = 1; i < this.itemCount_; i++) { // dataMain_list += ",0"; // } // dataMain_list += "};\n"; // Blockly.Python.addDeclaration("dataMain_list", dataMain_list); // Blockly.Python.addSetup('serial', "Serial.begin(9600);"); // var checkbit = "#define SOP '<'\n" + // "#define EOP '>'\n"; // Blockly.Python.addDeclaration("wifi_dataTransfer_checkbit", checkbit); // var length = "sizeof(" + dataMain + ")/sizeof(" + dataMain + "[0])"; // var dataLength = length + "+2"; // var code = ""; // var item_value = ''; // for (var n = 0; n < this.itemCount_; n++) { // item_value = Blockly.Python.valueToCode(this, 'ADD' + n, // Blockly.Python.ORDER_NONE) || '0'; // code += dataMain + "[" + n + "] = " + item_value + ";\n"; // } // code += "unsigned char DataOut_[" + dataLength + "];\n" + // "DataOut_[0]= SOP;\n" + // "DataOut_[" + length + "+1]= EOP;\n" + // "for (int i=0; i<" + length + ";i++) {\n" + // " DataOut_[i+1]=" + dataMain + "[i];\n" + // "}\n" + // "Serial.write(DataOut_, " + dataLength + ");\n"; // return code; // } // Blockly.Python['wifiEasymode_transfer2_receive'] = function(block) { // var dataMain = block.getFieldValue('DATAMAIN'); // var list_length = block.getFieldValue("LENGTH"); // var dataMain_list = "int " + dataMain + "[" + list_length + "] = {0"; // for (var i = 1; i < list_length; i++) { // dataMain_list += ",0"; // } // dataMain_list += "};\n"; // Blockly.Python.addDeclaration("dataMain_list", dataMain_list); // Blockly.Python.addSetup('serial', "Serial.begin(9600);"); // var checkbit = "#define SOP '<'\n" + // "#define EOP '>'\n"; // Blockly.Python.addDeclaration("wifi_dataTransfer_checkbit", checkbit); // var MsgReceiveStatus = "bool started = false;\n" + // "bool ended = false;\n" + // "int index_i;\n"; // Blockly.Python.addDeclaration("wifi_dataTransfer_MsgReceiveStatus", MsgReceiveStatus); // var length = 'sizeof(' + dataMain + ')/sizeof(' + dataMain + '[0])' || 1; // var dataIn_function = "int handleDataIn() {\n" + // " while (Serial.available() > 0) {\n" + // " int inChar = Serial.read();\n" + // " if(inChar == SOP) {\n" + // " index_i = 0;\n" + // " started = true;\n" + // " ended = false;\n" + // " } else if(inChar == EOP) {\n" + // " ended = true;\n" + // " break;\n" + // " }else if((index_i < " + length + ")&&started&&(!ended)) {\n" + // " " + dataMain + "[index_i] = inChar;\n" + // " index_i++;\n" + // " }\n" + // " }\n" + // " if(started && ended) {\n" + // " return 1;\n" + // " } else {\n" + // " return 0;\n" + // " }\n" + // "}\n"; // Blockly.Python.addFunction("mainwifi_dataIn_function", dataIn_function); // var code = "boolean receiveMsgsuccess_ = handleDataIn();\n" + // "if (!receiveMsgsuccess_) {\n" + // " Serial.println(\"Error: Fail to receive data!\");\n" + // " return;\n" + // "}\n"; // return code; // } // Blockly.Python['wifiEasymode_transfer2_receive_getValue'] = function(block) { // var dataMain = block.getFieldValue('DATAMAIN'); // var list_length = block.getFieldValue("INDEX"); // var code = "" + dataMain + "[" + list_length + "]"; // return [code, Blockly.Python.ORDER_ATOMIC]; // }