| | |
| | | #include <basic/util/file/FileUtil.h> |
| | | #include <basic/util/app/AppPreference.hpp> |
| | | #include <basic/util/app/AppConfig.h> |
| | | #include <basic/util/app/AppConfig.h> |
| | | |
| | | #include <GB28181Server.h> |
| | | #include <basic/util/net_config/net_config.h> |
| | | |
| | | static void startManager(LDBTool *_dbTool) { |
| | | RtspAnalysManager rtspAnalysManager(_dbTool); |
| | |
| | | } |
| | | } |
| | | |
| | | std::string getLocalIp() { |
| | | unsigned char netmask_old[15] = {0}; |
| | | unsigned char gateway_old[15] = {0}; |
| | | unsigned char ip_old[15] = {0}; |
| | | |
| | | std::string net_ifname = appConfig.getStringProperty("netIfName"); |
| | | std::string str_ip; |
| | | |
| | | if (GetIpAddress(net_ifname.c_str(), ip_old)) { |
| | | std::string ip_old_temp((char *) ip_old); |
| | | str_ip = ip_old_temp; |
| | | } else { |
| | | // value["ipaddr"] = ""; |
| | | ERR("not get ip addr"); |
| | | } |
| | | assert(!str_ip.empty()); |
| | | return std::move(str_ip); |
| | | } |
| | | |
| | | int main(int argc, char **argv) { |
| | | std::cout << __DATE__ << " " << __TIME__ << std::endl; |
| | |
| | | appPref.setIntData("CamStep", atoi(argv[2])); |
| | | appPref.setIntData("RpcServerPort", atoi(argv[3])); |
| | | |
| | | //#todo search from db |
| | | MysqlDBServerCfg mysqlDBServerCfg; |
| | | mysqlDBServerCfg.Host = getLocalIp(); |
| | | mysqlDBServerCfg.Port = 3306; |
| | | mysqlDBServerCfg.UserName = "root"; |
| | | mysqlDBServerCfg.Passwd = "123456"; |
| | | mysqlDBServerCfg.DBName = "EGEyesForVSS"; |
| | | mysqlDBServerCfg.DBConnCount = 5; |
| | | |
| | | |
| | | //#todo search from db |
| | | GBServerCfg gbServerCfg; |
| | | gbServerCfg.SvrIp = getLocalIp(); // 国标服务的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; |
| | | |
| | | bool running = false; |
| | | bool serinit = false; |
| | | auto func = [&] { |
| | | spinLock.lock(); |
| | | GB28181Server m_gbs; |
| | | m_gbs.setMysqlConnParam(mysqlDBServerCfg); |
| | | m_gbs.setGBServerParam(gbServerCfg); |
| | | DBG("initServer start before"); |
| | | running = m_gbs.initServer(); |
| | | DBG("initServer start after"); |
| | | |
| | | spinLock.unlock(); |
| | | while (running) { |
| | | usleep(4000); |
| | | } |
| | | |
| | | }; |
| | | |
| | | std::thread thd(func); |
| | | |
| | | usleep(400); |
| | | // ---------------------测试------------------------ |
| | | spinLock.lock(); |
| | | if (!running) { |
| | | ERR("running is false << DB init error"); |
| | | exit(0); |
| | | } |
| | | DBG("test start"); |
| | | |
| | | appPref.setStringData("user.loop.absolute.path", appConfig.getStringProperty("cutPath")); |
| | | IceRpcServer<RtspAnalysManager> server("RtspAnalysServer", appPref.getIntData("RpcServerPort"), "tcp"); |
| | | server.setMessageSizeMax(1024 * 1024 * 50); |