我正在从天气传感器(每5分钟)中收集信息,经过几天和几个月的时间,记录数量巨大,并且使图表永久存在。...它正在工作,但是延迟太高。 ..因此,我不想一次显示所有值,而是要根据选择的日期范围制作图形,并相应地获取数据。
我正在使用python,sqlite3和Flask并尝试从Highcharts复制此示例
在示例中,他们使用php,这是代码
https://github.com/highcharts/highcharts/blob/master/samples/data/from-sql.php
这是我在html页面中的setextreme函数
function setExtremes(e)
// detect zoom button
{
if(typeof(e.rangeSelectorButton)!== 'undefined')
{
if (e.rangeSelectorButton.type=='all')
{
var chart = Highcharts.charts[0];
chart.showLoading('Loading data from server...');
$.getJSON('http://192.168.0.74:5000/rango?start=' + Math.round(e.min) +'&end=' + Math.round(e.max) + '&callback=?', function (data) {
// Arrange data
alert('I am in')
for (i = 0; i< data.length; i++)
{
processed_json_temperatura.push(data[i][0], data[i][1]);
processed_json_presion.push(data[i][0], data[i][2]);
processed_json_humedad.push(data[i][0], data[i][3]);
processed_json_lluvia.push(data[i][0], data[i][4]);
processed_json_horas_frio.push(data[i][0], data[i][5]);
}
temperatura_matriz = listToMatrix( processed_json_temperatura,2);
presion_matriz = listToMatrix( processed_json_presion,2);
humedad_matriz = listToMatrix( processed_json_humedad,2);
lluvia_matriz = listToMatrix( processed_json_lluvia,2);
horas_frio_matriz = listToMatrix(processed_json_horas_frio,2);
//update graphs with new values
chart.series[0].setData(temperatura_matriz);
chart.series[1].setData(presion_matriz);
chart.series[2].setData(humedad_matriz);
chart.series[3].setData(lluvia_matriz);
chart.series[4].setData(horas_frio_matriz);
chart.hideLoading();
});
}
}
}
在服务器端,这是我的带有烧瓶的python代码
@app.route("/rango")
def rango():
start=request.args.get('start')
end=request.args.get('end')
range = int(end)/1000 - int(start)/1000
# find the right table
# two days range loads minute data
if (range < 2 * 24 * 3600 * 1000):
connection = sqlite3.connect("/var/www/nueva_estacion.db")
cursor = connection.cursor()
cursor.execute("select (julianday(timestamp)-2440587.5)*86400000, round(temp1,2) as temp1, presion, round(humedad,2) as humedad, lluvia,aux1 from raw_all_sensors where datetime(timestamp) >=datetime('now', '-6 Day')")
results = cursor.fetchall()
print json.dumps(results)
return json.dumps(results)
当我单击缩放按钮时(实际上在highstock上),我确实看到了消息“正在从服务器加载数据...”,但是从不显示新图形,也从不收到“我在”控制台消息。
在服务器端监视消息传递时,我确实得到了
192.168.0.122--[22 / May / 2019 19:47:22]“ GET / rango?start = 1558050049000&end = 1558551372000&callback = jQuery18307335687220269529_1558565228146&_ = 1558565238543 HTTP / 1.1” 200-
哪里是清楚的开始日期,什么是结束日期,然后我就不理解回调和随后的数字。
以防万一,这是来自服务器的信息 [1558546562999.989、17.82、1021、76.15、0、1]
有人可以在这里带些光吗?