-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathclient.js
78 lines (64 loc) · 1.35 KB
/
client.js
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*
Nextion.js for Raspberry Pi / Node.js
Grégory G.
*/
var serialport = require('serialport');
var SerialPort = serialport.SerialPort;
var port = new SerialPort('/dev/ttyAMA0', {
baudrate: 9600
});
function init(){
port.on('open', function() {
console.log('Port ouvert sur /dev/ttyAMA0 @ 9600 bds');
write.setPage(0);
});
port.on('data', function(byte){
var data = byte.toString('hex').match(/.{1,2}/g);
readUart(data);
});
}
// write.uart("any command");
// write.setPage(0);
// write.setText("t0", "hey");
// write.setVis("t0", true);
// write.getPage(); return actual page on nextion (sendme command)
var write = {
uart: function(cmd){
writeUart(cmd);
},
setPage: function(num){
writeUart('page '+num);
},
setText: function(cmp, txt){
writeUart(cmp+'.txt="'+txt+'"');
},
setVis: function(cmp, value){
var val = value ? "1":"0";
writeUart('vis '+cmp+','+val);
},
setColor: function(cmp, bco){
writeUart(cmp + ".bco=" + bco);
writeUart("ref " + cmp);
},
getPage: function(){
writeUart('sendme');
}
};
function writeUart(cmd){
port.write(hex(cmd));
}
function readUart(data){
console.log(data.join(" "));
}
function hex(str) {
var arr = [];
for (var i = 0, l = str.length; i < l; i ++) {
var ascii = str.charCodeAt(i);
arr.push(ascii);
}
arr.push(255);
arr.push(255);
arr.push(255);
return new Buffer(arr);
}
init();