//
|
// Created by ps on 19-1-8.
|
//
|
|
#include <iostream>
|
#include <thread>
|
#include <Debug.h>
|
|
#include "GB28181Server.h"
|
#include "VideoCaptureElementWithRtp.h"
|
|
#include <opencv2/opencv.hpp>
|
#include <CvUtil.h>
|
|
using namespace std;
|
|
|
int main(int argc, char **argv) {
|
std::cout << "test " << std::endl;
|
|
bool running = true;
|
bool serinit = false;
|
|
MysqlDBServerCfg mysqlDBServerCfg;
|
mysqlDBServerCfg.Host = "192.168.1.148";
|
mysqlDBServerCfg.Port = 3306;
|
mysqlDBServerCfg.UserName = "root";
|
mysqlDBServerCfg.Passwd = "123456";
|
mysqlDBServerCfg.DBName = "EGEyesForVSS";
|
mysqlDBServerCfg.DBConnCount = 5;
|
|
GBServerCfg gbServerCfg;
|
gbServerCfg.SvrIp = "192.168.1.148"; // 国标服务的ip地址 (本机的ip地址)
|
gbServerCfg.SvrPort = 7060; // 国标服务监听的端口
|
gbServerCfg.SvrPubID = "44120000002000000001"; // 国标服务器的ID
|
gbServerCfg.bMD5Auth = false; // 是否需要MD5加密
|
gbServerCfg.UserName = "44120100002000000002"; // 国标服务的用户名 (下级设备注册的用户名)
|
gbServerCfg.Passwd = "123456"; // 国标服务的密码 (下级设备注册的密码)
|
gbServerCfg.SubScribeTime = 3600; // 订阅时间 如果为0 表示不订阅
|
|
SpinLock spinLock;
|
|
auto func = [&] {
|
spinLock.lock();
|
GB28181Server m_gbs;
|
m_gbs.setMysqlConnParam(mysqlDBServerCfg);
|
m_gbs.setGBServerParam(gbServerCfg);
|
DBG("initServer start before");
|
serinit = m_gbs.initServer();
|
DBG("initServer start after");
|
|
spinLock.unlock();
|
while (running) {
|
usleep(4000);
|
}
|
|
};
|
|
std::thread thd(func);
|
|
// ---------------------测试------------------------
|
spinLock.lock();
|
DBG("test start");
|
//#todo search from db
|
char ChanPubID2[] = "11010202081314000001";
|
std::string str_ChanPubID2(ChanPubID2);
|
BASICGB28181::VideoCaptureElementWithRtp videoCapture2(str_ChanPubID2, 25, 1, 0);
|
videoCapture2.registerConnector([&]() {
|
{
|
//testCode
|
cv::Mat t_image = videoCapture2.getImage();
|
if (t_image.empty()) {
|
ERR("t_image is empty");
|
return;
|
}
|
std::string strNewTime;
|
strNewTime = AppUtil::getTimeUSecString();
|
cv::putText(t_image, strNewTime, cv::Point(408, 540), cv::HersheyFonts::FONT_HERSHEY_PLAIN, 5,
|
cv::Scalar(255, 255, 0), 2);
|
DBG("imshow image" << str_ChanPubID2 << strNewTime);
|
// imshow("str_ChanPubID2", t_image);
|
// cv::waitKey(10);
|
|
|
|
#if 1
|
{
|
// TestCode
|
// ClockTimer cl("str_ChanPubID1");
|
std::string strNewTime2 = AppUtil::getTimeUSecString();
|
// cv::putText(t_image, strNewTime2, cv::Point(408, 540), cv::HersheyFonts::FONT_HERSHEY_PLAIN,
|
// 5, cv::Scalar(255, 255, 0), 2);
|
std::thread test([&](cv::Mat img, std::string strThing) {
|
try {
|
std::string strNewTime = "tmpDec/";
|
strNewTime.append(str_ChanPubID2 + "_").append(strThing).append(".jpg");
|
cv::imwrite(strNewTime, img);
|
} catch (std::exception ex) {
|
ERR(ex.what());
|
}
|
}, t_image, strNewTime2);
|
test.detach();
|
}
|
#endif
|
|
|
}
|
});
|
|
usleep(10);
|
videoCapture2.start();
|
sleep(60);
|
videoCapture2.stop();
|
DBG("test end");
|
|
getchar();
|
|
running = false;
|
|
getchar();
|
sleep(2);
|
return 0;
|
}
|