|
@@ -30,8 +30,6 @@ enum EvtType
|
|
|
USER_EVT_ACCEPT,
|
|
|
USER_EVT_ACCEPT_CANCEL,
|
|
|
USER_EVT_ACCEPTFINISHED,
|
|
|
- USER_EVT_ISSUE,
|
|
|
- USER_EVT_ISSUE_FINISHED,
|
|
|
USER_EVT_EJECT,
|
|
|
USER_EVT_CAPTURE,
|
|
|
USER_EVT_EJECTFINISHED,
|
|
@@ -67,36 +65,24 @@ enum EvtType
|
|
|
USER_EVT_JS_INSERT_FINISHED,
|
|
|
USER_EVT_JS_INSERT_CANCEL,
|
|
|
USER_EVT_JS_EXIT_MIAN_PAGE,
|
|
|
- USER_EVT_QUERY_CARD_POS_FINISHED
|
|
|
-};
|
|
|
-enum SAMICCommandType
|
|
|
-{
|
|
|
- //SAM
|
|
|
- SAMICCommand_SAM_Select = 0,
|
|
|
- SAMICCommand_SAM_Active,
|
|
|
- SAMICCommand_SAM_Deactivate,
|
|
|
- SAMICCommand_SAM_WarmReset,
|
|
|
- SAMICCommand_SAM_QueryStatus,
|
|
|
- SAMICCommand_SAM_Command,
|
|
|
- //IC
|
|
|
- SAMICCommand_IC_Active = 100,
|
|
|
- SAMICCommand_IC_Deactivate,
|
|
|
- SAMICCommand_IC_WarmReset,
|
|
|
- SAMICCommand_IC_Command,
|
|
|
- SAMICCommand_RFIC_Active,
|
|
|
- SAMICCommand_RFIC_Deactivate,
|
|
|
- SAMICCommand_RFIC_Command,
|
|
|
+ USER_EVT_CHECK_CARD_FINISHED
|
|
|
};
|
|
|
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,
|
|
|
+ ReadMode_ICOnly_ContactICFirst = 2,
|
|
|
+ ReadMode_ICOnly_RFFirst = 3,
|
|
|
+ ReadMode_ICOnly_RFOnly = 4,
|
|
|
+ ReadMode_MagIC_ContactICFirst = 5,
|
|
|
+ ReadMode_MagIC_RFFirst = 6,
|
|
|
+ ReadMode_MagIC_RFOnly = 7,
|
|
|
+};
|
|
|
+enum CheckCardCase
|
|
|
+{
|
|
|
+ CheckCard_OnOpen = 0,
|
|
|
+ CheckCard_OnFail,
|
|
|
+ CheckCard_OnMainPage,
|
|
|
};
|
|
|
|
|
|
typedef int(*lpCMBdecodeMag2)(char* Mag2Data, char * data);
|
|
@@ -123,11 +109,6 @@ struct CMBBin
|
|
|
bool bIC;//IC:true or mag:false
|
|
|
bool bDC;//debit:true,credit:false
|
|
|
};
|
|
|
-struct SCIRecord
|
|
|
-{
|
|
|
- CSimpleStringA name;
|
|
|
- CSimpleStringA remoteMac;
|
|
|
-};
|
|
|
|
|
|
class CardInitFinishedEvent : public FSMEvent
|
|
|
{
|
|
@@ -147,13 +128,6 @@ public:
|
|
|
~CardAcceptEvent() {}
|
|
|
SpReqAnsContext<CardIssuerStandService_Insert_Req, CardIssuerStandService_Insert_Ans>::Pointer ctx;
|
|
|
};
|
|
|
-class CardIssueEvent : public FSMEvent
|
|
|
-{
|
|
|
-public:
|
|
|
- CardIssueEvent() : FSMEvent(USER_EVT_ISSUE) {}
|
|
|
- ~CardIssueEvent() {}
|
|
|
- SpReqAnsContext<CardIssuerStandService_Issue_Req, CardIssuerStandService_Issue_Ans>::Pointer ctx;
|
|
|
-};
|
|
|
|
|
|
class CancelAcceptEvent : public FSMEvent
|
|
|
{
|
|
@@ -314,185 +288,6 @@ public:
|
|
|
|
|
|
#pragma endregion JS接口 event
|
|
|
|
|
|
-
|
|
|
-typedef struct EacQueryByEac_X1 {
|
|
|
- string xEacNbr;
|
|
|
- string xCltNbr;
|
|
|
- string xIacNbr;
|
|
|
-} EacQueryByEac_X1;
|
|
|
-
|
|
|
-typedef struct CQueryCardTypeReq : CHTTPReq {
|
|
|
- struct HEAD {
|
|
|
- int xHdrLen;
|
|
|
- string xIsuCnl;
|
|
|
- string xRtnCod;
|
|
|
- }HEAD;
|
|
|
- struct BODY {
|
|
|
- EacQueryByEac_X1 x1;
|
|
|
- }BODY;
|
|
|
- int X1Count;
|
|
|
- CQueryCardTypeReq() {
|
|
|
- X1Count = 1;
|
|
|
- }
|
|
|
- string ToJson() {
|
|
|
- Json::Value allElm,x1Arr;
|
|
|
- allElm[REFLECTION(HEAD)][REFLECTION(xHdrLen)] = HEAD.xHdrLen;
|
|
|
- allElm[REFLECTION(HEAD)][REFLECTION(xIsuCnl)] = HEAD.xIsuCnl;
|
|
|
- allElm[REFLECTION(HEAD)][REFLECTION(xRtnCod)] = HEAD.xRtnCod;
|
|
|
-
|
|
|
- for (int i = 0; i < X1Count; i++) {
|
|
|
- Json::Value x1Elm;
|
|
|
- Json::FastWriter fwX1Elm;//写入对象
|
|
|
- x1Elm[REFLECTION(xEacNbr)] = BODY.x1.xEacNbr.c_str();
|
|
|
- x1Elm[REFLECTION(xCltNbr)] = BODY.x1.xCltNbr.c_str();
|
|
|
- x1Elm[REFLECTION(xIacNbr)] = BODY.x1.xIacNbr.c_str();
|
|
|
- //string x1JsonStr = fwX1Elm.write(x1Elm);
|
|
|
- x1Arr[i] = x1Elm;
|
|
|
- }
|
|
|
- allElm[REFLECTION(BODY)][REFLECTION(EacQueryByEac_X1)] = x1Arr;
|
|
|
-
|
|
|
- Json::FastWriter writer;
|
|
|
- string ret = writer.write(allElm);
|
|
|
-
|
|
|
-
|
|
|
- return ret;
|
|
|
- }
|
|
|
-} CQueryCardTypeReq;
|
|
|
-typedef struct EacQueryByEac_Z1 {
|
|
|
- string zEacNbr;
|
|
|
- string zEacSts;
|
|
|
- string zEacTyp;
|
|
|
- string zEacNam;
|
|
|
- string zEacNik;
|
|
|
- string zEacCod;
|
|
|
- string zCltNbr;
|
|
|
- string zIacNbr;
|
|
|
- string zKeySeq;
|
|
|
- string zFndClt;
|
|
|
- string zFndIac;
|
|
|
- string zFndCpb;
|
|
|
- string zFndAtp;
|
|
|
- string zFpnClt;
|
|
|
- string zFpnIac;
|
|
|
- string zCtfCnr;
|
|
|
- string zCtfTyp;
|
|
|
- string zPsbTag;
|
|
|
- string zPsbFac;
|
|
|
- string zPsbNbr;
|
|
|
- string zPsbCod;
|
|
|
- string zPsbSeq;
|
|
|
- string zPsbMdm;
|
|
|
- string zCvcCod;
|
|
|
- string zCvcCd2;
|
|
|
- string zCvcIcd;
|
|
|
- string zMapBus;
|
|
|
- string zMapCnl;
|
|
|
- string zMapDpn;
|
|
|
- string zMapPwd;
|
|
|
- string zMapAut;
|
|
|
- string zWrmFlg;
|
|
|
- string zBlsFlg;
|
|
|
- string zNamFlg;
|
|
|
- string zActFlg;
|
|
|
- string zSlpFlg;
|
|
|
- string zFkcFlg;
|
|
|
- string zSnmFlg;
|
|
|
- string zWrfAll;
|
|
|
- string zWrfNdk;
|
|
|
- string zWrfZft;
|
|
|
- string zWrfDsk;
|
|
|
- string zPayLck;
|
|
|
- string zQryTag;
|
|
|
- string zFncTag;
|
|
|
- string zWdwTag;
|
|
|
- string zPayTag;
|
|
|
- string zTmpTag;
|
|
|
- string zExtTag;
|
|
|
- string zCtfTag;
|
|
|
- string zMskTag;
|
|
|
- string zStfFlg;
|
|
|
- string zSlaFlg;
|
|
|
- string zBatFlg;
|
|
|
- string zAgtFlg;
|
|
|
- string zAmgTag;
|
|
|
- string zCurTag;
|
|
|
- string zImgIdt;
|
|
|
- string zGrpFlg;
|
|
|
- string zOpnDat;
|
|
|
- string zOpnUsr;
|
|
|
- string zOpnChk;
|
|
|
- string zOpnAut;
|
|
|
- string zActDat;
|
|
|
- string zClsDat;
|
|
|
- string zClsUsr;
|
|
|
- string zClsChk;
|
|
|
- string zClsAut;
|
|
|
- string zDatEft;
|
|
|
- string zDatExp;
|
|
|
- string zBbkNbr;
|
|
|
- string zBrnNbr;
|
|
|
- string zBrnMng;
|
|
|
- string zCtyCod;
|
|
|
-}EacQueryByEac_Z1;
|
|
|
-typedef struct CQueryCardTypeRet : CHTTPRet {
|
|
|
- struct HEAD {
|
|
|
- string xTypCod;
|
|
|
- string xHdrLen;
|
|
|
- string xSysCod;
|
|
|
- string xDskSys;
|
|
|
- string xWkeCod;
|
|
|
- string xKeyVal;
|
|
|
- string xIsuCnl;
|
|
|
- string xEncCod;
|
|
|
- string xDalCod;
|
|
|
- string xCmmTyp;
|
|
|
- string xOrgIsu;
|
|
|
- string xPreIsu;
|
|
|
- string xEntUsr;
|
|
|
- string xUsrPwd;
|
|
|
- string xIsuDat;
|
|
|
- string xIsuTim;
|
|
|
- string xMacCod;
|
|
|
- string xRtnLvl;
|
|
|
- string xRtnCod;
|
|
|
- string xDevNbr;
|
|
|
- string xTlrNbr;
|
|
|
- string xRqsNbr;
|
|
|
- string xCmmRsv;
|
|
|
- string xDocSiz;
|
|
|
- string xItvTms;
|
|
|
- string xMsgFlg;
|
|
|
- string xAppRsv;
|
|
|
- }HEAD;
|
|
|
- struct BODY {
|
|
|
- EacQueryByEac_Z1 z1;
|
|
|
- }BODY;
|
|
|
- int Z1Count;
|
|
|
- CQueryCardTypeRet() : Z1Count(1) {
|
|
|
- }
|
|
|
- bool Parse(string strData) {
|
|
|
- Json::Value root,tmpZ1;
|
|
|
- Json::Reader reader;
|
|
|
- Json::Value::UInt index;
|
|
|
- if (!reader.parse(strData, root, false))
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("reader.parse false");
|
|
|
- return false;
|
|
|
- }
|
|
|
- index = 0;
|
|
|
- HEAD.xRtnCod = root["HEAD"][REFLECTION(xRtnCod)].asCString();
|
|
|
- if (HEAD.xRtnCod.compare("SUC0000") == 0)
|
|
|
- {
|
|
|
- tmpZ1 = root["BODY"][REFLECTION(EacQueryByEac_Z1)];
|
|
|
- BODY.z1.zPsbMdm = tmpZ1[index][REFLECTION(zPsbMdm)].asCString();
|
|
|
- BODY.z1.zEacNbr = tmpZ1[index][REFLECTION(zEacNbr)].asCString();
|
|
|
- BODY.z1.zPsbSeq = tmpZ1[index][REFLECTION(zPsbSeq)].asCString();
|
|
|
- return true;
|
|
|
- }
|
|
|
- else
|
|
|
- return false;
|
|
|
- }
|
|
|
-} CQueryCardTypeRet;
|
|
|
typedef struct CRegistSwallowCardReq : CHTTPReq {
|
|
|
string cardNo;
|
|
|
string cardType;
|
|
@@ -643,134 +438,122 @@ 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,s12};
|
|
|
+ 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)
|
|
|
- FSM_STATE_ENTRY(s2,"Idle",s2_on_entry,s2_on_exit,s2_on_event)
|
|
|
- FSM_STATE_ENTRY(s3,"Accepting",s3_on_entry,s3_on_exit,s3_on_event)
|
|
|
- FSM_STATE_ENTRY(s4,"Hold",s4_on_entry,s4_on_exit,s4_on_event)
|
|
|
- FSM_STATE_ENTRY(s5,"Reading",s5_on_entry,s5_on_exit,s5_on_event)
|
|
|
- FSM_STATE_ENTRY(s6,"Ejecting",s6_on_entry,s6_on_exit,s6_on_event)
|
|
|
- FSM_STATE_ENTRY(s7,"WaitFetching",s7_on_entry,s7_on_exit,s7_on_event)
|
|
|
- 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(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)
|
|
|
+ FSM_STATE_ENTRY(s2, "Idle", s2_on_entry, s2_on_exit, s2_on_event)
|
|
|
+ FSM_STATE_ENTRY(s3, "Accepting", s3_on_entry, s3_on_exit, s3_on_event)
|
|
|
+ FSM_STATE_ENTRY(s4, "Hold", s4_on_entry, s4_on_exit, s4_on_event)
|
|
|
+ FSM_STATE_ENTRY(s5, "Reading", s5_on_entry, s5_on_exit, s5_on_event)
|
|
|
+ FSM_STATE_ENTRY(s6, "Ejecting", s6_on_entry, s6_on_exit, s6_on_event)
|
|
|
+ FSM_STATE_ENTRY(s7, "WaitFetching", s7_on_entry, s7_on_exit, s7_on_event)
|
|
|
+ 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, "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)
|
|
|
-
|
|
|
+ BEGIN_FSM_RULE(CCardIssuerFSM, s0)
|
|
|
+
|
|
|
FSM_RULE_ENTRY(s0, s2, USER_EVT_TEST, 0)
|
|
|
- FSM_RULE_ENTRY(s0,s1,USER_EVT_INIT,0)
|
|
|
+ FSM_RULE_ENTRY(s0, s1, USER_EVT_INIT, 0)
|
|
|
FSM_RULE_ENTRY(s0, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
|
|
|
- FSM_RULE_ENTRY(s1,s2,USER_EVT_INITFINISHED,0)
|
|
|
- FSM_RULE_ENTRY(s1,s9,USER_EVT_INITFINISHED,1)
|
|
|
+ FSM_RULE_ENTRY(s1, s2, USER_EVT_INITFINISHED, 0)
|
|
|
+ FSM_RULE_ENTRY(s1, s9, USER_EVT_INITFINISHED, 1)
|
|
|
FSM_RULE_ENTRY(s1, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
|
|
|
- FSM_RULE_ENTRY(s2,s3,USER_EVT_ACCEPT,0)
|
|
|
-// FSM_RULE_ENTRY(s2,s9,USER_EVT_ACCEPT,1)
|
|
|
+ FSM_RULE_ENTRY(s2, s3, USER_EVT_ACCEPT, 0)
|
|
|
+ // FSM_RULE_ENTRY(s2,s9,USER_EVT_ACCEPT,1)
|
|
|
FSM_RULE_ENTRY(s2, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
|
|
|
- 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, 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)
|
|
|
- FSM_RULE_ENTRY(s3,s2,USER_EVT_ACCEPTFINISHED,2)
|
|
|
- FSM_RULE_ENTRY(s3,s2,USER_EVT_ACCEPTFINISHED,3)
|
|
|
- FSM_RULE_ENTRY(s3,s7,USER_EVT_ACCEPTFINISHED,4)
|
|
|
+ FSM_RULE_ENTRY(s3, s4, USER_EVT_ACCEPTFINISHED, 0)
|
|
|
+ FSM_RULE_ENTRY(s3, s9, USER_EVT_ACCEPTFINISHED, 1)//设置进卡报错
|
|
|
+ FSM_RULE_ENTRY(s3, s2, USER_EVT_ACCEPTFINISHED, 2)
|
|
|
+ FSM_RULE_ENTRY(s3, s2, USER_EVT_ACCEPTFINISHED, 3)
|
|
|
+ FSM_RULE_ENTRY(s3, s7, USER_EVT_ACCEPTFINISHED, 4)
|
|
|
+ FSM_RULE_ENTRY(s3, s9, USER_EVT_ACCEPTFINISHED, 5)//查询硬件报错
|
|
|
FSM_RULE_ENTRY(s3, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
|
|
|
FSM_RULE_ENTRY(s3, s4, USER_EVT_JS_INSERT_FINISHED, 0)//JS 插卡成功
|
|
|
- FSM_RULE_ENTRY(s3, s9, USER_EVT_JS_INSERT_FINISHED, 1)//JS 查询硬件报错
|
|
|
+ FSM_RULE_ENTRY(s3, s9, USER_EVT_JS_INSERT_FINISHED, 1)//JS 设置进卡报错
|
|
|
FSM_RULE_ENTRY(s3, s2, USER_EVT_JS_INSERT_FINISHED, 2)//JS 超时
|
|
|
FSM_RULE_ENTRY(s3, s2, USER_EVT_JS_INSERT_FINISHED, 3)//JS 取消
|
|
|
FSM_RULE_ENTRY(s3, s6, USER_EVT_JS_INSERT_FINISHED, 4)//JS 取消时有卡,吐卡
|
|
|
- FSM_RULE_ENTRY(s3, s2, USER_EVT_JS_INSERT_FINISHED, 5)//JS 插卡前内部已有卡
|
|
|
- FSM_RULE_ENTRY(s4,s5,USER_EVT_READ,0)
|
|
|
- FSM_RULE_ENTRY(s4,s6,USER_EVT_EJECT,0)
|
|
|
- FSM_RULE_ENTRY(s4,s6,USER_EVT_EXIT,0)
|
|
|
- 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(s3, s9, USER_EVT_JS_INSERT_FINISHED, 5)//JS 查询硬件报错
|
|
|
+ FSM_RULE_ENTRY(s4, s5, USER_EVT_READ, 0)
|
|
|
+ FSM_RULE_ENTRY(s4, s6, USER_EVT_EJECT, 0)
|
|
|
+ FSM_RULE_ENTRY(s4, s8, USER_EVT_ACCEPT, 0)//???
|
|
|
+ FSM_RULE_ENTRY(s4, s8, USER_EVT_CAPTURE, 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, 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 退回首页吐卡
|
|
|
- FSM_RULE_ENTRY(s4, s8, USER_EVT_JS_EXIT_MIAN_PAGE, 1)//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)
|
|
|
+ FSM_RULE_ENTRY(s4, s2, USER_EVT_CHECK_CARD_FINISHED, 0)
|
|
|
+ FSM_RULE_ENTRY(s4, s9, USER_EVT_CHECK_CARD_FINISHED, 1)
|
|
|
+ FSM_RULE_ENTRY(s4, s6, EVT_MAINPAGE_DISPLAY, 0)
|
|
|
+ FSM_RULE_ENTRY(s4, s8, EVT_MAINPAGE_DISPLAY, 1)
|
|
|
+ FSM_RULE_ENTRY(s5, s4, USER_EVT_READ_FINISHED, 0)
|
|
|
+ FSM_RULE_ENTRY(s5, s9, USER_EVT_READ_FINISHED, 1)
|
|
|
FSM_RULE_ENTRY(s5, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
|
|
|
- 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 吐卡失败,取卡超时吞卡失败
|
|
|
- FSM_RULE_ENTRY(s7,s2,USER_EVT_WAITFINISHED,0)
|
|
|
- FSM_RULE_ENTRY(s7,s9,USER_EVT_WAITFINISHED,1)
|
|
|
- FSM_RULE_ENTRY(s7,s8,USER_EVT_WAITFINISHED,2)
|
|
|
+ FSM_RULE_ENTRY(s7, s2, USER_EVT_WAITFINISHED, 0)
|
|
|
+ FSM_RULE_ENTRY(s7, s9, USER_EVT_WAITFINISHED, 1)
|
|
|
+ FSM_RULE_ENTRY(s7, s8, USER_EVT_WAITFINISHED, 2)
|
|
|
FSM_RULE_ENTRY(s7, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
|
|
|
- FSM_RULE_ENTRY(s8,s2,USER_EVT_CAPTUREFINISHED,0)
|
|
|
- FSM_RULE_ENTRY(s8,s9,USER_EVT_CAPTUREFINISHED,1)
|
|
|
+ FSM_RULE_ENTRY(s8, s2, USER_EVT_CAPTUREFINISHED, 0)
|
|
|
+ FSM_RULE_ENTRY(s8, s9, USER_EVT_CAPTUREFINISHED, 1)
|
|
|
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_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)
|
|
|
+ FSM_RULE_ENTRY(s9, s2, USER_EVT_CHECK_CARD_FINISHED, 0)
|
|
|
+ FSM_RULE_ENTRY(s9, s4, USER_EVT_CHECK_CARD_FINISHED, 2)
|
|
|
FSM_RULE_ENTRY(s10, s6, USER_EVT_ISSUE_EX_FINISHED, 6)
|
|
|
FSM_RULE_ENTRY(s10, s4, USER_EVT_ISSUE_EX_FINISHED, 0)
|
|
|
FSM_RULE_ENTRY(s10, s9, USER_EVT_ISSUE_EX_FINISHED, 1)
|
|
|
FSM_RULE_ENTRY(s10, s2, USER_EVT_ISSUE_EX_FINISHED, 2)
|
|
|
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_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),
|
|
|
- m_bWaitAccepteMore(false),m_bExit(false),m_resetTimes(0),m_testResult(Error_Succeed)
|
|
|
- //,m_pTACReject(NULL),m_pIACOnline(NULL),m_pTACOnline(NULL),m_pIACDefault(NULL),m_pTACDefault(NULL)
|
|
|
- ,m_bCDA(false),m_pDataToARQC(NULL),m_bIssuingExit(false)
|
|
|
- ,m_bCardIssued(false),m_issueStatusFromFile(1),m_issueStatus(1),m_currCardNo("")
|
|
|
- , m_captureReason(""), m_machineType(1), m_currentHopper(1), m_hopperNum(1)
|
|
|
- , m_bSettingMaterial(false) , m_addCardNo(""), m_addCardSerial(""), m_hasCardWhileDevOpen(false)
|
|
|
- , 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_bCancelInsert(false), m_bReturnMainPage(false)
|
|
|
- {
|
|
|
- HARDWARE_ENTITY_RESET_ENTITYID(m_entCode, 0x203);
|
|
|
- cmdDecodeMag2 = NULL;
|
|
|
- cmdDecodeEx = NULL;
|
|
|
- m_aidList.Init(3);
|
|
|
- m_aidList[0] = "A000000333";
|
|
|
- m_aidList[1] = "A0000000108888";
|
|
|
- m_aidList[2] = "A000000790";
|
|
|
- }
|
|
|
+ END_FSM_RULE()
|
|
|
+
|
|
|
+ CCardIssuerFSM() : m_bCancelAccept(false), m_bWaitingAccept(false),
|
|
|
+ m_bWaitAccepteMore(false), m_bExit(false), m_resetTimes(0), m_testResult(Error_Succeed)
|
|
|
+ //,m_pTACReject(NULL),m_pIACOnline(NULL),m_pTACOnline(NULL),m_pIACDefault(NULL),m_pTACDefault(NULL)
|
|
|
+ , m_bCDA(false), m_pDataToARQC(NULL)
|
|
|
+ , m_bCardIssued(false), m_issueStatus(1), m_currCardNo("")
|
|
|
+ , m_captureReason(""), m_machineType(1), m_currentHopper(1), m_hopperNum(1)
|
|
|
+ , m_bSettingMaterial(false), m_addCardSerial("")
|
|
|
+ , m_bCancelByRFIC(false), m_devOpenFailedCount(0), m_bSingleMagOrIC(false)
|
|
|
+ , m_bCardFromHopper(true), m_rfVendorList(""), m_bUseRFTillNext(false), m_csSwallowCardUrl(""), m_csSyncMaterialUrl("")
|
|
|
+ , m_bCancelInsert(false), m_iCheckCardInInterval(200), m_bMainPageWhileWorking(false)
|
|
|
+ {
|
|
|
+ HARDWARE_ENTITY_RESET_ENTITYID(m_entCode, 0x203);
|
|
|
+ cmdDecodeMag2 = NULL;
|
|
|
+ cmdDecodeEx = NULL;
|
|
|
+ m_aidList.Init(3);
|
|
|
+ m_aidList[0] = "A000000333";
|
|
|
+ m_aidList[1] = "A0000000108888";
|
|
|
+ m_aidList[2] = "A000000790";
|
|
|
+ }
|
|
|
|
|
|
- ~CCardIssuerFSM(){}
|
|
|
+ ~CCardIssuerFSM() {}
|
|
|
virtual ErrorCodeEnum OnInit();
|
|
|
virtual ErrorCodeEnum OnExit();
|
|
|
|
|
@@ -815,46 +598,42 @@ public:
|
|
|
void s12_on_entry();
|
|
|
void s12_on_exit();
|
|
|
unsigned int s12_on_event(FSMEvent* event);
|
|
|
-
|
|
|
- ErrorCodeEnum OpenDevice(BYTE btOpenType, const char *pDevSN);
|
|
|
+
|
|
|
+ ErrorCodeEnum OpenDevice(BYTE btOpenType, const char* pDevSN);
|
|
|
int Initial();
|
|
|
- bool GetDevStatus(bool bPrint=true);
|
|
|
- int UnAcceptCard();
|
|
|
- int CaptureCard(SpReqAnsContext<CardIssuerStandService_Capture_Req,CardIssuerStandService_Capture_Ans>::Pointer ctx);
|
|
|
- int EjectCard(SpReqAnsContext<CardIssuerStandService_Eject_Req,CardIssuerStandService_Eject_Ans>::Pointer ctx);
|
|
|
+ int CheckIfHasCardOnCase(CheckCardCase eCase);
|
|
|
+ int CaptureCard(SpReqAnsContext<CardIssuerStandService_Capture_Req, CardIssuerStandService_Capture_Ans>::Pointer ctx);
|
|
|
+ int EjectCard(SpReqAnsContext<CardIssuerStandService_Eject_Req, CardIssuerStandService_Eject_Ans>::Pointer ctx);
|
|
|
int WaitFetchingCard();
|
|
|
int ReadCard(SpReqAnsContext<CardIssuerStandService_Read_Req, CardIssuerStandService_Read_Ans>::Pointer ctx);
|
|
|
int PreOnline(SpReqAnsContext<CardIssuerStandService_PreOnline_Req, CardIssuerStandService_PreOnline_Ans>::Pointer ctx);
|
|
|
int PostOnline(SpReqAnsContext<CardIssuerStandService_PostOnline_Req, CardIssuerStandService_PostOnline_Ans>::Pointer ctx);
|
|
|
- int ReadCard_Contact(SpReqAnsContext<CardIssuerStandService_Read_Req,CardIssuerStandService_Read_Ans>::Pointer ctx, bool& bICOK);
|
|
|
- int PreOnline_Contact(SpReqAnsContext<CardIssuerStandService_PreOnline_Req,CardIssuerStandService_PreOnline_Ans>::Pointer ctx, bool& bICOK);
|
|
|
- int PostOnline_Contact(SpReqAnsContext<CardIssuerStandService_PostOnline_Req,CardIssuerStandService_PostOnline_Ans>::Pointer ctx, bool& bICOK);
|
|
|
+ int ReadCard_Contact(SpReqAnsContext<CardIssuerStandService_Read_Req, CardIssuerStandService_Read_Ans>::Pointer ctx, bool bContinue);
|
|
|
+ int PreOnline_Contact(SpReqAnsContext<CardIssuerStandService_PreOnline_Req, CardIssuerStandService_PreOnline_Ans>::Pointer ctx, bool& bICOK);
|
|
|
+ int PostOnline_Contact(SpReqAnsContext<CardIssuerStandService_PostOnline_Req, CardIssuerStandService_PostOnline_Ans>::Pointer ctx, bool& bICOK);
|
|
|
int ReadCard_RF(SpReqAnsContext<CardIssuerStandService_Read_Req, CardIssuerStandService_Read_Ans>::Pointer ctx);
|
|
|
int PreOnline_RF(SpReqAnsContext<CardIssuerStandService_PreOnline_Req, CardIssuerStandService_PreOnline_Ans>::Pointer ctx);
|
|
|
int PostOnline_RF(SpReqAnsContext<CardIssuerStandService_PostOnline_Req, CardIssuerStandService_PostOnline_Ans>::Pointer ctx);
|
|
|
- int Reset();
|
|
|
- int InternalAcceptCard();
|
|
|
+ int InternalAcceptCard(SpReqAnsContext<CardIssuerStandService_Insert_Req, CardIssuerStandService_Insert_Ans>::Pointer ctx);
|
|
|
int AcceptCard(SpReqAnsContext<CardIssuerStandService_Insert_Req, CardIssuerStandService_Insert_Ans>::Pointer ctx);
|
|
|
- int IssueCard(SpReqAnsContext<CardIssuerStandService_Issue_Req, CardIssuerStandService_Issue_Ans>::Pointer ctx, SpReqAnsContext<CardIssuerStandService_IssueEx_Req, CardIssuerStandService_IssueEx_Ans>::Pointer ctxEx);
|
|
|
- int WriteCard(SpReqAnsContext<CardIssuerStandService_WriteTrack_Req,CardIssuerStandService_WriteTrack_Ans>::Pointer ctx);
|
|
|
-
|
|
|
- bool GetWaitFlag(){return m_bWaitingAccept;}
|
|
|
- void SetWaitMore(){m_bWaitAccepteMore = true;}
|
|
|
- void SetExitFlag(bool bFlag=true){m_bExit = bFlag;}
|
|
|
- bool FSMSetIssueFlag(int value=1);
|
|
|
- void FrontSetIssueFlag(bool bValue = true){ FSMSetIssueFlag(bValue); }
|
|
|
- int QueryIssueFlag(){ return m_issueStatus; }
|
|
|
- bool SetCardCaptured(const int num,bool bNewClear=false);
|
|
|
- bool SetCardIssued(const int num,const int hopper);
|
|
|
- bool SetCardRemains(const int num, const int hopper,bool bInit = false);
|
|
|
+ int IssueCard(SpReqAnsContext<CardIssuerStandService_IssueEx_Req, CardIssuerStandService_IssueEx_Ans>::Pointer ctxEx);
|
|
|
+
|
|
|
+ bool GetWaitFlag() { return m_bWaitingAccept; }
|
|
|
+ void SetWaitMore() { m_bWaitAccepteMore = true; }
|
|
|
+ void SetExitFlag(bool bFlag = true) { m_bExit = bFlag; }
|
|
|
+ void FSMSetIssueFlag(int value) { m_issueStatus = value; }
|
|
|
+ int QueryIssueFlag() { return m_issueStatus; }
|
|
|
+ bool SetCardCaptured(const int num, bool bNewClear = false);
|
|
|
+ bool SetCardIssued(const int num, const int hopper);
|
|
|
+ bool SetCardRemains(const int num, const int hopper, bool bInit = false);
|
|
|
bool SetCardMixed(const int num, const int hopper);
|
|
|
ErrorCodeEnum MachineMoveCardBackNotHold();
|
|
|
- ErrorCodeEnum MachineMoveCardFrontGate(bool bInBussiness=false);
|
|
|
+ ErrorCodeEnum MachineMoveCardFrontGate(bool bInBussiness = false);
|
|
|
|
|
|
- void SelfTest(EntityTestEnum eTestType,CSmartPointer<ITransactionContext> pTransactionContext);
|
|
|
+ void SelfTest(EntityTestEnum eTestType, CSmartPointer<ITransactionContext> pTransactionContext);
|
|
|
DevStateEnum GetDevState() const
|
|
|
{
|
|
|
- if ((m_eDevState == DEVICE_STATUS_NORMAL)
|
|
|
+ if ((m_eDevState == DEVICE_STATUS_NORMAL)
|
|
|
&& ((m_bHasHopper[0] && m_mixedEx[0] >= 3) || !m_bHasHopper[0])
|
|
|
&& ((m_bHasHopper[1] && m_mixedEx[1] >= 3) || !m_bHasHopper[1])
|
|
|
&& ((m_bHasHopper[2] && m_mixedEx[2] >= 3) || !m_bHasHopper[2]))
|
|
@@ -865,21 +644,11 @@ public:
|
|
|
int QueryCardPos();
|
|
|
|
|
|
int UpdateLocalRunCfg(CAutoArray<int> hopperArr);
|
|
|
- int SyncDataToDB(bool bMaintain[12],bool bSetCaptured=true);//同步物料计数
|
|
|
+ int SyncDataToDB(bool bMaintain[12], bool bSetCaptured = true);//同步物料计数
|
|
|
void SetHopperNum(int hopperNum);
|
|
|
- void DoExitWhenIdle();
|
|
|
- int SAMICCommand(SpReqAnsContext<CardIssuerStandService_SAMICCommand_Req, CardIssuerStandService_SAMICCommand_Ans>::Pointer ctx);
|
|
|
-
|
|
|
- bool WriteCardInfo(CSmartPointer<IConfigInfo> &cfgRun, const char *acc, const char* serial, int slot, bool bClear = false, bool bHasCard = false);
|
|
|
- bool ReadCardInfo(CSmartPointer<IConfigInfo> &cfgRun, CSimpleStringA &acc, CSimpleStringA &serial, int slot);
|
|
|
+ void DecodeTracksData(const char* track2, DWORD dwT2size, const char* track3, DWORD dwT3size, char*& magData, bool bT2OK = true, bool bT3OK = true);
|
|
|
|
|
|
- void DecodeTracksData(const char *track2, DWORD dwT2size, const char *track3, DWORD dwT3size,char *&magData,bool bT2OK=true,bool bT3OK=true);
|
|
|
- int GetFSMState()
|
|
|
- {
|
|
|
- //DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("m_currentFSMState:%d", m_currentFSMState));
|
|
|
- return m_currentFSMState;
|
|
|
- }
|
|
|
- void GetCardInfo(int &findCard, int &cardPos)
|
|
|
+ void GetCardInfo(int& findCard, int& cardPos)
|
|
|
{
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("<GetCardInfo>, findCard:%d, cardPos:%d", findCard, cardPos));
|
|
|
findCard = m_findCard;
|
|
@@ -891,11 +660,9 @@ public:
|
|
|
void CloseAndClearDevObj(bool bCheckConnecting = true, bool bCloseOnly = false);
|
|
|
|
|
|
static void HttpsLogCallBack(const char* logtxt);
|
|
|
- //0:unknow(havn't access microservice or access failed),1:both mag & ic ,2:mag only,3:ic only
|
|
|
- int JudgeCardType(CSimpleStringA cardno, bool &bMismatch);
|
|
|
void QueryCIStatus(SpReqAnsContext<CardIssuerStandService_QueryCIStatus_Req, CardIssuerStandService_QueryCIStatus_Ans>::Pointer ctx);
|
|
|
bool RegistCardWhileCaptureCard(CSimpleStringA cardno);
|
|
|
- bool SyncMaterialCount(IHttpFunc* client,SyncMaterialCountInfo syncInfo);
|
|
|
+ bool SyncMaterialCount(IHttpFunc* client, SyncMaterialCountInfo syncInfo);
|
|
|
protected:
|
|
|
int m_iInsertTries;
|
|
|
int m_resetTries;
|
|
@@ -904,44 +671,42 @@ private:
|
|
|
///
|
|
|
int m_resetTimes;
|
|
|
lpCMBdecodeMag2 cmdDecodeMag2;
|
|
|
- lpCMBdecodeEx cmdDecodeEx;
|
|
|
+ lpCMBdecodeEx cmdDecodeEx;
|
|
|
bool m_bCancelAccept, m_bWaitingAccept, m_bWaitAccepteMore, m_bExit
|
|
|
- , m_bCDA, m_bIssuingExit, m_bCardIssued, m_bHasHopper[HOPPER_NUM]
|
|
|
- , m_bSettingMaterial, m_hasCardWhileDevOpen, m_bCancelByRFIC
|
|
|
- , m_bCardActiveNotify, m_bCardFromHopper, m_bUseCardnoMismatch, m_bStopUseRF;
|
|
|
+ , m_bCDA, m_bCardIssued, m_bHasHopper[HOPPER_NUM]
|
|
|
+ , m_bSettingMaterial, m_bCancelByRFIC, m_bSingleMagOrIC
|
|
|
+ , m_bCardActiveNotify, m_bCardFromHopper, m_bMainPageWhileWorking/*Accepting、Read(JS)ing、Issue(JS)ing*/;
|
|
|
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;
|
|
|
- int m_issueStatusFromFile, m_issueStatus/*the status maybe changed by Business call*/;
|
|
|
+ int m_issueStatus/*the status maybe changed by Business call*/;
|
|
|
//1:default, 2:SCI, 3:no cfg
|
|
|
int m_machineType;
|
|
|
- int m_currentHopper,m_devOpenFailedCount;
|
|
|
- int m_maxSlot,m_findCard,m_cardPos,m_currentFSMState,m_maxRetainCount, m_eacQueryFlag/*accout query*/
|
|
|
- ,m_ICRetryTimes;
|
|
|
- CSimpleStringA m_CardBoxNoEx[HOPPER_NUM], m_PsbCodeEx[HOPPER_NUM], m_PsbNameEx[HOPPER_NUM], m_MaintainerEx[HOPPER_NUM],m_csMaintainTimeEx[HOPPER_NUM];
|
|
|
- int m_CardInitEx[HOPPER_NUM], m_CardPercentEx[HOPPER_NUM], m_remainsEx[HOPPER_NUM], m_issuedEx[HOPPER_NUM], m_mixedEx[HOPPER_NUM],m_hopperNum;
|
|
|
+ int m_currentHopper, m_devOpenFailedCount;
|
|
|
+ int m_maxSlot, m_findCard, m_cardPos, m_maxRetainCount, m_iCheckCardInInterval;
|
|
|
+ CSimpleStringA m_CardBoxNoEx[HOPPER_NUM], m_PsbCodeEx[HOPPER_NUM], m_PsbNameEx[HOPPER_NUM], m_MaintainerEx[HOPPER_NUM], m_csMaintainTimeEx[HOPPER_NUM];
|
|
|
+ int m_CardInitEx[HOPPER_NUM], m_CardPercentEx[HOPPER_NUM], m_remainsEx[HOPPER_NUM], m_issuedEx[HOPPER_NUM], m_mixedEx[HOPPER_NUM], m_hopperNum;
|
|
|
DWORD m_MaintainTimeEx[HOPPER_NUM];
|
|
|
BYTE m_connectType, m_r1[128], m_r2[128], m_r3[128], m_priKey[ONE_K / 2], m_devPubKey[ONE_K / 2];
|
|
|
CardIssuerStatus m_devStatus;
|
|
|
- CCardProcess *m_pCardProcess;
|
|
|
+ CCardProcess* m_pCardProcess;
|
|
|
CAutoArray<CSimpleStringA> m_aidList;
|
|
|
|
|
|
- char *m_pDataToARQC;
|
|
|
+ char* m_pDataToARQC;
|
|
|
long xxTest;
|
|
|
- CSimpleStringA m_currCardNo, m_captureReason, m_csMachineType, m_terminalNo, m_addCardNo, m_addCardSerial, m_rfVendorList, m_csRF;
|
|
|
+ CSimpleStringA m_currCardNo, m_captureReason, m_csMachineType, m_terminalNo, m_addCardSerial, m_rfVendorList, m_csRF;
|
|
|
char m_AuthCode[2];
|
|
|
vector<CMBBin> m_vBin;
|
|
|
- int SplitTrack2(CSimpleStringA pTrack2,Track2Data &decodeData);
|
|
|
+ int SplitTrack2(CSimpleStringA pTrack2, Track2Data& decodeData);
|
|
|
bool JustReadCardNo();
|
|
|
- bool IsValidCardNo(const char*,int);
|
|
|
- void GetVendorDllName(CSimpleStringA &dllName);
|
|
|
- bool AccountExchange(const char *origAcc, CSimpleStringA &acc,int dir=1);
|
|
|
+ bool IsValidCardNo(const char*, int);
|
|
|
+ void GetVendorDllName(CSimpleStringA& dllName);
|
|
|
bool LoadCMBPrint(CSimpleStringA csBinPath);
|
|
|
DevCategoryInfo m_devCat;
|
|
|
bool ToRegistCaptureCardInfo();
|
|
|
void CheckSupportRf();
|
|
|
- CSimpleStringA m_EacQueryHost, m_csSwallowCardUrl, m_csSyncMaterialUrl;
|
|
|
+ CSimpleStringA m_csSwallowCardUrl, m_csSyncMaterialUrl;
|
|
|
MagTracks m_magTracks;
|
|
|
public:
|
|
|
int EjectJS(SpReqAnsContext<CardIssuerStandService_EjectJS_Req, CardIssuerStandService_EjectJS_Ans>::Pointer ctx);
|
|
@@ -957,22 +722,19 @@ public:
|
|
|
int ReadJS(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx);
|
|
|
|
|
|
int InsertJS(SpReqAnsContext<CardIssuerStandService_InsertJS_Req, CardIssuerStandService_InsertJS_Ans>::Pointer ctx);
|
|
|
- int InternalInsert();
|
|
|
|
|
|
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);
|
|
|
|
|
|
void ReadMag(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx);
|
|
|
- int CheckCardType(CSimpleStringA cardNo, bool bReadMag, int& ICtype);
|
|
|
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);
|
|
|
|
|
|
CSimpleStringA MaskCardno(const char* cardno);
|
|
|
void GetCardProcessLastErr(ErrorCodeEnum& eErrCode, CSimpleStringA& lastApiName, CSimpleStringA& alarmMsg, CSimpleStringA& csErrMsgWithReturnCode);
|
|
|
-
|
|
|
+
|
|
|
void SetDoExitFlag(bool bFlag) { m_bDoExit = bFlag; }
|
|
|
- int PowerOffIC(int type);//0:接触IC 1:非接
|
|
|
virtual void OnStateTrans(int iSrcState, int iDstState);
|
|
|
|
|
|
CSimpleStringA getRTACode(DWORD dwUserCode) {
|
|
@@ -980,14 +742,14 @@ public:
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("rtaMsg=%s", rtaMsg.GetData());
|
|
|
return rtaMsg;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
private:
|
|
|
bool m_bCancelInsert;
|
|
|
bool m_bDoExit;
|
|
|
- bool m_bReturnMainPage;//正在处理过程中是否退到首页变量
|
|
|
ULLINT m_ullBeginTime, m_ullEndTime;
|
|
|
BYTE m_btCID/*9f27*/;
|
|
|
void FSMEventDefaultProcess(FSMEvent* pEvt, DWORD dwUserCode);
|
|
|
+ CSimpleStringA GetErrMsgByCode(DWORD dwCode);
|
|
|
};
|
|
|
|
|
|
class ReadJSEvent : public FSMEvent
|
|
@@ -1026,23 +788,13 @@ struct AcceptTask : public ITaskSp
|
|
|
struct IssueTask : public ITaskSp
|
|
|
{
|
|
|
CCardIssuerFSM* fsm;
|
|
|
- SpReqAnsContext<CardIssuerStandService_Issue_Req, CardIssuerStandService_Issue_Ans>::Pointer ctx;
|
|
|
SpReqAnsContext<CardIssuerStandService_IssueEx_Req, CardIssuerStandService_IssueEx_Ans>::Pointer ctxEx;
|
|
|
IssueTask(CCardIssuerFSM* f) : fsm(f) {}
|
|
|
void Process()
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
- FSMEvent *e;
|
|
|
- if (ctx != NULL)
|
|
|
- e = new FSMEvent(USER_EVT_ISSUE_FINISHED);
|
|
|
- else if (ctxEx != NULL)
|
|
|
- e = new FSMEvent(USER_EVT_ISSUE_EX_FINISHED);
|
|
|
- else
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("IssueTask:ctx is null");
|
|
|
- return;
|
|
|
- }
|
|
|
- e->param1 = fsm->IssueCard(ctx,ctxEx);
|
|
|
+ FSMEvent *e = new FSMEvent(USER_EVT_ISSUE_EX_FINISHED);
|
|
|
+ e->param1 = fsm->IssueCard(ctxEx);
|
|
|
fsm->PostEventFIFO(e);
|
|
|
}
|
|
|
};
|
|
@@ -1120,29 +872,19 @@ struct WaitFetchingTask : public ITaskSp
|
|
|
}
|
|
|
};
|
|
|
|
|
|
-struct QueryCardPosTask : public ITaskSp
|
|
|
+struct DoCheckCardTask : public ITaskSp
|
|
|
{
|
|
|
CCardIssuerFSM* fsm;
|
|
|
- QueryCardPosTask(CCardIssuerFSM* f) : fsm(f) {}
|
|
|
+ CheckCardCase eCase;
|
|
|
+ DoCheckCardTask(CCardIssuerFSM* f, CheckCardCase eCase) : fsm(f) {}
|
|
|
void Process()
|
|
|
{
|
|
|
- FSMEvent* e = new FSMEvent(USER_EVT_QUERY_CARD_POS_FINISHED);
|
|
|
- e->param1 = fsm->QueryCardPos();
|
|
|
+ FSMEvent* e = new FSMEvent(USER_EVT_CHECK_CARD_FINISHED);
|
|
|
+ e->param1 = fsm->CheckIfHasCardOnCase(eCase);
|
|
|
fsm->PostEventFIFO(e);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
-struct DoExitWhenIdleTask : public ITaskSp
|
|
|
-{
|
|
|
- CCardIssuerFSM* fsm;
|
|
|
- DoExitWhenIdleTask(CCardIssuerFSM* f) : fsm(f) {}
|
|
|
- void Process()
|
|
|
- {
|
|
|
- fsm->DoExitWhenIdle();
|
|
|
- fsm->SetDoExitFlag(false);
|
|
|
- }
|
|
|
-};
|
|
|
-
|
|
|
|
|
|
struct RegistCaptureCardInfoTask : public ITaskSp
|
|
|
{
|