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
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>
|