52 lines
1.2 KiB
JavaScript
52 lines
1.2 KiB
JavaScript
var net = require('net');
|
|
|
|
module.exports = function(query){
|
|
var client = new net.Socket();
|
|
|
|
var addr = query.device.addr.split(':')
|
|
|
|
if(query.device.type != "recever"){
|
|
return 1 // ERROR 1: devices isn't a recever
|
|
}
|
|
|
|
var data = {}
|
|
for (var i = 0; i < query.device.values.length; i++) {
|
|
// TODO: error on not given required value(s) for devices
|
|
if(query.hasOwnProperty(query.device.values[i].name)){
|
|
var value = query[query.device.values[i].name]
|
|
|
|
switch (query.device.values[i].type) {
|
|
case "number":
|
|
if(value > query.device.values[i].max){
|
|
return 3 // ERROR 3: invalid value
|
|
}
|
|
break;
|
|
default:
|
|
return 2 // ERROR 2: invalid device value type
|
|
}
|
|
|
|
data[query.device.values[i].name] = value
|
|
}
|
|
}
|
|
|
|
client.connect(addr[1], addr[0], function() {
|
|
for (var key in value) {
|
|
if (!value.hasOwnProperty(key)) continue;
|
|
|
|
client.write(key)
|
|
client.write("=")
|
|
client.write(value.key)
|
|
}
|
|
client.end()
|
|
});
|
|
|
|
client.on('data', function(data) {
|
|
if(data.toString() != "OK"){
|
|
console.log("set query failt");
|
|
}else{
|
|
console.log("send sucesfull");
|
|
}
|
|
client.destroy();
|
|
});
|
|
}
|