|
|
@@ -1,4 +1,5 @@
|
|
|
#include "datacollectorpub.h"
|
|
|
+#include "../ytDataCollectorDog/datacollector.h"
|
|
|
|
|
|
DataCollectorPub::DataCollectorPub(QObject *parent) : QThread(parent)
|
|
|
{
|
|
|
@@ -28,6 +29,7 @@ void DataCollectorPub::run()
|
|
|
QString topic = devdata.topic;
|
|
|
QByteArray data = devdata.data;
|
|
|
QString devType = (topic.split("/")).at(2);
|
|
|
+ QString companyCode = (topic.split("/")).at(3);
|
|
|
QString productId = "";
|
|
|
QString deviceId = (topic.split("/")).at(4);
|
|
|
|
|
|
@@ -67,6 +69,9 @@ void DataCollectorPub::run()
|
|
|
QString connType = root_obj.value("connType").toString();
|
|
|
QString dataType = root_obj.value("type").toString();
|
|
|
QString timeStamp = root_obj.value("timeStamp").toString();
|
|
|
+ if(timeStamp.isEmpty()){
|
|
|
+ timeStamp = QString("%1").arg(QDateTime::currentDateTime().toTime_t());
|
|
|
+ }
|
|
|
QJsonValue dev_value = root_obj.value("devs");
|
|
|
|
|
|
if(dev_value.isArray()){
|
|
|
@@ -94,6 +99,9 @@ void DataCollectorPub::run()
|
|
|
//printf("WaterPL: %s\n",WaterPL.toUtf8().data());
|
|
|
}else if((name.compare("电量")==0)||(name.compare("剩余电量")==0)){
|
|
|
battery = value;
|
|
|
+ if(battery.isEmpty()){
|
|
|
+ battery = "0";
|
|
|
+ }
|
|
|
//printf("battery: %s\n",battery.toUtf8().data());
|
|
|
}else if((name.compare("信号")==0)||(name.compare("无线信号")==0)){
|
|
|
signal = value;
|
|
|
@@ -168,50 +176,79 @@ void DataCollectorPub::run()
|
|
|
}
|
|
|
}
|
|
|
QString dt = dev_obj.value("deviceType").toString();
|
|
|
+ for(int i;i<DEV_MAXCOUNT;i++){
|
|
|
+ if((companyCode.compare(smokerDeviceList->sensors[i].Company_Code)==0)&&(dt.compare(QString::number(smokerDeviceList->sensors[i].Device_Type))==0)){
|
|
|
+ productId = smokerDeviceList->sensors[i].product_code;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if(dt.compare("1")==0){
|
|
|
deviceType = "1-fhj";
|
|
|
- productId = "1_0001";
|
|
|
+ if(productId == ""){
|
|
|
+ productId = "1_0001";
|
|
|
+ }
|
|
|
+
|
|
|
jsonStr = QString("{\"device_id\":\"%1\",\"product_id\":\"%2\",\"timestamp\":%3,\"tags\":{\"conn_type\":\"%4\",\"type\":\"%5\"},\"metrics\":{\"status\":%6},\"device_type\":\"%7\"}").arg(deviceId).arg(productId).arg(timeStamp).arg(connType).arg(dataType).arg(Status).arg(deviceType);
|
|
|
}else if(dt.compare("2")==0){
|
|
|
deviceType = "2-fsy";
|
|
|
- productId = "2_0001";
|
|
|
+ if(productId == ""){
|
|
|
+ productId = "2_0001";
|
|
|
+ }
|
|
|
+
|
|
|
jsonStr = QString("{\"device_id\":\"%1\",\"product_id\":\"%2\",\"timestamp\":%3,\"tags\":{\"conn_type\":\"%4\",\"type\":\"%5\"},\"metrics\":{\"battery\":%6,\"signal\":%7,\"water_pl\":%8,\"status\":%9},\"device_type\":\"%10\"}").arg(deviceId).arg(productId).arg(timeStamp).arg(connType).arg(dataType).arg(battery).arg(signal).arg(WaterPL).arg(Status).arg(deviceType);
|
|
|
}else if(dt.compare("3")==0){
|
|
|
|
|
|
deviceType = "3-fyg";
|
|
|
- if(deviceId.compare("860348063655387")==0){
|
|
|
- productId = "3_17089462";
|
|
|
- }else{
|
|
|
- productId = "3_0001";
|
|
|
+ if(productId == ""){
|
|
|
+ if(deviceId.compare("860348063655387")==0){
|
|
|
+ productId = "3_17089462";
|
|
|
+ }else{
|
|
|
+ productId = "3_0001";
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
|
|
|
jsonStr = QString("{\"device_id\":\"%1\",\"product_id\":\"%2\",\"timestamp\":%3,\"tags\":{\"conn_type\":\"%4\",\"type\":\"%5\"},\"metrics\":{\"battery\":%6,\"signal\":%7,\"temperature\":%8,\"density\":%9,\"status\":%10},\"device_type\":\"%11\"}").arg(deviceId).arg(productId).arg(timeStamp).arg(connType).arg(dataType).arg(battery).arg(signal).arg(Temperature).arg(density).arg(Status).arg(deviceType);
|
|
|
}else if(dt.compare("4")==0){
|
|
|
deviceType = "4-fxhs";
|
|
|
- productId = "4_0001";
|
|
|
+ if(productId == ""){
|
|
|
+ productId = "4_0001";
|
|
|
+ }
|
|
|
+
|
|
|
jsonStr = QString("{\"device_id\":\"%1\",\"product_id\":\"%2\",\"timestamp\":%3,\"tags\":{\"conn_type\":\"%4\",\"type\":\"%5\"},\"metrics\":{\"battery\":%6,\"signal\":%7,\"water_pl\":%8,\"status\":%9},\"device_type\":\"%10\"}").arg(deviceId).arg(productId).arg(timeStamp).arg(connType).arg(dataType).arg(battery).arg(signal).arg(WaterPL).arg(Status).arg(deviceType);
|
|
|
}else if(dt.compare("5")==0){
|
|
|
deviceType = "5-fyw";
|
|
|
- productId = "5_0001";
|
|
|
+ if(productId == ""){
|
|
|
+ productId = "5_0001";
|
|
|
+ }
|
|
|
jsonStr = QString("{\"device_id\":\"%1\",\"product_id\":\"%2\",\"timestamp\":%3,\"tags\":{\"conn_type\":\"%4\",\"type\":\"%5\"},\"metrics\":{\"battery\":%6,\"signal\":%7,\"water_pl\":%8,\"status\":%9},\"device_type\":\"%10\"}").arg(deviceId).arg(productId).arg(timeStamp).arg(connType).arg(dataType).arg(battery).arg(signal).arg(WaterPL).arg(Status).arg(deviceType);
|
|
|
}else if(dt.compare("6")==0){
|
|
|
deviceType = "6-frtu";
|
|
|
- productId = "6_0001";
|
|
|
+ if(productId == ""){
|
|
|
+ productId = "6_0001";
|
|
|
+ }
|
|
|
jsonStr = QString("{\"device_id\":\"%1\",\"product_id\":\"%2\",\"timestamp\":%3,\"tags\":{\"conn_type\":\"%4\",\"type\":\"%5\"},\"metrics\":{\"power_alarm\":%6,\"manual_act\":%7,\"dev_working01\":%8,\"dev_working02\":%9,\"dev_alarm01\":%10,\"dev_alarm02\":%11,\"fire_auto_act\":%12},\"device_type\":\"%13\"}").arg(deviceId).arg(productId).arg(timeStamp).arg(connType).arg(dataType).arg(PowerAlarm).arg(ManualAct).arg(DevWorking01).arg(DevWorking02).arg(DevAlarm01).arg(DevAlarm02).arg(FireAutoAct).arg(deviceType);
|
|
|
}else if(dt.compare("7")==0){
|
|
|
deviceType = "7-fef";
|
|
|
- productId = "7_0001";
|
|
|
+ if(productId == ""){
|
|
|
+ productId = "7_0001";
|
|
|
+ }
|
|
|
jsonStr = QString("{\"device_id\":\"%1\",\"product_id\":\"%2\",\"timestamp\":%3,\"tags\":{\"conn_type\":\"%4\",\"type\":\"%5\"},\"metrics\":{\"voltage_a\":%6,\"voltage_b\":%7,\"voltage_c\":%8,\"current_a\":%9,\"current_b\":%10,\"current_c\":%11,\"temperature_a\":%12,\"temperature_b\":%13,\"temperature_c\":%14},\"device_type\":\"%15\"}").arg(deviceId).arg(productId).arg(timeStamp).arg(connType).arg(dataType).arg(VoltageA).arg(VoltageB).arg(VoltageC).arg(CurrentA).arg(CurrentB).arg(CurrentC).arg(TemperatureA).arg(TemperatureB).arg(TemperatureC).arg(deviceType);
|
|
|
}else if(dt.compare("16")==0){
|
|
|
deviceType = "16-fvd";
|
|
|
productId = "16_0001";
|
|
|
}else if(dt.compare("128")==0){
|
|
|
deviceType = "128-fiw";
|
|
|
- productId = "128_0001";
|
|
|
+ if(productId == ""){
|
|
|
+ productId = "128_0001";
|
|
|
+ }
|
|
|
jsonStr = QString("{\"device_id\":\"%1\",\"product_id\":\"%2\",\"timestamp\":%3,\"tags\":{\"conn_type\":\"%4\",\"type\":\"%5\"},\"metrics\":{\"angle\":%6,\"battery\":%7,\"signal\":%8,\"liquid\":%9,\"status\":%10},\"device_type\":\"%11\"}").arg(deviceId).arg(productId).arg(timeStamp).arg(connType).arg(dataType).arg(angle).arg(battery).arg(signal).arg(WaterPL).arg(Status).arg(deviceType);
|
|
|
}else if(dt.compare("129")==0){
|
|
|
deviceType = "129-fdc";
|
|
|
- productId = "129_0001";
|
|
|
+ if(productId == ""){
|
|
|
+ productId = "129_0001";
|
|
|
+ }
|
|
|
jsonStr = QString("{\"device_id\":\"%1\",\"product_id\":\"%2\",\"timestamp\":%3,\"tags\":{\"conn_type\":\"%4\",\"type\":\"%5\"},\"metrics\":{\"battery\":%6,\"signal\":%7,\"status\":%8},\"device_type\":\"%9\"}").arg(deviceId).arg(productId).arg(timeStamp).arg(connType).arg(dataType).arg(battery).arg(signal).arg(Status).arg(deviceType);
|
|
|
}else if(dt.compare("130")==0){
|
|
|
deviceType = "130-feg";
|
|
|
@@ -221,10 +258,12 @@ void DataCollectorPub::run()
|
|
|
productId = "131_0001";
|
|
|
}else if(dt.compare("137")==0){
|
|
|
deviceType = "137-fjjan";
|
|
|
- if(deviceId.compare("862335058858769")==0){
|
|
|
- productId = "137_17089450";
|
|
|
- }else{
|
|
|
- productId = "137_0001";
|
|
|
+ if(productId == ""){
|
|
|
+ if(deviceId.compare("862335058858769")==0){
|
|
|
+ productId = "137_17089450";
|
|
|
+ }else{
|
|
|
+ productId = "137_0001";
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
jsonStr = QString("{\"device_id\":\"%1\",\"product_id\":\"%2\",\"timestamp\":%3,\"tags\":{\"conn_type\":\"%4\",\"type\":\"%5\"},\"metrics\":{\"battery\":%6,\"signal\":%7,\"temperature\":%8,\"density\":%9,\"status\":%10},\"device_type\":\"%11\"}").arg(deviceId).arg(productId).arg(timeStamp).arg(connType).arg(dataType).arg(battery).arg(signal).arg(Temperature).arg(density).arg(Status).arg(deviceType);
|