|
@@ -1,6 +1,11 @@
|
|
|
#include "contactless_impl.h"
|
|
|
+#include "contactless_httpans.h"
|
|
|
#include<cstring>
|
|
|
#include <cstdio>
|
|
|
+#include <cstring>
|
|
|
+#include <cstdio>
|
|
|
+#include "log4vendor.h"
|
|
|
+#include <path.h>
|
|
|
ContactlessCardImpl::ContactlessCardImpl()
|
|
|
:m_mode(0)
|
|
|
{
|
|
@@ -16,35 +21,174 @@ ErrorCodeEnum ContactlessCardImpl::GetDevCategory(DevCategoryInfo &devCategory)
|
|
|
{
|
|
|
|
|
|
ErrorCodeEnum err = Error_Succeed;
|
|
|
- std::strcpy(devCategory.szModel, "szModel");
|
|
|
- std::strcpy(devCategory.szType, "szCategory");
|
|
|
- std::strcpy(devCategory.szVendor, "szVendor");
|
|
|
+ SimulatorDevCategoryAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction(EntityName, "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());
|
|
|
+ devCategory.eState = (DevStateEnum)ans.eState;
|
|
|
+ devCategory.version.wMajor = ans.version.wMajor;
|
|
|
+ devCategory.version.wMinor = ans.version.wMinor;
|
|
|
+ devCategory.version.wRevision = ans.version.wRevision;
|
|
|
+ devCategory.version.wBuild = ans.version.wBuild;
|
|
|
+
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
ErrorCodeEnum ContactlessCardImpl::Reset()
|
|
|
{
|
|
|
ErrorCodeEnum err = Error_Succeed;
|
|
|
- m_mode = 0;
|
|
|
+ SimulatorCommonAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction(EntityName, "Reset", ans);
|
|
|
+ LOG4VTM(INFO, "Reset err = " << err);
|
|
|
+
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
ErrorCodeEnum ContactlessCardImpl::DevClose()
|
|
|
{
|
|
|
ErrorCodeEnum err = Error_Succeed;
|
|
|
+ SimulatorCommonAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction(EntityName, "DevClose", ans);
|
|
|
+ LOG4VTM(INFO, "DevClose err = " << err);
|
|
|
+
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
ErrorCodeEnum ContactlessCardImpl::GetLastErr(DevErrorInfo &devErrInfo)
|
|
|
{
|
|
|
- static int times = 0;
|
|
|
- char szMessage[128];
|
|
|
- char szSubMessage[64];
|
|
|
- sprintf(szSubMessage, "%d", ++times);
|
|
|
- sprintf(szMessage, "{\"ErrCode\":9555, \"Description\":\"Func:%s,Line:%d,Msg:%s\"}", __FUNCTION__, __LINE__, szSubMessage);
|
|
|
- strcpy(devErrInfo.szErrMsg, szMessage);
|
|
|
- devErrInfo.dwErrMsgLen = strlen(szMessage);
|
|
|
- return Error_Succeed;
|
|
|
+ ErrorCodeEnum err = Error_Succeed;
|
|
|
+ SimulatorDevErrInfoAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction(EntityName, "GetLastErr", ans);
|
|
|
+ LOG4VTM(INFO, "GetLastErr err = " << err);
|
|
|
+
|
|
|
+ devErrInfo.dwErrMsgLen = ans.dwErrMsgLen;
|
|
|
+ strcpy(devErrInfo.szErrMsg, ans.szErrMsg.c_str());
|
|
|
+
|
|
|
+ return err;
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum ContactlessCardImpl::DevOpen(DWORD dwPort, DWORD dwBaudRate)
|
|
|
+{
|
|
|
+ ErrorCodeEnum err = Error_Succeed;
|
|
|
+ SimulatorCommonAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction(EntityName, "DevOpen", ans);
|
|
|
+ LOG4VTM(INFO, "DevOpen err = " << err);
|
|
|
+
|
|
|
+ return err;
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum ContactlessCardImpl::GetDevStatus(RFICReaderStatus& devStatus)
|
|
|
+{
|
|
|
+ ErrorCodeEnum err = Error_Succeed;
|
|
|
+ RFICReaderStatusAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction(EntityName, "GetDevStatus", ans);
|
|
|
+ LOG4VTM(INFO, "GetDevStatus err = " << err);
|
|
|
+
|
|
|
+ if (err == Error_Succeed) {
|
|
|
+ devStatus.eMediaPos = (CardStatusEnum)ans.eMediaPos;
|
|
|
+ }
|
|
|
+
|
|
|
+ return err;
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum ContactlessCardImpl::AbortRead()
|
|
|
+{
|
|
|
+ ErrorCodeEnum err = Error_Succeed;
|
|
|
+ SimulatorCommonAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction(EntityName, "AbortRead", ans);
|
|
|
+ LOG4VTM(INFO, "AbortRead err = " << err);
|
|
|
+
|
|
|
+ return err;
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum ContactlessCardImpl::ActiveContactlessICCard(char fstType, char scdType, char thdType, char& outType)
|
|
|
+{
|
|
|
+ ErrorCodeEnum err = Error_Succeed;
|
|
|
+ ActiveContactlessICCardAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction(EntityName, "ActiveContactlessICCard", ans);
|
|
|
+ LOG4VTM(INFO, "ActiveContactlessICCard err = " << err);
|
|
|
+
|
|
|
+ if (err == Error_Succeed) {
|
|
|
+ outType = (char)ans.outType;
|
|
|
+ }
|
|
|
+
|
|
|
+ return err;
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum ContactlessCardImpl::DeactContactlessICCard()
|
|
|
+{
|
|
|
+ ErrorCodeEnum err = Error_Succeed;
|
|
|
+ SimulatorCommonAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction(EntityName, "DeactContactlessICCard", ans);
|
|
|
+ LOG4VTM(INFO, "DeactContactlessICCard err = " << err);
|
|
|
+
|
|
|
+ return err;
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum ContactlessCardImpl::WarmReset()
|
|
|
+{
|
|
|
+ ErrorCodeEnum err = Error_Succeed;
|
|
|
+ SimulatorCommonAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction(EntityName, "WarmReset", ans);
|
|
|
+ LOG4VTM(INFO, "WarmReset err = " << err);
|
|
|
+
|
|
|
+ return err;
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum ContactlessCardImpl::MifareCommand(MifareFuctionEnum eFunType, CmdInfo sendBuf, CmdInfo& recvBuf)
|
|
|
+{
|
|
|
+ ErrorCodeEnum err = Error_Succeed;
|
|
|
+ CmdInfoAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction(EntityName, "ActiveContactlessICCard", ans);
|
|
|
+ LOG4VTM(INFO, "ActiveContactlessICCard err = " << err);
|
|
|
+
|
|
|
+ if (err == Error_Succeed) {
|
|
|
+ recvBuf.dwSize = ans.dwSize;
|
|
|
+ memcpy(recvBuf.data, ans.data, sizeof(BYTE) * MAX_IC_BUFFER_SIZE);
|
|
|
+ }
|
|
|
+
|
|
|
+ return err;
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum ContactlessCardImpl::RFTypeABCommand(CmdInfo sendBuf, CmdInfo& recvBuf)
|
|
|
+{
|
|
|
+ ErrorCodeEnum err = Error_Succeed;
|
|
|
+ CmdInfoAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction(EntityName, "RFTypeABCommand", ans);
|
|
|
+ LOG4VTM(INFO, "RFTypeABCommand err = " << err);
|
|
|
+
|
|
|
+ if (err == Error_Succeed) {
|
|
|
+ recvBuf.dwSize = ans.dwSize;
|
|
|
+ memcpy(recvBuf.data, ans.data, sizeof(BYTE) * MAX_IC_BUFFER_SIZE);
|
|
|
+ }
|
|
|
+
|
|
|
+ return err;
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum ContactlessCardImpl::HaltCard()
|
|
|
+{
|
|
|
+ ErrorCodeEnum err = Error_Succeed;
|
|
|
+ SimulatorCommonAns ans;
|
|
|
+
|
|
|
+ err = SimulatorHttpFunction(EntityName, "HaltCard", ans);
|
|
|
+ LOG4VTM(INFO, "HaltCard err = " << err);
|
|
|
+
|
|
|
+ return err;
|
|
|
}
|
|
|
|
|
|
DEVICEBASE_API ErrorCodeEnum CreateDevComponent(DeviceBaseClass *&baseObj)
|
|
@@ -52,9 +196,19 @@ DEVICEBASE_API ErrorCodeEnum CreateDevComponent(DeviceBaseClass *&baseObj)
|
|
|
baseObj = new ContactlessCardImpl();
|
|
|
if(baseObj == NULL) {
|
|
|
return Error_Resource;
|
|
|
- } else {
|
|
|
+ }
|
|
|
+
|
|
|
+ cmb::log_init_config config;
|
|
|
+ config.dev_name = "vendor_ContactlessCard";
|
|
|
+#ifdef _MSC_VER
|
|
|
+ config.log_dir = ("D:\\rvc\\dbg\\");
|
|
|
+#else
|
|
|
+ config.log_dir = ("/opt/rvc/dbg/");
|
|
|
+#endif
|
|
|
+ std::string str;
|
|
|
+ cmb::log4vendor::init(config, str);
|
|
|
+
|
|
|
return Error_Succeed;
|
|
|
- }
|
|
|
}
|
|
|
DEVICEBASE_API ErrorCodeEnum ReleaseDevComponent(DeviceBaseClass *&pBaseObj)
|
|
|
{
|