|  |  |  | 
|---|
|  |  |  | email: "it01@moral.org.cn", | 
|---|
|  |  |  | open_id: "o-RTuwvMHWotyirPHLmdSB_dKoQU" | 
|---|
|  |  |  | } | 
|---|
|  |  |  | configs[mac] = _config; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | configs[mac] = _config; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var current = moment(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | queue.pushToMQ('ex_data_screen', { | 
|---|
|  |  |  | var sensor_data = { | 
|---|
|  |  |  | mac: mac, | 
|---|
|  |  |  | location: _config.location, | 
|---|
|  |  |  | data: { | 
|---|
|  |  |  | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | queue.pushToMQ('ex_data_screen', sensor_data); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var rank = 0; | 
|---|
|  |  |  | if(s > 0) { | 
|---|
|  |  |  | 
|---|
|  |  |  | mcu: mcu, | 
|---|
|  |  |  | day: current.format('YYYYMMDD'), | 
|---|
|  |  |  | created: current.valueOf() | 
|---|
|  |  |  | }, function(err, result) { | 
|---|
|  |  |  | }, function(err, doc) { | 
|---|
|  |  |  | if (err) return; | 
|---|
|  |  |  | callback(result, rank); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(x1 > 250) { | 
|---|
|  |  |  | var level = 1; | 
|---|
|  |  |  | if(x1 > 750) { | 
|---|
|  |  |  | level = 3; | 
|---|
|  |  |  | } else if(x1 > 500) { | 
|---|
|  |  |  | level = 2; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | sensor_data._id = doc._id; | 
|---|
|  |  |  | sensor_data.level = level; | 
|---|
|  |  |  | sensor_data.notice = _config.notice; | 
|---|
|  |  |  | sensor_data.address = _config.address; | 
|---|
|  |  |  | queue.pushToMQ('ex_data_alarm', sensor_data); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | callback(doc, rank); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ///////////////////////////////////////////////// | 
|---|
|  |  |  | module.exports.insertDocument2 = function(db, data, rank, callback) { | 
|---|
|  |  |  | var fields = data.match(/.{2}/g); | 
|---|
|  |  |  | var mac = fields[6] + fields[7] + fields[8] + fields[9] + fields[10] + fields[11]; //Mac | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var x01 = this.toDec(fields[20]) * 256 + this.toDec(fields[21]); //PM2.5数据 | 
|---|
|  |  |  | var x02 = this.toDec(fields[24]) * 256 + this.toDec(fields[25]); //PM2.5数据 | 
|---|
|  |  |  | var x09 = this.toDec(fields[32]) * 256 + this.toDec(fields[33]); //甲醛 | 
|---|
|  |  |  | var x10 = this.toDec(fields[34]) * 256 + this.toDec(fields[35]); //湿度 | 
|---|
|  |  |  | var x11 = this.toDec(fields[36]) * 256 + this.toDec(fields[37]); //温度 | 
|---|
|  |  |  | var x14 = this.toDec(fields[42]) * 256 + this.toDec(fields[43]); //光线强度 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var fei = this.toDec(fields[58]); | 
|---|
|  |  |  | var ferval = this.toDec(fields[59]); | 
|---|
|  |  |  | var aqi = this.toDec(fields[60]) * 256 + this.toDec(fields[61]); | 
|---|
|  |  |  | var ddv = this.toDec(fields[62]) * 256 + this.toDec(fields[63]); | 
|---|
|  |  |  | var mcu = this.toDec(fields[64]) + this.toDec(fields[65]) / 100; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | db.collection("devices").find({ mac: mac }).limit(1).next(function(err, doc){ | 
|---|
|  |  |  | if (err) return; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var app = 0; | 
|---|
|  |  |  | var app_status = doc.app_status; | 
|---|
|  |  |  | var app_last_updated = doc.app_last_updated; | 
|---|
|  |  |  | if(app_status == 1 && app_last_updated != null && Date.now() - app_last_updated <= 30000) { | 
|---|
|  |  |  | app = 1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | db.collection(config.COLLECTION).insertOne({ mac: mac.toLowerCase(), data: data + ' - PM2.5:' + x01 + ', 甲醛:' + x09 + ', 湿度:' + x10 + ', 温度:' + x11 + ', 个数:' + x02 + ', FEI:' +  ferval + ', 评级:' + fei + ', 光照:' + x14 + ', AQI:' + aqi + ', 电池电压:' + ddv + ', MCU温度:' + mcu + ', APP:' + app, date: Date.now() }, function(err, doc) { | 
|---|
|  |  |  | if (err) return; | 
|---|
|  |  |  | callback(doc); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }; | 
|---|