script.js
1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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);