image/w/js/webui.js

Sat, 04 May 2019 11:41:16 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sat, 04 May 2019 11:41:16 +0200
branch
novnc
changeset 40
71e06f6d80fd
parent 11
f816cf5b6bcb
child 41
7639cfa6aec0
permissions
-rw-r--r--

Work on web interface using websockets.

document.getElementById("test").innerHTML = "WebSocket is not connected";

var websocket = new WebSocket('ws://'+location.hostname+'/ws');
//var slider = document.getElementById("myRange");


var BBScreen={

    Screen: -1,
    setScreen: function(s){
	console.log("Screen:"+s);
	switch (s) {
            case '0':
	    case '100':
            case '101':
            case '102':
            case '103':
            case '104':
            case '105':
            case '106':
            case '107':
            case '201':
			$("#mltline").show();
			//$("#mlt01").hide();
                        $("#midline").show();
                        $("#hltline").show();
                        $("#row_info").hide();
                        console.log("this is 0");
                        break;
	    case '108':	$("#mltline").show();	// to boil
			$("#midline").hide();
                        $("#hltline").hide();
			break;
            case '109':	$("#mltline").show();	// boil
			$("#midline").show();
			$("#hltline").hide();
			break;
            case '2':	$("#mltline").hide();
                        $("#midline").hide();
                        $("#hltline").hide();
                        $("#row_info").show();
                        console.log("this is 2");
                        break;
            default:    $("#mltline").hide();
			$("#midline").hide();
                        $("#hltline").hide();
                        console.log("this is default");
                        break;
	}
    },
    MLT_pv: function(s) {
	$("#mlt_pv").text(s);
    },
    MLT_sp: function(s) {
	$("#mlt_sp").text(s);
    },
    MLT_power: function(s) {
	$("#mlt_power").text(s);
    },
    MLT_led: function(s) {
	if (s == 0)
	    $("#mlt_led").css("background-color", "#270");
	else
	    $("#mlt_led").css("background-color", "#5E0");
    },
    Pump_led: function(s) {
	if (s == 0)
	    $("#pump_led").css("background-color", "#820");
	else
	    $("#pump_led").css("background-color", "#F40");
    },
    HLT_pv: function(s) {
	$("#hlt_pv").text(s);
    },
    HLT_sp: function(s) {
	$("#hlt_sp").text(s);
    },
    HLT_power: function(s) {
	$("#hlt_power").text(s);
    },
    HLT_led: function(s) {
	if (s == 0)
	    $("#hlt_led").css("background-color", "#270");
	else
	    $("#hlt_led").css("background-color", "#5E0");
    },
    Topmessage: function(s) {
	$("#top_msg").text(s);
    },
    Timer: function(s) {
	$("#timer").text(s);
    },
};

var BrewBoard = {

    p_msg:function(e){
	var b=this;
	var a=JSON.parse(e);
	var c={
	    main: function(v){
		BBScreen.setScreen(v)
	    },
	    mlt_pv:function(v){
		BBScreen.MLT_pv(v)
	    },
	    mlt_sp:function(v){
		BBScreen.MLT_sp(v)
	    },
	    mlt_power:function(v){
		BBScreen.MLT_power(v)
	    },
	    mlt_led:function(v){
		BBScreen.MLT_led(v)
	    },
	    pump_led:function(v){
		BBScreen.Pump_led(v)
	    },
	    hlt_pv:function(v){
		BBScreen.HLT_pv(v)
	    },
	    hlt_sp:function(v){
		BBScreen.HLT_sp(v)
	    },
	    hlt_power:function(v){
		BBScreen.HLT_power(v)
	    },
	    hlt_led:function(v){
		BBScreen.HLT_led(v)
	    },
	    top_msg:function(v){
		BBScreen.Topmessage(v)
	    },
	    timer:function(v){
		BBScreen.Timer(v)
	    },
	};
	console.log(e);
	$.each(a,function(k,v){
	    if (typeof(c[k])!="undefined"){
		c[k](v)
	    }
	});
    }
};


function sendTouch(x, y) {
	websocket.send('{"touch":{"x":"'+x+'","y":"'+y+'"}}');
	console.log('Sent {"touch":{"x":"'+x+'","y":"'+y+'"}}');
}


/* Define keys in the screens and their actions. */
$("#ok_info").click( function() { sendTouch(160,220); });


websocket.onopen = function(evt) {
	console.log('WebSocket connection opened');
	document.getElementById("test").innerHTML = "WebSocket is connected!";
}

/*
 * Process received websocket messages.
 */
websocket.onmessage = function(evt) {
    var msg = evt.data;
    var value;
    switch (msg.charAt(0)) {
	case '{':
		BrewBoard.p_msg(evt.data);
		break;
	default:
		document.getElementById("output").innerHTML = evt.data;
		break;
    }
}

websocket.onclose = function(evt) {
	console.log('Websocket connection closed');
	document.getElementById("test").innerHTML = "WebSocket closed";
}

websocket.onerror = function(evt) {
	console.log('Websocket error: ' + evt);
	document.getElementById("test").innerHTML = "WebSocket error????!!!1!!";
}

mercurial