Host library for controlling a WiConnect enabled Wi-Fi module.

Dependents:   wiconnect-ota_example wiconnect-web_setup_example wiconnect-test-console wiconnect-tcp_server_example ... more

sdk/mbed/TimeoutTimer.cpp

Committer:
dan_ackme
Date:
2014-08-11
Revision:
0:ea85c4bb5e1f
Child:
1:6ec9998427ad

File content as of revision 0:ea85c4bb5e1f:

/*
 * Copyright 2014, ACKme Networks
 * All Rights Reserved.
 *
 * This is UNPUBLISHED PROPRIETARY SOURCE CODE of ACKme Networks;
 * the contents of this file may not be disclosed to third parties, copied
 * or duplicated in any form, in whole or in part, without the prior
 * written permission of ACKme Networks.
 */


#include "Wiconnect.h"
#include "us_ticker_api.h"

/*************************************************************************************************/
TimeoutTimer::TimeoutTimer()
{
    _start = 0;
    us_ticker_init();
}

/*************************************************************************************************/
void TimeoutTimer::reset(void)
{
    _start = us_ticker_read();
}

/*************************************************************************************************/
uint32_t TimeoutTimer::remainingMs(uint32_t timeoutMs)
{
    const uint32_t diff = readUs() / 1000;
    return (timeoutMs > diff) ? timeoutMs - diff : 0;
}

/*************************************************************************************************/
uint32_t TimeoutTimer::readUs()
{
    return us_ticker_read() - _start;
}

/*************************************************************************************************/
bool TimeoutTimer::timedOut(uint32_t timeoutMs)
{
    timeoutMs *= 1000;
    return (timeoutMs <= readUs());
}