chenshijun
2019-04-15 a2ea58c567a078bb97a9e45a56fe50df41438d22
QiaoJiaSystem/DataManagerServer/http_configserver.cpp
@@ -1164,11 +1164,11 @@
                                        std::string brand) const {
    if (brand == "haikang") {
        bool ret = getHKDevSerialNumber(ip.c_str(), port, username.c_str(), passwd.c_str());
        if (!ret) {
            ERR("getHKDevSerialNumber ERR");
            return false;
        }
//        bool ret = getHKDevSerialNumber(ip.c_str(), port, username.c_str(), passwd.c_str());
//        if (!ret) {
//            ERR("getHKDevSerialNumber ERR");
//            return false;
//        }
        //调用rtsp流rtsp://admin:a1234567@192.168.1.215:554/h264/ch1/main/av_stream
        port = 554;//TODO
//        std::string rtsp_url = "rtsp://" + username + ":" + passwd + "@" + ip + ":" + std::to_string(port) +
@@ -1218,11 +1218,11 @@
        return false;//TODO
    } else if (brand == "yushi") {
//        rtsp://admin:admin@192.168.8.8:554/video1
        bool ret = getUVDevSerialNumber(ip.c_str(), username.c_str(), passwd.c_str());
        if (!ret) {
            ERR("getUVDevSerialNumber ERR");
            return false;
        }
//        bool ret = getUVDevSerialNumber(ip.c_str(), username.c_str(), passwd.c_str());
//        if (!ret) {
//            ERR("getUVDevSerialNumber ERR");
//            return false;
//        }
        port = 554;
//        std::string rtsp_url = "rtsp://" + username + ":" + passwd + "@" + ip + ":" + std::to_string(port) +
@@ -1294,6 +1294,7 @@
            if (m_rtmp[ip].userCounter == 0) {
                m_rtmp[ip].appPC->stop();
                m_rtmp[ip].appPC->wait();
                delete m_rtmp[ip].appPC;
                m_rtmp.erase(ip);
            }
        }
@@ -1318,28 +1319,41 @@
    }
    Json::Value value;
    if (value_reader.isMember("id")) {
        if (value_reader["id"].isNull()) return "{\"ret_status\": \"id内容有误,请检查!\"}";
        value["connect_status"] = "True";
        std::string rtmp_url = appConfig.getStringProperty("srsAddr");
        rtmp_url.append("cam").append(value_reader["id"].asCString());
        value["video_url"] = rtmp_url;
        out = value.toStyledString();
    } else {
        //TODO
        //调用rtsp流rtsp://admin:a1234567@192.168.1.215:554/h264/ch1/main/av_stream
        if (value_reader["id"].isNull()) {
            //本地视频源 第一次测试连接
            //TODO
            //调用rtsp流rtsp://admin:a1234567@192.168.1.215:554/h264/ch1/main/av_stream
//    std::string rtsp_url = "rtsp://" + username + ":" + passwd + "@" + ip + ":"  + std::to_string(port) + "/h264/ch1/main/av_stream";
        bool ret = cam_connect_video_start(value_reader["str_ip"].asString(), value_reader["n_port"].asInt(), \
            bool ret = cam_connect_video_start(value_reader["str_ip"].asString(), value_reader["n_port"].asInt(), \
                            value_reader["str_username"].asString(), value_reader["str_password"].asString(), \
                            value_reader["str_brand"].asString());
        if (!ret) {
            if (!ret) {
                return "{\"ret_status\": \"内容有误,请检查!\"}";
            }
            std::string rtmp_url = m_rtmp[value_reader["str_ip"].asCString()].appPC->getRtmp();
            value["connect_status"] = "True";
            value["video_url"] = rtmp_url;
            out = value.toStyledString();
        } else if (!value_reader["type"].isNull()) {
            value["connect_status"] = "True";
            std::string rtmp_url = appConfig.getStringProperty("srsAddr");
            rtmp_url.append("cam").append(value_reader["id"].asCString());
            value["video_url"] = rtmp_url;
            out = value.toStyledString();
            {
                std::string topic = "VideoToImageMulth";
                Json::Value json_cfg;
                json_cfg["cam_startPublish"] = content;
                std::string msg = json_cfg.toStyledString();
                DBG("msg:" << msg);
                nsqMsgProducer->Publish(topic, (void *) (&msg));
            }
        } else {
            return "{\"ret_status\": \"内容有误,请检查!\"}";
        }
        std::string rtmp_url = m_rtmp[value_reader["str_ip"].asCString()].appPC->getRtmp();
        value["connect_status"] = "True";
        value["video_url"] = rtmp_url;
        out = value.toStyledString();
    } else {
        return "{\"ret_status\": \"内容有误,请检查!\"}";
    }
    return out;
@@ -1357,19 +1371,32 @@
    if (!reader.parse(content, value_reader)) {
        return "{\"ret_status\": \"传输错误,请检查!\"}";
    }
    //TODO
    //调用rtsp流rtsp://admin:a1234567@192.168.1.215:554/h264/ch1/main/av_stream
//    std::string rtsp_url = "rtsp://" + username + ":" + passwd + "@" + ip + ":"  + std::to_string(port) + "/h264/ch1/main/av_stream";
    DBG("cam_connect_video_stop begin");
    bool ret = cam_connect_video_stop(value_reader["str_ip"].asString());
    if (!ret) {
        return "{\"ret_status\": \"传输错误,请检查!\"}";
    }
    DBG("cam_connect_video_stop end");
    Json::Value value;
    value["ret_status"] = "ok_ack";
    if (value_reader.isMember("id")) {
        value["ret_status"] = "ok_ack";
        cam_connect_video_stop(value_reader["str_ip"].asString());
        {
            std::string topic = "VideoToImageMulth";
            Json::Value json_cfg;
            json_cfg["cam_stopPublish"] = content;
            std::string msg = json_cfg.toStyledString();
            DBG("msg:" << msg);
            nsqMsgProducer->Publish(topic, (void *) (&msg));
        }
    } else {
        //TODO
        //调用rtsp流rtsp://admin:a1234567@192.168.1.215:554/h264/ch1/main/av_stream
//    std::string rtsp_url = "rtsp://" + username + ":" + passwd + "@" + ip + ":"  + std::to_string(port) + "/h264/ch1/main/av_stream";
        DBG("cam_connect_video_stop begin");
        bool ret = cam_connect_video_stop(value_reader["str_ip"].asString());
        if (!ret) {
            return "{\"ret_status\": \"传输错误,请检查!\"}";
        }
        DBG("cam_connect_video_stop end");
        value["ret_status"] = "ok_ack";
    }
    std::string out = value.toStyledString();