@@ -460,3 +460,110 @@ Blockly.JavaScript['tutorial_dht_show'] = function (block) {
460460 }
461461 return code ;
462462} ;
463+
464+ Blockly . JavaScript [ 'tutorial_dht_areachart' ] = function ( block ) {
465+ var value_name_ = Blockly . JavaScript . valueToCode ( block , 'name_' , Blockly . JavaScript . ORDER_ATOMIC ) ;
466+ var value_color_t_ = Blockly . JavaScript . valueToCode ( block , 'color_t_' , Blockly . JavaScript . ORDER_ATOMIC ) ;
467+ var value_color_h_ = Blockly . JavaScript . valueToCode ( block , 'color_h_' , Blockly . JavaScript . ORDER_ATOMIC ) ;
468+ var code = 'var ' + value_name_ + ' = {};\n' +
469+ value_name_ + '.areachart = false;\n' +
470+ value_name_ + '.origin = [\n' +
471+ ' ["Time", "temperature", "humidity"]\n' +
472+ '];\n' +
473+ 'google.load("visualization", "1", {\n' +
474+ ' packages: ["corechart"],\n' +
475+ ' callback: function() {\n' +
476+ ' ' + value_name_ + '.areachart = true;\n' +
477+ ' }\n' +
478+ '});\n' +
479+ 'document.getElementById("chart_div1").style.display="none";\n' +
480+ 'document.getElementById("chart_div2").style.display="none";\n' +
481+ 'function drawAreaChart(d) {\n' +
482+ ' if (!Array.isArray(d)) {\n' +
483+ ' return;\n' +
484+ ' }\n' +
485+ ' var data = google.visualization.arrayToDataTable(d);\n' +
486+ ' var options = {\n' +
487+ ' title: "",\n' +
488+ ' hAxis: {title: "",titleTextStyle: {color: "#333"}},\n' +
489+ ' vAxis: {minValue: 0},\n' +
490+ ' chartArea: {top: 50,left: 50,width: "70%",height: "70%"},\n' +
491+ ' colors: [' + value_color_t_ + ', ' + value_color_h_ + ']\n' +
492+ ' };\n' +
493+ ' var code = new google.visualization.AreaChart(document.getElementById("chart_div"));\n' +
494+ ' return code.draw(data, options);\n' +
495+ '}\n' ;
496+ return code ;
497+ } ;
498+
499+ Blockly . JavaScript [ 'tutorial_dht_gauge' ] = function ( block ) {
500+ var value_name_ = Blockly . JavaScript . valueToCode ( block , 'name_' , Blockly . JavaScript . ORDER_ATOMIC ) ;
501+ var code = 'var ' + value_name_ + ' = {};\n' +
502+ value_name_ + '.guage = false;\n' +
503+ value_name_ + '.origin1 = [\n' +
504+ ' ["Label", "Value"],["humidity", 55]\n' +
505+ '];\n' +
506+ value_name_ + '.origin2 = [\n' +
507+ ' ["Label", "Value"],["temperature", 30]\n' +
508+ '];\n' +
509+ 'google.load("visualization", "1", {\n' +
510+ ' packages: ["gauge"],\n' +
511+ ' callback: function() {\n' +
512+ ' ' + value_name_ + '.gauge = true;\n' +
513+ ' }\n' +
514+ '});\n' +
515+ 'document.getElementById("chart_div").style.display="none";\n' +
516+ 'function drawGuage(d1,d2) {\n' +
517+ ' if (!Array.isArray(d1)||!Array.isArray(d2)) {\n' +
518+ ' return;\n' +
519+ ' }\n' +
520+ ' var data1 = google.visualization.arrayToDataTable(d1);\n' +
521+ ' var data2 = google.visualization.arrayToDataTable(d2);\n' +
522+ ' var options1 = {\n' +
523+ ' width: 400, height: 120,\n' +
524+ ' redFrom: 90, redTo: 100,\n' +
525+ ' yellowFrom:75, yellowTo: 90,\n' +
526+ ' minorTicks: 5,\n' +
527+ ' redColor:"#00f", yellowColor:"#9cf",\n' +
528+ ' animation:{easing:"in"}\n' +
529+ ' };\n' +
530+ ' var options2 = {\n' +
531+ ' width: 400, height: 120,\n' +
532+ ' redFrom: 90, redTo: 100,\n' +
533+ ' yellowFrom:75, yellowTo: 90,\n' +
534+ ' minorTicks: 5,\n' +
535+ ' animation:{easing:"in"}\n' +
536+ ' };\n' +
537+ 'var chart1 = new google.visualization.Gauge(document.getElementById("chart_div1"));\n' +
538+ 'chart1.draw(data1, options1);\n' +
539+ 'var chart2 = new google.visualization.Gauge(document.getElementById("chart_div2"));\n' +
540+ 'chart2.draw(data2, options2);\n' +
541+ '}\n' ;
542+ return code ;
543+ } ;
544+
545+ Blockly . JavaScript [ 'tutorial_dht_draw' ] = function ( block ) {
546+ var variable_chart_ = Blockly . JavaScript . variableDB_ . getName ( block . getFieldValue ( 'chart_' ) , Blockly . Variables . NAME_TYPE ) ;
547+ var value_t_ = Blockly . JavaScript . valueToCode ( block , 't_' , Blockly . JavaScript . ORDER_ATOMIC ) ;
548+ var value_h_ = Blockly . JavaScript . valueToCode ( block , 'h_' , Blockly . JavaScript . ORDER_ATOMIC ) ;
549+ var code = 'document.getElementById("temperature").innerHTML = ' + value_t_ + ';\n' +
550+ 'document.getElementById("humidity").innerHTML = ' + value_h_ + ';\n' +
551+ 'var time = new Date();\n' +
552+ 'var ts = time.getSeconds();\n' +
553+ 'var tm = time.getMinutes();\n' +
554+ 'var th = time.getHours();\n' +
555+ 'var a = [];\n' +
556+ 'if (' + variable_chart_ + '.areachart) {\n' +
557+ ' a[0] = th + ":" + tm + ":" + ts;\n' +
558+ ' a[1] = ' + value_t_ + ';\n' +
559+ ' a[2] = ' + value_h_ + ';\n' +
560+ ' ' + variable_chart_ + '.origin.push(a);\n' +
561+ ' drawAreaChart(' + variable_chart_ + '.origin);\n' +
562+ '}\n' +
563+ 'if (' + variable_chart_ + '.gauge) {\n' +
564+ ' ' + variable_chart_ + '.origin1 = [["Label", "Value"],["humidity", ' + value_h_ + ']];\n' +
565+ ' ' + variable_chart_ + '.origin2 = [["Label", "Value"],["temperature", ' + value_t_ + ']];\n' +
566+ ' drawGuage(' + variable_chart_ + '.origin1,' + variable_chart_ + '.origin2);\n' +
567+ '}\n' ;
568+ return code ;
569+ } ;
0 commit comments