// // Created by pans on 5/2/18. // #include #include //#include #include #include //#include //#include "SqliteFaceEncap.h" //#include "SqliteToolkit.hpp" #include "GetUUId.h" using namespace std; /*** * 初始化创建表 : * 1.底库管理表 * uuid, tableName, tableDesc, tableType, bwType, create_time, update_time, create_by, del_flag, startTime, endTime * sql ok * * 2.中文和uuid对应表 * uuid, name, tableName(uuid) * sql ok code not ok * * * 底库特征表 id是uuid * uuid, feature, img_url, create_time, update_time, create_by * sql ok * * 人员信息表 * uuid, personName, age, sex, idCard, phoneNum, create_time, update_time, create_by * sql ok * * car #todo * * * */ /*** drop table "main"."sys_o_tables"; CREATE TABLE "main"."sys_o_tables" ( uuid varchar(255) PRIMARY KEY, ClusterName varchar(255) DEFAULT NULL, tableName varchar(255) DEFAULT NULL, tableDesc varchar(255) DEFAULT NULL, tableType varchar(255) DEFAULT NULL, bwType varchar(255) DEFAULT NULL, startTime varchar(255) DEFAULT NULL, endTime varchar(255) DEFAULT NULL, create_time BLOB DEFAULT (datetime('now', 'localtime')), update_time varchar(255) DEFAULT NULL, create_by varchar(255) DEFAULT NULL, del_flag varchar(255) DEFAULT 0 ); drop table "main"."TN2TID"; CREATE TABLE "main"."TN2TID" ( uuid varchar(255) PRIMARY KEY, TableName varchar(255) NOT NULL, tableID varchar(255) NOT NULL, create_time BLOB DEFAULT (datetime('now', 'localtime')), update_time varchar(255) DEFAULT NULL, del_flag INTEGER DEFAULT 0 ); drop table "main"."person_info"; CREATE TABLE "main"."person_info" ( uuid varchar(255) PRIMARY KEY, personName varchar(255) DEFAULT NULL, age varchar(255) DEFAULT NULL, sex varchar(255) DEFAULT NULL, idCard varchar(255) DEFAULT NULL, phoneNum varchar(255) DEFAULT NULL, create_time BLOB DEFAULT (datetime('now', 'localtime')), update_time DATETIME DEFAULT NULL, create_by varchar(255) DEFAULT NULL, del_flag INTEGER DEFAULT 0 ); drop table "main"."person_info_feature"; CREATE TABLE "main"."person_info_feature" ( uuid varchar(255) PRIMARY KEY, feature BLOB NOT NULL, faceUrl BLOB NOT NULL, create_time BLOB DEFAULT (datetime('now', 'localtime')), update_time varchar(255) DEFAULT NULL, create_by varchar(255) DEFAULT NULL, del_flag INTEGER DEFAULT 0 ); */ //struct FaceFeaWithScore { // int left; // int top; // int width; // int height; // std::vector feature; // float score; //}; //typedef std::vector Features; /*** * * @param argc * @param argv * @return */ /* int main2(int argc, char **argv) { SAVE_APP_ARGS; // cout << getInitDBSql(); SqliteFaceEncap sqliteFaceEncap("testRR"); { //#删除底库 // sqliteFaceEncap.deleteTable("test1"); } { FieldValues fieldValues; fieldValues.insert(std::make_pair("uuid", GetUUId::getUUID())); fieldValues.insert(std::make_pair("tableName", "test2")); fieldValues.insert(std::make_pair("tableDesc", "ceshi")); fieldValues.insert(std::make_pair("tableType", "person")); fieldValues.insert(std::make_pair("bwType", "1")); fieldValues.insert(std::make_pair("startTime", "2018-01-01 02:02:02")); fieldValues.insert(std::make_pair("endTime", "2018-12-01 02:02:02")); fieldValues.insert(std::make_pair("create_by", "who")); //#创建底库 // sqliteFaceEncap.createTable("test2", fieldValues); } { //#查询人脸底库列表 auto res = sqliteFaceEncap.getTableNameList("person"); for (auto &item : res) { std::cout << "tableName is " << item << std::endl; } } { //#更新底库管理表 FieldValues fieldValues; fieldValues.insert(std::make_pair("uuid", "c4e27077-59a3-458e-aedf-4b5d4def649b")); fieldValues.insert(std::make_pair("tableName", "test4")); fieldValues.insert(std::make_pair("tableDesc", "ceshi2")); fieldValues.insert(std::make_pair("tableType", "car")); fieldValues.insert(std::make_pair("bwType", "0")); fieldValues.insert(std::make_pair("startTime", "2018-01-01 02:02:02")); fieldValues.insert(std::make_pair("endTime", "2018-12-01 02:02:02")); fieldValues.insert(std::make_pair("create_by", "who")); // sqliteFaceEncap.updateTable("sys_o_tables", fieldValues); } { Features faceResults; for (int i = 0; i < 10; i++) { FaceFeaWithScore faceFeaWithScore; faceFeaWithScore.feature.resize(100); memset(faceFeaWithScore.feature.data(), 1, faceFeaWithScore.feature.size()); faceResults.push_back(faceFeaWithScore); } //#添加人脸数据 TODO test //#两张表 int lpp = 0; FieldValues fieldValues; for (auto item : faceResults) { AddFaceData addFaceData; addFaceData.feature.resize(item.feature.size()); memcpy(addFaceData.feature.data(), item.feature.data(), item.feature.size()); addFaceData.uuid = GetUUId::getUUID(); addFaceData.faceUrl = "null"; auto t_id = sqliteFaceEncap.addFace("test1", addFaceData, fieldValues); } } { //#更新人脸数据 //#todo 两张表 FieldValues fieldValues; FaceFeaWithScore faceFeaWithScore; faceFeaWithScore.feature.resize(100); memset(faceFeaWithScore.feature.data(), 1, faceFeaWithScore.feature.size()); AddFaceData addFaceData; addFaceData.feature.resize(faceFeaWithScore.feature.size()); memcpy(addFaceData.feature.data(), faceFeaWithScore.feature.data(), faceFeaWithScore.feature.size()); // addFaceData.uuid = "ac8b30cf-8476-4dcf-a476-96907bb9a01f"; addFaceData.faceUrl = "ttttttttt"; // auto ret = sqliteFaceEncap.updateFace("test1", addFaceData, fieldValues); // if (ret) { // DBG("true"); // } else { // DBG("false"); // } } { //#删除人脸数据 sqliteFaceEncap.deleteFace("test1", "e04ad3bc-5126-4fe5-b01f-f461dd30e104"); } { //#查询人脸数据 auto res = sqliteFaceEncap.getFacesFromTable("test1"); auto &res_t = *res; for (auto &item : res_t) { // std::cout << item.first << std::endl; std::cout << item.second.uuid << std::endl; std::cout << item.second.faceurl << std::endl; std::cout << item.second.faceFeature.size() << std::endl; } } { auto res = sqliteFaceEncap.getTableInfos(); for (auto &item : res) { std::cout << item.uuid << std::endl; } } return 0; } */ //#define STRIP_LOG 0 #include int main(int argc, char **argv) { ENABLEGLOG(GET_STR_CONFIG("logPath").c_str()); std::string m = "test"; DBG(m << " DBG"); DBG(m << " DBG"); LOG(INFO) << "hello glog"; // 打印log:“hello glog. 类似于C++ stream。 SYSLOG(INFO) << "test log"; // DLOG(INFO, m); // RAW_DLOG(WARNING, "test"); CHKMSG(1, 1, m << " CHKMSG"); CHKMSG(1, 2, m << " CHKMSG"); MSG(m << " MSG"); CHKERR(1, 1, m << " CHKERR"); CHKERR(1, 2, m << " CHKERR"); ERR(m << " ERR"); CHKINFO(1, 1, m << " CHKINFO"); CHKINFO(1, 2, m << " CHKINFO"); INFO(m << " INFO"); CHKDBG(1, 1, m << " CHKDBG"); CHKDBG(1, 2, m << " CHKDBG"); DBG(m << " DBG"); getchar(); }