Pārlūkot izejas kodu

ytDataCollectorCore增加设备类型与产品之间的映射判断逻辑

james 1 gadu atpakaļ
vecāks
revīzija
2a8fe53155

+ 64 - 17
ytDataCollector/ytDataCollectorCore/datacollectorpub.cpp

@@ -28,7 +28,7 @@ void DataCollectorPub::run()
                 QString topic = devdata.topic;
                 QByteArray data = devdata.data;
                 QString devType = (topic.split("/")).at(2);
-                QString productId = (topic.split("/")).at(3);
+                QString productId = "";
                 QString deviceId = (topic.split("/")).at(4);
 
                 QString jsonStr = "";
@@ -71,7 +71,7 @@ void DataCollectorPub::run()
 
                     if(dev_value.isArray()){
                         QJsonObject dev_obj = dev_value.toArray().at(0).toObject();
-                        deviceType = dev_obj.value("deviceType").toString();
+
                         QJsonValue dp_value = dev_obj.value("dp");
                         if(dp_value.isArray()){
                             QJsonArray dp_array = dp_value.toArray();
@@ -167,21 +167,68 @@ void DataCollectorPub::run()
 
                             }
                         }
-                    }
-                    if(devType.compare("ytDP0001")==0){
-                        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(devType.compare("ytDP0002")==0){
-                        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(devType.compare("ytDP0003")==0){
-                        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(devType.compare("ytDP0006")==0){
-                        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(devType.compare("ytDP0007")==0){
-                        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(devType.compare("ytDP0008")==0){
-                        jsonStr = QString("{\"device_id\":\"%1\",\"product_id\":\"%2\",\"timestamp\":\"%3\",\"tags\":{\"conn_type\":\"%4\",\"type\":\"%5\"},\"metrics\":{\"battery\":%6,\"signal\":%7,\"liquid\":%8,\"angle\":%9,\"status\":%10},\"device_type\":\"%11\"}").arg(deviceId).arg(productId).arg(timeStamp).arg(connType).arg(dataType).arg(battery).arg(signal).arg(WaterPL).arg(angle).arg(Status).arg(deviceType);
-                    }else if(devType.compare("ytDP00033")==0){
-                        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);
+                        QString dt = dev_obj.value("deviceType").toString();
+                        if(dt.compare("1")==0){
+                            deviceType = "1-fhj";
+                            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";
+                            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";
+                            }
+                            
+                            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";
+                            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";
+                            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";
+                            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";
+                            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";
+                            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";
+                            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";
+                            productId = "130_0001";
+                        }else if(dt.compare("131")==0){
+                            deviceType = "131-fgas";
+                            productId = "131_0001";
+                        }else if(dt.compare("137")==0){
+                            deviceType = "137-fjjan";
+                            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);
+                        }
                     }
 
 

+ 4 - 1
ytDataCollector/ytDeviceTypeInfluxdbWriter/mqttthread.cpp

@@ -45,7 +45,10 @@ void MqttThread::run()
                     QString deviceId = root_obj.value("device_id").toString();
                     QString productId = root_obj.value("product_id").toString();
                     QString timeStamp = root_obj.value("timestamp").toString();
-                    QString deviceType = root_obj.value("device_type").toString();
+                    QString dt = root_obj.value("device_type").toString();
+                    QStringList str = dt.split("-");
+                    QString deviceType = str.at(0);
+
                     jsonStr.append(deviceType);
 
                     printf("mqttInfoList.length()=%d,table:%s\n",mqttDataList.length(),deviceType.toUtf8().data());