void AJAX_PLOT(const char* name, int axes, int xamount = 20, int prd = 1000) {
*_GP += F(""
"<script src=\"https://code.highcharts.com/highcharts.js\"></script>\n"
"<div id=\"");
*_GP += name;
*_GP += F("\" class=\"chartBlock\"></div><script>\n"
"var ");
*_GP += name;
*_GP += F("=new Highcharts.Chart({\n"
"chart:{borderRadius:10,renderTo:'");
*_GP += name;
*_GP += F("',style:{fontFamily:\"sans-serif\"}},\n"
"title:{text:''},"
"series:[");
for (int i = 0; i < axes; i++) {
*_GP += F("{data:[]}");
if (i != axes - 1) *_GP += ',';
}
*_GP += F("],\n"
"xAxis:{type:'datetime',dateTimeLabelFormats:{second:'%H:%M:%S'}},\n"
"yAxis:{title:{enabled:false}},"
"credits:{enabled:false}});\n"
"setInterval(function(){var xhttp=new XMLHttpRequest();var ch=");
*_GP += name;
*_GP += F("\n"
"xhttp.onreadystatechange=function(){if(this.readyState==4&&this.status==200){\n"
"var x=new Date().getTime()- new Date().getTimezoneOffset()*60000;"
"var arr=this.responseText.split(',');"
"var move=(ch.series[0].data.length>");
*_GP += xamount;
*_GP += F(");\n"
"for(let i=0;i<arr.length;i++)ch.series[i].addPoint([x,Number(arr[i])],true,move,true);\n"
"}};xhttp.open(\"GET\",\"GP_update?");
*_GP += name;
*_GP += F("=\",true);xhttp.send();},\n");
*_GP += prd;
*_GP += F(");</script>\n");
}
void AJAX_PLOT_DARK(const char* name, int axes, int xamount = 20, int prd = 1000) {
*_GP += F(""
"<script src=\"https://code.highcharts.com/highcharts.js\"></script>\n"
"<script src=\"https://code.highcharts.com/themes/dark-unica.js\"></script>\n"
"<div id=\"");
*_GP += name;
*_GP += F("\" class=\"chartBlock\"></div><script>\n"
"var ");
*_GP += name;
*_GP += F("=new Highcharts.Chart({\n"
"chart:{borderRadius:10,renderTo:'");
*_GP += name;
*_GP += F("',style:{fontFamily:\"sans-serif\"}},\n"
"title:{text:''},"
"series:[");
for (int i = 0; i < axes; i++) {
*_GP += F("{data:[]}");
if (i != axes - 1) *_GP += ',';
}
*_GP += F("],\n"
"xAxis:{type:'datetime',dateTimeLabelFormats:{second:'%H:%M:%S'}},\n"
"yAxis:{title:{enabled:false}},"
"credits:{enabled:false}});\n"
"setInterval(function(){var xhttp=new XMLHttpRequest();var ch=");
*_GP += name;
*_GP += F("\n"
"xhttp.onreadystatechange=function(){if(this.readyState==4&&this.status==200){\n"
"var x=new Date().getTime()- new Date().getTimezoneOffset()*60000;"
"var arr=this.responseText.split(',');"
"var move=(ch.series[0].data.length>");
*_GP += xamount;
*_GP += F(");\n"
"for(let i=0;i<arr.length;i++)ch.series[i].addPoint([x,Number(arr[i])],true,move,true);\n"
"}};xhttp.open(\"GET\",\"GP_update?");
*_GP += name;
*_GP += F("=\",true);xhttp.send();},\n");
*_GP += prd;
*_GP += F(");</script>\n");
}