浏览代码

#IQRV #comment: 补全卡机卡库接口

陈纪林80310970 10 月之前
父节点
当前提交
98fff2bb95

+ 9 - 1
DevAdapter/simulator/cardissuer.1.1/cardissuer_httpans.h

@@ -112,4 +112,12 @@ typedef struct SlotStatusAns {
 	BYTE status[MAX_SLOT_BUFFER_SIZE];
 
 	JSONCONVERT2OBJECT_MEMEBER_REGISTER(errNum, dwSize, status)
-}SlotStatusAns;
+}SlotStatusAns;
+
+typedef struct SAMStatusAns {
+	int errNum;
+	int isActive;//0:Inactive; 1:acitve
+	int chosenOfSAM;//the selected sam number:1,2,...
+
+	JSONCONVERT2OBJECT_MEMEBER_REGISTER(errNum, isActive, chosenOfSAM)
+}SAMStatusAns;

+ 60 - 0
DevAdapter/simulator/cardissuer.1.1/cardissuer_impl.cpp

@@ -298,6 +298,39 @@ ErrorCodeEnum CardIssuerImpl::ICCommand(CmdInfo sendBuf, CmdInfo& recvBuf)
 	return err;
 }
 
+ErrorCodeEnum CardIssuerImpl::SAMActive(BYTE vcc)
+{
+	ErrorCodeEnum err = Error_Succeed;
+	SimulatorCommonAns ans;
+
+	err = SimulatorHttpFunction(EntityName, "SAMActive", ans);
+	LOG4VTM(INFO, "SAMActive err = " << err);
+
+	return err;
+}
+
+ErrorCodeEnum CardIssuerImpl::SAMDeactivate()
+{
+	ErrorCodeEnum err = Error_Succeed;
+	SimulatorCommonAns ans;
+
+	err = SimulatorHttpFunction(EntityName, "SAMDeactivate", ans);
+	LOG4VTM(INFO, "SAMDeactivate err = " << err);
+
+	return err;
+}
+
+ErrorCodeEnum CardIssuerImpl::SAMWarmReset()
+{
+	ErrorCodeEnum err = Error_Succeed;
+	SimulatorCommonAns ans;
+
+	err = SimulatorHttpFunction(EntityName, "SAMWarmReset", ans);
+	LOG4VTM(INFO, "SAMWarmReset err = " << err);
+
+	return err;
+}
+
 ErrorCodeEnum CardIssuerImpl::SAMCommand(CmdInfo sendBuf, CmdInfo& recvBuf)
 {
 	ErrorCodeEnum err = Error_Succeed;
@@ -314,6 +347,33 @@ ErrorCodeEnum CardIssuerImpl::SAMCommand(CmdInfo sendBuf, CmdInfo& recvBuf)
 	return err;
 }
 
+ErrorCodeEnum CardIssuerImpl::SAMQueryStatus(SAMStatus& samStatus)
+{
+	ErrorCodeEnum err = Error_Succeed;
+	SAMStatusAns ans;
+
+	err = SimulatorHttpFunction(EntityName, "SAMQueryStatus", ans);
+	LOG4VTM(INFO, "SAMQueryStatus err = " << err);
+
+	if (err == Error_Succeed) {
+		samStatus.isActive = ans.isActive;
+		samStatus.chosenOfSAM = ans.chosenOfSAM;
+	}
+
+	return err;
+}
+
+ErrorCodeEnum CardIssuerImpl::SAMSelect(const int sn)
+{
+	ErrorCodeEnum err = Error_Succeed;
+	SimulatorCommonAns ans;
+
+	err = SimulatorHttpFunction(EntityName, "SAMSelect", ans);
+	LOG4VTM(INFO, "SAMSelect err = " << err);
+
+	return err;
+}
+
 ErrorCodeEnum CardIssuerImpl::ActiveICCardATR(CmdInfo& atrBuf)
 {
 	ErrorCodeEnum err = Error_Succeed;

+ 5 - 5
DevAdapter/simulator/cardissuer.1.1/cardissuer_impl.h

@@ -82,11 +82,11 @@ public:
 	//使用(卡库,卡机)
 	ErrorCodeEnum ICCommand(CmdInfo sendBuf, CmdInfo& recvBuf);
 	//////////////////SAM 卡操作部分////////////////////
-	ErrorCodeEnum SAMActive(BYTE vcc = 0x30) { return Error_NotImpl; }//使用(卡库,卡机)
-	ErrorCodeEnum SAMDeactivate() { return Error_NotImpl; }//使用(卡库,卡机)
-	ErrorCodeEnum SAMWarmReset() { return Error_NotImpl; }//使用(卡库,卡机)
-	ErrorCodeEnum SAMQueryStatus(SAMStatus& samStatus) { return Error_NotImpl; }//使用(卡库,卡机)
-	ErrorCodeEnum SAMSelect(const int sn) { return Error_NotImpl; }//使用(卡库,卡机)
+	ErrorCodeEnum SAMActive(BYTE vcc = 0x30);//使用(卡库,卡机)
+	ErrorCodeEnum SAMDeactivate();//使用(卡库,卡机)
+	ErrorCodeEnum SAMWarmReset();//使用(卡库,卡机)
+	ErrorCodeEnum SAMQueryStatus(SAMStatus& samStatus);//使用(卡库,卡机)
+	ErrorCodeEnum SAMSelect(const int sn);//使用(卡库,卡机)
 	//即时制卡卡库需要实现SAMCommand,用来执行apdu指令
 	ErrorCodeEnum SAMCommand(CmdInfo sendBuf, CmdInfo& recvBuf);//使用(卡库,卡机)
 	//即时制卡卡库需要实现ActiveICCardATR,用来激活卡片,返回ATR

+ 9 - 1
DevAdapter/simulator/cardissuerstand.1.1/cardissuer_httpans.h

@@ -112,4 +112,12 @@ typedef struct SlotStatusAns {
 	BYTE status[MAX_SLOT_BUFFER_SIZE];
 
 	JSONCONVERT2OBJECT_MEMEBER_REGISTER(errNum, dwSize, status)
-}SlotStatusAns;
+}SlotStatusAns;
+
+typedef struct SAMStatusAns {
+	int errNum;
+	int isActive;//0:Inactive; 1:acitve
+	int chosenOfSAM;//the selected sam number:1,2,...
+
+	JSONCONVERT2OBJECT_MEMEBER_REGISTER(errNum, isActive, chosenOfSAM)
+}SAMStatusAns;

+ 60 - 0
DevAdapter/simulator/cardissuerstand.1.1/cardissuer_impl.cpp

@@ -298,6 +298,39 @@ ErrorCodeEnum CardIssuerImpl::ICCommand(CmdInfo sendBuf, CmdInfo& recvBuf)
 	return err;
 }
 
+ErrorCodeEnum CardIssuerImpl::SAMActive(BYTE vcc)
+{
+	ErrorCodeEnum err = Error_Succeed;
+	SimulatorCommonAns ans;
+
+	err = SimulatorHttpFunction(EntityName, "SAMActive", ans);
+	LOG4VTM(INFO, "SAMActive err = " << err);
+
+	return err;
+}
+
+ErrorCodeEnum CardIssuerImpl::SAMDeactivate()
+{
+	ErrorCodeEnum err = Error_Succeed;
+	SimulatorCommonAns ans;
+
+	err = SimulatorHttpFunction(EntityName, "SAMDeactivate", ans);
+	LOG4VTM(INFO, "SAMDeactivate err = " << err);
+
+	return err;
+}
+
+ErrorCodeEnum CardIssuerImpl::SAMWarmReset()
+{
+	ErrorCodeEnum err = Error_Succeed;
+	SimulatorCommonAns ans;
+
+	err = SimulatorHttpFunction(EntityName, "SAMWarmReset", ans);
+	LOG4VTM(INFO, "SAMWarmReset err = " << err);
+
+	return err;
+}
+
 ErrorCodeEnum CardIssuerImpl::SAMCommand(CmdInfo sendBuf, CmdInfo& recvBuf)
 {
 	ErrorCodeEnum err = Error_Succeed;
@@ -314,6 +347,33 @@ ErrorCodeEnum CardIssuerImpl::SAMCommand(CmdInfo sendBuf, CmdInfo& recvBuf)
 	return err;
 }
 
+ErrorCodeEnum CardIssuerImpl::SAMQueryStatus(SAMStatus& samStatus)
+{
+	ErrorCodeEnum err = Error_Succeed;
+	SAMStatusAns ans;
+
+	err = SimulatorHttpFunction(EntityName, "SAMQueryStatus", ans);
+	LOG4VTM(INFO, "SAMQueryStatus err = " << err);
+
+	if (err == Error_Succeed) {
+		samStatus.isActive = ans.isActive;
+		samStatus.chosenOfSAM = ans.chosenOfSAM;
+	}
+
+	return err;
+}
+
+ErrorCodeEnum CardIssuerImpl::SAMSelect(const int sn)
+{
+	ErrorCodeEnum err = Error_Succeed;
+	SimulatorCommonAns ans;
+
+	err = SimulatorHttpFunction(EntityName, "SAMSelect", ans);
+	LOG4VTM(INFO, "SAMSelect err = " << err);
+
+	return err;
+}
+
 ErrorCodeEnum CardIssuerImpl::ActiveICCardATR(CmdInfo& atrBuf)
 {
 	ErrorCodeEnum err = Error_Succeed;

+ 5 - 5
DevAdapter/simulator/cardissuerstand.1.1/cardissuer_impl.h

@@ -82,11 +82,11 @@ public:
 	//使用(卡库,卡机)
 	ErrorCodeEnum ICCommand(CmdInfo sendBuf, CmdInfo& recvBuf);
 	//////////////////SAM 卡操作部分////////////////////
-	ErrorCodeEnum SAMActive(BYTE vcc = 0x30) { return Error_NotImpl; }//使用(卡库,卡机)
-	ErrorCodeEnum SAMDeactivate() { return Error_NotImpl; }//使用(卡库,卡机)
-	ErrorCodeEnum SAMWarmReset() { return Error_NotImpl; }//使用(卡库,卡机)
-	ErrorCodeEnum SAMQueryStatus(SAMStatus& samStatus) { return Error_NotImpl; }//使用(卡库,卡机)
-	ErrorCodeEnum SAMSelect(const int sn) { return Error_NotImpl; }//使用(卡库,卡机)
+	ErrorCodeEnum SAMActive(BYTE vcc = 0x30);//使用(卡库,卡机)
+	ErrorCodeEnum SAMDeactivate();//使用(卡库,卡机)
+	ErrorCodeEnum SAMWarmReset();//使用(卡库,卡机)
+	ErrorCodeEnum SAMQueryStatus(SAMStatus& samStatus);//使用(卡库,卡机)
+	ErrorCodeEnum SAMSelect(const int sn);//使用(卡库,卡机)
 	//即时制卡卡库需要实现SAMCommand,用来执行apdu指令
 	ErrorCodeEnum SAMCommand(CmdInfo sendBuf, CmdInfo& recvBuf);//使用(卡库,卡机)
 	//即时制卡卡库需要实现ActiveICCardATR,用来激活卡片,返回ATR

+ 9 - 1
DevAdapter/simulator/cardissuerstore.1.1/cardissuer_httpans.h

@@ -112,4 +112,12 @@ typedef struct SlotStatusAns {
 	BYTE status[MAX_SLOT_BUFFER_SIZE];
 
 	JSONCONVERT2OBJECT_MEMEBER_REGISTER(errNum, dwSize, status)
-}SlotStatusAns;
+}SlotStatusAns;
+
+typedef struct SAMStatusAns {
+	int errNum;
+	int isActive;//0:Inactive; 1:acitve
+	int chosenOfSAM;//the selected sam number:1,2,...
+
+	JSONCONVERT2OBJECT_MEMEBER_REGISTER(errNum, isActive, chosenOfSAM)
+}SAMStatusAns;

+ 60 - 0
DevAdapter/simulator/cardissuerstore.1.1/cardissuer_impl.cpp

@@ -298,6 +298,39 @@ ErrorCodeEnum CardIssuerImpl::ICCommand(CmdInfo sendBuf, CmdInfo& recvBuf)
 	return err;
 }
 
+ErrorCodeEnum CardIssuerImpl::SAMActive(BYTE vcc)
+{
+	ErrorCodeEnum err = Error_Succeed;
+	SimulatorCommonAns ans;
+
+	err = SimulatorHttpFunction(EntityName, "SAMActive", ans);
+	LOG4VTM(INFO, "SAMActive err = " << err);
+
+	return err;
+}
+
+ErrorCodeEnum CardIssuerImpl::SAMDeactivate()
+{
+	ErrorCodeEnum err = Error_Succeed;
+	SimulatorCommonAns ans;
+
+	err = SimulatorHttpFunction(EntityName, "SAMDeactivate", ans);
+	LOG4VTM(INFO, "SAMDeactivate err = " << err);
+
+	return err;
+}
+
+ErrorCodeEnum CardIssuerImpl::SAMWarmReset()
+{
+	ErrorCodeEnum err = Error_Succeed;
+	SimulatorCommonAns ans;
+
+	err = SimulatorHttpFunction(EntityName, "SAMWarmReset", ans);
+	LOG4VTM(INFO, "SAMWarmReset err = " << err);
+
+	return err;
+}
+
 ErrorCodeEnum CardIssuerImpl::SAMCommand(CmdInfo sendBuf, CmdInfo& recvBuf)
 {
 	ErrorCodeEnum err = Error_Succeed;
@@ -314,6 +347,33 @@ ErrorCodeEnum CardIssuerImpl::SAMCommand(CmdInfo sendBuf, CmdInfo& recvBuf)
 	return err;
 }
 
+ErrorCodeEnum CardIssuerImpl::SAMQueryStatus(SAMStatus& samStatus)
+{
+	ErrorCodeEnum err = Error_Succeed;
+	SAMStatusAns ans;
+
+	err = SimulatorHttpFunction(EntityName, "SAMQueryStatus", ans);
+	LOG4VTM(INFO, "SAMQueryStatus err = " << err);
+
+	if (err == Error_Succeed) {
+		samStatus.isActive = ans.isActive;
+		samStatus.chosenOfSAM = ans.chosenOfSAM;
+	}
+
+	return err;
+}
+
+ErrorCodeEnum CardIssuerImpl::SAMSelect(const int sn)
+{
+	ErrorCodeEnum err = Error_Succeed;
+	SimulatorCommonAns ans;
+
+	err = SimulatorHttpFunction(EntityName, "SAMSelect", ans);
+	LOG4VTM(INFO, "SAMSelect err = " << err);
+
+	return err;
+}
+
 ErrorCodeEnum CardIssuerImpl::ActiveICCardATR(CmdInfo& atrBuf)
 {
 	ErrorCodeEnum err = Error_Succeed;

+ 5 - 5
DevAdapter/simulator/cardissuerstore.1.1/cardissuer_impl.h

@@ -82,11 +82,11 @@ public:
 	//使用(卡库,卡机)
 	ErrorCodeEnum ICCommand(CmdInfo sendBuf, CmdInfo& recvBuf) ;
 	//////////////////SAM 卡操作部分////////////////////
-	ErrorCodeEnum SAMActive(BYTE vcc = 0x30) { return Error_NotImpl; }//使用(卡库,卡机)
-	ErrorCodeEnum SAMDeactivate() { return Error_NotImpl; }//使用(卡库,卡机)
-	ErrorCodeEnum SAMWarmReset() { return Error_NotImpl; }//使用(卡库,卡机)
-	ErrorCodeEnum SAMQueryStatus(SAMStatus& samStatus) { return Error_NotImpl; }//使用(卡库,卡机)
-	ErrorCodeEnum SAMSelect(const int sn) { return Error_NotImpl; }//使用(卡库,卡机)
+	ErrorCodeEnum SAMActive(BYTE vcc = 0x30);//使用(卡库,卡机)
+	ErrorCodeEnum SAMDeactivate();//使用(卡库,卡机)
+	ErrorCodeEnum SAMWarmReset();//使用(卡库,卡机)
+	ErrorCodeEnum SAMQueryStatus(SAMStatus& samStatus);//使用(卡库,卡机)
+	ErrorCodeEnum SAMSelect(const int sn);//使用(卡库,卡机)
 	//即时制卡卡库需要实现SAMCommand,用来执行apdu指令
 	ErrorCodeEnum SAMCommand(CmdInfo sendBuf, CmdInfo& recvBuf) ;//使用(卡库,卡机)
 	//即时制卡卡库需要实现ActiveICCardATR,用来激活卡片,返回ATR