From 97a36a084bb3e7f109723b8ecc105e1f44160a11 Mon Sep 17 00:00:00 2001
From: 沈斌 <bluelazysb@hotmail.com>
Date: Sat, 21 Jan 2017 10:52:03 +0800
Subject: [PATCH] bugfix - 保存每种气体监测等级并传递数据到后续服务组件
---
method.js | 49 ++++++++++++++++++++++++++++++++++++-------------
1 files changed, 36 insertions(+), 13 deletions(-)
diff --git a/method.js b/method.js
index ded9b19..3cad431 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���
@@ -172,17 +176,21 @@
_config = {
mac: mac,
address: "���������������������������������",
- location: {���
+ location: {
lat:31.430616,
- lng:120.988327���
+ lng:120.988327
},
notice: {
- tel: "15950198162",���
- email: "it01@moral.org.cn",���
+ tel: "15950198162",
+ email: "it01@moral.org.cn",
open_id: "o-RTuwvMHWotyirPHLmdSB_dKoQU"
},
options: {
- 1: [500, 700, 900]
+ 1: [1000, 2000, 3000],
+ 2: [1000, 2000, 3000],
+ 3: [1000, 2000, 3000],
+ 4: [1000, 2000, 3000],
+ 5: [1000, 2000, 3000]
}
};
configs[mac] = _config;
@@ -225,6 +233,7 @@
}, function(err, result) { });
}
+ var _this = this;
db.collection("data").insertOne({
mac: mac,
x1: x1,
@@ -257,18 +266,18 @@
}, function(err, doc) {
if (err) return;
- var opt1 = _config['options'][1];
- if(x1 > opt1[0]) {
- var level = 1;
- if(x1 > opt1[2]) {
- level = 3;
- } else if(x1 > opt1[1]) {
- level = 2;
- }
+ 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);
}
@@ -276,6 +285,20 @@
});
};
+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) {
var mac = this.getMac(data);
var collection = db.collection("devices");
--
Gitblit v1.8.0