| | |
| | | var ddv = this.toDec(fields[62]) * 256 + this.toDec(fields[63]); |
| | | var mcu = this.toDec(fields[64]) + this.toDec(fields[65]) / 100; |
| | | |
| | | var _config = global.configs[mac]; |
| | | if(_config == null) { |
| | | _config = { |
| | | address: "江苏省昆山市摩瑞尔电器", |
| | | location: {
|
| | | lat:31.430616, |
| | | lng:120.988327
|
| | | }, |
| | | notice: { |
| | | tel: "15950198162",
|
| | | email: "it01@moral.org.cn",
|
| | | open_id: "o-RTuwvMHWotyirPHLmdSB_dKoQU" |
| | | } |
| | | } |
| | | } |
| | | |
| | | var current = moment(); |
| | | |
| | | queue.pushToMQ('ex_data_screen', { |
| | | mac: mac, |
| | | location: { |
| | | lat: 31.430616, |
| | | lng: 120.988327 |
| | | }, |
| | | location: _config.location, |
| | | data: { |
| | | x0: ferval, |
| | | x1: x1, //PM2.5 - (单位:ppm) |
| | |
| | | } |
| | | queue.pushToMQ('ex_data_alarm', { |
| | | mac: mac, |
| | | address: "江苏省昆山市摩瑞尔电器", |
| | | location: { |
| | | lat:31.430616, |
| | | lng:120.988327 |
| | | }, |
| | | address: _config.address, |
| | | location: _config.location, |
| | | data:{ |
| | | x0: ferval, |
| | | x1: x1, //PM2.5 |
| | |
| | | x6: x14 //光照强度 |
| | | }, |
| | | level: level, |
| | | notice: { |
| | | tel: "15950198162", |
| | | email: "it01@moral.org.cn", |
| | | open_id: "o-RTuwvMHWotyirPHLmdSB_dKoQU" |
| | | }, |
| | | notice: _config.notice, |
| | | time: moment.valueOf() |
| | | }); |
| | | } |
| | |
| | | } |
| | | }; |
| | | |
| | | module.exports.initConfigs = function(db) { |
| | | db.collection("devices").find().toArray(function(err, docs) { |
| | | docs.forEach(function(doc) { |
| | | var mac = doc.mac; |
| | | var address = doc.address; |
| | | var location = doc.location; |
| | | var notice = doc.notice; |
| | | if(notice == null) { |
| | | var userID = doc.userID; |
| | | db.collection("users").find({"_id": userID}).limit(1).next(function(err, user){ |
| | | global.configs[mac] = { |
| | | address: address, |
| | | location: location, |
| | | notice: { |
| | | tel: user.username, |
| | | email: user.email, |
| | | open_id: user.open_id |
| | | } |
| | | } |
| | | }); |
| | | } else { |
| | | global.configs[mac] = { |
| | | address: address, |
| | | location: location, |
| | | notice: notice |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | ///////////////////////////////////////////////// |
| | | module.exports.insertDocument2 = function(db, data, rank, callback) { |
| | | var fields = data.match(/.{2}/g); |
| | |
| | | conn.close(); |
| | | }, 500); |
| | | }); |
| | | }; |
| | | |
| | | module.exports.listenToMQ = function(ex) { |
| | | amqp.connect(uri, function(err, conn) { |
| | | conn.createChannel(function(err, ch) { |
| | | ch.assertExchange(ex, 'fanout', { durable: false }); |
| | | ch.assertQueue('', {exclusive: true}, function(err, q) { |
| | | ch.bindQueue(q.queue, ex, ''); |
| | | ch.consume(q.queue, function(msg) { |
| | | var message = JSON.parse(msg.content); |
| | | var mac = message.mac; |
| | | var data = message.data; |
| | | global.configs[mac] = data; |
| | | }, { noAck: true }); |
| | | }); |
| | | }); |
| | | }); |
| | | }; |
| | |
| | | "5a000001000c": 20 //联云通知 |
| | | }; |
| | | |
| | | global.configs = {}; |
| | | |
| | | function handleData(db, socket, value) { |
| | | |
| | | //1.心跳命令行 |
| | |
| | | } |
| | | console.log('Connecting to Mongo DB at ' + config.URL); |
| | | |
| | | //初始化三级警报通讯方式 |
| | | method.initConfigs(db); |
| | | |
| | | //监听三级警报通讯方式的变化 |
| | | queue.listenToMQ("ex_data_config"); |
| | | |
| | | net.createServer().on('connection', function(socket){ |
| | | console.log('CONNECTED: ' + socket.remoteAddress +':'+ socket.remotePort); |
| | | |
| | |
| | | }).listen(config.PORT, config.HOST); |
| | | |
| | | console.log('TCP Server listening on ' + config.HOST + ':' + config.PORT); |
| | | }); |
| | | }); |