|
@@ -354,83 +354,83 @@ unsigned int CCardReadAdapterFSM::s2_on_event(FSMEvent* pEvt)
|
|
|
break;
|
|
|
case USER_EVT_SAM_IC_COMMAND:
|
|
|
{
|
|
|
- pEvt->SetHandled();
|
|
|
- SAMICCommandEvent* samice = dynamic_cast<SAMICCommandEvent*>(pEvt);
|
|
|
- SAMICCommandTask* task = new SAMICCommandTask(this);
|
|
|
- task->ctx = samice->ctx;
|
|
|
- GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
+ pEvt->SetHandled();
|
|
|
+ SAMICCommandEvent* samice = dynamic_cast<SAMICCommandEvent*>(pEvt);
|
|
|
+ SAMICCommandTask* task = new SAMICCommandTask(this);
|
|
|
+ task->ctx = samice->ctx;
|
|
|
+ GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
}
|
|
|
break;
|
|
|
case USER_EVT_QUERY_PRINTER_STATUS:
|
|
|
{
|
|
|
- pEvt->SetHandled();
|
|
|
- QueryPrinterStatusEvent* samice = dynamic_cast<QueryPrinterStatusEvent*>(pEvt);
|
|
|
- QueryPrinterStatusTask* task = new QueryPrinterStatusTask(this);
|
|
|
- task->ctx = samice->ctx;
|
|
|
- GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
+ pEvt->SetHandled();
|
|
|
+ QueryPrinterStatusEvent* samice = dynamic_cast<QueryPrinterStatusEvent*>(pEvt);
|
|
|
+ QueryPrinterStatusTask* task = new QueryPrinterStatusTask(this);
|
|
|
+ task->ctx = samice->ctx;
|
|
|
+ GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
}
|
|
|
break;
|
|
|
case USER_EVT_PRINT:
|
|
|
{
|
|
|
- pEvt->SetHandled();
|
|
|
- PrintEvent* samice = dynamic_cast<PrintEvent*>(pEvt);
|
|
|
- PrintTask* task = new PrintTask(this);
|
|
|
- task->ctx = samice->ctx;
|
|
|
- GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
+ pEvt->SetHandled();
|
|
|
+ PrintEvent* samice = dynamic_cast<PrintEvent*>(pEvt);
|
|
|
+ PrintTask* task = new PrintTask(this);
|
|
|
+ task->ctx = samice->ctx;
|
|
|
+ GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
}
|
|
|
break;
|
|
|
case USER_EVT_QUERY_SCILIST:
|
|
|
{
|
|
|
- pEvt->SetHandled();
|
|
|
- QuerySCIListEvent* samice = dynamic_cast<QuerySCIListEvent*>(pEvt);
|
|
|
- QuerySCIListTask* task = new QuerySCIListTask(this);
|
|
|
- task->ctx = samice->ctx;
|
|
|
- GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
+ pEvt->SetHandled();
|
|
|
+ QuerySCIListEvent* samice = dynamic_cast<QuerySCIListEvent*>(pEvt);
|
|
|
+ QuerySCIListTask* task = new QuerySCIListTask(this);
|
|
|
+ task->ctx = samice->ctx;
|
|
|
+ GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
}
|
|
|
break;
|
|
|
case USER_EVT_BIND_SCI:
|
|
|
{
|
|
|
- pEvt->SetHandled();
|
|
|
- BindSCIEvent* samice = dynamic_cast<BindSCIEvent*>(pEvt);
|
|
|
- BindSCITask* task = new BindSCITask(this);
|
|
|
- task->ctx = samice->ctx;
|
|
|
- GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
+ pEvt->SetHandled();
|
|
|
+ BindSCIEvent* samice = dynamic_cast<BindSCIEvent*>(pEvt);
|
|
|
+ BindSCITask* task = new BindSCITask(this);
|
|
|
+ task->ctx = samice->ctx;
|
|
|
+ GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
}
|
|
|
break;
|
|
|
case USER_EVT_PREONLINE_ON_STORE:
|
|
|
{
|
|
|
- pEvt->SetHandled();
|
|
|
- PreOnlineOnStoreEvent* samice = dynamic_cast<PreOnlineOnStoreEvent*>(pEvt);
|
|
|
- PreOnlineOnStoreTask* task = new PreOnlineOnStoreTask(this);
|
|
|
- task->ctx = samice->ctx;
|
|
|
- GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
+ pEvt->SetHandled();
|
|
|
+ PreOnlineOnStoreEvent* samice = dynamic_cast<PreOnlineOnStoreEvent*>(pEvt);
|
|
|
+ PreOnlineOnStoreTask* task = new PreOnlineOnStoreTask(this);
|
|
|
+ task->ctx = samice->ctx;
|
|
|
+ GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
}
|
|
|
break;
|
|
|
case USER_EVT_GET_ADD_CARD_INFO:
|
|
|
{
|
|
|
- pEvt->SetHandled();
|
|
|
- GetAddCardInfoEvent* samice = dynamic_cast<GetAddCardInfoEvent*>(pEvt);
|
|
|
- GetAddCardInfoTask* task = new GetAddCardInfoTask(this);
|
|
|
- task->ctx = samice->ctx;
|
|
|
- GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
+ pEvt->SetHandled();
|
|
|
+ GetAddCardInfoEvent* samice = dynamic_cast<GetAddCardInfoEvent*>(pEvt);
|
|
|
+ GetAddCardInfoTask* task = new GetAddCardInfoTask(this);
|
|
|
+ task->ctx = samice->ctx;
|
|
|
+ GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
}
|
|
|
break;
|
|
|
case USER_EVT_NOTIFY_PREONLINE:
|
|
|
{
|
|
|
- pEvt->SetHandled();
|
|
|
- NotifyPreonlineEvent* samice = dynamic_cast<NotifyPreonlineEvent*>(pEvt);
|
|
|
- NotifyPreOnlineTask* task = new NotifyPreOnlineTask(this);
|
|
|
- task->ctx = samice->ctx;
|
|
|
- GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
+ pEvt->SetHandled();
|
|
|
+ NotifyPreonlineEvent* samice = dynamic_cast<NotifyPreonlineEvent*>(pEvt);
|
|
|
+ NotifyPreOnlineTask* task = new NotifyPreOnlineTask(this);
|
|
|
+ task->ctx = samice->ctx;
|
|
|
+ GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
}
|
|
|
break;
|
|
|
case USER_EVT_QUERY_CARD_INFO_ON_STORE:
|
|
|
{
|
|
|
- pEvt->SetHandled();
|
|
|
- QueryCardInfoOnStoreEvent* samice = dynamic_cast<QueryCardInfoOnStoreEvent*>(pEvt);
|
|
|
- QueryCardInfoOnStoreTask* task = new QueryCardInfoOnStoreTask(this);
|
|
|
- task->ctx = samice->ctx;
|
|
|
- GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
+ pEvt->SetHandled();
|
|
|
+ QueryCardInfoOnStoreEvent* samice = dynamic_cast<QueryCardInfoOnStoreEvent*>(pEvt);
|
|
|
+ QueryCardInfoOnStoreTask* task = new QueryCardInfoOnStoreTask(this);
|
|
|
+ task->ctx = samice->ctx;
|
|
|
+ GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
|
|
|
}
|
|
|
break;
|
|
|
case USER_EVT_CROSS_TERM_CALL:
|
|
@@ -863,6 +863,7 @@ int CCardReadAdapterFSM::CardIssuerRead(SpReqAnsContext<CardReadAdapterService_R
|
|
|
else
|
|
|
{
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("ReadCard, the final errCode:%d,status:%d,dwUsrErrCode:%d", eErr, ctx->Ans.status, dwUsrErrCode);
|
|
|
+ Sleep(300);//oilyang@20230202 for hardware entity to trans FSM state
|
|
|
ctx->Answer(eErr, dwUsrErrCode);
|
|
|
}
|
|
|
}
|
|
@@ -1385,6 +1386,7 @@ int CCardReadAdapterFSM::PostOnline(SpReqAnsContext<CardReadAdapterService_PostO
|
|
|
int CCardReadAdapterFSM::EjectCard(SpReqAnsContext<CardReadAdapterService_Eject_Req, CardReadAdapterService_Eject_Ans>::Pointer ctx)
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
+ Sleep(100);//oilyang@20230202 for hardware entity to trans FSM state
|
|
|
ErrorCodeEnum eErr = Error_Unexpect;
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("before eject card,req.module %d,card in %d", ctx->Req.module,m_busCtx.eCardFromWhich);
|
|
|
DWORD dwUsrErrCode = 0;
|
|
@@ -1443,6 +1445,7 @@ int CCardReadAdapterFSM::EjectCard(SpReqAnsContext<CardReadAdapterService_Eject_
|
|
|
int CCardReadAdapterFSM::CaptureCard(SpReqAnsContext<CardReadAdapterService_Capture_Req, CardReadAdapterService_Capture_Ans>::Pointer ctx)
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
+ Sleep(100);//oilyang@20230202 for hardware entity to trans FSM state
|
|
|
ErrorCodeEnum eErr = Error_Unexpect;
|
|
|
DWORD dwUsrErrCode = 0;
|
|
|
if (IsTheEntity(ctx->Req.module, Module_CardIssuer) && IsCardIssuerSessionOK() && m_busCtx.eCardFromWhich == Card_In_CardIssuer)
|
|
@@ -2279,6 +2282,8 @@ int CCardReadAdapterFSM::PreOnlineOnStore(SpReqAnsContext<CardReadAdapterService
|
|
|
ctx->Answer(Error_DevNotAvailable, CardIssuer_UserErrorCode_DupCallPreOnline_WhileInWorking);
|
|
|
else if (eErr == Error_ReplyTimeOut)
|
|
|
ctx->Answer(Error_DevNotAvailable, CardIssuer_UserErrorCode_CardStore_Reply_TooLong);
|
|
|
+ else if (eErr == Error_DevNotAvailable)
|
|
|
+ ctx->Answer(Error_DevNotAvailable, CardIssuer_UserErrorCode_CardActive_CardStore_OffLine);
|
|
|
else {
|
|
|
DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("PreOnlineOnStore, CardIssuer PreOnlineOnStore failed return:%d", eErr));
|
|
|
ctx->Answer(eErr);
|