void NBioBSP_IndexSearch::on_btRmDB_pressed() { QModelIndexList selectedRows = ui->tableReg->selectionModel()->selectedRows(); NBioAPI_INDEXSEARCH_FP_INFO infoFP; QStandardItem* pItem; NBioAPI_RETURN nRet = NBioAPIERROR_NONE; for (int i = selectedRows.size() - 1; i >= 0; i--) { pItem = pRegModel->item(selectedRows[i].row(), 0); infoFP.ID = pItem->text().toUInt(); pItem = pRegModel->item(selectedRows[i].row(), 1); infoFP.FingerID = (NBioAPI_UINT8) pItem->text().toUShort(); pItem = pRegModel->item(selectedRows[i].row(), 2); infoFP.SampleNumber = (NBioAPI_UINT8) pItem->text().toUShort(); nRet = NBioAPI_RemoveDataFromIndexSearchDB(m_hNBioBSP, &infoFP); if (NBioAPIERROR_NONE == nRet) pRegModel->removeRow(selectedRows[i].row(), QModelIndex()); else { QString szError; szError.sprintf("NBioAPI_RemoveDataFromIndexSearchDB error: %04X", nRet); ui->labelStatus->setText(szError); break; } } if (NBioAPIERROR_NONE == nRet) ui->labelStatus->setText(QString("Remove data from DB [Count: %1]").arg(selectedRows.size())); UpdateTotalCount(); }
void NBioBSP_IndexSearch::on_btLoadDB_pressed() { if (pRegModel->rowCount(QModelIndex()) > 0) { int bt = QMessageBox::information(this, "NBioBSP_IndexSearch", "If you load database from file, existing memory database will be cleared!\nAre you sure you want to load database?", QMessageBox::No, QMessageBox::Yes); if (bt == QMessageBox::No) return ; } QString szFilePath = QFileDialog::getOpenFileName(this, "Load IndexSearch DB", QDir::currentPath(), "IndexSearch DB(*.ISDB)"); if (!szFilePath.isEmpty()) { on_btClearDB_pressed(); QByteArray baFilePath = szFilePath.toLocal8Bit(); NBioAPI_RETURN nRet = NBioAPI_LoadIndexSearchDBFromFile(m_hNBioBSP, baFilePath.data()); if (NBioAPIERROR_NONE == nRet) { if (szFilePath.endsWith(".ISDB")) szFilePath.replace(QString("ISDB"), QString("FID")); else szFilePath += ".FID"; QFile fFID(szFilePath); if (fFID.open(QIODevice::ReadOnly | QIODevice::Text)) { char szBuf[512]; int nIndex = 0; QStringList szDatas; while (fFID.readLine(szBuf, sizeof(szBuf)) != -1) { szDatas = QString(szBuf).split('\t'); pRegModel->insertRow(nIndex, QModelIndex()); pRegModel->setData(pRegModel->index(nIndex, 0, QModelIndex()), szDatas[0]); pRegModel->setData(pRegModel->index(nIndex, 1, QModelIndex()), szDatas[1]); pRegModel->setData(pRegModel->index(nIndex, 2, QModelIndex()), szDatas[2]); } fFID.close(); } ui->labelStatus->setText("Successfully loaded to file!"); } else { QString szError; szError.sprintf("NBioAPI_LoadIndexSearchDBFromFile error: %04X", nRet); ui->labelStatus->setText(szError); } UpdateTotalCount(); } }
void NBioBSP_IndexSearch::on_btClearDB_pressed() { //DataBase Clear. NBioAPI_RETURN nRet = NBioAPI_ClearIndexSearchDB(m_hNBioBSP); if (NBioAPIERROR_NONE == nRet) { //User ListBox Item All Clear. pRegModel->removeRows(0, pRegModel->rowCount(QModelIndex()), QModelIndex()); UpdateTotalCount(); } else { QString szError; szError.sprintf("NBioAPI_ClearIndexSearchDB error: %04X", nRet); ui->labelStatus->setText(szError); } }
void NBioBSP_IndexSearch::on_btLoadMIN_pressed() { // Min data name rull: samplenumber_UserID_FingerID.min QString szDir = QFileDialog::getExistingDirectory(this, "Select MIN data Directory", QDir::currentPath()); if (szDir.isEmpty()) return ; QDir dirFind = QDir(szDir); QStringList slFindFiles; slFindFiles = dirFind.entryList(QStringList("*.min"), QDir::Files | QDir::NoSymLinks); if (slFindFiles.size() > 0) { NBioAPI_RETURN nRet = NBioAPIERROR_NONE; QString szFilePath; QByteArray baFilePath; FILE* fp; NBioAPI_FIR_HANDLE hExportedFIR; NBioAPI_EXPORT_DATA exportData; NBioAPI_INPUT_FIR inputFIR; NBioAPI_INDEXSEARCH_SAMPLE_INFO infoSample; NBioAPI_UINT32 nUserID; inputFIR.Form = NBioAPI_FIR_FORM_HANDLE; inputFIR.InputFIR.FIRinBSP = &hExportedFIR; memset(&exportData, 0, sizeof(NBioAPI_EXPORT_DATA)); exportData.Length = sizeof(NBioAPI_EXPORT_DATA); exportData.EncryptType = MINCONV_TYPE_OLD_FDA; exportData.FingerNum = 1; exportData.DefaultFingerID = NBioAPI_FINGER_ID_UNKNOWN; exportData.SamplesPerFinger = 1; exportData.FingerData2 = new NBioAPI_FINGER_DATA_2 [1]; exportData.FingerData2[0].Length = sizeof(NBioAPI_FINGER_DATA_2); exportData.FingerData2[0].FingerID = 1; exportData.FingerData2[0].Template = new NBioAPI_TEMPLATE_DATA_2 [1]; exportData.FingerData2[0].Template[0].Length = 400; exportData.FingerData2[0].Template[0].Data = new NBioAPI_UINT8 [400]; ui->pgBarLoad->setRange(0, slFindFiles.size()); ui->pgBarLoad->setValue(0); for (int i = 0; i < slFindFiles.size(); i++) { szFilePath = dirFind.absoluteFilePath(slFindFiles[i]); baFilePath = szFilePath.toLocal8Bit(); QStringList fiedls = slFindFiles[i].split('.'); QStringList fiedls2 = QString(fiedls.value(0)).split('_'); nUserID = QString(fiedls2.value(1)).toUInt(); exportData.FingerData2[0].FingerID = (NBioAPI_UINT8) QString(fiedls2.value(2)).toUShort(); fp = fopen(baFilePath.data(), "rb"); if (fp) { fread(exportData.FingerData2[0].Template[0].Data, 400, 1, fp); fclose(fp); nRet = NBioAPI_ImportDataToNBioBSP(m_hNBioBSP, &exportData, NBioAPI_FIR_PURPOSE_VERIFY, &hExportedFIR); if (NBioAPIERROR_NONE != nRet) { QString szError; szError.sprintf("NBioAPI_ImportDataToNBioBSP error: %04X", nRet); QMessageBox::warning(this, "NBioBSP_IndexSearch", szError); break; } nRet = NBioAPI_AddFIRToIndexSearchDB(m_hNBioBSP, &inputFIR, nUserID, &infoSample); NBioAPI_FreeFIRHandle(m_hNBioBSP, hExportedFIR); if (NBioAPIERROR_NONE != nRet) { QString szError; szError.sprintf("NBioAPI_AddFIRToIndexSearchDB error: %04X", nRet); QMessageBox::warning(this, "NBioBSP_IndexSearch", szError); break; } for (int f = 0; f < 11; f++) { if (infoSample.SampleCount[f] != 0) { for (int s = 0; s < infoSample.SampleCount[f]; s++) { int nIndex = pRegModel->rowCount(); pRegModel->insertRow(nIndex, QModelIndex()); pRegModel->setData(pRegModel->index(nIndex, 0, QModelIndex()), infoSample.ID); pRegModel->setData(pRegModel->index(nIndex, 1, QModelIndex()), f); pRegModel->setData(pRegModel->index(nIndex, 2, QModelIndex()), s); } } } ui->pgBarLoad->setValue(i + 1); QApplication::processEvents(); } } //ExportData Free delete[] exportData.FingerData2[0].Template[0].Data; delete[] exportData.FingerData2[0].Template; delete[] exportData.FingerData2; if (NBioAPIERROR_NONE == nRet) ui->labelStatus->setText(QString("Successfully added to DB! (Count: %1)").arg(slFindFiles.size())); } UpdateTotalCount(); }
void NBioBSP_IndexSearch::on_btLoadFIR_pressed() { QString szDir = QFileDialog::getExistingDirectory(this, "Select FIR data Directory", QDir::currentPath()); if (szDir.isEmpty()) return ; QDir dirFind = QDir(szDir); QStringList slFindFiles; slFindFiles = dirFind.entryList(QStringList("*.FIR"), QDir::Files | QDir::NoSymLinks); if (slFindFiles.size() > 0) { NBioAPI_RETURN nRet = NBioAPIERROR_NONE; NBioAPI_FIR_TEXTENCODE hTextFIR; QString szFilePath; QByteArray baFilePath; FILE* fp; NBioAPI_UINT32 dwLen, nUserID; NBioAPI_INPUT_FIR inputFIR; NBioAPI_INDEXSEARCH_SAMPLE_INFO infoSample; memset(&hTextFIR, 0, sizeof(NBioAPI_FIR_TEXTENCODE)); hTextFIR.IsWideChar = FALSE; inputFIR.Form = NBioAPI_FIR_FORM_TEXTENCODE; inputFIR.InputFIR.TextFIR = &hTextFIR; ui->pgBarLoad->setRange(0, slFindFiles.size()); ui->pgBarLoad->setValue(0); for (int i = 0; i < slFindFiles.size(); i++) { szFilePath = dirFind.absoluteFilePath(slFindFiles[i]); baFilePath = szFilePath.toLocal8Bit(); QStringList fiedls = slFindFiles[i].split('.'); nUserID = QString(fiedls.value(0)).toUInt(); fp = fopen(baFilePath.data(), "rb"); if (fp) { fread(&dwLen, 1, sizeof(NBioAPI_UINT32), fp); hTextFIR.TextFIR = new NBioAPI_CHAR[dwLen]; fread(hTextFIR.TextFIR, dwLen, 1, fp); fclose(fp); nRet = NBioAPI_AddFIRToIndexSearchDB(m_hNBioBSP, &inputFIR, nUserID, &infoSample); if (NBioAPIERROR_NONE != nRet) { QString szError; szError.sprintf("NBioAPI_AddFIRToIndexSearchDB error: %04X", nRet); QMessageBox::warning(this, "NBioBSP_IndexSearch", szError); if (hTextFIR.TextFIR) delete[] hTextFIR.TextFIR; break; } for (int f = 0; f < 11; f++) { if (infoSample.SampleCount[f] != 0) { for (int s = 0; s < infoSample.SampleCount[f]; s++) { int nIndex = pRegModel->rowCount(); pRegModel->insertRow(nIndex, QModelIndex()); pRegModel->setData(pRegModel->index(nIndex, 0, QModelIndex()), infoSample.ID); pRegModel->setData(pRegModel->index(nIndex, 1, QModelIndex()), f); pRegModel->setData(pRegModel->index(nIndex, 2, QModelIndex()), s); } } } if (hTextFIR.TextFIR) delete[] hTextFIR.TextFIR; ui->pgBarLoad->setValue(i + 1); QApplication::processEvents(); } } if (NBioAPIERROR_NONE == nRet) ui->labelStatus->setText(QString("Successfully added to DB! (Count: %1)").arg(slFindFiles.size())); } UpdateTotalCount(); }
void NBioBSP_IndexSearch::on_btReg_pressed() { bool bOK; m_nUserID = ui->editUserID->text().toInt(&bOK); if (!bOK) { QMessageBox::warning(this, "NBioBSP_IndexSearch", "Invalid User ID"); ui->editUserID->setFocus(); return ; } // Open Device. NBioAPI_RETURN nRet = NBioAPI_OpenDevice(m_hNBioBSP, NBioAPI_DEVICE_ID_AUTO); if (NBioAPIERROR_NONE != nRet) { QString szError; szError.sprintf("NBioAPI_OpenDevice error: %04X", nRet); ui->labelStatus->setText(szError); return ; } NBioAPI_FIR_HANDLE hFIR; // NBioAPI Enroll. nRet = NBioAPI_Capture(m_hNBioBSP, NBioAPI_FIR_PURPOSE_VERIFY, &hFIR, -1, NULL, NULL); if (NBioAPIERROR_NONE == nRet) { NBioAPI_INPUT_FIR inputFIR; // Fir Data. NBioAPI_INDEXSEARCH_SAMPLE_INFO infoSample; // Sample Finger Sample Information. inputFIR.Form = NBioAPI_FIR_FORM_HANDLE; inputFIR.InputFIR.FIRinBSP = &hFIR; // Search FIRDB about Template Information. nRet = NBioAPI_AddFIRToIndexSearchDB(m_hNBioBSP, &inputFIR, m_nUserID, &infoSample); if (NBioAPIERROR_NONE != nRet) { QString szError; szError.sprintf("NBioAPI_AddFIRToIndexSearchDB error: %04X", nRet); ui->labelStatus->setText(szError); } else { int nIndex = pRegModel->rowCount(); pRegModel->insertRow(nIndex, QModelIndex()); pRegModel->setData(pRegModel->index(nIndex, 0, QModelIndex()), infoSample.ID); pRegModel->setData(pRegModel->index(nIndex, 1, QModelIndex()), 0); pRegModel->setData(pRegModel->index(nIndex, 2, QModelIndex()), 0); ui->labelStatus->setText("Successfully added to DB!"); } //Free FIR Handle. NBioAPI_FreeFIRHandle(m_hNBioBSP, hFIR); } else { QString szError; szError.sprintf("NBioAPI_Capture error: %04X", nRet); ui->labelStatus->setText(szError); } //Close Device. NBioAPI_CloseDevice(m_hNBioBSP, NBioAPI_DEVICE_ID_AUTO); if (NBioAPIERROR_NONE == nRet) { m_nUserID++; ui->editUserID->setText(QString("%1").arg(m_nUserID)); } UpdateTotalCount(); }
void Parser::CreateBaseCommands(void* tannit) { Tannit* ptannit = (Tannit*)tannit; CGIResolver* pcgires = (CGIResolver*)tannit; TQRManager* ptqr_manager = &ptannit->m_TQRManager; TQRODBCManager* ptqrodbc_manager = &ptannit->m_TQRODBCManager; TQRCollection* ptqrcollection = &ptannit->m_TQRCollection; itxSQLConnCollection* pconnections = &ptannit->m_connections; itxSQLConnection* podbcconnection = &ptannit->m_odbcconnection; int i = 0; //BEGIN CREATION BASE COMMANDS m_Command[i++] = (AbstractCommand*)new BC_StartConditionalBlock(START_CONDITIONAL_BLOCK, this, START_CND_BLK); m_Command[i++] = (AbstractCommand*)new BC_EndConditionalBlock(); m_Command[i++] = (AbstractCommand*)new BC_AlternateConditionalBlock(); m_Command[i++] = (AbstractCommand*)new BC_StartConditionalBlock(ELSIF_CONDITIONAL_BLOCK, this, ELSIF_CND_BLK); m_Command[i++] = (AbstractCommand*)new BC_PRMValue(PRMVALUE, pcgires); m_Command[i++] = (AbstractCommand*)new BC_Cgipath(CGIPATH, pcgires); m_Command[i++] = (AbstractCommand*)new BC_GetValue(this, pcgires); m_Command[i++] = (AbstractCommand*)new BC_AdjustQuotes(this); m_Command[i++] = (AbstractCommand*)new BC_ProcessExternFile(this, pcgires); m_Command[i++] = (AbstractCommand*)new BC_UCase(); m_Command[i++] = (AbstractCommand*)new BC_LCase(); m_Command[i++] = (AbstractCommand*)new BC_Trim(); m_Command[i++] = (AbstractCommand*)new BC_SetVar(this); m_Command[i++] = (AbstractCommand*)new BC_GetVar(this); m_Command[i++] = (AbstractCommand*)new BC_GetCookie(this, pcgires); m_Command[i++] = (AbstractCommand*)new BC_UTime(this); m_Command[i++] = (AbstractCommand*)new BC_DMYTime(this); m_Command[i++] = (AbstractCommand*)new BC_Now(this); m_Command[i++] = (AbstractCommand*)new BC_FormatCurrency(this); m_Command[i++] = (AbstractCommand*)new BC_CheckForbiddenChars(this); m_Command[i++] = (AbstractCommand*)new BC_TraceUser(this, pcgires); m_Command[i++] = (AbstractCommand*)new BC_ODBCExecuteQuery(this, pcgires, ptqrodbc_manager); m_Command[i++] = (AbstractCommand*)new BC_TQRRecordFieldValue(this, ptqrcollection); m_Command[i++] = (AbstractCommand*)new BC_TQRRecordFieldValQuot(this, ptqrcollection); m_Command[i++] = (AbstractCommand*)new BC_CycleTQR(this, pcgires, ptqrcollection); m_Command[i++] = (AbstractCommand*)new BC_EndCycleTQR(this, ptqrcollection); m_Command[i++] = (AbstractCommand*)new BC_CycleFor(this, pcgires, ptqrcollection, ptqr_manager); m_Command[i++] = (AbstractCommand*)new BC_EndCycleFor(this, ptqrcollection); m_Command[i++] = (AbstractCommand*)new BC_ForIndex(this, ptqrcollection); m_Command[i++] = (AbstractCommand*)new BC_Exit(this); m_Command[i++] = (AbstractCommand*)new BC_TQRExist(this, ptqrcollection); m_Command[i++] = (AbstractCommand*)new BC_GetHide(this); m_Command[i++] = (AbstractCommand*)new BC_Crypt(this); m_Command[i++] = (AbstractCommand*)new BC_Decrypt(this); m_Command[i++] = (AbstractCommand*)new BC_RemoveTQR(this, ptqrcollection); m_Command[i++] = (AbstractCommand*)new BC_TQRStat(this, ptqrcollection); m_Command[i++] = (AbstractCommand*)new BC_Valid(this, pcgires, ptqrodbc_manager, ptqrcollection); m_Command[i++] = (AbstractCommand*)new BC_Return(this); m_Command[i++] = (AbstractCommand*)new BC_Flush(this, pcgires); m_Command[i++] = (AbstractCommand*)new BC_TQRFilt(this, ptqr_manager); m_Command[i++] = (AbstractCommand*)new BC_Recsel(this, ptqrcollection, pcgires); m_Command[i++] = (AbstractCommand*)new BC_TQRMove(this, ptqrcollection); m_Command[i++] = (AbstractCommand*)new BC_Trans(this, pcgires, ptqrodbc_manager, ptqrcollection); m_Command[i++] = (AbstractCommand*)new BC_Left(this); m_Command[i++] = (AbstractCommand*)new BC_Right(this); m_Command[i++] = (AbstractCommand*)new BC_Strlen(); m_Command[i++] = (AbstractCommand*)new BC_TQRStore(this, ptqr_manager); m_Command[i++] = (AbstractCommand*)new BC_TQRInsert(this, ptqrodbc_manager); m_Command[i++] = (AbstractCommand*)new BC_Pager(this, ptqr_manager); m_Command[i++] = (AbstractCommand*)new BC_Netprex(this); m_Command[i++] = (AbstractCommand*)new BC_Netgrab(this); m_Command[i++] = (AbstractCommand*)new BC_Rand(this); m_Command[i++] = (AbstractCommand*)new BC_MakeOp(this); m_Command[i++] = (AbstractCommand*)new BC_GetValueQuote(this, pcgires); m_Command[i++] = (AbstractCommand*)new BC_TQRSample(this, ptqr_manager); m_Command[i++] = (AbstractCommand*)new BC_NewConnection(this, pconnections); m_Command[i++] = (AbstractCommand*)new BC_SetConnection(this, ptqrodbc_manager, pconnections); m_Command[i++] = (AbstractCommand*)new BC_ResetConnection(this, ptqrodbc_manager, podbcconnection); m_Command[i++] = (AbstractCommand*)new BC_Array(this, ptqr_manager); m_Command[i++] = (AbstractCommand*)new BC_ArraySet(this, ptqr_manager); m_Command[i++] = (AbstractCommand*)new BC_ArrayGet(this, ptqr_manager); m_Command[i++] = (AbstractCommand*)new BC_RemoveChar(this); m_Command[i++] = (AbstractCommand*)new BC_Mid(this); m_Command[i++] = (AbstractCommand*)new BC_NumericalCmp(this); m_Command[i++] = (AbstractCommand*)new BC_Proc(this, pcgires); m_Command[i++] = (AbstractCommand*)new BC_Verinst(this); m_Command[i++] = (AbstractCommand*)new BC_CopyFile(this); m_Command[i++] = (AbstractCommand*)new BC_Currency(this); m_Command[i++] = (AbstractCommand*)new BC_Console(this, pcgires); m_Command[i++] = (AbstractCommand*)new BC_GetValueCast(this, pcgires); m_Command[i++] = (AbstractCommand*)new BC_GetPOSTbody(pcgires); m_Command[i++] = (AbstractCommand*)new BC_Mail(this); m_Command[i++] = (AbstractCommand*)new BC_Getenv(this); //END CREATION BASE COMMANDS UpdateTotalCount(); m_BaseCount = m_TotalCount; }