|
@@ -9,6 +9,7 @@
|
|
|
#include "AccessAuthorization_client_g.h"
|
|
|
#include "HealthManager_client_g.h"
|
|
|
#include "DevFSMCommBase.hpp"
|
|
|
+#include "CommEntityUtil.hpp"
|
|
|
#include "CardIssuerClass.h"
|
|
|
#include "CardAssist.h"
|
|
|
#include "ICDataElement.h"
|
|
@@ -46,17 +47,13 @@ enum EvtType
|
|
|
USER_EVT_EXIT,
|
|
|
USER_EVT_READ,
|
|
|
USER_EVT_READ_FINISHED,
|
|
|
- USER_EVT_WRITE,
|
|
|
- USER_EVT_WRITE_FINISHED,
|
|
|
USER_EVT_GET_MATERIAL_EX,
|
|
|
USER_EVT_SET_MATERIAL_EX,
|
|
|
USER_EVT_ISSUE_EX,
|
|
|
USER_EVT_ISSUE_EX_FINISHED,
|
|
|
- USER_EVT_SAM_IC,
|
|
|
- USER_EVT_SAM_IC_FINISHED,
|
|
|
USER_EVT_BACK_TO_INIT,
|
|
|
//新定义JS状态机事件枚举
|
|
|
- USER_EVT_JS_CAPTURE = EVT_USER + 38,
|
|
|
+ USER_EVT_JS_CAPTURE,
|
|
|
USER_EVT_JS_CAPTURE_FINISHED,
|
|
|
USER_EVT_JS_EJECT,
|
|
|
USER_EVT_JS_EJECT_FINISHED,
|
|
@@ -64,14 +61,13 @@ enum EvtType
|
|
|
USER_EVT_JS_POSTONLINE_FINISHED,
|
|
|
USER_EVT_JS_ISSUE_FROM_BOX,
|
|
|
USER_EVT_JS_ISSUE_FROM_BOX_FINISHED,
|
|
|
- USER_EVT_QUICK_SELF_CHECK,
|
|
|
- USER_EVT_QUICK_SELF_CHECK_FINISHED,
|
|
|
USER_EVT_JS_READ,
|
|
|
USER_EVT_JS_READ_FINISHED,
|
|
|
USER_EVT_JS_INSERT,
|
|
|
USER_EVT_JS_INSERT_FINISHED,
|
|
|
USER_EVT_JS_INSERT_CANCEL,
|
|
|
- USER_EVT_JS_EXIT_MIAN_PAGE
|
|
|
+ USER_EVT_JS_EXIT_MIAN_PAGE,
|
|
|
+ USER_EVT_QUERY_CARD_POS_FINISHED
|
|
|
};
|
|
|
enum SAMICCommandType
|
|
|
{
|
|
@@ -91,6 +87,17 @@ enum SAMICCommandType
|
|
|
SAMICCommand_RFIC_Deactivate,
|
|
|
SAMICCommand_RFIC_Command,
|
|
|
};
|
|
|
+enum ReadMode
|
|
|
+{
|
|
|
+ //<!--读取模式:1 读磁、2 接触IC优先、3 非接IC优先、4 非接IC、5 读磁+接触IC优先、6 读磁+非接IC优先、7 读磁+非接IC-->
|
|
|
+ ReadMode_MagOnly = 1,
|
|
|
+ ReadMode_ContactICFirst = 2,
|
|
|
+ ReadMode_ContactlessICFirst = 3,
|
|
|
+ ReadMode_ContactlessICOnly = 4,
|
|
|
+ ReadMode_Mag_ContactICFirst = 5,
|
|
|
+ ReadMode_Mag_ContactlessICFirst = 6,
|
|
|
+ ReadMode_Mag_ContactlessICOnly = 7,
|
|
|
+};
|
|
|
|
|
|
typedef int(*lpCMBdecodeMag2)(char* Mag2Data, char * data);
|
|
|
typedef int(*lpCMBdecodeEx)( char* MagData, char * type, char * data);
|
|
@@ -139,14 +146,6 @@ public:
|
|
|
CardAcceptEvent() : FSMEvent(USER_EVT_ACCEPT) {}
|
|
|
~CardAcceptEvent() {}
|
|
|
SpReqAnsContext<CardIssuerStandService_Insert_Req, CardIssuerStandService_Insert_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA23CL")("card accept unhandled");
|
|
|
- ctx->Answer(Error_InvalidState);
|
|
|
- }
|
|
|
- }
|
|
|
};
|
|
|
class CardIssueEvent : public FSMEvent
|
|
|
{
|
|
@@ -154,14 +153,6 @@ public:
|
|
|
CardIssueEvent() : FSMEvent(USER_EVT_ISSUE) {}
|
|
|
~CardIssueEvent() {}
|
|
|
SpReqAnsContext<CardIssuerStandService_Issue_Req, CardIssuerStandService_Issue_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA23CL")("card issue unhandled");
|
|
|
- ctx->Answer(Error_InvalidState);
|
|
|
- }
|
|
|
- }
|
|
|
};
|
|
|
|
|
|
class CancelAcceptEvent : public FSMEvent
|
|
@@ -169,10 +160,6 @@ class CancelAcceptEvent : public FSMEvent
|
|
|
public:
|
|
|
CancelAcceptEvent() : FSMEvent(USER_EVT_ACCEPT_CANCEL) {}
|
|
|
~CancelAcceptEvent() {}
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- //DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA23CL")("card cancel accept unhandled");
|
|
|
- }
|
|
|
};
|
|
|
|
|
|
class CardReadEvent : public FSMEvent
|
|
@@ -181,14 +168,6 @@ public:
|
|
|
CardReadEvent() : FSMEvent(USER_EVT_READ) {}
|
|
|
~CardReadEvent() {}
|
|
|
SpReqAnsContext<CardIssuerStandService_Read_Req, CardIssuerStandService_Read_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA23CL")("card read unhandled");
|
|
|
- ctx->Answer(Error_InvalidState);
|
|
|
- }
|
|
|
- }
|
|
|
protected:
|
|
|
private:
|
|
|
};
|
|
@@ -198,13 +177,6 @@ public:
|
|
|
CardReadFinishedEvent() : FSMEvent(USER_EVT_READ_FINISHED) {}
|
|
|
~CardReadFinishedEvent() {}
|
|
|
SpReqAnsContext<CardIssuerStandService_Read_Req, CardIssuerStandService_Read_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- {
|
|
|
- //DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA23CL")("card read unhandled(new)");
|
|
|
- }
|
|
|
- }
|
|
|
protected:
|
|
|
private:
|
|
|
};
|
|
@@ -230,11 +202,6 @@ public:
|
|
|
PreOnlineEvent() : FSMEvent(USER_EVT_PREONLINE){}
|
|
|
~PreOnlineEvent(){}
|
|
|
SpReqAnsContext<CardIssuerStandService_PreOnline_Req,CardIssuerStandService_PreOnline_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- ctx->Answer(Error_InvalidState);
|
|
|
- }
|
|
|
protected:
|
|
|
private:
|
|
|
};
|
|
@@ -244,11 +211,6 @@ public:
|
|
|
PostOnlineEvent() : FSMEvent(USER_EVT_POSTONLINE){}
|
|
|
~PostOnlineEvent(){}
|
|
|
SpReqAnsContext<CardIssuerStandService_PostOnline_Req,CardIssuerStandService_PostOnline_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- ctx->Answer(Error_InvalidState);
|
|
|
- }
|
|
|
protected:
|
|
|
private:
|
|
|
};
|
|
@@ -258,11 +220,6 @@ public:
|
|
|
CardCaptureEvent() : FSMEvent(USER_EVT_CAPTURE){}
|
|
|
~CardCaptureEvent(){}
|
|
|
SpReqAnsContext<CardIssuerStandService_Capture_Req,CardIssuerStandService_Capture_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- ctx->Answer(Error_InvalidState);
|
|
|
- }
|
|
|
|
|
|
protected:
|
|
|
private:
|
|
@@ -273,57 +230,16 @@ public:
|
|
|
CardEjectEvent() : FSMEvent(USER_EVT_EJECT){}
|
|
|
~CardEjectEvent(){}
|
|
|
SpReqAnsContext<CardIssuerStandService_Eject_Req,CardIssuerStandService_Eject_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- ctx->Answer(Error_InvalidState);
|
|
|
- }
|
|
|
-protected:
|
|
|
-private:
|
|
|
-};
|
|
|
-class CardWriteEvent : public FSMEvent
|
|
|
-{
|
|
|
-public:
|
|
|
- CardWriteEvent() : FSMEvent(USER_EVT_WRITE){}
|
|
|
- ~CardWriteEvent(){}
|
|
|
- SpReqAnsContext<CardIssuerStandService_WriteTrack_Req,CardIssuerStandService_WriteTrack_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- {
|
|
|
- ctx->Answer(Error_InvalidState);
|
|
|
- }
|
|
|
- }
|
|
|
-protected:
|
|
|
-private:
|
|
|
-};
|
|
|
-class CardWriteFinishedEvent : public FSMEvent
|
|
|
-{
|
|
|
-public:
|
|
|
- CardWriteFinishedEvent() : FSMEvent(USER_EVT_WRITE_FINISHED){}
|
|
|
- ~CardWriteFinishedEvent(){}
|
|
|
- SpReqAnsContext<CardIssuerStandService_WriteTrack_Req,CardIssuerStandService_WriteTrack_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("card read unhandled(new)");
|
|
|
- }
|
|
|
- }
|
|
|
protected:
|
|
|
private:
|
|
|
};
|
|
|
+
|
|
|
class GetMaterialExEvent : public FSMEvent
|
|
|
{
|
|
|
public:
|
|
|
GetMaterialExEvent() : FSMEvent(USER_EVT_GET_MATERIAL_EX) {}
|
|
|
~GetMaterialExEvent() {}
|
|
|
SpReqAnsContext<CardIssuerStandService_GetMaterialCountEx_Req, CardIssuerStandService_GetMaterialCountEx_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- ctx->Answer(Error_InvalidState);
|
|
|
- }
|
|
|
protected:
|
|
|
private:
|
|
|
};
|
|
@@ -333,11 +249,6 @@ public:
|
|
|
SetMaterialExEvent() : FSMEvent(USER_EVT_SET_MATERIAL_EX){}
|
|
|
~SetMaterialExEvent(){}
|
|
|
SpReqAnsContext<CardIssuerStandService_SetMaterialCountEx_Req, CardIssuerStandService_SetMaterialCountEx_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- ctx->Answer(Error_InvalidState);
|
|
|
- }
|
|
|
protected:
|
|
|
private:
|
|
|
};
|
|
@@ -347,30 +258,8 @@ public:
|
|
|
CardIssueExEvent() : FSMEvent(USER_EVT_ISSUE_EX){}
|
|
|
~CardIssueExEvent(){}
|
|
|
SpReqAnsContext<CardIssuerStandService_IssueEx_Req, CardIssuerStandService_IssueEx_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA23CL")("card issue ex unhandled");
|
|
|
- ctx->Answer(Error_InvalidState);
|
|
|
- }
|
|
|
- }
|
|
|
-};
|
|
|
-class SAMICCommandEvent : public FSMEvent
|
|
|
-{
|
|
|
-public:
|
|
|
- SAMICCommandEvent() : FSMEvent(USER_EVT_SAM_IC){}
|
|
|
- ~SAMICCommandEvent(){}
|
|
|
- SpReqAnsContext<CardIssuerStandService_SAMICCommand_Req, CardIssuerStandService_SAMICCommand_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("sam/ic unhandled");
|
|
|
- ctx->Answer(Error_InvalidState);
|
|
|
- }
|
|
|
- }
|
|
|
};
|
|
|
+
|
|
|
#pragma region JS接口 event
|
|
|
//JS接口
|
|
|
class EjectJSEvent : public FSMEvent
|
|
@@ -379,13 +268,6 @@ public:
|
|
|
EjectJSEvent() : FSMEvent(USER_EVT_JS_EJECT) {}
|
|
|
~EjectJSEvent() {}
|
|
|
SpReqAnsContext<CardIssuerStandService_EjectJS_Req, CardIssuerStandService_EjectJS_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA23CL")("EjectJS Operate unhandled");
|
|
|
- }
|
|
|
- }
|
|
|
};
|
|
|
|
|
|
class CaptureJSEvent : public FSMEvent
|
|
@@ -394,13 +276,6 @@ public:
|
|
|
CaptureJSEvent() : FSMEvent(USER_EVT_JS_CAPTURE) {}
|
|
|
~CaptureJSEvent() {}
|
|
|
SpReqAnsContext<CardIssuerStandService_CaptureJS_Req, CardIssuerStandService_CaptureJS_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA23CL")("CaptureJS Operate unhandled");
|
|
|
- }
|
|
|
- }
|
|
|
};
|
|
|
|
|
|
class PostOnlineJSEvent : public FSMEvent
|
|
@@ -409,13 +284,6 @@ public:
|
|
|
PostOnlineJSEvent() : FSMEvent(USER_EVT_JS_POSTONLINE) {}
|
|
|
~PostOnlineJSEvent() {}
|
|
|
SpReqAnsContext<CardIssuerStandService_PostOnlineJS_Req, CardIssuerStandService_PostOnlineJS_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA23CL")("PostOnlineJS Operate unhandled");
|
|
|
- }
|
|
|
- }
|
|
|
};
|
|
|
|
|
|
class IssueFromBoxJSEvent : public FSMEvent
|
|
@@ -424,38 +292,10 @@ public:
|
|
|
IssueFromBoxJSEvent() : FSMEvent(USER_EVT_JS_ISSUE_FROM_BOX) {}
|
|
|
~IssueFromBoxJSEvent() {}
|
|
|
SpReqAnsContext<CardIssuerStandService_IssueFromBoxJS_Req, CardIssuerStandService_IssueFromBoxJS_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA23CL")("IssueFromBoxJS Operate unhandled");
|
|
|
- }
|
|
|
- }
|
|
|
};
|
|
|
|
|
|
-class QuickSelfcheckFinishEvent : public FSMEvent
|
|
|
-{
|
|
|
-public:
|
|
|
- QuickSelfcheckFinishEvent() : FSMEvent(USER_EVT_QUICK_SELF_CHECK_FINISHED) {}
|
|
|
- ~QuickSelfcheckFinishEvent() {}
|
|
|
-protected:
|
|
|
-private:
|
|
|
-};
|
|
|
|
|
|
-class ReadJSEvent : public FSMEvent
|
|
|
-{
|
|
|
-public:
|
|
|
- ReadJSEvent() : FSMEvent(USER_EVT_JS_READ) {}
|
|
|
- ~ReadJSEvent() {}
|
|
|
- SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA23CL")("ReadJS Operate unhandled");
|
|
|
- }
|
|
|
- }
|
|
|
-};
|
|
|
+
|
|
|
|
|
|
class InsertJSEvent : public FSMEvent
|
|
|
{
|
|
@@ -463,13 +303,6 @@ public:
|
|
|
InsertJSEvent() : FSMEvent(USER_EVT_JS_INSERT) {}
|
|
|
~InsertJSEvent() {}
|
|
|
SpReqAnsContext<CardIssuerStandService_InsertJS_Req, CardIssuerStandService_InsertJS_Ans>::Pointer ctx;
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- if (ctx != NULL)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA23CL")("InsertJS Operate unhandled");
|
|
|
- }
|
|
|
- }
|
|
|
};
|
|
|
|
|
|
class CancelInsertJSEvent : public FSMEvent
|
|
@@ -477,10 +310,6 @@ class CancelInsertJSEvent : public FSMEvent
|
|
|
public:
|
|
|
CancelInsertJSEvent() : FSMEvent(USER_EVT_JS_INSERT_CANCEL) {}
|
|
|
~CancelInsertJSEvent() {}
|
|
|
- virtual void OnUnhandled()
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA23CL")("CancelInsertJS Operate unhandled");
|
|
|
- }
|
|
|
};
|
|
|
|
|
|
#pragma endregion JS接口 event
|
|
@@ -814,7 +643,7 @@ struct SyncMaterialCountHTTPRet : CHTTPRet {
|
|
|
class CCardIssuerFSM : public CCommDevFSM<CCardIssuerFSM, CardIssuerClass>, public IFSMStateHooker
|
|
|
{
|
|
|
public:
|
|
|
- enum {s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s14,s15,s16};
|
|
|
+ enum {s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12};
|
|
|
BEGIN_FSM_STATE(CCardIssuerFSM)
|
|
|
FSM_STATE_ENTRY(s0,"Init",s0_on_entry,s0_on_exit,s0_on_event)
|
|
|
FSM_STATE_ENTRY(s1,"Initializing",s1_on_entry,s1_on_exit,s1_on_event)
|
|
@@ -827,10 +656,8 @@ public:
|
|
|
FSM_STATE_ENTRY(s8,"Capturing",s8_on_entry,s8_on_exit,s8_on_event)
|
|
|
FSM_STATE_ENTRY(s9,"Failed",s9_on_entry,s9_on_exit,s9_on_event)
|
|
|
FSM_STATE_ENTRY(s10,"Issuing",s10_on_entry,s10_on_exit,s10_on_event)
|
|
|
- FSM_STATE_ENTRY(s11,"Writing",s11_on_entry,s11_on_exit,s11_on_event)
|
|
|
- FSM_STATE_ENTRY(s14, "SAMIC", s14_on_entry, s14_on_exit, s14_on_event)
|
|
|
- FSM_STATE_ENTRY(s15, "ReadJSing", s15_on_entry, s15_on_exit, s15_on_event)
|
|
|
- FSM_STATE_ENTRY(s16, "IssueJSing", s16_on_entry, s16_on_exit, s16_on_event)
|
|
|
+ FSM_STATE_ENTRY(s11, "ReadJSing", s11_on_entry, s11_on_exit, s11_on_event)
|
|
|
+ FSM_STATE_ENTRY(s12, "IssueJSing", s12_on_entry, s12_on_exit, s12_on_event)
|
|
|
END_FSM_STATE()
|
|
|
|
|
|
BEGIN_FSM_RULE(CCardIssuerFSM,s0)
|
|
@@ -847,7 +674,7 @@ public:
|
|
|
FSM_RULE_ENTRY(s2,s10,USER_EVT_ISSUE,0)
|
|
|
FSM_RULE_ENTRY(s2, s10, USER_EVT_ISSUE_EX, 0)
|
|
|
FSM_RULE_ENTRY(s2, s3, USER_EVT_JS_INSERT, 0)//JS 插卡
|
|
|
- FSM_RULE_ENTRY(s2, s16, USER_EVT_JS_ISSUE_FROM_BOX, 0)//JS 卡箱发卡
|
|
|
+ FSM_RULE_ENTRY(s2, s12, USER_EVT_JS_ISSUE_FROM_BOX, 0)//JS 卡箱发卡
|
|
|
FSM_RULE_ENTRY(s2, s8, USER_EVT_JS_CAPTURE, 0)//JS 吞卡
|
|
|
FSM_RULE_ENTRY(s3,s4,USER_EVT_ACCEPTFINISHED,0)
|
|
|
FSM_RULE_ENTRY(s3,s9,USER_EVT_ACCEPTFINISHED,1)
|
|
@@ -867,15 +694,13 @@ public:
|
|
|
FSM_RULE_ENTRY(s4,s8,USER_EVT_ACCEPT,0)
|
|
|
FSM_RULE_ENTRY(s4,s8,USER_EVT_EXIT,1)
|
|
|
FSM_RULE_ENTRY(s4,s8,USER_EVT_CAPTURE,0)
|
|
|
- FSM_RULE_ENTRY(s4,s11,USER_EVT_WRITE,0)
|
|
|
- FSM_RULE_ENTRY(s4, s14, USER_EVT_SAM_IC, 0)
|
|
|
FSM_RULE_ENTRY(s4, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
|
|
|
FSM_RULE_ENTRY(s4, s2, USER_EVT_ISSUE_EX_FINISHED, 2)
|
|
|
FSM_RULE_ENTRY(s4, s6, USER_EVT_ISSUE_EX_FINISHED, 6)
|
|
|
FSM_RULE_ENTRY(s4, s5, USER_EVT_PREONLINE, 0)
|
|
|
FSM_RULE_ENTRY(s4, s5, USER_EVT_POSTONLINE, 0)
|
|
|
- FSM_RULE_ENTRY(s4, s15, USER_EVT_JS_READ, 0)//JS 读卡
|
|
|
- FSM_RULE_ENTRY(s4, s15, USER_EVT_JS_POSTONLINE, 0)//JS 联机后
|
|
|
+ FSM_RULE_ENTRY(s4, s11, USER_EVT_JS_READ, 0)//JS 读卡
|
|
|
+ FSM_RULE_ENTRY(s4, s11, USER_EVT_JS_POSTONLINE, 0)//JS 联机后
|
|
|
FSM_RULE_ENTRY(s4, s6, USER_EVT_JS_EJECT, 0)//JS 吐卡
|
|
|
FSM_RULE_ENTRY(s4, s8, USER_EVT_JS_CAPTURE, 0)//JS 吞卡
|
|
|
FSM_RULE_ENTRY(s4, s6, USER_EVT_JS_EXIT_MIAN_PAGE, 0)//JS 退回首页吐卡
|
|
@@ -887,8 +712,8 @@ 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(s6,s7,USER_EVT_EJECTFINISHED,0)
|
|
|
- FSM_RULE_ENTRY(s6,s9,USER_EVT_EJECTFINISHED,1)
|
|
|
+ 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)
|
|
|
FSM_RULE_ENTRY(s6, s2, USER_EVT_JS_EJECT_FINISHED, 0)//JS 吐卡取卡成功,取卡超时吞卡成功
|
|
|
FSM_RULE_ENTRY(s6, s9, USER_EVT_JS_EJECT_FINISHED, 1)//JS 吐卡失败,取卡超时吞卡失败
|
|
@@ -901,9 +726,8 @@ public:
|
|
|
FSM_RULE_ENTRY(s8, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
|
|
|
FSM_RULE_ENTRY(s8, s2, USER_EVT_JS_CAPTURE_FINISHED, 0)//JS 吞卡成功
|
|
|
FSM_RULE_ENTRY(s8, s9, USER_EVT_JS_CAPTURE_FINISHED, 1)//JS 吞卡失败
|
|
|
- FSM_RULE_ENTRY(s9, s2, USER_EVT_RESETFINISHED, 0)
|
|
|
- FSM_RULE_ENTRY(s9, s0, USER_EVT_RESETFINISHED, 2)
|
|
|
- FSM_RULE_ENTRY(s9, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
|
|
|
+ FSM_RULE_ENTRY(s9, s2, USER_EVT_QUERY_CARD_POS_FINISHED, 0)
|
|
|
+ FSM_RULE_ENTRY(s9, s4, USER_EVT_QUERY_CARD_POS_FINISHED, 2)
|
|
|
FSM_RULE_ENTRY(s10,s4,USER_EVT_ISSUE_FINISHED,0)
|
|
|
FSM_RULE_ENTRY(s10,s9,USER_EVT_ISSUE_FINISHED,1)
|
|
|
FSM_RULE_ENTRY(s10,s2,USER_EVT_ISSUE_FINISHED,2)
|
|
@@ -914,18 +738,15 @@ public:
|
|
|
FSM_RULE_ENTRY(s10, s6, USER_EVT_ISSUE_EX_FINISHED, 6)
|
|
|
FSM_RULE_ENTRY(s10, s2, USER_EVT_ISSUE_EX_FINISHED, 8)
|
|
|
FSM_RULE_ENTRY(s10, s2, USER_EVT_EXIT, 0)
|
|
|
- FSM_RULE_ENTRY(s11,s4,USER_EVT_WRITE_FINISHED,0)
|
|
|
- FSM_RULE_ENTRY(s11,s4,USER_EVT_WRITE_FINISHED,1)
|
|
|
- FSM_RULE_ENTRY(s14, s4, USER_EVT_SAM_IC_FINISHED, 0)
|
|
|
-
|
|
|
- FSM_RULE_ENTRY(s15, s4, USER_EVT_JS_READ_FINISHED, 0)//JS 读卡结果返回
|
|
|
- FSM_RULE_ENTRY(s15, s2, USER_EVT_JS_READ_FINISHED, 1)//JS 无卡
|
|
|
- FSM_RULE_ENTRY(s15, s4, USER_EVT_JS_POSTONLINE_FINISHED, 0)//JS
|
|
|
- FSM_RULE_ENTRY(s15, s4, USER_EVT_JS_EXIT_MIAN_PAGE, 0)//退出事件
|
|
|
- FSM_RULE_ENTRY(s16, s4, USER_EVT_JS_ISSUE_FROM_BOX_FINISHED, 0)//JS 发卡成功
|
|
|
- FSM_RULE_ENTRY(s16, s2, USER_EVT_JS_ISSUE_FROM_BOX_FINISHED, 1)//JS 发卡失败
|
|
|
- FSM_RULE_ENTRY(s16, s9, USER_EVT_JS_ISSUE_FROM_BOX_FINISHED, 2)//JS 发卡故障
|
|
|
- FSM_RULE_ENTRY(s16, s8, USER_EVT_JS_ISSUE_FROM_BOX_FINISHED, 3)//JS 退回首页进行吞卡
|
|
|
+
|
|
|
+ FSM_RULE_ENTRY(s11, s4, USER_EVT_JS_READ_FINISHED, 0)//JS 读卡结果返回
|
|
|
+ FSM_RULE_ENTRY(s11, s2, USER_EVT_JS_READ_FINISHED, 1)//JS 无卡
|
|
|
+ FSM_RULE_ENTRY(s11, s4, USER_EVT_JS_POSTONLINE_FINISHED, 0)//JS
|
|
|
+ FSM_RULE_ENTRY(s11, s4, USER_EVT_JS_EXIT_MIAN_PAGE, 0)//退出事件
|
|
|
+ FSM_RULE_ENTRY(s12, s4, USER_EVT_JS_ISSUE_FROM_BOX_FINISHED, 0)//JS 发卡成功
|
|
|
+ FSM_RULE_ENTRY(s12, s2, USER_EVT_JS_ISSUE_FROM_BOX_FINISHED, 1)//JS 发卡失败
|
|
|
+ FSM_RULE_ENTRY(s12, s9, USER_EVT_JS_ISSUE_FROM_BOX_FINISHED, 2)//JS 发卡故障
|
|
|
+ FSM_RULE_ENTRY(s12, s8, USER_EVT_JS_ISSUE_FROM_BOX_FINISHED, 3)//JS 退回首页进行吞卡
|
|
|
END_FSM_RULE()
|
|
|
|
|
|
CCardIssuerFSM() : m_bCancelAccept(false),m_bWaitingAccept(false),
|
|
@@ -938,7 +759,7 @@ public:
|
|
|
, m_bCancelByRFIC(false), m_devOpenFailedCount(0)
|
|
|
, m_EacQueryHost(""),m_eacQueryFlag(0), m_bUseCardnoMismatch(false), m_ICRetryTimes(1)
|
|
|
, m_bCardFromHopper(true), m_bStopUseRF(false),m_rfVendorList(""), m_bUseRFTillNext(false), m_csSwallowCardUrl(""), m_csSyncMaterialUrl("")
|
|
|
- , m_quickSelfcheck(false), m_SelfcheckSleepTime(10000), m_bCancelInsert(false), m_bReturnMainPage(false)
|
|
|
+ , m_bCancelInsert(false), m_bReturnMainPage(false)
|
|
|
{
|
|
|
HARDWARE_ENTITY_RESET_ENTITYID(m_entCode, 0x203);
|
|
|
cmdDecodeMag2 = NULL;
|
|
@@ -986,20 +807,14 @@ public:
|
|
|
void s10_on_entry();
|
|
|
void s10_on_exit();
|
|
|
unsigned int s10_on_event(FSMEvent* event);
|
|
|
+
|
|
|
void s11_on_entry();
|
|
|
void s11_on_exit();
|
|
|
unsigned int s11_on_event(FSMEvent* event);
|
|
|
- void s14_on_entry();
|
|
|
- void s14_on_exit();
|
|
|
- unsigned int s14_on_event(FSMEvent* event);
|
|
|
|
|
|
- void s15_on_entry();
|
|
|
- void s15_on_exit();
|
|
|
- unsigned int s15_on_event(FSMEvent* event);
|
|
|
-
|
|
|
- void s16_on_entry();
|
|
|
- void s16_on_exit();
|
|
|
- unsigned int s16_on_event(FSMEvent* event);
|
|
|
+ void s12_on_entry();
|
|
|
+ void s12_on_exit();
|
|
|
+ unsigned int s12_on_event(FSMEvent* event);
|
|
|
|
|
|
ErrorCodeEnum OpenDevice(BYTE btOpenType, const char *pDevSN);
|
|
|
int Initial();
|
|
@@ -1047,7 +862,7 @@ public:
|
|
|
else
|
|
|
return m_eDevState;
|
|
|
}
|
|
|
- int QueryCardInfo();
|
|
|
+ int QueryCardPos();
|
|
|
|
|
|
int UpdateLocalRunCfg(CAutoArray<int> hopperArr);
|
|
|
int SyncDataToDB(bool bMaintain[12],bool bSetCaptured=true);//同步物料计数
|
|
@@ -1094,7 +909,7 @@ private:
|
|
|
, m_bCDA, m_bIssuingExit, m_bCardIssued, m_bHasHopper[HOPPER_NUM]
|
|
|
, m_bSettingMaterial, m_hasCardWhileDevOpen, m_bCancelByRFIC
|
|
|
, m_bCardActiveNotify, m_bCardFromHopper, m_bUseCardnoMismatch, m_bStopUseRF;
|
|
|
- bool m_bUseRFTillNext;//if ReadCard by RF,the following PreOnline & PostOnline always use RF till the next card(insert/issue)
|
|
|
+ bool m_bSupportRF, m_bUseRFTillNext;//if ReadCard by RF,the following PreOnline & PostOnline always use RF till the next card(insert/issue)
|
|
|
ErrorCodeEnum m_testResult;
|
|
|
|
|
|
int m_CardCaptured;
|
|
@@ -1125,7 +940,7 @@ private:
|
|
|
bool LoadCMBPrint(CSimpleStringA csBinPath);
|
|
|
DevCategoryInfo m_devCat;
|
|
|
bool ToRegistCaptureCardInfo();
|
|
|
- bool IfUseRf();
|
|
|
+ void CheckSupportRf();
|
|
|
CSimpleStringA m_EacQueryHost, m_csSwallowCardUrl, m_csSyncMaterialUrl;
|
|
|
MagTracks m_magTracks;
|
|
|
public:
|
|
@@ -1147,19 +962,15 @@ public:
|
|
|
int PostOnlineJS_Contact(SpReqAnsContext<CardIssuerStandService_PostOnlineJS_Req, CardIssuerStandService_PostOnlineJS_Ans>::Pointer ctx, bool& bICOK);
|
|
|
int PostOnlineJS_RF(SpReqAnsContext<CardIssuerStandService_PostOnlineJS_Req, CardIssuerStandService_PostOnlineJS_Ans>::Pointer ctx);
|
|
|
|
|
|
- int ReadMag(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx, bool& bReadCardInfo, bool& bReadMag, CSimpleStringA& t2Account);
|
|
|
+ void ReadMag(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx);
|
|
|
int CheckCardType(CSimpleStringA cardNo, bool bReadMag, int& ICtype);
|
|
|
- int PreOnlineJS_Contact(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx, bool& bICOK, bool& bContinue);
|
|
|
- int PreOnlineJS_RF(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx);
|
|
|
+ int PreOnlineJS_ReadViaContact(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx, bool bContinue);
|
|
|
+ int PreOnlineJS_ReadViaRF(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx, bool bContinue);
|
|
|
+ int PreOnlineJS_ICDataProcess(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx);
|
|
|
|
|
|
- DWORD GetFsmStateErrCode();
|
|
|
CSimpleStringA MaskCardno(const char* cardno);
|
|
|
void GetCardProcessLastErr(ErrorCodeEnum& eErrCode, CSimpleStringA& lastApiName, CSimpleStringA& alarmMsg, CSimpleStringA& csErrMsgWithReturnCode);
|
|
|
|
|
|
- int QuickSelfCheckImpl();
|
|
|
- void setQuickSelfCheck() {
|
|
|
- m_quickSelfcheck = true;
|
|
|
- }
|
|
|
void SetDoExitFlag(bool bFlag) { m_bDoExit = bFlag; }
|
|
|
int PowerOffIC(int type);//0:接触IC 1:非接
|
|
|
virtual void OnStateTrans(int iSrcState, int iDstState);
|
|
@@ -1169,14 +980,25 @@ public:
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("rtaMsg=%s", rtaMsg.GetData());
|
|
|
return rtaMsg;
|
|
|
}
|
|
|
+
|
|
|
private:
|
|
|
bool m_bCancelInsert;
|
|
|
- bool m_quickSelfcheck;
|
|
|
bool m_bDoExit;
|
|
|
bool m_bReturnMainPage;//正在处理过程中是否退到首页变量
|
|
|
+ ULLINT m_ullBeginTime, m_ullEndTime;
|
|
|
+ BYTE m_btCID/*9f27*/;
|
|
|
+ void FSMEventDefaultProcess(FSMEvent* pEvt, DWORD dwUserCode);
|
|
|
+};
|
|
|
+
|
|
|
+class ReadJSEvent : public FSMEvent
|
|
|
+{
|
|
|
public:
|
|
|
- int m_SelfcheckSleepTime;
|
|
|
+ ReadJSEvent() : FSMEvent(USER_EVT_JS_READ){}
|
|
|
+ ~ReadJSEvent() {}
|
|
|
+ SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx;
|
|
|
};
|
|
|
+
|
|
|
+
|
|
|
struct InitTask : public ITaskSp
|
|
|
{
|
|
|
CCardIssuerFSM* fsm;
|
|
@@ -1297,27 +1119,15 @@ struct WaitFetchingTask : public ITaskSp
|
|
|
fsm->PostEventFIFO(e);
|
|
|
}
|
|
|
};
|
|
|
-struct ResetTask : public ITaskSp
|
|
|
-{
|
|
|
- CCardIssuerFSM* fsm;
|
|
|
- ResetTask(CCardIssuerFSM* f) : fsm(f) {}
|
|
|
- void Process()
|
|
|
- {
|
|
|
- ResetFinishedEvent *e = new ResetFinishedEvent();
|
|
|
- e->param1 = fsm->Reset();
|
|
|
- fsm->PostEventFIFO(e);
|
|
|
- }
|
|
|
-};
|
|
|
-struct WriteTask : public ITaskSp
|
|
|
+
|
|
|
+struct QueryCardPosTask : public ITaskSp
|
|
|
{
|
|
|
- SpReqAnsContext<CardIssuerStandService_WriteTrack_Req,CardIssuerStandService_WriteTrack_Ans>::Pointer ctx;
|
|
|
CCardIssuerFSM* fsm;
|
|
|
- WriteTask(CCardIssuerFSM* f) : fsm(f) {}
|
|
|
+ QueryCardPosTask(CCardIssuerFSM* f) : fsm(f) {}
|
|
|
void Process()
|
|
|
{
|
|
|
- CardWriteFinishedEvent *e = new CardWriteFinishedEvent();
|
|
|
- e->ctx = ctx;
|
|
|
- e->param1 = fsm->WriteCard(ctx);
|
|
|
+ FSMEvent* e = new FSMEvent(USER_EVT_QUERY_CARD_POS_FINISHED);
|
|
|
+ e->param1 = fsm->QueryCardPos();
|
|
|
fsm->PostEventFIFO(e);
|
|
|
}
|
|
|
};
|
|
@@ -1332,18 +1142,6 @@ struct DoExitWhenIdleTask : public ITaskSp
|
|
|
fsm->SetDoExitFlag(false);
|
|
|
}
|
|
|
};
|
|
|
-struct SAMICCommandTask : public ITaskSp
|
|
|
-{
|
|
|
- CCardIssuerFSM* fsm;
|
|
|
- SpReqAnsContext<CardIssuerStandService_SAMICCommand_Req, CardIssuerStandService_SAMICCommand_Ans>::Pointer ctx;
|
|
|
- SAMICCommandTask(CCardIssuerFSM* f) : fsm(f) {}
|
|
|
- void Process()
|
|
|
- {
|
|
|
- FSMEvent* e = new FSMEvent(USER_EVT_SAM_IC_FINISHED);
|
|
|
- e->param1 = fsm->SAMICCommand(ctx);
|
|
|
- fsm->PostEventFIFO(e);
|
|
|
- }
|
|
|
-};
|
|
|
|
|
|
|
|
|
struct RegistCaptureCardInfoTask : public ITaskSp
|
|
@@ -1460,18 +1258,5 @@ struct InsertJSTask : public ITaskSp
|
|
|
}
|
|
|
};
|
|
|
|
|
|
-//故障自检task
|
|
|
-struct QuickSelfcheckTask : public ITaskSp
|
|
|
-{
|
|
|
- CCardIssuerFSM* fsm;
|
|
|
- QuickSelfcheckTask(CCardIssuerFSM* f) : fsm(f) {}
|
|
|
- void Process()
|
|
|
- {
|
|
|
- QuickSelfcheckFinishEvent* e = new QuickSelfcheckFinishEvent();
|
|
|
- Sleep(fsm->m_SelfcheckSleepTime);
|
|
|
- e->param1 = fsm->QuickSelfCheckImpl();
|
|
|
- fsm->PostEventFIFO(e);
|
|
|
- }
|
|
|
-};
|
|
|
#pragma endregion JS接口 工作线程
|
|
|
#endif //__CARD_ISSUER_FSM_H
|