123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- // 'use strict';
- // goog.provide('Blockly.Python.jsontool');
- // goog.require('Blockly.Python');
- // /****************************************
- // * * * * * * * * *
- // * Generate JSON *
- // * * * * * * * * *
- // ****************************************/
- // Blockly.Python['jsontool_generator_setup'] = function (block) {
- // var jsontool_declaration= "#include <ArduinoJson.h>";
- // Blockly.Python.addDeclaration("jsontool_declaration",jsontool_declaration);
- // var jsonname= block.getFieldValue('JSONNAME');
- // var code= "StaticJsonBuffer<200> JSONbuffer;\n" +
- // "JsonObject& " + jsonname + " = JSONbuffer.createObject();\n";
- // return code;
- // };
- // Blockly.Python['jsontool_generator_keyvalue'] = function (block) {
- // var jsonname= block.getFieldValue('JSONNAME');
- // var key= Blockly.Python.valueToCode(block, 'KEY', Blockly.Python.ORDER_ATOMIC) || "";
- // var value= Blockly.Python.valueToCode(block, 'VALUE', Blockly.Python.ORDER_ATOMIC) || "";
- // var code= ""+jsonname+"["+key+ "] = "+ value+";\n";
- // return code;
- // };
- // Blockly.Python['jsontool_generator_main_block'] = function (block) {
- // var jsontool_declaration= "#include <ArduinoJson.h>";
- // Blockly.Python.addDeclaration("jsontool_declaration",jsontool_declaration);
- // var jsonType = block.getFieldValue('jsontype') || "Object";
- // var jsonName = block.getFieldValue('NAME') || "jsonVar";
- // var code= "StaticJsonBuffer<240> JSONbuffer_"+jsonName+";\n";
- // if (jsonType == "Object") {
- // code += "JsonObject& "+jsonName+" = JSONbuffer_"+jsonName+".createObject();\n";
- // } else if (jsonType == "Array"){
- // code += "JsonArray& "+jsonName+" = JSONbuffer_"+jsonName+".createArray();\n";
- // }
- // var branch = Blockly.Python.statementToCode(block, 'STACK');
- // // console.log("jsontool.js-40: branch :\n"+ branch);
- // /* spilt the branch String into servral string according to tag "$"
- // * each string means a statement
- // * */
- // var statements_arr = branch.split("$");
- // for (var i in statements_arr) {
- // /* spilt each statement string into two part according to tag "|"
- // * the first part is ["field"];
- // * the second part is real string of statement
- // */
- // if (statements_arr[i] == "")
- // break;
- // var item_arr = statements_arr[i].split("|");
- // if(item_arr[0] == "OBJECT") {
- // code += jsonName + item_arr[1]+ ";\n";
- // } else if (item_arr[0] == "ARRAY") {
- // code += jsonName + ".add("+ item_arr[1] + ");\n";
- // } else if (item_arr[0] == "NESTEDOBJECT") {
- // var item = item_arr[1].split("@");
- // var nestedJsonName = item[0];
- // if (jsonType == "Object")
- // code += "JsonObject&" +nestedJsonName + " = "+jsonName +".createNestedObject(\""+nestedJsonName+"\");\n"
- // + item[1];
- // else
- // code += "JsonObject&" +nestedJsonName + " = "+jsonName +".createNestedObject();\n"
- // + item[1];
- // } else if (item_arr[0] == "NESTEDARRAY") {
- // var item = item_arr[1].split("@");
- // var nestedJsonName = item[0];
- // if (jsonType == "Object")
- // code += "JsonArray&" +nestedJsonName + " = "+jsonName +".createNestedArray(\""+nestedJsonName+"\");\n"
- // + item[1]+ "\n";
- // else
- // code += "JsonArray&" +nestedJsonName + " = "+jsonName +".createNestedArray();\n"
- // + item[1];
- // }
- // }
- // return code;
- // };
- // Blockly.Python['jsontool_generator_nested_block'] = function (block) {
- // var jsonType = block.getFieldValue('jsontype') || "Object";
- // var jsonName = block.getFieldValue('NAME') || "jsonVar";
- // var code;
- // if (jsonType == "Object") {
- // code = "$NESTEDOBJECT|"+jsonName+"@";
- // } else if (jsonType == "Array"){
- // code = "$NESTEDARRAY|"+jsonName+"@";
- // }
- // var branch = Blockly.Python.statementToCode(block, 'STACK1');
- // /* spilt the branch String into servral string according to tag "$"
- // * each string means a statement
- // * */
- // var statements_arr = branch.split("$");
- // for (var i in statements_arr) {
- // /* spilt each statement string into two part according to tag "|"
- // * the first part is ["field"];
- // * the second part is real string of statement
- // */
- // if (statements_arr[i] == "")
- // break;
- // var item_arr = statements_arr[i].split("|");
- // if(item_arr[0] == "OBJECT") {
- // code += jsonName + item_arr[1]+ ";\n";
- // } else if (item_arr[0] == "ARRAY") {
- // code += jsonName + ".add("+ item_arr[1] + ");\n";
- // } else if (item_arr[0] == "NESTEDOBJECT") {
- // var item = item_arr[1].split("@");
- // var nestedJsonName = item[0];
- // if (jsonType == "Object")
- // code += "JsonObject&" +nestedJsonName + " = "+jsonName +".createNestedObject(\""+nestedJsonName+"\");\n"
- // + item[1];
- // else
- // code += "JsonObject&" +nestedJsonName + " = "+jsonName +".createNestedObject();\n"
- // + item[1];
- // } else if (item_arr[0] == "NESTEDARRAY") {
- // var item = item_arr[1].split("@");
- // var nestedJsonName = item[0];
- // if (jsonType == "Object")
- // code += "JsonArray&" +nestedJsonName + " = "+jsonName +".createNestedArray(\""+nestedJsonName+"\");\n"
- // + item[1];
- // else
- // code += "JsonArray&" +nestedJsonName + " = "+jsonName +".createNestedArray();\n"
- // + item[1];
- // }
- // }
- // // console.log("nestedJson code"+ code);
- // return code;
- // };
- // Blockly.Python['jsontool_generator_object_keyValue'] = function (block) {
- // var key= Blockly.Python.valueToCode(block, 'KEY', Blockly.Python.ORDER_ATOMIC) || "";
- // var value= Blockly.Python.valueToCode(block, 'VALUE', Blockly.Python.ORDER_ATOMIC) || "";
- // var code = "$OBJECT|["+key+"]=" + value;
- // return code;
- // }
- // Blockly.Python['jsontool_generator_array_value'] = function (block) {
- // var value= Blockly.Python.valueToCode(block, 'VALUE', Blockly.Python.ORDER_ATOMIC) || "";
- // var code = "$ARRAY|" + value;
- // return code;
- // }
- // /****************************************
- // * * * * * * * * *
- // * Parse JSON *
- // * * * * * * * * *
- // ****************************************/
- // Blockly.Python['jsontool_parse_setup'] = function (block) {
- // var jsontool_declaration= "#include <ArduinoJson.h>";
- // Blockly.Python.addInclude("jsontool_declaration",jsontool_declaration);
- // var object_size= Blockly.Python.valueToCode(block, 'OBJECT_SIZE', Blockly.Python.ORDER_ATOMIC) || "";
- // var array_size= Blockly.Python.valueToCode(block, 'ARRAY_SIZE', Blockly.Python.ORDER_ATOMIC) || "";
- // var response= Blockly.Python.valueToCode(block, 'RESPONSE', Blockly.Python.ORDER_ATOMIC) || "";
- // var jsonname= block.getFieldValue('JSONNAME');
- // var jsonParseCode= "const size_t capacity_"+jsonname +" = JSON_OBJECT_SIZE("+ object_size+
- // ") + JSON_ARRAY_SIZE("+array_size+") + 60;\n" +
- // "DynamicJsonBuffer jsonBuffer_"+jsonname +"(capacity_"+jsonname +");\n" +
- // "JsonObject& "+jsonname+" = jsonBuffer_"+jsonname +".parseObject("+response+");\n";
- // return jsonParseCode;
- // };
- // Blockly.Python['jsontool_parse_begin'] = function(block) {
- // var jsonname = block.getFieldValue('JSONNAME');
- // var parseVar = Blockly.Python.variableDB_.getName(block.getFieldValue('VAR'),
- // Blockly.Variables.NAME_TYPE);
- // var varType = block.getFieldValue('JSONVAR_TYPE');
- // if (varType == "Text") {
- // varType = "String";
- // } 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";
- // }
- // var key= Blockly.Python.valueToCode(block, 'KEY', Blockly.Python.ORDER_ATOMIC) || "";
- // var code = parseVar+"=("+varType+")"+ jsonname+""+key+";\n";
- // return code;
- // };
- // Blockly.Python['jsontool_parse_key'] = function(block) {
- // var key= Blockly.Python.valueToCode(block, 'KEY', Blockly.Python.ORDER_ATOMIC) || "";
- // var code="["+key+"]";
- // return [code, Blockly.Python.ORDER_ATOMIC];
- // };
- // Blockly.Python['jsontool_parse_arr_inobject'] = function(block) {
- // var array= Blockly.Python.valueToCode(block, 'VAR', Blockly.Python.ORDER_ATOMIC) || "";
- // var index= Blockly.Python.valueToCode(block, 'INDEX', Blockly.Python.ORDER_ATOMIC) || "";
- // var code="["+array+"]["+index+"]";
- // return [code, Blockly.Python.ORDER_ATOMIC];
- // };
- // Blockly.Python['jsontool_parse_arr_inarray'] = function(block) {
- // var index= Blockly.Python.valueToCode(block, 'INDEX', Blockly.Python.ORDER_ATOMIC) || "";
- // var code="["+index+"]";
- // return [code, Blockly.Python.ORDER_ATOMIC];
- // };
- // Blockly.Python['jsontool_parse_key_nest'] = function(block) {
- // var key= Blockly.Python.valueToCode(block, 'KEY', Blockly.Python.ORDER_ATOMIC) || "";
- // var nest= Blockly.Python.valueToCode(block, 'NEST', Blockly.Python.ORDER_ATOMIC) || "";
- // var code="["+key+"]"+ nest;
- // return [code, Blockly.Python.ORDER_ATOMIC];
- // };
- // Blockly.Python['jsontool_parse_arr_inobject_nest'] = function(block) {
- // var array= Blockly.Python.valueToCode(block, 'VAR', Blockly.Python.ORDER_ATOMIC) || "";
- // var index= Blockly.Python.valueToCode(block, 'INDEX', Blockly.Python.ORDER_ATOMIC) || "";
- // var nest= Blockly.Python.valueToCode(block, 'NEST', Blockly.Python.ORDER_ATOMIC) || "";
- // var code="["+array+"]["+index+"]"+nest;
- // return [code, Blockly.Python.ORDER_ATOMIC];
- // };
- // Blockly.Python['jsontool_parse_arr_inarray_nest'] = function(block) {
- // var index= Blockly.Python.valueToCode(block, 'INDEX', Blockly.Python.ORDER_ATOMIC) || "";
- // var nest= Blockly.Python.valueToCode(block, 'NEST', Blockly.Python.ORDER_ATOMIC) || "";
- // var code="["+index+"]"+nest;
- // return [code, Blockly.Python.ORDER_ATOMIC];
- // };
- // Blockly.Python['jsontool_parse_prettyPrint'] = function(block) {
- // var jsonname= block.getFieldValue('JSONNAME');
- // var precode = "char JSONmessageBuffer[240];\n";
- // Blockly.Python.addDeclaration("jsontool_prettyPrint",precode);
- // var code = ""+ jsonname+ ".prettyPrintTo(JSONmessageBuffer, sizeof(JSONmessageBuffer));\n";
- // return code;
- // };
- // Blockly.Python['jsontool_parse_prettyPrint_display'] = function(block) {
- // var code = "JSONmessageBuffer";
- // return [code, Blockly.Python.ORDER_ATOMIC];
- // };
- // Blockly.Python['jsontool_parse_isSuccess'] = function(block) {
- // var jsonname= block.getFieldValue('JSONNAME');
- // var code = ""+jsonname+".success()";
- // return [code, Blockly.Python.ORDER_ATOMIC];
- // };
|