|
|
@@ -135,23 +135,29 @@ ErrorCodeEnum IDCerClassImpl::ex2HttpFunction(IDCerInfoEx2& idCerInfoEx2)
|
|
|
return Error_Unexpect;
|
|
|
}
|
|
|
|
|
|
- LOG4VTM(INFO, "Nationnality =" << idCerRet.nationality.data.c_str());
|
|
|
-
|
|
|
#ifdef _MSC_VER
|
|
|
ConvertGBKToUtf8(idCerRet.name.data);
|
|
|
- ConvertGBKToUtf8(idCerRet.englishName.data);
|
|
|
ConvertGBKToUtf8(idCerRet.sex.data);
|
|
|
+ ConvertGBKToUtf8(idCerRet.nation.data);
|
|
|
ConvertGBKToUtf8(idCerRet.birthday.data);
|
|
|
ConvertGBKToUtf8(idCerRet.address.data);
|
|
|
- ConvertGBKToUtf8(idCerRet.department.data);
|
|
|
ConvertGBKToUtf8(idCerRet.idno.data);
|
|
|
+ ConvertGBKToUtf8(idCerRet.department.data);
|
|
|
ConvertGBKToUtf8(idCerRet.startDate.data);
|
|
|
ConvertGBKToUtf8(idCerRet.endDate.data);
|
|
|
- ConvertGBKToUtf8(idCerRet.nation.data);
|
|
|
+ ConvertGBKToUtf8(idCerRet.photoPath.data);
|
|
|
+ ConvertGBKToUtf8(idCerRet.newAddress.data);
|
|
|
+ ConvertGBKToUtf8(idCerRet.englishName.data);
|
|
|
ConvertGBKToUtf8(idCerRet.nationality.data);
|
|
|
+ ConvertGBKToUtf8(idCerRet.idVersion.data);
|
|
|
ConvertGBKToUtf8(idCerRet.idType.data);
|
|
|
ConvertGBKToUtf8(idCerRet.reserved.data);
|
|
|
+ ConvertGBKToUtf8(idCerRet.txzCode.data);
|
|
|
+ ConvertGBKToUtf8(idCerRet.issuedSN.data);
|
|
|
ConvertGBKToUtf8(idCerRet.reserved2.data);
|
|
|
+ ConvertGBKToUtf8(idCerRet.reserved3.data);
|
|
|
+ ConvertGBKToUtf8(idCerRet.reserved4.data);
|
|
|
+ ConvertGBKToUtf8(idCerRet.reserved5.data);
|
|
|
#endif // _MSC_VER
|
|
|
|
|
|
char name[1024]; memset(name, 0, 1024);
|
|
|
@@ -159,16 +165,16 @@ ErrorCodeEnum IDCerClassImpl::ex2HttpFunction(IDCerInfoEx2& idCerInfoEx2)
|
|
|
UTF8_to_UCS2((UINT8*)name, (UINT16*)idCerInfoEx2.name.data);
|
|
|
idCerInfoEx2.name.dwSize = strlen(idCerInfoEx2.name.data);
|
|
|
|
|
|
- char englishname[1024]; memset(englishname, 0, 1024);
|
|
|
- std::strcpy(englishname, idCerRet.englishName.data.c_str());
|
|
|
- UTF8_to_UCS2((UINT8*)englishname, (UINT16*)idCerInfoEx2.englishName.data);
|
|
|
- idCerInfoEx2.englishName.dwSize = strlen(idCerInfoEx2.englishName.data);
|
|
|
-
|
|
|
char sex[1024]; memset(sex, 0, 1024);
|
|
|
std::strcpy(sex, idCerRet.sex.data.c_str());
|
|
|
UTF8_to_UCS2((UINT8*)sex, (UINT16*)idCerInfoEx2.sex.data);
|
|
|
idCerInfoEx2.sex.dwSize = strlen(idCerInfoEx2.sex.data);
|
|
|
|
|
|
+ char nation[1024]; memset(nation, 0, 1024);
|
|
|
+ std::strcpy(nation, idCerRet.nation.data.c_str());
|
|
|
+ UTF8_to_UCS2((UINT8*)nation, (UINT16*)idCerInfoEx2.nation.data);
|
|
|
+ idCerInfoEx2.nation.dwSize = strlen(idCerInfoEx2.nation.data);
|
|
|
+
|
|
|
char birthday[1024]; memset(birthday, 0, 1024);
|
|
|
std::strcpy(birthday, idCerRet.birthday.data.c_str());
|
|
|
UTF8_to_UCS2((UINT8*)birthday, (UINT16*)idCerInfoEx2.birthday.data);
|
|
|
@@ -179,16 +185,16 @@ ErrorCodeEnum IDCerClassImpl::ex2HttpFunction(IDCerInfoEx2& idCerInfoEx2)
|
|
|
UTF8_to_UCS2((UINT8*)address, (UINT16*)idCerInfoEx2.address.data);
|
|
|
idCerInfoEx2.address.dwSize = strlen(idCerInfoEx2.address.data);
|
|
|
|
|
|
- char department[1024]; memset(department, 0, 1024);
|
|
|
- std::strcpy(department, idCerRet.department.data.c_str());
|
|
|
- UTF8_to_UCS2((UINT8*)department, (UINT16*)idCerInfoEx2.department.data);
|
|
|
- idCerInfoEx2.department.dwSize = strlen(idCerInfoEx2.department.data);
|
|
|
-
|
|
|
char idno[1024]; memset(idno, 0, 1024);
|
|
|
std::strcpy(idno, idCerRet.idno.data.c_str());
|
|
|
UTF8_to_UCS2((UINT8*)idno, (UINT16*)idCerInfoEx2.idno.data);
|
|
|
idCerInfoEx2.idno.dwSize = strlen(idCerInfoEx2.idno.data);
|
|
|
|
|
|
+ char department[1024]; memset(department, 0, 1024);
|
|
|
+ std::strcpy(department, idCerRet.department.data.c_str());
|
|
|
+ UTF8_to_UCS2((UINT8*)department, (UINT16*)idCerInfoEx2.department.data);
|
|
|
+ idCerInfoEx2.department.dwSize = strlen(idCerInfoEx2.department.data);
|
|
|
+
|
|
|
char startDate[1024]; memset(startDate, 0, 1024);
|
|
|
std::strcpy(startDate, idCerRet.startDate.data.c_str());
|
|
|
UTF8_to_UCS2((UINT8*)startDate, (UINT16*)idCerInfoEx2.startDate.data);
|
|
|
@@ -199,43 +205,77 @@ ErrorCodeEnum IDCerClassImpl::ex2HttpFunction(IDCerInfoEx2& idCerInfoEx2)
|
|
|
UTF8_to_UCS2((UINT8*)endDate, (UINT16*)idCerInfoEx2.endDate.data);
|
|
|
idCerInfoEx2.endDate.dwSize = strlen(idCerInfoEx2.endDate.data);
|
|
|
|
|
|
- char nation[1024]; memset(nation, 0, 1024);
|
|
|
- std::strcpy(nation, idCerRet.nation.data.c_str());
|
|
|
- UTF8_to_UCS2((UINT8*)nation, (UINT16*)idCerInfoEx2.nation.data);
|
|
|
- idCerInfoEx2.nation.dwSize = strlen(idCerInfoEx2.nation.data);
|
|
|
+ char photoPath[1024]; memset(photoPath, 0, 1024);
|
|
|
+ std::strcpy(photoPath, idCerRet.photoPath.data.c_str());
|
|
|
+ UTF8_to_UCS2((UINT8*)photoPath, (UINT16*)idCerInfoEx2.photoPath.data);
|
|
|
+ idCerInfoEx2.photoPath.dwSize = strlen(idCerInfoEx2.photoPath.data);
|
|
|
+
|
|
|
+ char newAddress[1024]; memset(newAddress, 0, 1024);
|
|
|
+ std::strcpy(newAddress, idCerRet.newAddress.data.c_str());
|
|
|
+ UTF8_to_UCS2((UINT8*)newAddress, (UINT16*)idCerInfoEx2.newAddress.data);
|
|
|
+ idCerInfoEx2.newAddress.dwSize = strlen(idCerInfoEx2.newAddress.data);
|
|
|
+
|
|
|
+ char englishname[1024]; memset(englishname, 0, 1024);
|
|
|
+ std::strcpy(englishname, idCerRet.englishName.data.c_str());
|
|
|
+ UTF8_to_UCS2((UINT8*)englishname, (UINT16*)idCerInfoEx2.englishName.data);
|
|
|
+ idCerInfoEx2.englishName.dwSize = strlen(idCerInfoEx2.englishName.data);
|
|
|
|
|
|
char nationality[1024]; memset(nationality, 0, 1024);
|
|
|
std::strcpy(nationality, idCerRet.nationality.data.c_str());
|
|
|
UTF8_to_UCS2((UINT8*)nationality, (UINT16*)idCerInfoEx2.nationality.data);
|
|
|
idCerInfoEx2.nationality.dwSize = strlen(idCerInfoEx2.nationality.data);
|
|
|
|
|
|
+ char idVersion[1024]; memset(idVersion, 0, 1024);
|
|
|
+ std::strcpy(idVersion, idCerRet.idVersion.data.c_str());
|
|
|
+ UTF8_to_UCS2((UINT8*)idVersion, (UINT16*)idCerInfoEx2.idVersion.data);
|
|
|
+ idCerInfoEx2.idVersion.dwSize = strlen(idCerInfoEx2.idVersion.data);
|
|
|
+
|
|
|
char idType[1024]; memset(idType, 0, 1024);
|
|
|
std::strcpy(idType, idCerRet.idType.data.c_str());
|
|
|
UTF8_to_UCS2((UINT8*)idType, (UINT16*)idCerInfoEx2.idType.data);
|
|
|
idCerInfoEx2.idType.dwSize = strlen(idCerInfoEx2.idType.data);
|
|
|
|
|
|
- char othercode[1024]; memset(othercode, 0, 1024);
|
|
|
- std::strcpy(othercode, idCerRet.reserved2.data.c_str());
|
|
|
- UTF8_to_UCS2((UINT8*)othercode, (UINT16*)idCerInfoEx2.reserved2.data);
|
|
|
- idCerInfoEx2.reserved2.dwSize = strlen(idCerInfoEx2.reserved2.data);
|
|
|
-
|
|
|
char reserved[1024]; memset(reserved, 0, 1024);
|
|
|
std::strcpy(reserved, idCerRet.reserved.data.c_str());
|
|
|
UTF8_to_UCS2((UINT8*)reserved, (UINT16*)idCerInfoEx2.reserved.data);
|
|
|
idCerInfoEx2.reserved.dwSize = strlen(idCerInfoEx2.reserved.data);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- LOG4VTM(INFO, "ret = 0, 请求失败");
|
|
|
- }
|
|
|
|
|
|
+ char txzCode[1024]; memset(txzCode, 0, 1024);
|
|
|
+ std::strcpy(txzCode, idCerRet.txzCode.data.c_str());
|
|
|
+ UTF8_to_UCS2((UINT8*)txzCode, (UINT16*)idCerInfoEx2.txzCode.data);
|
|
|
+ idCerInfoEx2.txzCode.dwSize = strlen(idCerInfoEx2.txzCode.data);
|
|
|
+
|
|
|
+ char issuedSN[1024]; memset(issuedSN, 0, 1024);
|
|
|
+ std::strcpy(issuedSN, idCerRet.issuedSN.data.c_str());
|
|
|
+ UTF8_to_UCS2((UINT8*)issuedSN, (UINT16*)idCerInfoEx2.issuedSN.data);
|
|
|
+ idCerInfoEx2.issuedSN.dwSize = strlen(idCerInfoEx2.issuedSN.data);
|
|
|
+
|
|
|
+ char reserved2[1024]; memset(reserved2, 0, 1024);
|
|
|
+ std::strcpy(reserved2, idCerRet.reserved2.data.c_str());
|
|
|
+ UTF8_to_UCS2((UINT8*)reserved2, (UINT16*)idCerInfoEx2.reserved2.data);
|
|
|
+ idCerInfoEx2.reserved2.dwSize = strlen(idCerInfoEx2.reserved2.data);
|
|
|
+
|
|
|
+ char reserved3[1024]; memset(reserved3, 0, 1024);
|
|
|
+ std::strcpy(reserved3, idCerRet.reserved3.data.c_str());
|
|
|
+ UTF8_to_UCS2((UINT8*)reserved3, (UINT16*)idCerInfoEx2.reserved3.data);
|
|
|
+ idCerInfoEx2.reserved3.dwSize = strlen(idCerInfoEx2.reserved3.data);
|
|
|
+
|
|
|
+ char reserved4[1024]; memset(reserved4, 0, 1024);
|
|
|
+ std::strcpy(reserved4, idCerRet.reserved4.data.c_str());
|
|
|
+ UTF8_to_UCS2((UINT8*)reserved4, (UINT16*)idCerInfoEx2.reserved4.data);
|
|
|
+ idCerInfoEx2.reserved4.dwSize = strlen(idCerInfoEx2.reserved4.data);
|
|
|
+
|
|
|
+ char reserved5[1024]; memset(reserved5, 0, 1024);
|
|
|
+ std::strcpy(reserved5, idCerRet.reserved5.data.c_str());
|
|
|
+ UTF8_to_UCS2((UINT8*)reserved5, (UINT16*)idCerInfoEx2.reserved5.data);
|
|
|
+ idCerInfoEx2.reserved5.dwSize = strlen(idCerInfoEx2.reserved5.data);
|
|
|
+ }
|
|
|
return resFlag;
|
|
|
}
|
|
|
|
|
|
IDCerClassImpl::IDCerClassImpl()
|
|
|
- :m_mode(0)
|
|
|
{
|
|
|
- lastErrMsg = "";
|
|
|
+
|
|
|
}
|
|
|
|
|
|
IDCerClassImpl::~IDCerClassImpl()
|
|
|
@@ -248,7 +288,10 @@ ErrorCodeEnum IDCerClassImpl::GetDevCategory(DevCategoryInfo& devCategory)
|
|
|
|
|
|
ErrorCodeEnum err = Error_Succeed;
|
|
|
SimulatorDevCategoryAns ans;
|
|
|
+
|
|
|
err = SimulatorHttpFunction("IDCertificate", "GetDevCategory", ans);
|
|
|
+ LOG4VTM(INFO, "GetDevCategory err = " << err);
|
|
|
+
|
|
|
strcpy(devCategory.szType, ans.szType.c_str());
|
|
|
strcpy(devCategory.szModel, ans.szModel.c_str());
|
|
|
strcpy(devCategory.szVendor, ans.szVendor.c_str());
|
|
|
@@ -264,7 +307,11 @@ ErrorCodeEnum IDCerClassImpl::GetDevCategory(DevCategoryInfo& devCategory)
|
|
|
ErrorCodeEnum IDCerClassImpl::Reset()
|
|
|
{
|
|
|
ErrorCodeEnum err = Error_Succeed;
|
|
|
- m_mode = 0;
|
|
|
+ SimulatorCommonAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction("IDCertificate", "Reset", ans);
|
|
|
+ LOG4VTM(INFO, "Reset err = " << err);
|
|
|
+
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
@@ -272,7 +319,9 @@ ErrorCodeEnum IDCerClassImpl::IDCerAuthenticate()
|
|
|
{
|
|
|
ErrorCodeEnum err = Error_Succeed;
|
|
|
SimulatorCommonAns ans;
|
|
|
+
|
|
|
err = SimulatorHttpFunction("IDCertificate", "IDCerAuthenticate", ans);
|
|
|
+ LOG4VTM(INFO, "IDCerAuthenticate err = " << err);
|
|
|
|
|
|
return err;
|
|
|
}
|
|
|
@@ -280,16 +329,22 @@ ErrorCodeEnum IDCerClassImpl::IDCerAuthenticate()
|
|
|
ErrorCodeEnum IDCerClassImpl::ForceIDEject()
|
|
|
{
|
|
|
ErrorCodeEnum err = Error_Succeed;
|
|
|
- m_mode = 0;
|
|
|
+ SimulatorCommonAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction("IDCertificate", "ForceIDEject", ans);
|
|
|
+ LOG4VTM(INFO, "ForceIDEject err = " << err);
|
|
|
+
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
ErrorCodeEnum IDCerClassImpl::ScanIDAndSaveImage()
|
|
|
{
|
|
|
ErrorCodeEnum err = Error_NotImpl;
|
|
|
- m_mode = 0;
|
|
|
SimulatorCommonAns ans;
|
|
|
+
|
|
|
err = SimulatorHttpFunction("IDCertificate", "ScanIDAndSaveImage", ans);
|
|
|
+ LOG4VTM(INFO, "ScanIDAndSaveImage err = " << err);
|
|
|
+
|
|
|
if (err == Error_Succeed)
|
|
|
{
|
|
|
bool flag1 = GenerateBmpFile("idfront.bmp");
|
|
|
@@ -306,10 +361,10 @@ ErrorCodeEnum IDCerClassImpl::ScanIDAndSaveImage()
|
|
|
ErrorCodeEnum IDCerClassImpl::QueryCardPos(int& pos)
|
|
|
{
|
|
|
ErrorCodeEnum err = Error_Succeed;
|
|
|
- m_mode = 0;
|
|
|
-
|
|
|
SimulatorCommonAns ans;
|
|
|
+
|
|
|
err = SimulatorHttpFunction("IDCertificate", "QueryCardPos", ans);
|
|
|
+ LOG4VTM(INFO, "QueryCardPos err = " << err);
|
|
|
|
|
|
return err;
|
|
|
}
|
|
|
@@ -317,29 +372,21 @@ ErrorCodeEnum IDCerClassImpl::QueryCardPos(int& pos)
|
|
|
ErrorCodeEnum IDCerClassImpl::IDCerRFControl(bool bControl)
|
|
|
{
|
|
|
ErrorCodeEnum err = Error_Succeed;
|
|
|
- m_mode = 0;
|
|
|
-
|
|
|
SimulatorCommonAns ans;
|
|
|
+
|
|
|
err = SimulatorHttpFunction("IDCertificate", "IDCerRFControl", ans);
|
|
|
+ LOG4VTM(INFO, "IDCerRFControl err = " << err);
|
|
|
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
ErrorCodeEnum IDCerClassImpl::DevOpen(DWORD dwPort)
|
|
|
{
|
|
|
- depCfgPath = GetCurrentDirectory() + SPLIT_SLASH_STR + "cmbsz.ini";
|
|
|
- LOG4VTM(INFO, "GetCurPath =" << depCfgPath);
|
|
|
-
|
|
|
- bool ret = iniRead.ReadConfig(depCfgPath);
|
|
|
- if (ret == false)
|
|
|
- {
|
|
|
- LOG4VTM(INFO, "dep ReadConfig is Error,cfg=" << depCfgPath);
|
|
|
- }
|
|
|
-
|
|
|
ErrorCodeEnum err = Error_Succeed;
|
|
|
-
|
|
|
SimulatorCommonAns ans;
|
|
|
+
|
|
|
err = SimulatorHttpFunction("IDCertificate", "DevOpen", ans);
|
|
|
+ LOG4VTM(INFO, "DevOpen err = " << err);
|
|
|
|
|
|
return err;
|
|
|
}
|
|
|
@@ -347,6 +394,11 @@ ErrorCodeEnum IDCerClassImpl::DevOpen(DWORD dwPort)
|
|
|
ErrorCodeEnum IDCerClassImpl::DevClose()
|
|
|
{
|
|
|
ErrorCodeEnum err = Error_Succeed;
|
|
|
+ SimulatorCommonAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction("IDCertificate", "DevClose", ans);
|
|
|
+ LOG4VTM(INFO, "DevClose err = " << err);
|
|
|
+
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
@@ -355,7 +407,6 @@ ErrorCodeEnum IDCerClassImpl::IDCerGetData(IDCerInfo& idCerInfo)
|
|
|
ErrorCodeEnum err = Error_Succeed;
|
|
|
memset(&idCerInfo, 0, sizeof(IDCerInfo));
|
|
|
|
|
|
-
|
|
|
strcpy(idCerInfo.startDate.data, "2009.03.25");
|
|
|
idCerInfo.startDate.dwSize = strlen("2009.03.25");
|
|
|
|
|
|
@@ -370,7 +421,6 @@ ErrorCodeEnum IDCerClassImpl::IDCerGetDataEx(IDCerInfoEx& idCerInfoEx)
|
|
|
ErrorCodeEnum err = Error_Succeed;
|
|
|
memset(&idCerInfoEx, 0, sizeof(IDCerInfo));
|
|
|
|
|
|
-
|
|
|
strcpy(idCerInfoEx.startDate.data, "2009.03.25");
|
|
|
idCerInfoEx.startDate.dwSize = strlen("2009.03.25");
|
|
|
|
|
|
@@ -384,33 +434,30 @@ ErrorCodeEnum IDCerClassImpl::IDCerGetDataEx2(IDCerInfoEx2& idCerInfoEx2)
|
|
|
{
|
|
|
ErrorCodeEnum err = Error_Succeed;
|
|
|
memset(&idCerInfoEx2, 0, sizeof(IDCerInfoEx2));
|
|
|
-
|
|
|
err = ex2HttpFunction(idCerInfoEx2);
|
|
|
- if (err != Error_Succeed)
|
|
|
- {
|
|
|
- lastErrMsg = "{\"Description\": \"获取身份证芯片数据失败\"}";
|
|
|
- return err;
|
|
|
- }
|
|
|
-
|
|
|
bool flag = GenerateBmpFile("zp.bmp");
|
|
|
if (!flag)
|
|
|
{
|
|
|
err = Error_Bug;
|
|
|
}
|
|
|
|
|
|
+ LOG4VTM(INFO, "IDCerGetDataEx2 err = " << err);
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
|
|
|
ErrorCodeEnum IDCerClassImpl::GetLastErr(DevErrorInfo& devErrInfo)
|
|
|
{
|
|
|
- static int times = 0;
|
|
|
- char szMessage[128];
|
|
|
- sprintf(szMessage, "这是第 %d 条错误信息", ++times);
|
|
|
+ ErrorCodeEnum err = Error_Succeed;
|
|
|
+ SimulatorDevErrInfoAns ans;
|
|
|
|
|
|
- strcpy(devErrInfo.szErrMsg, szMessage);
|
|
|
- devErrInfo.dwErrMsgLen = strlen(szMessage);
|
|
|
- return Error_Succeed;
|
|
|
+ err = SimulatorHttpFunction("IDCertificate", "GetLastErr", ans);
|
|
|
+ LOG4VTM(INFO, "GetLastErr err = " << err);
|
|
|
+
|
|
|
+ devErrInfo.dwErrMsgLen = ans.dwErrMsgLen;
|
|
|
+ strcpy(devErrInfo.szErrMsg, ans.szErrMsg.c_str());
|
|
|
+
|
|
|
+ return err;
|
|
|
}
|
|
|
|
|
|
#ifdef _MSC_VER
|