|
|
@@ -77,6 +77,8 @@ enum EvtType
|
|
|
USER_EVT_JS_PRINT_CARD_FINISHED,
|
|
|
USER_EVT_JS_SAM_IC_COMMAND,
|
|
|
USER_EVT_JS_SAM_IC_COMMAND_FINISHED,
|
|
|
+ USER_EVT_JS_POSTONLINE,
|
|
|
+ USER_EVT_JS_POSTONLINE_FINISHED
|
|
|
};
|
|
|
enum SAMICCommandType
|
|
|
{
|
|
|
@@ -895,6 +897,22 @@ public:
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+class PostOnlineJSEvent : public FSMEvent
|
|
|
+{
|
|
|
+public:
|
|
|
+ PostOnlineJSEvent() : FSMEvent(USER_EVT_JS_POSTONLINE) {}
|
|
|
+ ~PostOnlineJSEvent() {}
|
|
|
+ SpReqAnsContext<CardIssuerStoreService_PostOnlineJS_Req, CardIssuerStoreService_PostOnlineJS_Ans>::Pointer ctx;
|
|
|
+ virtual void OnUnhandled()
|
|
|
+ {
|
|
|
+ if (ctx != NULL)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Operate unhandled");
|
|
|
+ ctx->Answer(Error_Unexpect, CardIssuerStore_UserErrorCode_EntityInStateCannotProcess);
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
struct AddCardInfo
|
|
|
{
|
|
|
int slot;
|
|
|
@@ -959,6 +977,7 @@ public:
|
|
|
FSM_RULE_ENTRY(s4, s11, USER_EVT_JS_WRITE_TRACK, 0)//JS 写卡
|
|
|
FSM_RULE_ENTRY(s4, s14, USER_EVT_JS_SAM_IC_COMMAND, 0)//JS ic交互
|
|
|
FSM_RULE_ENTRY(s4, s18, USER_EVT_JS_PRINT_CARD, 0)//JS 打印
|
|
|
+ FSM_RULE_ENTRY(s4, s5, USER_EVT_JS_POSTONLINE, 0)//JS 联机后处理
|
|
|
FSM_RULE_ENTRY(s5,s4,USER_EVT_READ_FINISHED,0)
|
|
|
FSM_RULE_ENTRY(s5,s9,USER_EVT_READ_FINISHED,1)
|
|
|
FSM_RULE_ENTRY(s5,s4,USER_EVT_READ_FINISHED,2)
|
|
|
@@ -966,6 +985,7 @@ public:
|
|
|
FSM_RULE_ENTRY(s5, s4, USER_EVT_EXIT, 0)
|
|
|
FSM_RULE_ENTRY(s5, s4, USER_EVT_PREONLINEFINISHED, 0)
|
|
|
FSM_RULE_ENTRY(s5, s4, USER_EVT_POSTONLINEFINISHED, 0)
|
|
|
+ FSM_RULE_ENTRY_ANY(s5, s4, USER_EVT_JS_POSTONLINE_FINISHED)//JS
|
|
|
FSM_RULE_ENTRY(s6,s7,USER_EVT_EJECTFINISHED,0)
|
|
|
FSM_RULE_ENTRY(s6,s9,USER_EVT_EJECTFINISHED,1)
|
|
|
FSM_RULE_ENTRY(s6, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
|
|
|
@@ -1317,11 +1337,15 @@ public:
|
|
|
int PrintCardImmediatelyJS(SpReqAnsContext<CardIssuerStoreService_PrintCardImmediatelyJS_Req, CardIssuerStoreService_PrintCardImmediatelyJS_Ans>::Pointer ctx);
|
|
|
|
|
|
int SAMICCommandJS(SpReqAnsContext<CardIssuerStoreService_SAMICCommandJS_Req, CardIssuerStoreService_SAMICCommandJS_Ans>::Pointer ctx);
|
|
|
+
|
|
|
+ int PostOnlineJS(SpReqAnsContext<CardIssuerStoreService_PostOnlineJS_Req, CardIssuerStoreService_PostOnlineJS_Ans>::Pointer ctx);
|
|
|
#pragma endregion JS接口具体实现方法
|
|
|
|
|
|
#pragma region JS新增接口
|
|
|
DWORD GetFsmStateErrCode();
|
|
|
CSimpleStringA MaskCardno(const char* cardno);
|
|
|
+ int PostOnlineJS_Contact(SpReqAnsContext<CardIssuerStoreService_PostOnlineJS_Req, CardIssuerStoreService_PostOnlineJS_Ans>::Pointer ctx, bool& bICOK);
|
|
|
+ int PostOnlineJS_RF(SpReqAnsContext<CardIssuerStoreService_PostOnlineJS_Req, CardIssuerStoreService_PostOnlineJS_Ans>::Pointer ctx);
|
|
|
#pragma endregion JS新增接口
|
|
|
|
|
|
};
|
|
|
@@ -1672,6 +1696,20 @@ struct SAMICCommandJSTask : public ITaskSp
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+//IC交互
|
|
|
+struct PostOnlineJSTask : public ITaskSp
|
|
|
+{
|
|
|
+ CCardIssuerFSM* fsm;
|
|
|
+ SpReqAnsContext<CardIssuerStoreService_PostOnlineJS_Req, CardIssuerStoreService_PostOnlineJS_Ans>::Pointer ctx;
|
|
|
+ PostOnlineJSTask(CCardIssuerFSM* f) : fsm(f) {}
|
|
|
+ void Process()
|
|
|
+ {
|
|
|
+ FSMEvent* e = new FSMEvent(USER_EVT_JS_POSTONLINE_FINISHED);
|
|
|
+ e->param1 = fsm->PostOnlineJS(ctx);
|
|
|
+ fsm->PostEventFIFO(e);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
|
|
|
|
|
|
#pragma endregion JS接口 工作线程
|