From 9180f067df9799bf064cb7b3c182d4d9b21e4b18 Mon Sep 17 00:00:00 2001
From: chenshijun <chenshijun@aiotlink.com>
Date: 星期一, 25 三月 2019 13:40:41 +0800
Subject: [PATCH] 解码指定gpu
---
QiaoJiaSystem/DataManagerServer/http_configserver.cpp | 131 +++++++++++++++++++++++++++----------------
1 files changed, 83 insertions(+), 48 deletions(-)
diff --git a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
index 1170960..3e580ce 100644
--- a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
+++ b/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);//鑾峰彇纾佺洏闃靛垪鐨勮澶噄d
- 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,22 +1003,35 @@
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();
elem["str_reserved"] = iter->str_reserved.toStdString();
+ SdkRuleMap ruleMap = db_c.searchSdkRuleByCamId(iter->str_cam_dev_id);
+
+ int count = ruleMap.size();
+ elem["nSdkTypes"] = Json::arrayValue;
+
+ if (count > 0) {
+ for (auto rule:ruleMap) {
+ if (rule.second.nIsRun == 1) {
+ elem["nSdkTypes"].append(rule.second.nSdkType);
+ }
+ }
+ }
// Record_Cam_Sdk rec_sdk = db_c.searchCamSdkTableByCamId(iter->str_cam_dev_id);
// elem["str_sdks"] = rec_sdk.str_sdks.toStdString();
// 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;
}
@@ -1272,26 +1285,35 @@
Json::Reader reader;
Json::Value value_reader;
-
+ std::string out;
if (!reader.parse(content, value_reader)) {
return "{\"ret_status\": \"浼犺緭閿欒锛岃妫�鏌ワ紒\"}";
}
+ 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();
- //TODO
- //璋冪敤rtsp娴乺tsp://admin:a1234567@192.168.1.215:554/h264/ch1/main/av_stream
+ } else {
+ //TODO
+ //璋冪敤rtsp娴乺tsp://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) {
- return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
- }
+ if (!ret) {
+ return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
+ }
- std::string rtmp_url = m_rtmp[value_reader["str_ip"].asCString()].appPC->getRtmp();
- Json::Value value;
- value["connect_status"] = "True";
- value["video_url"] = rtmp_url;
- std::string out = value.toStyledString();
+ 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();
+ }
return out;
}
@@ -1425,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
@@ -1434,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
@@ -1589,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
@@ -1934,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);
}
@@ -2251,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 {
@@ -2428,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);
}
@@ -2812,7 +2834,7 @@
appConfig.setStringProperty("DEV_ID", dev_id);
appConfig.save();
- //std::cout<<dev_id<<std::endl;
+
return true;
}
@@ -3316,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);
@@ -3342,20 +3371,22 @@
// std::string str_cam_dev_id = std::string((char *) serialnumber);//鎽勫儚鏈篿d 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);
@@ -3377,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();
--
Gitblit v1.8.0