Я собираюсь использовать функцию распознавания лиц в 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;
}
}
Результат "Ошибка загрузки".
Пожалуйста, помогите мне с тем, что не правильно. Спасибо.