From 591aacee97f4a6486631c38a6b418e20b2c4109c Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期四, 10 九月 2020 14:56:47 +0800 Subject: [PATCH] update --- device/hcnetdisk.c | 57 +++++++++++++++++++++++++++++---------------------------- 1 files changed, 29 insertions(+), 28 deletions(-) diff --git a/device/hcnetdisk.c b/device/hcnetdisk.c index 7938a60..b6061a1 100644 --- a/device/hcnetdisk.c +++ b/device/hcnetdisk.c @@ -1,5 +1,4 @@ #include "netdisk.h" -#include "hcnetdisk.h" bool HCNetdisk::envInited = false; @@ -36,8 +35,8 @@ -HCNetdisk::HCNetdisk(const std::string &_devicename):Netdisk(_devicename){ - +HCNetdisk::HCNetdisk(): Netdisk(){ + deviceType="HC"; } int HCNetdisk::_login(Netdisk_LoginInfo &loginInfo) { @@ -55,6 +54,7 @@ NET_DVR_DEVICEINFO_V40 struDeviceInfo = {0}; //lUserID = 0; lUserID = NET_DVR_Login_V40(&struLoginInfo, &struDeviceInfo); + printf("lUserID = %d\n", lUserID); if (lUserID < 0) { printf("Login error, %d\n", NET_DVR_GetLastError()); @@ -62,7 +62,8 @@ return -1; } - printf("lUserID = %ld\n", lUserID); + + loginInfo.userid = std::to_string(lUserID); userid = lUserID; username = loginInfo.username; password = loginInfo.password; @@ -70,10 +71,8 @@ port = loginInfo.port; - startChannel = struDeviceInfo.struDeviceV30.byStartDChan; - maxChannels = struDeviceInfo.struDeviceV30.byIPChanNum + struDeviceInfo.struDeviceV30.byHighDChanNum * 256; - - + deviceInfo.startChannel = struDeviceInfo.struDeviceV30.byStartDChan; + deviceInfo.maxChannels = struDeviceInfo.struDeviceV30.byIPChanNum + struDeviceInfo.struDeviceV30.byHighDChanNum * 256; return 0; } @@ -81,16 +80,14 @@ int HCNetdisk::login(Netdisk_LoginInfo &loginInfo) { - //_login(loginInfo); - Netdisk::addLoginInfo(loginInfo); + return _login(loginInfo); + //Netdisk::addLoginInfo(loginInfo); - return 0; } int HCNetdisk::logout() { //娉ㄩ攢鐢ㄦ埛 NET_DVR_Logout(userid); - userid = -1; return 0; } @@ -99,8 +96,8 @@ char destfile[1024]; int i = 0; - Netdisk_LoginInfo loginInfo = Netdisk::getLoginInfo(request.loginUUID); - _login(loginInfo); + // Netdisk_LoginInfo loginInfo = Netdisk::getLoginInfo(request.loginUUID); + // _login(loginInfo); start = request.start; @@ -117,15 +114,20 @@ // printf("end = %s", asctime(&end)); sprintf(destfile, "%s/%s-%d-%ld-%d", request.destpath.c_str(), - devicename.c_str(), + deviceType.c_str(), request.channel, mktime(&start), i); - // printf("%s\n", destfile); - downloadByTime_wrapper(userid, request.channel, &start, &end, destfile); - if(files != NULL) { - files->push_back(destfile); - } + std::cout << "destfile:" << destfile << std::endl; + char *destfiledup = strdup(destfile); + if(downloadByTime_wrapper(userid, request.channel, &start, &end, destfiledup) != -1) { + if(files != NULL) { + // std::cout << "push destfile:" << destfile << std::endl; + files->push_back(destfile); + } + } + free(destfiledup); + start = end; i++; } @@ -138,7 +140,7 @@ /** * @return success: 0, failture : -1 */ -int HCNetdisk::downloadByTime_wrapper(long userid, int channel, struct tm *start, struct tm *end, char *destfile) { +int HCNetdisk::downloadByTime_wrapper(const long userid, const int channel, const struct tm *start, const struct tm *end, const char *destfile) { NET_DVR_FILECOND_V40 struFileCond = {0}; struFileCond.dwFileType = 0xFF; @@ -184,7 +186,8 @@ char strFileName[256] = {0}; if (destfile != NULL) { sprintf(strFileName, "%s", destfile); - char *dir = dirname(strdup(destfile)); + //char *dir = dirname(strdup(destfile)); + char *dir = dirname(const_cast<char *>(destfile)); printf("dir === %s\n", dir); if ((mkdir(dir, DIR_MODE) == -1) && (errno != EEXIST)) { err_msg(errno, "hc_downloadByTime mkdir error "); @@ -219,9 +222,8 @@ -int HCNetdisk::saveRecordFile(int userId, char * srcfile, char * destfile) +int HCNetdisk::saveRecordFile( int userId, char * srcfile, char * destfile) { - printf("destfile=%s\n", destfile); int bRes = 1; int hPlayback = 0; //鎸夋枃浠跺悕涓嬭浇褰曞儚 @@ -239,14 +241,13 @@ return bRes; } int nPos = 0; + //涓嬭浇杩涘害 for (nPos = 0; nPos < 100 && nPos >= 0; nPos = NET_DVR_GetDownloadPos(hPlayback)) { printf("Be downloading...%d %%\n", nPos); sleep(1); -//涓嬭浇杩涘害 -//millisecond } - printf("have got %d\n", nPos); + // printf("have got %d\n", nPos); //鍋滄涓嬭浇 if (!NET_DVR_StopGetFile(hPlayback)) { @@ -254,7 +255,7 @@ bRes = -1; return bRes; } - printf("%s\n", srcfile); + // printf("%s\n", srcfile); if (nPos < 0 || nPos > 100) { printf("download err [%d]\n", NET_DVR_GetLastError()); -- Gitblit v1.8.0