//-------------------------------------------------------------------------------------------------- void smsmt_HandlerRemover ( void ) { le_sms_RemoveRxMessageHandler(HdlrRef); }
//-------------------------------------------------------------------------------------------------- static le_result_t Testle_sms_Send_UCS2 ( void ) { le_result_t res = LE_FAULT; le_sms_MsgRef_t myMsg; NbSmsRx = 1; // Init the semaphore for synchronous API (hangup, answer) sem_init(&SmsRxSynchronization,0,0); RxThread = le_thread_Create("Rx SMS reception", MyRxThread, NULL); le_thread_Start(RxThread); // Wait for thread starting. sleep(2); // Check if Thread SMS RX handler has been started if (!RxHdlrRef) { LE_ERROR("Handler not ready !!"); return LE_FAULT; } myMsg = le_sms_Create(); if (myMsg) { LE_DEBUG("-TEST- Create Msg %p", myMsg); res = le_sms_SetDestination(myMsg, DEST_TEST_PATTERN); if (res != LE_OK) { le_sms_Delete(myMsg); return LE_FAULT; } res = le_sms_SetUCS2(myMsg, UCS2_TEST_PATTERN, sizeof(UCS2_TEST_PATTERN) / 2); if (res != LE_OK) { le_sms_Delete(myMsg); return LE_FAULT; } res = le_sms_Send(myMsg); if ((res == LE_FAULT) || (res == LE_FORMAT_ERROR)) { le_sms_Delete(myMsg); return LE_FAULT; } res = WaitFunction(&SmsRxSynchronization, 120000); LE_ERROR_IF(res != LE_OK, "SYNC FAILED"); le_sms_Delete(myMsg); } le_sms_RemoveRxMessageHandler(RxHdlrRef); le_thread_Cancel(RxThread); return res; }