pansen
2019-04-02 c56015c5c73861b5f794cac48064d0394f8fd37d
QiaoJiaSystem/DataManagerServer/http_configserver.cpp
@@ -292,10 +292,10 @@
        elem["n_duration"] = iter->n_duration;
        elem["str_brand"] = iter->str_brand.toStdString();
        elem["str_reserved"] = iter->str_reserved.toStdString();
        cout << elem.toStyledString() << endl;
        DBG(elem.toStyledString());
        value.append(elem);
    }
    cout << value.toStyledString() << endl;
    DBG(value.toStyledString());
//    std::string out = value.toStyledString();
    std::string out = value.size() > 0 ? value.toStyledString() : "[]";
@@ -696,7 +696,7 @@
        }
        dev_rec.str_storage_dev_id = QString::fromLatin1((const char *) serialnumber);//获取磁盘阵列的设备id
        std::cout << dev_rec.str_storage_dev_id.toStdString() << std::endl;
        DBG(dev_rec.str_storage_dev_id.toStdString());
        ret = db_c.updateDeviceTable(dev_rec);
    } else {
        return "{\"ret_status\": \"传输错误,请检查!\"}";
@@ -743,7 +743,7 @@
    std::string str_result;
    std::string str_tmp;
    for (int i = 0; i < lvecUsefulChans.size(); i++) {
        std::cout << lvecUsefulChans.at(i) << std::endl;
        DBG(lvecUsefulChans.at(i));
        str_tmp = std::to_string(lvecUsefulChans.at(i));
        str_result += str_tmp;
        str_result += ",";
@@ -888,17 +888,17 @@
                }
            }
            cout << elem.toStyledString() << endl;
            DBG(elem.toStyledString());
            value.append(elem);
        }
        for (std::vector<int>::iterator it1 = chns.begin(); it1 != chns.end(); it1++) {
            chn_unused["n_chn"] = *it1;
            cout << "*it1" << *it1 << endl;
            DBG("*it1" << *it1);
            value.append(chn_unused);
        }
        cout << value.toStyledString() << endl;
        DBG(value.toStyledString());
//        std::string out = value.toStyledString();
        std::string out = value.size() > 0 ? value.toStyledString() : "[]";
        return out;
@@ -1003,6 +1003,7 @@
        elem["str_latitude"] = iter->str_latitude.toStdString();
        elem["str_ip"] = iter->str_ip.toStdString();
        elem["n_port"] = iter->n_port;
        elem["type"] = iter->type;
        elem["str_username"] = iter->str_username.toStdString();
        elem["str_password"] = iter->str_password.toStdString();
        elem["str_brand"] = iter->str_brand.toStdString();
@@ -1025,12 +1026,12 @@
//        elem["str_det_thr"] = rec_sdk.str_det_thr.toStdString();
//        elem["str_cmp_thr"] = rec_sdk.str_cmp_thr.toStdString();
        cout << elem.toStyledString() << endl;
        DBG(elem.toStyledString());
        value.append(elem);
    }
    cout << value.toStyledString() << endl;
    DBG(value.toStyledString());
    std::string out = value.size() > 0 ? value.toStyledString() : "[]";
    return out;
}
@@ -1446,7 +1447,7 @@
                "sed -i '/tracker_server=/d' ./WebFDSClient.conf  && sed -i  '/\\\"host:port\\\"/atracker_server=" + \
                              value["web_pic_ip"].asString() + ":" + std::to_string(value["web_pic_port"].asInt()) + \
                              "' ./WebFDSClient.conf";//
            std::cout << "cmd_web:" << cmd_web << std::endl;
            DBG("cmd_web:" << cmd_web);
            system(cmd_web.c_str());
            //#todo fastDfsClient
@@ -1455,7 +1456,7 @@
                "sed -i '/tracker_server=/d' ./fastDfsClient.conf  && sed -i  '/\\\"host:port\\\"/atracker_server=" + \
                              value["es_pic_ip"].asString() + ":" + std::to_string(value["es_pic_port"].asInt()) + \
                              "' ./fastDfsClient.conf";
            std::cout << "cmd_es:" << cmd_es << std::endl;
            DBG("cmd_es:" << cmd_es);
            system(cmd_es.c_str());
            //#todo config
@@ -1610,7 +1611,7 @@
//            system("sed -i 's/address .*$/address 192.168.1.111/g' test");
            std::string cmd_ip =
                "sed -i 's/address .*$/address " + ip_addr + "/g' /etc/network/interfaces";
            std::cout << "cmd_ip:" << cmd_ip << std::endl;
            DBG("cmd_ip:" << cmd_ip);
            system(cmd_ip.c_str());
            //修改config.json
@@ -1955,7 +1956,7 @@
                ret = erlangDbTool->createDatabase(Uuid, fieldValues);
            } else if (SyncType == 0) {
                TableName.insert(0, "lt_");
                fieldValues.insert(std::make_pair("tableName", TableName));
                fieldValues["tableName"] = TableName;
                //本地库
                ret = m_SqliteFaceEncap.createTable(TableName, fieldValues);
            }
@@ -2272,7 +2273,7 @@
                fieldValues.insert(std::make_pair("uuid", strUUID));
                fieldValues.insert(std::make_pair("idCard", idcard));
                m_SqliteFaceEncap.updateFace(TableName, addFaceData, fieldValues);
                ret_addPerson = m_SqliteFaceEncap.updateFace(TableName, addFaceData, fieldValues);
            }
        } else {
@@ -2449,7 +2450,7 @@
            if (TableName.find("lt_") != 0) {
                TableName.insert(0, "lt_");
            }
            fieldValues.insert(std::make_pair("tableName", TableName));
            fieldValues["tableName"] = TableName;
            ret = m_SqliteFaceEncap.updateTable("sys_o_tables", fieldValues);
        }
@@ -2833,7 +2834,7 @@
    appConfig.setStringProperty("DEV_ID", dev_id);
    appConfig.save();
    //std::cout<<dev_id<<std::endl;
    return true;
}
@@ -3337,21 +3338,28 @@
}
std::string devHttpServer_c::getSnapshot(std::string ip, unsigned int port, std::string content, PResponse &response) {
    DBG("ip:" << ip << "; port:" << port);
    DBG("content: " << content);
    Json::Reader reader;
    Json::Value value;
    if (reader.parse(content, value)) {
        std::string ip = value["str_ip"].asString();
        std::string str_imgName = "";
        std::string rtsp_ip = value["str_ip"].asString();
//        int port= value["n_port"].asInt();
        int port = 554;
        std::string username = value["str_username"].asString();
        std::string pass = value["str_password"].asString();
        std::string brand = value["str_brand"].asString();
        std::string rtsp_url = rtspAddrBuild(ip, port, username, pass, brand);
        if (rtsp_url.empty()) {
            return "{\"ret_status\":\"内容有误,请检查!\"}";
        }
        std::string rtsp_url = rtspAddrBuild(rtsp_ip, port, username, pass, brand);
        if (value.isMember("id")) {
            if (value["id"].isNull()) return "{\"ret_status\": \"id内容有误,请检查!\"}";
            str_imgName.append("./").append(value["id"].asString()).append(".jpg");
        } else {
            if (rtsp_url.empty()) {
                return "{\"ret_status\":\"内容有误,请检查!\"}";
            }
//        unsigned char serialnumber[SERIALNO_LEN] = {0};
//        int ret = getDevSerialNumber(ip.c_str(), port,username.c_str(),pass.c_str(),brand.c_str(),serialnumber);
@@ -3363,20 +3371,22 @@
//        std::string str_cam_dev_id = std::string((char *) serialnumber);//摄像机id cam_mac
        std::string str_imgName = appConfig.getStringProperty("cutPath");
        if (str_imgName.back() != '/') {
            str_imgName.push_back('/');
        }
        str_imgName += ip;
        str_imgName += "-";
        str_imgName += "snapshot.jpg";
        //admin:a1234567@192.168.1.201:554/h264/ch1/main/av_stream -r 1/25 -f image2 -s 1920*1080 /home/basic/work_src/a.jpg
        std::string cmd(
            "ffmpeg -i " + rtsp_url + " -vf select='eq(pict_type\\,I)',setpts='N/(25*TB)' -f image2 -s 1920*1080 -y " +
            str_imgName);
            str_imgName = appConfig.getStringProperty("cutPath");
            if (str_imgName.back() != '/') {
                str_imgName.push_back('/');
            }
            str_imgName += rtsp_ip;
            str_imgName += "-";
            str_imgName += "snapshot.jpg";
            //admin:a1234567@192.168.1.201:554/h264/ch1/main/av_stream -r 1/25 -f image2 -s 1920*1080 /home/basic/work_src/a.jpg
            std::string cmd(
                "ffmpeg -i " + rtsp_url +
                " -vf select='eq(pict_type\\,I)',setpts='N/(25*TB)' -f image2 -s 1920*1080 -y " +
                str_imgName);
//        std::string cmd("ffmpeg -i " + rtsp_url + " -r 1/25  -f image2 -s 1920*1080 -y " + str_imgName);
        DBG(cmd);
        system(cmd.c_str());
            DBG(cmd);
            system(cmd.c_str());
        }
        cv::Mat img = cv::imread(str_imgName);
@@ -3398,7 +3408,11 @@
        fdfsClient.rwLock.unlock();
        Json::Value result;
        result["imgUrl"] = strImgUrl;
        db_c.updateCamDevSnapshot(QString::fromStdString(ip), QString::fromStdString(strImgUrl));
        if (value.isMember("id")) {
            db_c.updateCamDevSnapshotbyID(value["id"].asString().c_str(), QString::fromStdString(strImgUrl));
        } else {
            db_c.updateCamDevSnapshot(QString::fromStdString(rtsp_ip), QString::fromStdString(strImgUrl));
        }
        return result.toStyledString();