{"id":1216,"date":"2021-02-03T21:22:15","date_gmt":"2021-02-03T12:22:15","guid":{"rendered":"http:\/\/sensor.krict.re.kr\/?p=1216"},"modified":"2021-12-17T23:47:29","modified_gmt":"2021-12-17T14:47:29","slug":"1216","status":"publish","type":"post","link":"https:\/\/www.gassensor.kr\/?p=1216","title":{"rendered":"\uc2e4\uc2dc\uac04 \ub370\uc774\ud130 \ubaa8\ub2c8\ud130\ub9c1 (\uc608\uc81c)"},"content":{"rendered":"<p><meta charset=\"UTF-8\" \/><\/p>\n<style>\n    #chart_div {\n        width: 1000px;\n        height: 600px;\n    }\n    #did, #mid {\n      width: 50px;\n    }\n    body {\n        display: flex;\n        justify-content: center;\n        align-items: center;\n    }\n<\/style>\n<p>DID: <input type=\"text\" id=\"did\" value=1 \/> MID: <input type=\"text\" id=\"mid\" value=1 \/><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 \/>\n<input type=\"text\" id=\"measured\" \/><\/p>\n<div id=\"chart_div\"><\/div>\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: 'measure_online',\n          schema: 'public',\n          query: 'DELETE FROM public.measure_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, g1, s1  FROM public.measure_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: 'measure_online',\n           schema: 'public',\n           query: query_string,\n           params: [jQuery(\"#did\").val(), jQuery(\"#mid\").val()]\n        }, function(data) {\n           var data_json = JSON.parse(data);\n           console.log(data_json);\n           var data_arr = convert2array(data_json);\n           data_arr.unshift(['mt','g1','s1']);\n           console.log(data_arr);\n           jQuery(\"#msg\").html(data);\n           exportToCsv(filename, data_arr);\n        });\n    });\n    google.charts.setOnLoadCallback(drawChart, \"Hello\");\n    function drawChart(msg) {\n        var raw_data = [[\"t (sec)\", \"Sensor 1\"],[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, s1  FROM public.measure_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: 'measure_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 = convert2array(res_json);\n                var res_len = res_arr.length;\n                console.log(res_len);\n                res_arr.unshift(['mt','s1']);\n                console.log(res_arr[res_len].join(', '));\n                jQuery(\"#measured\").val(res_arr[res_len].join(', '));\n\/\/                data.addRow([index, random]);\n                chart.draw(google.visualization.arrayToDataTable(res_arr), options);\n                index++;\n              });\n            }\n        }, 250);\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 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\/1216"}],"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=1216"}],"version-history":[{"count":86,"href":"https:\/\/www.gassensor.kr\/index.php?rest_route=\/wp\/v2\/posts\/1216\/revisions"}],"predecessor-version":[{"id":2054,"href":"https:\/\/www.gassensor.kr\/index.php?rest_route=\/wp\/v2\/posts\/1216\/revisions\/2054"}],"wp:attachment":[{"href":"https:\/\/www.gassensor.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gassensor.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gassensor.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}