script.js 1.86 KB
window.WebSocket=(window.WebSocket||window.MozWebSocket);
var websocket=new WebSocket('ws://192.168.1.111:9000','myprotocol');
	websocket.binaryType =  'arraybuffer'; //On utilise un objet arraybuffer pour envoyer et recevoir les données
	//Cette objet permet de transformer automatiquement un buffer de plusieurs octets en un tableau de données d'un certain type, dans notre cas des entiers non signés.

	
websocket.onopen=function(){ $('h3 .connecOn').css('color','green'); };

websocket.onerror=function(){ $('h3 .connecOff').css('color','red'); };

//on créé le tableau des octets à envoyer pour la requete :
var requete = new Uint8ClampedArray(3);
requete[0] = 'G'.charCodeAt(0);
requete[1] = 'E'.charCodeAt(0);
requete[2] = 'T'.charCodeAt(0);


//affiche le contenu du tableau dans une alert
//alert(String.fromCharCode(reponseView.getUint8(0))+String.fromCharCode(reponseView.getUint8(1))+String.fromCharCode(reponseView.getUint8(2)));


websocket.onmessage=function(message){ //Evenement surveillant la reception de message
	$('h4').show();
	var reponse = new Uint8Array(message.data);
	//on extrait les données du buffer
	var temp = reponse[1];
	var hum = reponse[2];
	var press = reponse[0]+845;
	var lum = (reponse[3]*10000/255).toFixed(2);
   	
	$('#relevesMeteo .temperature').text(temp+' °C');
	$('#relevesMeteo .humidite').text(hum+' %');
	$('#relevesMeteo .pression').text(press+' hPa');
	$('#relevesMeteo .luminosite').text(lum+' Lux');

	//On estime l'état du ciel grâce aux données envoyées par les capteurs.
	//http://leguidemeteo.com/prevoir-le-temps-a-partir-de-son-barometre/
	if(lum >= 100 && lum <= 1000)
		$('.nuage').text("nuageux");
	else 
		$('.nuage').text("clair");

	if(press <= 1006)
		$('.pluie').text("pleut");
	else
		$('.pluie').text('ne pleut pas')

};

function requeteEnvoi(){
	websocket.send(requete.buffer);
}



//setInterval(requeteEnvoi,1000);