Рассказываю по порядку:
1. Пример использования стрелочного индикатора
Для него я сделал выдачу свойства объекта по ссылке:
/pChart/?op=value&p=ws.tempOutside
(где op=value обязательно и вместо ws.tempOutside соответственно нужный объект и свойство)
вызов этой ссылки возвращает текущее значение и всё.
Пример использования есть в файле /highcharts/sample1.php
Вот часть кода, которую я поменял по сравнению с тем, что постили выше:
Код: Выделить всё
function(chart) {
setInterval(function() {
var url="/pChart/?op=value&p=ws.tempOutside";
$.ajax({
url: url,
}).done(function(data) {
if (data!='') {
//alert(data);
var point = chart.series[0].points[0];
point.update(parseFloat(data));
}
});
}, 1000);
Здесь так же пришлось модифицировать /pChart/index.php чтобы поддерживался вызов такого формата:
/pChart/?p=ws.tempOutside&op=values&start=2012/10/02&interval=1200
где op=values обязательно и вместо ws.tempOutside соответственно нужный объект и свойство
вызов этой ссылки возвращает список значений, начиная с даты start (формат ГГГГ/ММ/ДД) и с интервалом в interval секунд
Пример использования есть в файле /highcharts/sample2.php
Ну и вот конкретный код:
Код: Выделить всё
url = '/pChart/?p=ws.tempOutside&op=values&start=2012/10/02&interval=1200';
$.getJSON(url, function(data) {
// Create a timer
var start = + new Date();
// Create the chart
var chart = new Highcharts.StockChart({
chart: {
renderTo: 'container',
events: {
load: function(chart) {
this.setTitle(null, {
text: 'Built chart at '+ (new Date() - start) +'ms'
});
}
},
zoomType: 'x'
},
rangeSelector: {
buttons: [{
type: 'hour',
count: 1,
text: '1h'
}, {
type: 'day',
count: 1,
text: '1d'
}, {
type: 'week',
count: 1,
text: '1w'
}, {
type: 'month',
count: 1,
text: '1m'
}, {
type: 'month',
count: 6,
text: '6m'
}, {
type: 'year',
count: 1,
text: '1y'
}, {
type: 'all',
text: 'All'
}],
selected: 3
},
yAxis: {
title: {
text: 'Temperature (°C)'
}
},
title: {
text: 'Температура в г. Харькове 2012-2012'
},
subtitle: {
text: 'Built chart at...' // dummy text to reserve space for dynamic subtitle
},
series: [{
name: 'Temperature',
data: data,
pointStart: Date.UTC(2012, 10, 2),
pointInterval: 1200 * 1000,
tooltip: {
valueDecimals: 1,
valueSuffix: '°C'
}
}]
});
});
});
В общем, в примерах оно работает, но я пока ещё не думал о том, как это легко встроить в меню или в сцену. Тут нужна какая-то хитрость, чтобы минимум кода надо было писать. В общем, ещё подумаю... Ну или если кто-то желает по экспериментировать у себя и поделиться результатами, то милости просим
![Smile :)](./images/smilies/icon_e_smile.gif)