add firehazard.c

This commit is contained in:
2020-01-09 00:32:53 +01:00
parent ef7866a29f
commit d0d82ee8fb
14 changed files with 533 additions and 49 deletions
+44 -15
View File
@@ -42,13 +42,9 @@
stroke: black;
}
path.major {
stroke-width: 2px;
}
.ylabels text {
font-size: 10px;
text-anchor: end;
text-anchor: start;
font-family: Droid Sans, sans-serif;
vertical-align: middle;
}
@@ -63,13 +59,13 @@
fill: none;
}
</style>
<g transform="translate(50,15)">
<g transform="translate(10,15)">
<path d="M100,0 v400m100,-400 v400m100,-400 v400m100,-400 v400m100,-400 v400m100,-400 v400"
class="grid" transform="translate(0,0)" id="grid-v" />
<path d="M0,100 h600m-600,100 h600m-600,100 h600m-600,100"
class="grid" stroke-dashoffset="0" id="grid-h" />
<path d="M-10,0 h10m-10,100 h10m-10,100 h10m-10,100 h10m-10,100 h10" class="ticks" />
<path d="M-5,10
<path d="M600,0 h10m-10,100 h10m-10,100 h10m-10,100 h10m-10,100 h10" class="ticks" />
<path d="M600,10
h5m-5,10h5m-5,10h5m-5,10h5m-5,10h5m-5,10h5m-5,10h5m-5,10h5m-5,10h5m-5,20
h5m-5,10h5m-5,10h5m-5,10h5m-5,10h5m-5,10h5m-5,10h5m-5,10h5m-5,10h5m-5,20
h5m-5,10h5m-5,10h5m-5,10h5m-5,10h5m-5,10h5m-5,10h5m-5,10h5m-5,10h5m-5,20
@@ -79,7 +75,7 @@
<path d="{ser-act}" stroke="red" id="ser-act" /><!--M0,0L300,100L600,400-->
</g>
<path d="M0,0h600v400h-600Z" class="frame" />
<g class="ylabels" transform="translate(0,3)">
<g class="ylabels" transform="translate(630,3)">
<text x="-15" y="0">400 °C</text>
<text x="-15" y="100">300 °C</text>
<text x="-15" y="200">200 °C</text>
@@ -90,13 +86,42 @@
</svg>
</td>
<td id="td-side">
Sidebar
t<sub>sens</sub> = <span id="temp">{temp}</span>°C<br>
<form action="/set" method="POST">
<h3>Oven Control</h3>
<table>
<tr>
<th>Heater:</th>
<td><select name="fire">
<option value="0" {fire_dis_ck}>Disable</option>
<option value="1" {fire_en_ck}>Enable</option>
</select></td>
</tr>
<tr>
<th>t<sub>set</sub> =</th>
<td><input type="number" step="1" name="tset" value="{tset}"></td>
</tr>
<tr><td></td><td><input type="submit" value="Set"></td></tr>
</table>
</form>
<form action="/set" method="POST">
<h3>PID tuning</h3>
<table>
<tr><th>Kp = </th><td><input type="number" step="any" name="kp" value="{kp}"></td></tr>
<tr><th>Ki = </th><td><input type="number" step="any" name="ki" value="{ki}"></td></tr>
<tr><th>Kd = </th><td><input type="number" step="any" name="kd" value="{kd}"></td></tr>
<tr><td></td><td><input type="submit" value="Set"></td></tr>
</table>
</form>
</td>
</tr>
</table>
<script>
var Qi = function (x) { return document.getElementById(x) };
let Qi = function (x) { return document.getElementById(x) };
const REFR_TIME = 1000;
function update(data) {
if (data) {
let rows = data.split('\x1e');
@@ -113,25 +138,29 @@ function update(data) {
Qi('grid-v').setAttribute('transform', 'translate(-'+(va*5)+',0)');
Qi('grid-h').setAttribute('stroke-dashoffset', -va * 5);
break;
case 'temp':
Qi('temp').innerHTML = va;
break;
// form fields are not live updated.
}
});
} else {
var xhr=new XMLHttpRequest();
let xhr=new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState===4){
if (xhr.status===200) {
update(xhr.responseText);
}
setTimeout(update, 500);
setTimeout(update, REFR_TIME);
}
};
xhr.onerror = function () {
setTimeout(update, 500);
setTimeout(update, REFR_TIME);
};
xhr.open('GET', '/data');
xhr.send();
}
}
setTimeout(update, 500);
setTimeout(update, REFR_TIME);
</script>