From 565c4f00094c6894911b47fae031c4777539b616 Mon Sep 17 00:00:00 2001 From: 沈斌 <bluelazysb@hotmail.com> Date: Mon, 26 Dec 2016 15:48:25 +0800 Subject: [PATCH] 服务端代码优化与测试 --- method.js | 101 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 90 insertions(+), 11 deletions(-) diff --git a/method.js b/method.js index 4788af8..48aea6b 100644 --- a/method.js +++ b/method.js @@ -167,24 +167,66 @@ 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 = { + mac: mac, + address: "���������������������������������", + location: {��� + lat:31.430616, + lng:120.988327��� + }, + notice: { + tel: "15950198162",��� + email: "it01@moral.org.cn",��� + open_id: "o-RTuwvMHWotyirPHLmdSB_dKoQU" + } + configs[mac] = _config; + } + } + var current = moment(); - queue.pushToScreen({ + queue.pushToMQ('ex_data_screen', { mac: mac, - location: { - lat: 31.430616, - lng: 120.988327 - }, + location: _config.location, data: { - x1: x1, //PM2.5 - x2: x9, //������ - x3: x11, //������ - x4: x10, //������ - x5: x14, //������������ - x6: x12 //������ + x0: ferval, + x1: x1, //PM2.5 - (������:ppm) + x2: x3, //PM2.5 - 0.1���0.3um��� + x3: x9, //������ + x4: x11, //������ + x5: x10, //������ + x6: x14 //������������ }, time: current.valueOf() }); + + if(x1 > 250) { + var level = 1; + if(x1 > 750) { + level = 3; + } else if(x1 > 500) { + level = 2; + } + queue.pushToMQ('ex_data_alarm', { + mac: mac, + address: _config.address, + location: _config.location, + data:{ + x0: ferval, + x1: x1, //PM2.5 + x2: x3, //PM2.5 + x3: x9, //������ + x4: x11, //������ + x5: x10, //������ + x6: x14 //������������ + }, + level: level, + notice: _config.notice, + time: moment.valueOf() + }); + } var rank = 0; if(s > 0) { @@ -309,6 +351,43 @@ } }; +module.exports.initConfigs = function(db) { + db.collection("devices").find().toArray(function(err, docs) { + docs.forEach(function(doc) { + var mac = doc.mac; + if(mac != null) { + var address = doc.address || ""; + var location = doc.location || {}; + var notice = doc.notice; + if(notice == null || notice == {}) { + var userID = doc.userID; + db.collection("users").find({"_id": userID}).limit(1).next(function(err, user){ + if(user) { + global.configs[mac] = { + mac: mac, + address: address, + location: location, + notice: { + tel: user.username, + email: user.email, + open_id: user.open_id + } + } + } + }); + } else { + global.configs[mac] = { + mac: mac, + address: address, + location: location, + notice: notice + } + } + } + }); + }); +}; + ///////////////////////////////////////////////// module.exports.insertDocument2 = function(db, data, rank, callback) { var fields = data.match(/.{2}/g); -- Gitblit v1.8.0