-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontrollerIO.js
More file actions
38 lines (33 loc) · 1.34 KB
/
controllerIO.js
File metadata and controls
38 lines (33 loc) · 1.34 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
'use strict'
// message format hash,cmd,addressId[,value][,addressId[,value]]...
// the hash will be signed with the arduino embedded key
// CTRLR - arduino responses, CTRLC - arduino commands
const CTRLR_ID = 1; // id do dispositivo que esta conectando
const CTRLR_HASH = 2; // hash de resposta ao desafio da chave
const CTRLR_RESP = 3; // lista pares endereco/valor lidos
const CTRLC_SET = 10; // lista pares endereco/valor para se atualizar
const CTRLC_GET = 11; // lista de enderecos para serrem retornados
// trada das mensagems enviadas pelo/para o arduino
module.exports = function (ctrl, browserNSP) {
ctrl.on('cmd', (msg) => {
console.log('MSG from (', ctrl.id,'):', msg)
const cparts = msg.data.split(",")
let cmd = parseInt(cparts[0], 10)
let port = parseInt(cparts[1], 10)
let val = parseInt(cparts[2], 10)
if (cparts !== undefined) {
switch (cmd) {
case CTRLR_ID:
break
case CTRLR_HASH:
break
case CTRLR_RESP:
// TODO: atualizar o banco de dados
// encaminha para todos os browsers, arrumar isso aki
console.log('SEND action: ', {type: 'MONITOR_UPDATE', data: { id:port, value:val } })
browserNSP.emit('action', {type: 'MONITOR_UPDATE', data: { id:port, value:val } } )
break
}
}
})
}