У меня уже есть приложение, которое делает полный поток EMV, и теперь я хочу внедрить EMV Contactless, это я уже сделал:
Ошибка возникает в этой функции:
EMV_CTLS_Init_Framework (64, (EMV_CT_CALLBACK_FnT) FrameworkEMVCallbackFunction, (void *) NULL, options, & Result);
после звонка:
EMV_CT_Init_Framework (64, (EMV_CT_CALLBACK_FnT) FrameworkEMVCallbackFunction, (void *) NULL, options);
Терминал иногда остается черным, а иногда перезагружается.
Это полный код функции инициализации EMV:
unsigned long initializeApplication(unsigned char virtualTerminal, unsigned char EnableTRACE, int autoRetap)
{
EMV_ADK_INFO erg;
unsigned long virtTerm;
unsigned long Result;
unsigned long options;
virtTerm = ((virtualTerminal << 24) & 0xFF000000);
initializeEmvParameters();
// Init Framework
options = virtTerm | EMV_CT_INIT_OPT_CONFIG_MODE | EMV_CT_INIT_OPT_L1_DUMP;
if (EnableTRACE)
options |= EMV_CT_INIT_OPT_TRACE | EMV_CT_INIT_OPT_TRACE_CLT;
erg = EMV_CT_Init_Framework(64, (EMV_CT_CALLBACK_FnT)FrameworkEMVCallbackFunction, (void*)NULL, options);
if(erg != EMV_ADK_OK)
{
APP_TRACE("Init EMV framework returned %d", erg);
return(EMV_INIT_ERR_INIT_KERNEL);
}
options = virtTerm | EMV_CTLS_INIT_OPT_CONFIG_MODE | EMV_CTLS_INIT_OPT_L1_DUMP | autoRetap;
if (EnableTRACE)
options |= EMV_CTLS_INIT_OPT_TRACE | EMV_CTLS_INIT_OPT_TRACE_CLT; /*|EMV_CTLS_LED_CALLBACK_EXT*/
erg = EMV_CTLS_Init_Framework(64, (EMV_CT_CALLBACK_FnT)FrameworkEMVCallbackFunction, (void*)NULL, options, &Result );
if(erg != EMV_ADK_OK)
{
APP_TRACE("Init EMV framework (CTLS) returned %d", erg);
return(EMV_INIT_ERR_CTLS_ONLY);
}
}
Задача ещё не решена.
Других решений пока нет …