{"id":1499,"date":"2021-12-18T02:28:54","date_gmt":"2021-12-17T17:28:54","guid":{"rendered":"https:\/\/sensor.krict.re.kr\/?p=1499"},"modified":"2021-12-19T19:47:14","modified_gmt":"2021-12-19T10:47:14","slug":"%eb%aa%a8%eb%b0%94%ec%9d%bc%ec%9b%90%ea%b2%a9%ec%b8%a1%ec%a0%95-%ec%8b%9c%ed%97%98","status":"publish","type":"post","link":"https:\/\/www.gassensor.kr\/?p=1499","title":{"rendered":"\ubaa8\ubc14\uc77c\uc6d0\uaca9\uce21\uc815 \uc2dc\ud5d8(WiFi)"},"content":{"rendered":"<p><meta charset=\"UTF-8\" \/><\/p>\n<style>\n    #chart_div {\n        width: 1000px;\n        height: 400px;\n    }\n    #did, #mid {\n      width: 50px;\n    }\n    #measured {\n      width: 500px;\n    }\n    body {\n        display: flex;\n        justify-content: center;\n        align-items: center;\n    }\n<\/style>\n<div id=\"chart_div\"><\/div>\n<p>\ucd5c\uc2e0\uce21\uc815\uac12: <input type=\"text\" id=\"measured\" \/><br \/>\n<button id=\"btn_measure\"> \uce21\uc815\ud558\uae30 <\/button>&nbsp;<button id=\"btn_save\"> \uc800\uc7a5\ud558\uae30 <\/button>&nbsp;<button id=\"btn_delete\"> \uc0ad\uc81c\ud558\uae30 <\/button><br \/>\nDID: <input type=\"text\" id=\"did\" value=1 \/> MID: <input type=\"text\" id=\"mid\" value=1 \/> \uce21\uc815\uac04\uaca9: <input type=\"text\" id=\"time_step\" value=1 \/><\/p>\n<div id=\"msg\"><\/div>\n<p><script type=\"text\/javascript\" loading=\"lazy\" src=\"https:\/\/www.gstatic.com\/charts\/loader.js\"><\/script><br \/>\n<script>\n    google.charts.load(\"current\", {\n        packages: [\"corechart\", \"line\", \"scatter\"]\n    });\n    jQuery(\"#btn_measure\").click(function(){\n      if (jQuery(\"#btn_measure\").text().trim() == \"\uce21\uc815\ud558\uae30\") {\n        jQuery(\"#btn_measure\").text(\"\uc7a0\uc2dc\uba48\ucda4\");\n      } else {\n        jQuery(\"#btn_measure\").text(\"\uce21\uc815\ud558\uae30\");\n      }\n    });\n    jQuery(\"#btn_delete\").click(function(){\n      if (confirm(\"\uc815\ub9d0\ub85c \ud574\ub2f9 \ub370\uc774\ud130\ub97c \uc0ad\uc81c\ud560\uae4c\uc694?\")) {\n        jQuery.post(ajaxurl, {\n          action: 'ajax_action_connDW',\n          dbname: 'postgres',\n          tbname: 'measures_online',\n          schema: 'public',\n          query: 'DELETE FROM public.measures_online WHERE did = $1;',\n          params: [jQuery(\"#did\").val()]\n        }, function(res) {\n          console.log(res);\n        });\n        location.reload();\n      }\n    });\n    jQuery(\"#btn_save\").click(function(){\n       var filename = prompt(\"\uc800\uc7a5\ud560 \ud30c\uc77c\uba85\ub9cc \uc785\ub825\ud558\uc2ed\uc2dc\uc624. csv\ub294 \uc790\ub3d9\uc73c\ub85c \ubd99\uc2b5\ub2c8\ub2e4.\",\"graph\");\n       filename = filename + \".csv\";\n        var query_string = \"SELECT mt, gases, sensors, sensortype FROM public.measures_online WHERE did = $1 AND mid = $2 ORDER BY mt ASC;\";\n        jQuery.post(ajaxurl, {\n           action: 'ajax_action_connDW',\n           dbname: 'postgres',\n           tbname: 'measures_online',\n           schema: 'public',\n           query: query_string,\n           params: [jQuery(\"#did\").val(), jQuery(\"#mid\").val()]\n        }, function(data) {\n           var res_json = JSON.parse(data);\n           console.log(res_json);\n           var res_arr = convert2arrays(res_json);\n           var res_len = res_arr.length;\n           var sensortype = res_json[res_len-1]['sensortype'];\n           sensortype = sensortype.replace('{', '');\n           sensortype = sensortype.replace('}', '');\n           var column = ['mt','gas'];\n           column = column.concat(sensortype.split(','));\n           res_arr.unshift(column);\n           jQuery(\"#msg\").html(\"\uacb0\uacfc\uac00 \ud30c\uc77c\ub85c \uc800\uc7a5\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\");\n           exportToCsv(filename, res_arr);\n        });\n    });\n    google.charts.setOnLoadCallback(drawChart, \"Hello\");\n    function drawChart(msg) {\n        var raw_data = [[\"t (sec)\", \"Sensor\"],[0,0]];\n        var data = google.visualization.arrayToDataTable(raw_data);\n        let options = {\n            title: \"Sensor Values\",\n            hAxis: {\n                title: \"Time\"\n            },\n            vAxis: {\n                title: \"Measured Value\"\n            }\n        };\n\/\/        let chart = new google.visualization.LineChart(\n        let chart = new google.visualization.ScatterChart(\n            document.getElementById(\"chart_div\")\n        );\n        chart.draw(data, options);\n        let index = 0;\n        setInterval(function() {\n\/\/            let random = Math.random() * 30 + 20;\n            if (jQuery(\"#btn_measure\").text().trim() == \"\uc7a0\uc2dc\uba48\ucda4\") {\n              var query_string = \"SELECT mt, gases, sensors, sensortype FROM public.measures_online WHERE did = $1 AND mid = $2 ORDER BY mt ASC;\";\n              jQuery.post(ajaxurl, {\n                action: 'ajax_action_connDW',\n                dbname: 'postgres',\n                tbname: 'measures_online',\n                schema: 'public',\n                query: query_string,\n                params: [jQuery(\"#did\").val(), jQuery(\"#mid\").val()]\n              }, function(res) {\n                var res_json = JSON.parse(res);\n                var res_arr = convert2arrays(res_json);\n                var res_len = res_arr.length;\n                console.log(res_json);\n                console.log('sensortype');\n                var sensortype = res_json[res_len-1]['sensortype'];\n                sensortype = sensortype.replace('{', '');\n                sensortype = sensortype.replace('}', '');\n                var column = ['mt','gas'];\n                column = column.concat(sensortype.split(','));\n                res_arr.unshift(column);\n                console.log(res_arr[res_len].join(', '));\n                jQuery(\"#measured\").val(res_arr[res_len].join(', ')); \n                chart.draw(google.visualization.arrayToDataTable(res_arr), options);\n                index++;\n              });\n            }\n        }, jQuery(\"#time_step\").val * 1000);\n    }\nfunction convert2array(data_json) { \n  var rows = [];\n  for (var i = 0; i < data_json.length; i++) {\n    var row = [];\n    for (key in data_json[i]) {\n      row.push(Number(data_json[i][key]));\n    }\n    rows.push(row);\n  }\n  return rows;\n}\nfunction convert2arrays(data_json) { \n  var rows = [];\n  for (var i = 0; i < data_json.length; i++) {\n    var row = [];\n    for (key in data_json[i]) {\n      if (key != 'sensortype') {\n        if ((key == 'gases') || (key == 'sensors')) {\n          var one_array = data_json[i][key];\n          one_array = one_array.replace('{', '[');\n          one_array = one_array.replace('}', ']');\n          row = row.concat(JSON.parse(one_array));\n          console.log(key);\n          console.log(row);\n        } else {\n          row.push(Number(data_json[i][key]));\n        }\n      }\n    }\n    rows.push(row);\n  }\n  return rows;\n}\nfunction exportToCsv(filename, rows) {\n    var processRow = function (row) {\n        var finalVal = '';\n        for (var j = 0; j < row.length; j++) {\n            var innerValue = row[j] === null ? '' : row[j].toString();\n            if (row[j] instanceof Date) {\n                innerValue = row[j].toLocaleString();\n            };\n            var result = innerValue.replace(\/\"\/g, '\"\"');\n            if (result.search(\/(\"|,|\\n)\/g) >= 0)\n                result = '\"' + result + '\"';\n            if (j > 0)\n                finalVal += ',';\n            finalVal += result;\n        }\n        return finalVal + '\\n';\n    };\n    var csvFile = '';\n    for (var i = 0; i < rows.length; i++) {\n        csvFile += processRow(rows[i]);\n    }\n    var blob = new Blob([csvFile], { type: 'text\/csv;charset=utf-8;' });\n    if (navigator.msSaveBlob) { \/\/ IE 10+\n        navigator.msSaveBlob(blob, filename);\n    } else {\n        var link = document.createElement(\"a\");\n        if (link.download !== undefined) { \/\/ feature detection\n            \/\/ Browsers that support HTML5 download attribute\n            var url = URL.createObjectURL(blob);\n            link.setAttribute(\"href\", url);\n            link.setAttribute(\"download\", filename);\n            link.style.visibility = 'hidden';\n            document.body.appendChild(link);\n            link.click();\n            document.body.removeChild(link);\n        }\n    }\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p> [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"inline_featured_image":false},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.gassensor.kr\/index.php?rest_route=\/wp\/v2\/posts\/1499"}],"collection":[{"href":"https:\/\/www.gassensor.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gassensor.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gassensor.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gassensor.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1499"}],"version-history":[{"count":32,"href":"https:\/\/www.gassensor.kr\/index.php?rest_route=\/wp\/v2\/posts\/1499\/revisions"}],"predecessor-version":[{"id":1532,"href":"https:\/\/www.gassensor.kr\/index.php?rest_route=\/wp\/v2\/posts\/1499\/revisions\/1532"}],"wp:attachment":[{"href":"https:\/\/www.gassensor.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1499"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gassensor.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1499"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gassensor.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1499"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}