From f1360ea0672147638e052b3ea1458b393c92422e Mon Sep 17 00:00:00 2001
From: chenshijun <chenshijun@aiotlink.com>
Date: 星期五, 15 三月 2019 15:14:35 +0800
Subject: [PATCH] Merge branch 'yw.1.2.fixbug' of ssh://192.168.1.226:29418/development/c++ into yw.1.2.fixbug
---
QiaoJiaSystem/DataManagerServer/http_configserver.cpp | 239 +++++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 172 insertions(+), 67 deletions(-)
diff --git a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
index bc9b6f0..64595d9 100644
--- a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
+++ b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
@@ -23,6 +23,13 @@
#include <dirent.h>
#include "basic/pipe_element/ffmpeg/basic_struct_for_video_image.h"
+#include "vss/controller/VssDevTblController.h"
+#include "vss/controller/VssChannelTblController.h"
+#include "vss/controller/VssDomainUnitTblController.h"
+#include "vss/controller/VssLocalSettingTblController.h"
+#include "vss/controller/VssUpperSvrTblController.h"
+#include "vss/controller/CamDevController.h"
+
using namespace std;
devHttpServer_c::devHttpServer_c()
@@ -241,6 +248,16 @@
std::bind(&devHttpServer_c::getSnapshot, this,
std::placeholders::_1, std::placeholders::_2,
std::placeholders::_3, std::placeholders::_4));
+
+
+ BaseDao::initConnection();
+ BaseSqliteDao::setLDBTool(&db_c);
+ VssDevTblController::instance()->registerHttpServices(_HttpSrvRetRecieve);
+ VssChannelTblController::instance()->registerHttpServices(_HttpSrvRetRecieve);
+ VssDomainUnitTblController::instance()->registerHttpServices(_HttpSrvRetRecieve);
+ VssLocalSettingTblController::instance()->registerHttpServices(_HttpSrvRetRecieve);
+ CamDevController::instance()->registerHttpServices(_HttpSrvRetRecieve);
+ VssUpperSvrTblController::instance()->registerHttpServices(_HttpSrvRetRecieve);
_HttpSrvRetRecieve.start();
@@ -986,11 +1003,24 @@
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();
@@ -1035,7 +1065,7 @@
if ((!ret) || (serialnumber[0] == 0)) {
return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
}
-
+ rec.type = 0;
rec.str_cam_dev_id = QString::fromLatin1((const char *) serialnumber);//鎽勫儚鏈篿d cam_mac
rec.str_name = QString::fromStdString(value["str_name"].asString());
rec.str_addr = QString::fromStdString(value["str_addr"].asString());
@@ -1046,6 +1076,7 @@
rec.str_username = QString::fromStdString(value["str_username"].asString());
rec.str_password = QString::fromStdString(value["str_password"].asString());
rec.str_brand = QString::fromStdString(value["str_brand"].asString());
+ rec.str_reserved = QString::fromStdString(value["str_reserved"].asString());
type = value["n_type"].asInt();
// rec_sdk_old = db_c.searchCamSdkTableByCamId(rec.str_cam_dev_id);
@@ -1254,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;
}
@@ -1429,12 +1469,12 @@
fdfsClient.rwLock.unlock();
}
- //# http client 127.0.0.1:9999/resetFdfs
- std::string http_cmd = "http://127.0.0.1:9999/resetFdfs";
- HttpRequestWithCrul httpRequestWithCrul;
- std::string response_bak = "";
- std::string postParams_bak = "";
- httpRequestWithCrul.curl_post_req("http://127.0.0.1:9999/resetFdfs", postParams_bak, response_bak);
+// //# http client 127.0.0.1:9999/resetFdfs
+// std::string http_cmd = "http://127.0.0.1:9999/resetFdfs";
+// HttpRequestWithCrul httpRequestWithCrul;
+// std::string response_bak = "";
+// std::string postParams_bak = "";
+// httpRequestWithCrul.curl_post_req("http://127.0.0.1:9999/resetFdfs", postParams_bak, response_bak);
}
} else {
return "{\"ret_status\": \"浼犺緭閿欒锛岃妫�鏌ワ紒\"}";
@@ -1859,30 +1899,87 @@
// bool ret = false;
if (reader.parse(content, value)) {
+ std::string Uuid = value["uuid"].asString();
std::string TableType = value["TableType"].asString();
std::string TableName = value["TableName"].asString();
int SyncType = atoi(value["SyncType"].asCString());
std::string BwType = value["BwType"].asString();
std::string StartTime = value["StartTime"].asString();
std::string EndTime = value["EndTime"].asString();
+
+ std::string UploadFlag = value["IsSync"].asString();
+ UploadFlag = UploadFlag.empty() ? "0" : UploadFlag;
+ std::string CmpThreshold = value["threshold"].asString();
+ CmpThreshold = CmpThreshold.empty() ? "60" : CmpThreshold;
+ std::string Enabled = value["enabled"].asString();
+ Enabled = Enabled.empty() ? "1" : Enabled;
+
+ std::string createBy = value["createBy"].asString();
+
+ string str_uuid;
+ uuid_t t_uuid;
+ char str[36];
+ uuid_generate(t_uuid);
+ uuid_unparse(t_uuid, str);
+ str_uuid = str;
+ Uuid = Uuid.empty() ? str_uuid : Uuid;
+// if (createBy == "analyDev") {
+// Uuid = Uuid.empty() ? str_uuid : Uuid;
+// } else if (createBy == "conCemter") {
+// if (Uuid.empty()) {
+// response->write(SimpleWeb::StatusCode::client_error_bad_request, "{\"error\":\"鍙傛暟閿欒锛� \"}");
+// return "";
+// }
+// }
+
+
bool ret = false;
- if (SyncType == 1) {
- //鍚屾搴�
- ret = erlangDbTool->createDatabase(TableType, TableName, SyncType, BwType, StartTime, EndTime);
- } else if (SyncType == 0) {
- TableName.insert(0, "lt_");
- //鏈湴搴�
- FieldValues fieldValues;
- fieldValues.insert(std::make_pair("uuid", GetUUId::getUUID()));
- fieldValues.insert(std::make_pair("tableName", TableName));
- fieldValues.insert(std::make_pair("tableDesc", "ceshi"));
- fieldValues.insert(std::make_pair("tableType", TableType));
- fieldValues.insert(std::make_pair("bwType", BwType));
- fieldValues.insert(std::make_pair("startTime", StartTime));
- fieldValues.insert(std::make_pair("endTime", EndTime));
- fieldValues.insert(std::make_pair("create_by", "who"));
- ret = m_SqliteFaceEncap.createTable(TableName, fieldValues);
+ FieldValues fieldValues;
+ fieldValues.insert(std::make_pair("uuid", Uuid));
+ fieldValues.insert(std::make_pair("tableName", TableName));
+ fieldValues.insert(std::make_pair("tableDesc", "ceshi"));
+ fieldValues.insert(std::make_pair("tableType", TableType));
+ fieldValues.insert(std::make_pair("bwType", BwType));
+ fieldValues.insert(std::make_pair("startTime", StartTime));
+ fieldValues.insert(std::make_pair("endTime", EndTime));
+// #todo
+ fieldValues.insert(std::make_pair("create_by", createBy));
+
+ fieldValues.insert(std::make_pair("uploadFlag", UploadFlag));
+ fieldValues.insert(std::make_pair("cmpThreshold", CmpThreshold));
+ fieldValues.insert(std::make_pair("enabled", Enabled));
+
+
+ if (TableType == "person") {
+ if (SyncType == 1) {
+ //鍚屾搴�
+ ret = erlangDbTool->createDatabase(Uuid, fieldValues);
+ } else if (SyncType == 0) {
+ TableName.insert(0, "lt_");
+ fieldValues["tableName"] = TableName;
+ //鏈湴搴�
+ ret = m_SqliteFaceEncap.createTable(TableName, fieldValues);
+ }
+ } else if (TableType == "car") {
+ ERR(" not not_implemented");
+ response->write(SimpleWeb::StatusCode::server_error_not_implemented, "{\"error\":\"绫诲瀷閿欒锛屾湭瀹炵幇锛� \"}");
+ return "";
+ } else {
+ response->write(SimpleWeb::StatusCode::server_error_not_implemented, "{\"error\":\"绫诲瀷閿欒锛屾湭璇嗗埆锛� \"}");
+ return "";
}
+
+
+//// #todo 涓婁紶銆備粎榛戝悕鍗曘��
+//// #TODO 鏍规嵁createBy鍒ゆ柇鏄惁闇�瑕佷笂浼�
+// if (createBy == "analyDev" && BwType == "1") {
+//// string &Uuid, string &TableName, string &SyncType, string &StartTime,string &EndTime,
+//// string &UploadFlag, string &CmpThreshold, string &Enabled
+// string str_SyncType(to_string(SyncType));
+// UploadTaskToMonitorCenter(Uuid, TableName, str_SyncType, StartTime, EndTime, UploadFlag, CmpThreshold,
+// Enabled);
+// }
+
erlangDbTool->sendMessage();
std::string str_result = std::string("{\"result\":").append("\"" + std::to_string(ret) + "\"}");
@@ -2334,26 +2431,27 @@
std::string BwType = value["BwType"].asString();
std::string StartTime = value["StartTime"].asString();
std::string EndTime = value["EndTime"].asString();
-
+ //#鏇存柊搴曞簱绠$悊琛�
+ FieldValues fieldValues;
+ fieldValues.insert(std::make_pair("uuid", Uuid));
+ fieldValues.insert(std::make_pair("tableName", TableName));
+// fieldValues.insert(std::make_pair("tableDesc", "ceshi2"));
+ fieldValues.insert(std::make_pair("tableType", TableType));
+ fieldValues.insert(std::make_pair("bwType", BwType));
+ fieldValues.insert(std::make_pair("startTime", StartTime));
+ fieldValues.insert(std::make_pair("endTime", EndTime));
+// fieldValues.insert(std::make_pair("create_by", "who"));
bool ret = false;
if (SyncType == 1) {
//鍚屾搴�
- ret = erlangDbTool->updateDatabase(Uuid, TableType, TableName, SyncType, BwType, StartTime, EndTime);
+ ret = erlangDbTool->updateDatabase("sys_o_tables", fieldValues);
} else if (SyncType == 0) {
//鏈湴搴�
- //#鏇存柊搴曞簱绠$悊琛�
- FieldValues fieldValues;
- fieldValues.insert(std::make_pair("uuid", Uuid));
if (TableName.find("lt_") != 0) {
TableName.insert(0, "lt_");
}
- fieldValues.insert(std::make_pair("tableName", TableName));
-// fieldValues.insert(std::make_pair("tableDesc", "ceshi2"));
- fieldValues.insert(std::make_pair("tableType", TableType));
- fieldValues.insert(std::make_pair("bwType", BwType));
- fieldValues.insert(std::make_pair("startTime", StartTime));
- fieldValues.insert(std::make_pair("endTime", EndTime));
-// fieldValues.insert(std::make_pair("create_by", "who"));
+ fieldValues["tableName"] = TableName;
+
ret = m_SqliteFaceEncap.updateTable("sys_o_tables", fieldValues);
}
@@ -3244,17 +3342,22 @@
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);
@@ -3266,20 +3369,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);
@@ -3301,7 +3406,7 @@
fdfsClient.rwLock.unlock();
Json::Value result;
result["imgUrl"] = strImgUrl;
- db_c.updateCamDevSnapshot(QString::fromStdString(ip), QString::fromStdString(strImgUrl));
+ db_c.updateCamDevSnapshot(QString::fromStdString(rtsp_ip), QString::fromStdString(strImgUrl));
return result.toStyledString();
--
Gitblit v1.8.0