From 99e92a5304ec93d5fd0b9d739215bbc73945f005 Mon Sep 17 00:00:00 2001
From: 沈斌 <23420800@qq.com>
Date: Tue, 31 Jan 2017 15:22:51 +0800
Subject: [PATCH] 环境数云端接口程序代码优化,三级警报配置信息移至配置文件中
---
method.js | 105 ++++++++++++++++++++++++++++------------------------
1 files changed, 56 insertions(+), 49 deletions(-)
diff --git a/method.js b/method.js
index efb3934..cdbe1e8 100644
--- a/method.js
+++ b/method.js
@@ -131,6 +131,10 @@
mac = mac.toLowerCase();
this.updateDeviceLastUpdated(db, mac, function(data) {});
+ //������������������������������������������������������
+ //var ver = this.toDec(fields[18]) * 256 + this.toDec(fields[19]); //���������
+
+
var x1 = this.toDec(fields[20]) * 256 + this.toDec(fields[21]); //PM2.5������
var x2 = this.toDec(fields[22]) * 256 + this.toDec(fields[23]); //PM10
var x3 = this.toDec(fields[24]) * 256 + this.toDec(fields[25]); //0.1���0.3um���
@@ -169,19 +173,8 @@
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"
- }
- };
+ _config = config.ALARM_DEFAULTS;
+ _config.mac = mac;
configs[mac] = _config;
}
@@ -199,6 +192,7 @@
x5: x10, //������
x6: x14 //������������
},
+ options: _config.options,
time: current.valueOf()
};
queue.pushToMQ('ex_data_screen', sensor_data);
@@ -221,6 +215,7 @@
}, function(err, result) { });
}
+ var _this = this;
db.collection("data").insertOne({
mac: mac,
x1: x1,
@@ -253,22 +248,37 @@
}, function(err, doc) {
if (err) return;
- if(x1 > 250) {
- var level = 1;
- if(x1 > 750) {
- level = 3;
- } else if(x1 > 500) {
- level = 2;
- }
- sensor_data.id = doc._id;
+ var level1 = _this.getLevel(x1, _config['options'][1]);
+ var level2 = _this.getLevel(x9, _config['options'][2]);
+ var level3 = _this.getLevel(x11, _config['options'][3]);
+ var level4 = _this.getLevel(x10, _config['options'][4]);
+ var level5 = _this.getLevel(x14, _config['options'][5]);
+ var level = Math.max(level1, level2, level3, level4, level5);
+ if(level > 0) {
+ sensor_data._id = doc.insertedId;
sensor_data.level = level;
- sensor_data.nitice = _config.notice;
+ sensor_data.notice = _config.notice;
sensor_data.address = _config.address;
+ sensor_data.data.levels = [level1, level2, level3, level4, level5];
queue.pushToMQ('ex_data_alarm', sensor_data);
}
callback(doc, rank);
});
+};
+
+module.exports.getLevel = function(val, option) {
+ var level = 0;
+ if(option == null || option.length < 3) return level;
+ if(val > option[0]) {
+ var level = 1;
+ if(val > option[2]) {
+ level = 3;
+ } else if(val > option[1]) {
+ level = 2;
+ }
+ }
+ return level;
};
module.exports.updateDeviceSleep = function(db, data, callback) {
@@ -345,34 +355,31 @@
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
+ var address = doc.address || "";
+ var location = doc.location || {};
+ var notice = doc.notice;
+ var options = doc.options;
+ var config = {
+ mac: mac,
+ address: address,
+ location: location,
+ notice: notice,
+ options: options
+ };
+ if(notice == null || notice == {}) {
+ var userID = doc.userID;
+ db.collection("users").find({"_id": userID}).limit(1).next(function(err, user){
+ if(user) {
+ config[notice] = {
+ tel: user.username,
+ email: user.email,
+ open_id: user.open_id
+ };
+ global.configs[mac] = config;
}
- }
+ });
+ } else {
+ global.configs[mac] = config;
}
});
});
--
Gitblit v1.8.0