Невозможно загрузить данные лица в камеру Hikvision с помощью SDK - PullRequest
0 голосов
/ 29 марта 2020

Я собираюсь использовать функцию распознавания лиц в Hikvision Camera, используя sdk на Qt (c ++). Я пытался загрузить данные о лицах в библиотеку hikvision, но она не работает.

Вот мой код.

    strXml = "<?xml version='1.0' encoding='UTF-8'?><FaceAppendData><name>%2</name><bornTime>%1</bornTime><sex>%3</sex><province>65</province><certificateType>ID</certificateType><certificateNumber>%4</certificateNumber></FaceAppendData>"
    NET_DVR_SEND_PARAM_IN m_struSendParam = {0};
        pSendAppendData = new BYTE[strXml.size()];
        memcpy(pSendAppendData, strXml.toStdString().c_str(), strXml.size());

        m_struSendParam.dwSendAppendDataLen = strXml.size();
        m_struSendParam.pSendAppendData = pSendAppendData;
//set pic data
    QFile file(m_strFileName);
    if (!file.open(QIODevice::ReadOnly)) {
        QMessageBox::warning(this, "File Read Error", "Cant' read this file.");
        return;
    }
    //pSendPicData = new BYTE[file.size()];
    QByteArray byteData = file.readAll();
    m_struSendParam.dwSendDataLen= byteData.size();
    //memcpy(pSendPicData, byteData.data(), file.size());
    file.close();
    m_struSendParam.pSendData = (BYTE*)byteData.data();
    m_struSendParam.byPicType = 1;
    m_struSendParam.byPicURL = 0;
if (NET_DVR_UploadSend(m_lUploadHandle, &m_struSendParam, NULL) < 0){
        QMessageBox::warning(this, "Error", QString("Upload failed.\nError Code: %1").arg(NET_DVR_GetLastError()));
    }while (1) {
        LONG iStatus = getUploadState();
        if (iStatus == 1) {//Uploaded
            stopUploadData();
            accept();
        }
        if (iStatus >= 3) {//Upload failed
            stopUploadData();
            QMessageBox::warning(this, "ERROR", QString("Upload Failed. Status Code: %1").arg(iStatus));
            break;
        }
    }

Результат "Ошибка загрузки".

Пожалуйста, помогите мне с тем, что не правильно. Спасибо.

...