//-------------------------------------------------------------------------------------------------- static void Testle_ecall_StartTest ( void ) { le_ecall_CallRef_t testECallRef = 0x00; le_ecall_State_t state = LE_ECALL_STATE_UNKNOWN; LE_ASSERT(le_ecall_SetPsapNumber("0102030405") == LE_OK); LE_ASSERT(le_ecall_SetMsdTxMode(LE_ECALL_TX_MODE_PUSH) == LE_OK); LE_ASSERT((testECallRef=le_ecall_Create()) != NULL); LE_ASSERT(le_ecall_SetMsdPosition(testECallRef, true, +48898064, +2218092, 0) == LE_OK); LE_ASSERT(le_ecall_SetMsdPassengersCount(testECallRef, 3) == LE_OK); LE_ASSERT(le_ecall_StartTest(testECallRef) == LE_OK); LE_ASSERT(le_ecall_StartManual(testECallRef) == LE_BUSY); LE_ASSERT(le_ecall_StartAutomatic(testECallRef) == LE_BUSY); state=le_ecall_GetState(testECallRef); LE_ASSERT(((state>=LE_ECALL_STATE_STARTED) && (state<=LE_ECALL_STATE_FAILED))); le_ecall_Delete(testECallRef); }
//-------------------------------------------------------------------------------------------------- static void Testle_ecall_StartManual ( void ) { le_ecall_CallRef_t testECallRef = 0x00; le_ecall_State_t state = LE_ECALL_STATE_UNKNOWN; LE_INFO("Start Testle_ecall_StartManual"); LE_ASSERT(le_ecall_SetPsapNumber("0102030405") == LE_OK); LE_ASSERT(le_ecall_SetMsdTxMode(LE_ECALL_TX_MODE_PUSH) == LE_OK); LE_ASSERT((testECallRef=le_ecall_Create()) != NULL); LE_ASSERT(le_ecall_ImportMsd(testECallRef, ImportedMsd, sizeof(ImportedMsd)) == LE_OK); LE_ASSERT(le_ecall_StartManual(testECallRef) == LE_OK); LE_ASSERT(le_ecall_StartTest(testECallRef) == LE_BUSY); LE_ASSERT(le_ecall_StartAutomatic(testECallRef) == LE_BUSY); LE_ASSERT(le_ecall_End(testECallRef) == LE_OK); state=le_ecall_GetState(testECallRef); LE_ASSERT(((state>=LE_ECALL_STATE_STARTED) && (state<=LE_ECALL_STATE_FAILED))); le_ecall_Delete(testECallRef); }
//-------------------------------------------------------------------------------------------------- void Testle_ecall_StartManual ( void ) { le_ecall_CallRef_t testECallRef = 0x00; le_ecall_State_t state = LE_ECALL_STATE_UNKNOWN; char psap[LE_MDMDEFS_PHONE_NUM_MAX_BYTES]; LE_INFO("Start Testle_ecall_StartManual"); LE_ASSERT(le_ecall_SetPsapNumber(PsapNumber) == LE_OK); LE_ASSERT(le_ecall_GetPsapNumber(psap, sizeof(psap)) == LE_OK); LE_INFO("psap %s", psap); LE_ASSERT(strncmp(psap, PsapNumber, strlen(PsapNumber)) == 0); LE_ASSERT(le_ecall_SetMsdTxMode(LE_ECALL_TX_MODE_PUSH) == LE_OK); LE_ASSERT((testECallRef=le_ecall_Create()) != NULL); LE_ASSERT(le_ecall_ImportMsd(testECallRef, ImportedMsd, sizeof(ImportedMsd)) == LE_OK); LE_ASSERT(le_ecall_StartManual(testECallRef) == LE_OK); LE_ASSERT(le_ecall_StartTest(testECallRef) == LE_BUSY); LE_ASSERT(le_ecall_StartAutomatic(testECallRef) == LE_BUSY); LE_ASSERT(le_ecall_End(testECallRef) == LE_OK); state=le_ecall_GetState(testECallRef); LE_ASSERT(((state>=LE_ECALL_STATE_STARTED) && (state<=LE_ECALL_STATE_FAILED))); le_ecall_Delete(testECallRef); sleep(5); }
//-------------------------------------------------------------------------------------------------- static void StartTestECall ( void ) { le_ecall_State_t state = LE_ECALL_STATE_UNKNOWN; le_ecall_StateChangeHandlerRef_t stateChangeHandlerRef = 0x00; LE_INFO("Start StartTestECall"); LE_ASSERT((stateChangeHandlerRef = le_ecall_AddStateChangeHandler(MyECallEventHandler, NULL)) != NULL); LE_ASSERT(le_ecall_SetPsapNumber(PsapNumber) == LE_OK); LE_ASSERT(le_ecall_SetMsdTxMode(LE_ECALL_TX_MODE_PUSH) == LE_OK); LE_ASSERT((LastTestECallRef=le_ecall_Create()) != NULL); LE_ASSERT(le_ecall_SetMsdPosition(LastTestECallRef, true, +48898064, +2218092, 0) == LE_OK); LE_ASSERT(le_ecall_SetMsdPassengersCount(LastTestECallRef, 3) == LE_OK); ConnectAudio(); // Set a default gain for my test le_audio_SetGain(FeOutRef, 50); LE_ASSERT(le_ecall_StartTest(LastTestECallRef) == LE_OK); state=le_ecall_GetState(LastTestECallRef); LE_ASSERT(((state>=LE_ECALL_STATE_STARTED) && (state<=LE_ECALL_STATE_FAILED))); }
//-------------------------------------------------------------------------------------------------- static void CheckStateHandlerResult ( void ) { int i; // Check that contexts are correctly updated for (i=0; i < NB_CLIENT; i++) { LE_ASSERT(AppCtx[i].appId == i); LE_ASSERT(AppCtx[i].ecallState == CurrentEcallState); LE_ASSERT(AppCtx[i].ecallRef == CurrentEcallRef); LE_ASSERT(le_ecall_GetState(AppCtx[i].ecallRef) == CurrentEcallState); } }
//-------------------------------------------------------------------------------------------------- static void MyECallEventHandler ( le_ecall_CallRef_t eCallRef, le_ecall_State_t state, void* contextPtr ) { LE_INFO("eCall TEST: New eCall state: %d for eCall ref.%p", state, eCallRef); LE_INFO("eCall state from get function %d", le_ecall_GetState(eCallRef)); switch(state) { case LE_ECALL_STATE_STARTED: { IsMsdSentOnce = false; LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_STARTED."); break; } case LE_ECALL_STATE_CONNECTED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_CONNECTED."); break; } case LE_ECALL_STATE_DISCONNECTED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_DISCONNECTED."); LE_INFO("Termination reason: %d", le_ecall_GetTerminationReason(eCallRef) ); break; } case LE_ECALL_STATE_WAITING_PSAP_START_IND: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_WAITING_PSAP_START_IND."); break; } case LE_ECALL_STATE_PSAP_START_IND_RECEIVED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_PSAP_START_IND_RECEIVED."); if (IsMsdSentOnce) { // The MSD has been already sent once, I update the MSD when I receive again the // LE_ECALL_STATE_PSAP_START_IND_RECEIVED event. LE_INFO("UpdateMSD"); LE_ASSERT(le_ecall_ImportMsd(eCallRef, ImportedMsd, sizeof(ImportedMsd)) == LE_OK); if (le_ecall_SendMsd(eCallRef) != LE_OK) { LE_ERROR("Could not send the MSD"); } } else { LE_INFO("1st MSD sending..."); if (le_ecall_SendMsd(eCallRef) == LE_OK) { IsMsdSentOnce = true; } else { LE_ERROR("Could not send the MSD"); } } break; } case LE_ECALL_STATE_MSD_TX_STARTED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_MSD_TX_STARTED."); break; } case LE_ECALL_STATE_LLNACK_RECEIVED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_LLNACK_RECEIVED."); break; } case LE_ECALL_STATE_LLACK_RECEIVED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_LLACK_RECEIVED."); break; } case LE_ECALL_STATE_MSD_TX_COMPLETED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_MSD_TX_COMPLETED."); break; } case LE_ECALL_STATE_MSD_TX_FAILED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_MSD_TX_FAILED."); break; } case LE_ECALL_STATE_ALACK_RECEIVED_POSITIVE: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_ALACK_RECEIVED_POSITIVE."); break; } case LE_ECALL_STATE_ALACK_RECEIVED_CLEAR_DOWN: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_ALACK_RECEIVED_CLEAR_DOWN."); break; } case LE_ECALL_STATE_STOPPED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_STOPPED."); break; } case LE_ECALL_STATE_RESET: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_RESET."); break; } case LE_ECALL_STATE_COMPLETED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_COMPLETED."); break; } case LE_ECALL_STATE_FAILED: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_FAILED."); break; } case LE_ECALL_STATE_END_OF_REDIAL_PERIOD: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_END_OF_REDIAL_PERIOD."); break; } case LE_ECALL_STATE_TIMEOUT_T2: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_TIMEOUT_T2."); break; } case LE_ECALL_STATE_TIMEOUT_T3: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_TIMEOUT_T3."); break; } case LE_ECALL_STATE_TIMEOUT_T5: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_TIMEOUT_T5."); break; } case LE_ECALL_STATE_TIMEOUT_T6: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_TIMEOUT_T6."); break; } case LE_ECALL_STATE_TIMEOUT_T7: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_TIMEOUT_T7."); break; } case LE_ECALL_STATE_TIMEOUT_T9: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_TIMEOUT_T9."); break; } case LE_ECALL_STATE_TIMEOUT_T10: { LE_INFO("Check MyECallEventHandler passed, state is LE_ECALL_STATE_TIMEOUT_T10."); break; } case LE_ECALL_STATE_UNKNOWN: default: { LE_INFO("Check MyECallEventHandler failed, unknown state."); break; } } }