Beispiel #1
0
//--------------------------------------------------------------------------------------------------
static void RemoveHandler
(
    void* param1Ptr,
    void* param2Ptr
)
{
    AppContext_t * appCtxPtr = (AppContext_t*) param1Ptr;

    le_temp_RemoveThresholdEventHandler( NULL );
    le_temp_RemoveThresholdEventHandler( appCtxPtr->eventHandler );

    // Semaphore is used to synchronize the task execution with the core test
    le_sem_Post(ThreadSemaphore);
}
Beispiel #2
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);
}