Example #1
0
//--------------------------------------------------------------------------------------------------
static void Testle_temp_ThresholdEvent
(
)
{
    //  le_temp_ThresholdEventHandlerRef_t ref;
    struct timespec ts;
    le_temp_ThresholdEventHandlerRef_t ref;

    TimeCounter = 0;
    PoolTemp = 1;
    LE_INFO("Set PoolTemp %d", PoolTemp);

    ref = le_temp_AddThresholdEventHandler(ThresholdEventHandlerFunc, NULL);
    LE_ASSERT(ref != NULL);
    LE_INFO("ref  0x%p", ref);
    le_temp_RemoveThresholdEventHandler(ref);

    le_thread_Ref_t thread = le_thread_Create("tempTest",DisplayTempThread,NULL);
    le_thread_Start(thread);

    le_thread_Ref_t thread2 = le_thread_Create("EventThread",EventThread,NULL);
    le_thread_Start(thread2);

    sem_init(&SemaphoreCriticalEvent,0,0);

    PoolTemp = 2;
    LE_INFO("Set PoolTemp %d", PoolTemp);

    if (clock_gettime(CLOCK_REALTIME, &ts) == -1)
    {
        LE_ERROR("Cannot get current time");
        return;
    }

    LE_INFO("!!!!!!! YOU MUST WARM UP OR COLD DOWN THE"
        " MODULE in %d second !!!!!!!", WAIT_TIME_EVENT);

    ts.tv_sec += WAIT_TIME_EVENT; // Wait for 480 seconds.
    ts.tv_nsec += 0;

    if ( sem_timedwait(&SemaphoreCriticalEvent,&ts) == -1 )
    {
        LE_WARN("errno %d", errno);
        if ( errno == ETIMEDOUT)
        {
            LE_WARN("Timeout for Warnig Event");
            return;
        }
    }

    PoolTemp = 0;
    LE_INFO("Set PoolTemp %d", PoolTemp);
    sleep(2);
}
Example #2
0
//--------------------------------------------------------------------------------------------------
static void* AppHandler
(
    void* ctxPtr
)
{
    AppContext_t * appCtxPtr = (AppContext_t*) ctxPtr;

    LE_DEBUG("App id: %d", appCtxPtr->appId);

    // Subscribe to temperature event handler
    appCtxPtr->eventHandler = le_temp_AddThresholdEventHandler(NULL, &ExpectedStatus);
    LE_ASSERT(appCtxPtr->eventHandler == NULL);

    appCtxPtr->eventHandler=le_temp_AddThresholdEventHandler(ThresholdEventHandler,&ExpectedStatus);
    LE_ASSERT(appCtxPtr->eventHandler != NULL);

    // Semaphore is used to synchronize the task execution with the core test
    le_sem_Post(ThreadSemaphore);

    le_event_RunLoop();
}
Example #3
0
/*
 * Event Thread
 */
static void* EventThread(void* context)
{
    le_temp_ThresholdEventHandlerRef_t ref;

    le_temp_ConnectService();

    ref = le_temp_AddThresholdEventHandler(ThresholdEventHandlerFunc, NULL);
    LE_ASSERT(ref != NULL);
    LE_INFO("ref  0x%p", ref);

    LE_INFO("EventThread Start");

    // Run the event loop
    le_event_RunLoop();
    return NULL;
}