From cd83ef88f783205bc17d06b249fa62f9425957c6 Mon Sep 17 00:00:00 2001
From: 沈斌 <bluelazysb@hotmail.com>
Date: Fri, 11 Aug 2017 09:54:33 +0800
Subject: [PATCH] 测试-不要频繁增加连接数

---
 method.js |  114 +++++++++++++++++++++++++++++++-------------------------
 1 files changed, 63 insertions(+), 51 deletions(-)

diff --git a/method.js b/method.js
index e4adc94..07aa228 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,20 +173,9 @@
 
     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;
+        _config = config.ALARM_DEFAULTS;
+        _config.mac = mac;
+        global.configs[mac] = _config;
     }
 
     var current = moment();
@@ -197,15 +190,18 @@
             x3: x9,  //������
             x4: x11, //������
             x5: x10, //������
-            x6: x14  //������������
+            x6: x14,  //������������
+
+            mcu: mcu
         },
+        options: _config.options,
         time: current.valueOf()
     };
     queue.pushToMQ('ex_data_screen', sensor_data);
 
     var rank = 0;
     if(s > 0) {
-        rank = this.random(1000, 99999);//this.random(1000, 99999999);
+        rank = this.random(100200, 102000);//this.random(1000, 99999999);
         db.collection("device_ranks").insertOne({
             mac: mac,
             rank: rank,
@@ -221,6 +217,7 @@
         }, function(err, result) { });
     }
 
+    var _this = this;
     db.collection("data").insertOne({
         mac: mac,
         x1: x1,
@@ -253,22 +250,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.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) {
@@ -342,37 +354,37 @@
 };
 
 module.exports.initConfigs = function(db) {
+    var _address = config.ALARM_DEFAULTS.address;
+    var _location = config.ALARM_DEFAULTS.location;
+    var _options = config.ALARM_DEFAULTS.options;
     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 || _address;
+            var location = doc.location || _location;
+            var options = doc.options || _options;
+            var notice = doc.notice;
+            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