Я создаю небольшую веб-страницу для мониторинга на своем Пи, чтобы отслеживать некоторые показания мощности с измерителя мощности.
В настоящее время я добавляю некоторые датчики в настройку, чтобы она выглядела довольно красиво, ядля этого я использую Canvas-gauges (https://canvas -gauges.com / ).
У меня есть фоновый скрипт на Python, который извлекает данные из счетчика и затем сохраняет их вфайл каждую минуту, к которому я затем обращаюсь через PHP для отображения данных на стороне веб-страницы. У меня есть данные, отображаемые в виде текста, который автоматически обновляется, но датчик собирает переменную при запуске, а затем никогда не изменяется, см. Код ниже:
...Some code...
<?php
$dataFile = "data/Data.txt";
if (file_exists($dataFile)) {
chmod($dataFile, 0777);
} else {
echo "The file $dataFile does not exist";
}
$dataLines = file($dataFile);
$volts = $dataLines[3];
?>
...Some code...
<div id="voltsR" class="voltsR">
<?php echo "The Voltage is $volts V";
?>
</div>
<canvas id="voltG">
</canvas>
...Some Code...
<script type="text/javascript">
setInterval("reload();",10000); <!-- time in milliseconds -->
function reload() {
$("#voltsR").load(location.href+" #voltsR");
voltGr.update({value: <?php echo $volts ?>});
}
</script>
<script>
var voltGr = new RadialGauge ({
renderTo:"voltG",
width:"150",
height:"150",
units:"V",
title:"Volts",
minValue:"0",
maxValue:"300",
majorTicks:"0,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300",
minorTicks:"2",
strokeTicks:"false",
highlights:[
{ "from": 0, "to": 210, "color": "rgba(166, 28, 28, .25)" },
{ "from": 210, "to": 245, "color": "rgba(28, 166, 28, .25)" },
{ "from": 245, "to": 300, "color": "rgba(166, 28, 28, .25)" }
],
colorPlate:"#222",
colorMajorTicks:"#f5f5f5",
colorMinorTicks:"#ddd",
colorTitle:"#fff",
colorUnits:"#ccc",
colorNumbers:"#eee",
colorNeedleStart:"rgba(240, 128, 128, 1)",
colorNeedleEnd:"rgba(255, 160, 122, .9)",
valueBox:"true",
animationRule:"bounce",
animationDuration:"500",
fontValue:"Led",
animatedValue:"true"});
voltGr.draw();
voltGr.value = <?php echo $volts ?>;
</script>
Что происходит: В настоящее время происходит то, что текстовый раздел кода будет обновляться каждые 10 секунд, и через минуту он будет отображать недавно извлеченные данные $ вольт из текстового файла, т. Е. Первое чтение будет выглядеть как «Напряжение равно 241,567 В. "и через минуту он будет читать как:" Напряжение составляет 240,345 В "
Датчик будет читать первое чтение как 241,567 и отображать это правильно, однако через минуту значение не изменится на новое значение.
Если я щелкну правой кнопкой мыши -> осмотреть веб-страницу, я вижу, что переменная $ volts не обновилась в разделе Java Script внизу, но обновилась в div VoltsR.
Как мне получить оба значения для обновления соответственно?
Спасибо,