//-------------------------------------------------------------------------------------------------- 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); }
//-------------------------------------------------------------------------------------------------- static void Testle_ecall_LoadMsd ( void ) { le_ecall_CallRef_t testECallRef = 0x00; LE_INFO("Start Testle_ecall_LoadMsd"); 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); // Check LE_DUPLICATE on le_ecall_SetMsdPosition and le_ecall_SetMsdPassengersCount LE_ASSERT(le_ecall_ImportMsd(testECallRef, ImportedMsd, sizeof(ImportedMsd)) == LE_OK); LE_ASSERT(le_ecall_SetMsdPosition(testECallRef, true, +48070380, -11310000, 45) == LE_DUPLICATE); LE_ASSERT(le_ecall_SetMsdPassengersCount(testECallRef, 3) == LE_DUPLICATE); LE_ASSERT(le_ecall_ResetMsdEraGlonassCrashSeverity(testECallRef) == LE_DUPLICATE); LE_ASSERT(le_ecall_SetMsdEraGlonassCrashSeverity(testECallRef, 0) == LE_DUPLICATE); LE_ASSERT(le_ecall_ResetMsdEraGlonassDiagnosticResult(testECallRef) == LE_DUPLICATE); LE_ASSERT(le_ecall_SetMsdEraGlonassDiagnosticResult(testECallRef, LE_ECALL_DIAG_RESULT_PRESENT_MIC_CONNECTION_FAILURE) == LE_DUPLICATE); LE_ASSERT(le_ecall_ResetMsdEraGlonassCrashInfo(testECallRef) == LE_DUPLICATE); LE_ASSERT(le_ecall_SetMsdEraGlonassCrashInfo(testECallRef, LE_ECALL_CRASH_INFO_PRESENT_CRASH_FRONT_OR_SIDE | LE_ECALL_CRASH_INFO_CRASH_FRONT_OR_SIDE) == LE_DUPLICATE); 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 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; } } }