Просмотр исходного кода

Moved JsonBuffer size calculator to https://bblanchon.github.io/ArduinoJson/

Benoit Blanchon 9 лет назад
Родитель
Сommit
e75e843c88
1 измененных файлов с 0 добавлено и 143 удалено
  1. 0 143
      scripts/buffer-size-calculator.html

+ 0 - 143
scripts/buffer-size-calculator.html

@@ -1,143 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>ArduinoJson - JsonBuffer size calculator</title>
-    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-</head>
-<body>
-    <div class="container">
-        <div class="jumbotron">
-            <h1>JsonBuffer size calculator</h1>
-        </div>
-        <div id='error' class="alert alert-danger" role="alert">
-            Please paste your JSON in the "input" box
-        </div>
-        <div class="row">
-            <div class="col-md-6">
-                <h2>Input</h2>
-                <textarea class="form-control" rows=30 id='input'></textarea><br>
-            </div>
-            <div id='results' class="col-md-6" style='display:none'>
-                <h2>Result</h2>
-                <h3>Expression</h3>
-                <p><code id='resultexpr'></code></p>
-                <table class="table">
-                  <thead>
-                    <th>Platform</th>
-                    <th>Size (in bytes)</th>
-                  </thead>
-                  <tbody>
-                    <tr>
-                      <td>AVR 8-bit</td>
-                      <td id='sizeavr8'></td>
-                    </tr>
-                    <tr>
-                      <td>ESP8266</td>
-                      <td id='sizeesp8266'></td>
-                    </tr>
-                    <tr>
-                      <td>x86</td>
-                      <td id='sizex86'></td>
-                    </tr>
-                    <tr>
-                      <td>x64</td>
-                      <td id='sizex64'></td>
-                    </tr>
-                  </tbody>
-                </table>
-            </div>
-        </div>
-    </div>
-</body>
-<script type="text/javascript">
-    function Recipe() {
-        var arrays = [];
-        var objects = [];
-
-        this.addJsonArray = function(size) {
-            if (arrays[size])
-                arrays[size]++;
-            else
-                arrays[size] = 1;
-        }
-
-        this.addJsonObject = function(size) {
-            if (objects[size])
-                objects[size]++;
-            else
-                objects[size] = 1;
-        }
-
-        this.getExpression = function() {
-            var elements = [];
-            for (var size in arrays) {
-                var count = arrays[size];
-                if (count > 1)
-                    elements.push(count + "*JSON_ARRAY_SIZE("+size+")");
-                else
-                    elements.push("JSON_ARRAY_SIZE("+size+")");
-            }
-            for (var size in objects) {
-                var count = objects[size];
-                if (count > 1)
-                    elements.push(count + "*JSON_OBJECT_SIZE("+size+")");
-                else
-                    elements.push("JSON_OBJECT_SIZE("+size+")");
-            }
-            return elements.join(" + ");
-        }
-    }
-
-    function scanJson(recipe, obj) {
-        if (obj instanceof Array) {
-            recipe.addJsonArray(obj.length);
-            for (var i = 0; i<obj.length; i++)
-                scanJson(recipe, obj[i]);
-        }
-        else if (obj instanceof Object) {
-            recipe.addJsonObject(Object.keys(obj).length);
-            for (var key in obj) 
-                scanJson(recipe, obj[key]);
-        }
-    }
-
-    input.oninput = function(e) {
-        results.style.display = 'none';
-        error.style.visibility = 'hidden';
-
-        try {
-            var recipe = new Recipe();
-            scanJson(recipe, JSON.parse(input.value));
-            var expression = recipe.getExpression();
-
-            resultexpr.innerText = expression;
-            sizeavr8.innerText = eval(
-                "function JSON_ARRAY_SIZE(n) { return 4 + 8*n }" +
-                "function JSON_OBJECT_SIZE(n) { return 4 + 10*n }" +
-                expression
-            );
-            sizeesp8266.innerText = eval(
-                "function JSON_ARRAY_SIZE(n) { return 8 + 12*n }" +
-                "function JSON_OBJECT_SIZE(n) { return 8 + 16*n }" +
-                expression
-            );
-            sizex86.innerText = eval(
-                "function JSON_ARRAY_SIZE(n) { return 12 + 24*n }" +
-                "function JSON_OBJECT_SIZE(n) { return 12 + 32*n }" +
-                expression
-            );
-            sizex64.innerText = eval(
-                "function JSON_ARRAY_SIZE(n) { return 24 + 24*n }" +
-                "function JSON_OBJECT_SIZE(n) { return 24 + 32*n }" +
-                expression
-            );
-            results.style.display = 'block';
-        }
-        catch (ex) {
-            error.innerText = "ERROR: " + ex.message;
-            error.style.visibility = 'visible';
-        }
-    }
-</script>
-</html>