Ejemplo n.º 1
0
/**
 * Function documented in platform-cc2650.h
 */
void cc2650AlarmProcess(otInstance *aInstance)
{
    uint32_t offsetTime;

    if (sIsRunning)
    {
        /* unsinged subtraction will result in the absolute offset */
        offsetTime = otPlatAlarmMilliGetNow() - sTime0;

        if (sAlarmTime <= offsetTime)
        {
            sIsRunning = false;
#if OPENTHREAD_ENABLE_DIAG

            if (otPlatDiagModeGet())
            {
                otPlatDiagAlarmFired(aInstance);
            }
            else
#endif /* OPENTHREAD_ENABLE_DIAG */
            {
                otPlatAlarmMilliFired(aInstance);
            }
        }
    }
}
Ejemplo n.º 2
0
void nrf5AlarmProcess(otInstance *aInstance)
{
    if (sTimerData[kMsTimer].mFireAlarm)
    {
        sTimerData[kMsTimer].mFireAlarm = false;

#if OPENTHREAD_ENABLE_DIAG

        if (otPlatDiagModeGet())
        {
            otPlatDiagAlarmFired(aInstance);
        }
        else
#endif
        {
            otPlatAlarmMilliFired(aInstance);
        }
    }

    if (sTimerData[kUsTimer].mFireAlarm)
    {
        sTimerData[kUsTimer].mFireAlarm = false;

        otPlatAlarmMicroFired(aInstance);
    }
}
Ejemplo n.º 3
0
void kw41zAlarmProcess(otInstance *aInstance)
{
    if ((sAlarmTime != 0) && (sTime >= sAlarmTime))
    {
        sAlarmTime = 0;
#if OPENTHREAD_ENABLE_DIAG

        if (otPlatDiagModeGet())
        {
            otPlatDiagAlarmFired(aInstance);
        }
        else
#endif
        {
            otPlatAlarmMilliFired(aInstance);
        }
    }
}
Ejemplo n.º 4
0
void samr21AlarmProcess(otInstance *aInstance)
{
    if ((sDeltaTime != 0) && ((sTime - sStartTime) >= sDeltaTime))
    {
        sDeltaTime = 0;

#if OPENTHREAD_ENABLE_DIAG

        if (otPlatDiagModeGet())
        {
            otPlatDiagAlarmFired(aInstance);
        }
        else
#endif
        {
            otPlatAlarmMilliFired(aInstance);
        }
    }
}
Ejemplo n.º 5
0
void platformAlarmProcess(otInstance *aInstance)
{
    int32_t remaining;

    if (sIsMsRunning)
    {
        remaining = (int32_t)(sMsAlarm - otPlatAlarmMilliGetNow());

        if (remaining <= 0)
        {
            sIsMsRunning = false;

#if OPENTHREAD_ENABLE_DIAG

            if (otPlatDiagModeGet())
            {
                otPlatDiagAlarmFired(aInstance);
            }
            else
#endif
            {
                otPlatAlarmMilliFired(aInstance);
            }
        }
    }

#if OPENTHREAD_CONFIG_ENABLE_PLATFORM_USEC_TIMER

    if (sIsUsRunning)
    {
        remaining = (int32_t)(sUsAlarm - otPlatAlarmMicroGetNow());

        if (remaining <= 0)
        {
            sIsUsRunning = false;

            otPlatAlarmMicroFired(aInstance);
        }
    }

#endif // OPENTHREAD_CONFIG_ENABLE_PLATFORM_USEC_TIMER
}
Ejemplo n.º 6
0
void efr32AlarmProcess(otInstance *aInstance)
{
    uint32_t now = otPlatAlarmMilliGetNow();
    uint32_t expires;
    bool     fire = false;

    otEXPECT(sIsRunning);

    expires = sAlarmT0 + sAlarmDt;

    if (sAlarmT0 <= now)
    {
        fire = (expires >= sAlarmT0 && expires <= now);
    }
    else
    {
        fire = (expires >= sAlarmT0 || expires <= now);
    }

    if (fire)
    {
        sIsRunning = false;

#if OPENTHREAD_ENABLE_DIAG

        if (otPlatDiagModeGet())
        {
            otPlatDiagAlarmFired(aInstance);
        }
        else
#endif
        {
            otPlatAlarmMilliFired(aInstance);
        }
    }

exit:
    return;
}