Commit 2114aaf1 by “liusq”

完善NVR处理

parent ca235b6a
...@@ -486,6 +486,7 @@ void CameraHandle::sdkDevSnapSyn(XSDK_HANDLE hDevice, int nChannel){ ...@@ -486,6 +486,7 @@ void CameraHandle::sdkDevSnapSyn(XSDK_HANDLE hDevice, int nChannel){
if(!hk_status){ if(!hk_status){
if(threeConsecutiveImage())return; if(threeConsecutiveImage())return;
}else { }else {
qInfo() <<QString("SN(%1): NVR=>hk_Device getIPChannelInfo:%2").arg(sSn).arg(hk_Device);
int hk_channel= mediaFaceImage->getIPChannelInfo(hk_Device,QString(loginParam->sDevId)); int hk_channel= mediaFaceImage->getIPChannelInfo(hk_Device,QString(loginParam->sDevId));
qInfo() <<QString("SN(%1): NVR=>hk_channel getIPChannelInfo:%2").arg(sSn).arg(hk_channel); qInfo() <<QString("SN(%1): NVR=>hk_channel getIPChannelInfo:%2").arg(sSn).arg(hk_channel);
if(hk_channel<0){ if(hk_channel<0){
......
...@@ -281,8 +281,8 @@ int MediaFaceImage::getIPChannelInfo(int hk_Device,const QString& ip){ ...@@ -281,8 +281,8 @@ int MediaFaceImage::getIPChannelInfo(int hk_Device,const QString& ip){
NET_DVR_IPPARACFG_V40 m_strIpparaCfg = {0}; NET_DVR_IPPARACFG_V40 m_strIpparaCfg = {0};
m_strIpparaCfg.dwSize = sizeof(m_strIpparaCfg); m_strIpparaCfg.dwSize = sizeof(m_strIpparaCfg);
bool bRet =SdkIpcSearchDevicesSyn(hk_Device, &m_strIpparaCfg); int bRet =SdkIpcSearchDevicesSyn(hk_Device, &m_strIpparaCfg);
if (!bRet) { if (bRet<0) {
qInfo() << "获取IP接入配置参数失败,错误码:" << NET_DVR_GetLastError(); qInfo() << "获取IP接入配置参数失败,错误码:" << NET_DVR_GetLastError();
return -1; return -1;
} }
...@@ -295,7 +295,7 @@ int MediaFaceImage::getIPChannelInfo(int hk_Device,const QString& ip){ ...@@ -295,7 +295,7 @@ int MediaFaceImage::getIPChannelInfo(int hk_Device,const QString& ip){
char ip_addr[16] = {0}; char ip_addr[16] = {0};
strncpy(ip_addr, m_strIpparaCfg.struIPDevInfo[channel - 1].struIP.sIpV4, sizeof(ip_addr) - 1); strncpy(ip_addr, m_strIpparaCfg.struIPDevInfo[channel - 1].struIP.sIpV4, sizeof(ip_addr) - 1);
QString key = QString::fromUtf8(ip_addr).trimmed(); QString key = QString::fromUtf8(ip_addr).trimmed();
qInfo() << "匹配的IP:" << key << ",通道号:" << channel;
if (key == ip) { if (key == ip) {
qInfo() << "找到匹配的IP:" << key << ",通道号:" << channel; qInfo() << "找到匹配的IP:" << key << ",通道号:" << channel;
return channel; // 返回找到的第一个匹配的通道号 return channel; // 返回找到的第一个匹配的通道号
......
...@@ -93,9 +93,13 @@ MainWindow::MainWindow():isResetting(false) ...@@ -93,9 +93,13 @@ MainWindow::MainWindow():isResetting(false)
return; return;
} }
//QString ip,QString userName,QString passWord,uint16_t port //QString ip,QString userName,QString passWord,uint16_t port
NET_DVR_Init(); if (!NET_DVR_Init()) {
hk_Device =-1; qInfo() << "初始化海康 SDK 失败!";
return;
}
this->hk_Device =-1;
this->nvr_status =config.nvrConfig.isOn; this->nvr_status =config.nvrConfig.isOn;
connect(this, SIGNAL(shutdownSignals(QString,int)), this, SLOT(clearHandle(QString,int)),Qt::QueuedConnection); connect(this, SIGNAL(shutdownSignals(QString,int)), this, SLOT(clearHandle(QString,int)),Qt::QueuedConnection);
...@@ -145,32 +149,32 @@ void MainWindow::runOrRebootMqtt(vides_data::MqttConfig &mqtt_config,QString &ht ...@@ -145,32 +149,32 @@ void MainWindow::runOrRebootMqtt(vides_data::MqttConfig &mqtt_config,QString &ht
subscriber->start(); subscriber->start();
} }
int MainWindow::loginNetDvr(QString ip,QString userName,QString passWord,uint16_t port){ int MainWindow::loginNetDvr(QString ip,QString userName,QString passWord,uint16_t port){
if(hk_Device<0 ){ if(hk_Device<0 ){
NET_DVR_USER_LOGIN_INFO loginInfo; NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
NET_DVR_DEVICEINFO_V40 deviceInfo; NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = {0};
loginInfo.wPort=port; struLoginInfo.bUseAsynLogin = FALSE;
int lUserID = -1;
struLoginInfo.wPort=8000;
QByteArray bIp = ip.toUtf8(); QByteArray bIp = ip.toUtf8();
char* cDevid=bIp.data(); char* cDevid=bIp.data();
memcpy(struLoginInfo.sDeviceAddress,cDevid,129);
memcpy(loginInfo.sDeviceAddress,cDevid,129);
QByteArray byteName = userName.toUtf8(); QByteArray byteName = userName.toUtf8();
char* cName=byteName.data(); char* cName=byteName.data();
memcpy(struLoginInfo.sUserName,cName,64);
memcpy(loginInfo.sUserName, cName,32);
QByteArray bytePassword = passWord.toUtf8(); QByteArray bytePassword = passWord.toUtf8();
char* cPassword=bytePassword.data(); char* cPassword=bytePassword.data();
memcpy(struLoginInfo.sPassword,cPassword,64);
memcpy(loginInfo.sPassword, cPassword,32); // 打印 NET_DVR_USER_LOGIN_INFO 的内容
lUserID = NET_DVR_Login_V40(&struLoginInfo, &struDeviceInfoV40);
LONG lUserID = NET_DVR_Login_V40(&loginInfo, &deviceInfo);
if (lUserID < 0) { if (lUserID < 0) {
qInfo() << QString("登录设备失败,错误编码:%1").arg(NET_DVR_GetLastError()); qInfo() << QString("登录设备失败,错误编码:%1").arg(NET_DVR_GetLastError()); return lUserID;
return lUserID;
} }
this->hk_Device=lUserID; this->hk_Device=lUserID;
return lUserID; return lUserID;
} }
...@@ -665,7 +669,7 @@ void MainWindow::startCamera(const QString &httpurl){ ...@@ -665,7 +669,7 @@ void MainWindow::startCamera(const QString &httpurl){
camera_info.mac=localDevice->mac; camera_info.mac=localDevice->mac;
reStatus.camera_info_list.push_front(camera_info); reStatus.camera_info_list.push_front(camera_info);
offlineCameraHandle->setHkDevice(nvr_status,hk_Device); offlineCameraHandle->setHkDevice(nvr_status,hk_Device);
qInfo() << QString(" offlineCameraHandle->setHkDevice:%1,%2").arg(nvr_status).arg(hk_Device); qInfo() << QString("offlineCameraHandle->setHkDevice:%1,%2").arg(nvr_status).arg(hk_Device);
HttpService http_gb28181(httpurl); HttpService http_gb28181(httpurl);
vides_data::response *res=http_gb28181.httpFindGb28181Config(camera_info.sSn); vides_data::response *res=http_gb28181.httpFindGb28181Config(camera_info.sSn);
...@@ -1121,8 +1125,6 @@ void MainWindow::initCameras(vides_data::cameraParameters &parameter,vides_data: ...@@ -1121,8 +1125,6 @@ void MainWindow::initCameras(vides_data::cameraParameters &parameter,vides_data:
} }
mediaFaceImage->setMap(sdk_handle,cameraHandle); mediaFaceImage->setMap(sdk_handle,cameraHandle);
initDevConfigSyn(cameraHandle,devConfig); initDevConfigSyn(cameraHandle,devConfig);
cameraHandle->sdkDevSetAlarmListener(sdk_handle,0); cameraHandle->sdkDevSetAlarmListener(sdk_handle,0);
qInfo() << QString("initCameras->setHkDevice:%1,%2").arg(nvr_status).arg(hk_Device); qInfo() << QString("initCameras->setHkDevice:%1,%2").arg(nvr_status).arg(hk_Device);
...@@ -1227,8 +1229,10 @@ MainWindow::~MainWindow() ...@@ -1227,8 +1229,10 @@ MainWindow::~MainWindow()
// 清空 handleMap // 清空 handleMap
faceDetectionParkingPushs.clear(); faceDetectionParkingPushs.clear();
LogHandler::Get().uninstallMessageHandler(); NET_DVR_Logout(hk_Device); // 注销登录
NET_DVR_Cleanup();
LogHandler::Get().uninstallMessageHandler();
} }
void MainWindow::deleteLogFile(){ void MainWindow::deleteLogFile(){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment