-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathdevice.js
More file actions
67 lines (63 loc) · 2.19 KB
/
Copy pathdevice.js
File metadata and controls
67 lines (63 loc) · 2.19 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
57
58
59
60
61
62
63
64
65
66
67
const async = require('async');
const MQTTClient = require('./lib/mqtt_client');
const config = require('./config');
const colors = require('colors');
const util = require('util');
const INTERVAL = 1000;
var BASE_TMP = 30;
var device = new MQTTClient(config);
device.on('connect', function(){
console.log('ThingPlug MQTT Connected');
device.on('command', function(topic,cmd){
console.log("#####################################");
console.log('MQTT 수신 mgmtCmd :' + topic +':'+ cmd.exra[0]);
processCMD(cmd);
device.updateExecInstance(cmd.cmt[0], cmd.ri[0], function(err,result){});
console.log("#####################################");
console.log("#####################################");
console.log('처리한 resouceId :' + cmd.ri[0]);
console.log('처리한 결과 execStatus : 3');
console.log("#####################################");
});
initialSetup(function(err,result){
if(err) {
console.log(err);
return device.end();
}
console.log(colors.green('5. content Instance 주기적 생성 시작'));
setInterval( function(){
var value = BASE_TMP + Math.floor(Math.random() * 5);
device.createContentInstance(config.containerName, value, function(err, result){
if(err) console.log(err)
else console.log(value, result);
});
},INTERVAL);
});
})
function initialSetup(cb) {
async.waterfall([
function createNode(cb){
console.log(colors.blue('1. node 생성 요청'));
device.createNode(cb);
},
function createRemoteCSE(nodeRI, cb){
console.log(colors.blue('2. remoceCSE 생성 요청'));
device.createRemoteCSE(cb);
},
function createContainer(dKey, cb){
console.log(colors.blue('3. container 생성 요청'));
device.createContainer(config.containerName, cb);
},
function createMgmtCmd(res, cb){
console.log(colors.blue('4. mgmtCmd 생성 요청'));
device.createMgmtCmd(config.command, cb);
}
], function processResult (err, result) {
return cb(err,result);
});
}
function processCMD(cmd) {
var cmd_args = JSON.parse(cmd.exra[0])['cmd'];
if(cmd_args == 'on') return BASE_TMP = 0;
if(cmd_args == 'off') return BASE_TMP = 30;
}