//-------------------------------------------------------------------------------------------------- void Testle_sms_SendText() { le_result_t res; le_sms_MsgRef_t myMsg; myMsg = le_sms_Create(); CU_ASSERT_PTR_NOT_NULL(myMsg); LE_DEBUG("-TEST- Create Msg %p", myMsg); testHdlrRef=le_sms_AddRxMessageHandler(TestRxHandler, NULL); CU_ASSERT_PTR_NOT_NULL(testHdlrRef); res=le_sms_SetDestination(myMsg, DEST_TEST_PATTERN); CU_ASSERT_EQUAL(res, LE_OK); res=le_sms_SetText(myMsg, LARGE_TEXT_TEST_PATTERN); CU_ASSERT_EQUAL(res, LE_OK); res=le_sms_Send(myMsg); CU_ASSERT_NOT_EQUAL(res, LE_FAULT); CU_ASSERT_NOT_EQUAL(res, LE_FORMAT_ERROR); res=le_sms_SetText(myMsg, SHORT_TEXT_TEST_PATTERN); CU_ASSERT_EQUAL(res, LE_OK); res=le_sms_Send(myMsg); CU_ASSERT_NOT_EQUAL(res, LE_FAULT); CU_ASSERT_NOT_EQUAL(res, LE_FORMAT_ERROR); le_sms_Delete(myMsg); }
int main(int argc, char** argv) { struct pollfd pollControl; le_sms_ConnectService(); // Register a callback function to be called when an SMS arrives. (void)le_sms_AddRxMessageHandler(SmsRxHandler, NULL); printf("Waiting for SMS messages to arrive...\n"); // Get the Legato event loop "readyness" file descriptor and put it in a pollfd struct // configured to detect "ready to read". pollControl.fd = le_event_GetFd(); pollControl.events = POLLIN; while (true) { // Block until the file descriptor is "ready to read". int result = poll(&pollControl, 1, -1); if (result > 0) { // The Legato event loop needs servicing. Keep servicing it until there's nothing left. while (le_event_ServiceLoop() == LE_OK) { /* le_event_ServiceLoop() has more to do. Need to call it again. */ } } else { LE_FATAL("poll() failed with errno %m."); } } }
static void* MyRxThread ( void* context ///< See parameter documentation above. ) { le_sms_ConnectService(); RxHdlrRef = le_sms_AddRxMessageHandler(TestRxHandler, context); le_event_RunLoop(); return NULL; }
//-------------------------------------------------------------------------------------------------- le_result_t smsmt_Receiver ( void ) { HdlrRef = le_sms_AddRxMessageHandler(RxMessageHandler, NULL); if (!HdlrRef) { LE_ERROR("le_sms_AddRxMessageHandler has failed!"); return LE_FAULT; } else { return LE_OK; } }