You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
1.9 KiB

<!DOCTYPE HTML>
<html>
<head>
<style>
body { margin: 0px; padding: 0px; }
canvas { border: 1px solid #9C9898; }
</style>
<script>
var socket = new WebSocket("ws://{{ ip }}:{{ port }}/ws");
socket.onopen = function(){
console.log("Connected");
//get initial states
var leds = ["R", "G"];
for (var i = 0; i < leds.length; i++) {
request = {"message_type": "io_request",
"io_type": "led",
"led_colour": leds[i],
"operation": "read"};
sendMessage(request);
}
};
socket.onmessage = function (message) {
console.log("receiving: " + message.data);
processInstruction(message.data);
};
function processInstruction(instruction) {
var instruction_json = JSON.parse(instruction);
console.log(instruction_json.message_type);
console.log(typeof instruction_json.message_type);
if (instruction_json.message_type == "io_response") {
console.log("here");
if (instruction_json.io_type == "led") {
console.log("here2");;
var colour = instruction_json.led_colour;
var state = instruction_json.led_state;
document.getElementById(colour).innerHTML = "LED state: " + state;
}
}
}
socket.onclose = function(){
console.log("disconnected");
};
sendMessage = function(message) {
socket.send(JSON.stringify(message));
};
function buttonPress(colour) {
var request = {"message_type": "io_request",
"io_type": "led",
"led_colour": colour,
"operation": "toggle"};
sendMessage(request);
}
</script>
</head>
<body>
<div id="container"></div>
<h1>Controller</h1>
<table>
<tr>
<td><button onClick="buttonPress('R')">Toggle red LED</button></td>
<td><p id="R">LED state: ?</p></td>
</tr>
<tr>
<td><button onClick="buttonPress('G')">Toggle green LED</button></td>
<td><p id="G">LED state: ?</p></td>
</tr>
</table>
</body>
</html>