mirror of https://github.com/ARMmbed/mbed-os.git
Use std::chrono based functions
The chrono based functions improve readability. Using them also removes warnings related to usage of deprecated warnings.pull/13046/head
parent
c7759fe505
commit
a3f4cf212d
|
@ -23,13 +23,14 @@
|
|||
#include "utest.h"
|
||||
#include "udp_tests.h"
|
||||
|
||||
using namespace std::chrono;
|
||||
using namespace utest::v1;
|
||||
|
||||
namespace {
|
||||
static const int SIGNAL_SIGIO_RX = 0x1;
|
||||
static const int SIGNAL_SIGIO_TX = 0x2;
|
||||
static const int SIGIO_TIMEOUT = 5000; //[ms]
|
||||
static const int SOCKET_TIMEOUT = (10 * 1000); //[ms]
|
||||
static constexpr seconds SIGIO_TIMEOUT = 5s;
|
||||
static constexpr seconds SOCKET_TIMEOUT = 10s;
|
||||
static const int RETRIES = 2;
|
||||
|
||||
static const double EXPECTED_LOSS_RATIO = 0.0;
|
||||
|
|
|
@ -35,6 +35,8 @@
|
|||
#include "Timeout.h"
|
||||
#include "platform/mbed_error.h"
|
||||
|
||||
using namespace std::chrono;
|
||||
|
||||
#define TRACE_GROUP "AtRF"
|
||||
|
||||
/*Worst case sensitivity*/
|
||||
|
@ -349,9 +351,9 @@ static rf_trx_part_e rf_radio_type_read(void)
|
|||
static void rf_if_ack_wait_timer_start(uint16_t slots)
|
||||
{
|
||||
#ifdef MBED_CONF_RTOS_PRESENT
|
||||
rf->ack_timer.attach_us(rf_if_ack_timer_signal, slots * 50);
|
||||
rf->ack_timer.attach(rf_if_ack_timer_signal, slots * 50us);
|
||||
#else
|
||||
rf->ack_timer.attach_us(rf_ack_wait_timer_interrupt, slots * 50);
|
||||
rf->ack_timer.attach(rf_ack_wait_timer_interrupt, slots * 50us);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -365,9 +367,9 @@ static void rf_if_ack_wait_timer_start(uint16_t slots)
|
|||
static void rf_if_calibration_timer_start(uint32_t slots)
|
||||
{
|
||||
#ifdef MBED_CONF_RTOS_PRESENT
|
||||
rf->cal_timer.attach_us(rf_if_cal_timer_signal, slots * 50);
|
||||
rf->cal_timer.attach(rf_if_cal_timer_signal, slots * 50us);
|
||||
#else
|
||||
rf->cal_timer.attach_us(rf_calibration_timer_interrupt, slots * 50);
|
||||
rf->cal_timer.attach(rf_calibration_timer_interrupt, slots * 50us);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -381,9 +383,9 @@ static void rf_if_calibration_timer_start(uint32_t slots)
|
|||
static void rf_if_cca_timer_start(uint32_t slots)
|
||||
{
|
||||
#ifdef MBED_CONF_RTOS_PRESENT
|
||||
rf->cca_timer.attach_us(rf_if_cca_timer_signal, slots * 50);
|
||||
rf->cca_timer.attach(rf_if_cca_timer_signal, slots * 50us);
|
||||
#else
|
||||
rf->cca_timer.attach_us(rf_cca_timer_interrupt, slots * 50);
|
||||
rf->cca_timer.attach(rf_cca_timer_interrupt, slots * 50us);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -512,14 +514,14 @@ static void rf_if_reset_radio(void)
|
|||
#endif
|
||||
rf->IRQ.rise(nullptr);
|
||||
rf->RST = 1;
|
||||
ThisThread::sleep_for(2);
|
||||
ThisThread::sleep_for(2ms);
|
||||
rf->RST = 0;
|
||||
ThisThread::sleep_for(10);
|
||||
ThisThread::sleep_for(10ms);
|
||||
CS_RELEASE();
|
||||
rf->SLP_TR = 0;
|
||||
ThisThread::sleep_for(10);
|
||||
ThisThread::sleep_for(10ms);
|
||||
rf->RST = 1;
|
||||
ThisThread::sleep_for(10);
|
||||
ThisThread::sleep_for(10ms);
|
||||
|
||||
rf->IRQ.rise(&rf_if_interrupt_handler);
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
#include <string.h>
|
||||
#if defined(MBED_CONF_NANOSTACK_CONFIGURATION) && DEVICE_SPI && DEVICE_INTERRUPTIN && defined(MBED_CONF_RTOS_PRESENT)
|
||||
|
||||
#include "platform/arm_hal_interrupt.h"
|
||||
#include "nanostack/platform/arm_hal_phy.h"
|
||||
#include "ns_types.h"
|
||||
|
@ -31,6 +32,7 @@
|
|||
#include "mbed_wait_api.h"
|
||||
#include "platform/mbed_error.h"
|
||||
|
||||
using namespace std::chrono;
|
||||
using namespace mbed;
|
||||
using namespace rtos;
|
||||
|
||||
|
@ -273,7 +275,7 @@ static void rf_calculate_symbol_rate(uint32_t baudrate, phy_modulation_e modulat
|
|||
|
||||
static uint32_t rf_get_timestamp(void)
|
||||
{
|
||||
return (uint32_t)rf->tx_timer.read_us();
|
||||
return (uint32_t)rf->tx_timer.elapsed_time().count();
|
||||
}
|
||||
|
||||
static void rf_update_tx_active_time(void)
|
||||
|
@ -857,7 +859,7 @@ static void rf_cca_timer_stop(void)
|
|||
|
||||
static void rf_cca_timer_start(uint32_t slots)
|
||||
{
|
||||
rf->cca_timer.attach_us(rf_cca_timer_signal, slots);
|
||||
rf->cca_timer.attach(rf_cca_timer_signal, microseconds(slots));
|
||||
TEST_CSMA_STARTED
|
||||
}
|
||||
|
||||
|
@ -894,7 +896,7 @@ static void rf_backup_timer_stop(void)
|
|||
|
||||
static void rf_backup_timer_start(uint32_t slots)
|
||||
{
|
||||
rf->backup_timer.attach_us(rf_backup_timer_signal, slots);
|
||||
rf->backup_timer.attach(rf_backup_timer_signal, microseconds(slots));
|
||||
}
|
||||
|
||||
static int8_t rf_start_cca(uint8_t *data_ptr, uint16_t data_length, uint8_t tx_handle, data_protocol_e data_protocol)
|
||||
|
@ -1163,10 +1165,10 @@ static void rf_reset(void)
|
|||
{
|
||||
// Shutdown
|
||||
rf->SDN = 1;
|
||||
ThisThread::sleep_for(10);
|
||||
ThisThread::sleep_for(10ms);
|
||||
// Wake up
|
||||
rf->SDN = 0;
|
||||
ThisThread::sleep_for(10);
|
||||
ThisThread::sleep_for(10ms);
|
||||
}
|
||||
|
||||
static void rf_init(void)
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include "mbed_trace.h"
|
||||
#define TRACE_GROUP "QSPIF"
|
||||
|
||||
using namespace std::chrono;
|
||||
using namespace mbed;
|
||||
|
||||
/* Default QSPIF Parameters */
|
||||
|
@ -1228,7 +1229,7 @@ bool QSPIFBlockDevice::_is_mem_ready()
|
|||
bool mem_ready = true;
|
||||
|
||||
do {
|
||||
rtos::ThisThread::sleep_for(1);
|
||||
rtos::ThisThread::sleep_for(1ms);
|
||||
retries++;
|
||||
//Read Status Register 1 from device
|
||||
if (QSPI_STATUS_OK != _qspi_send_general_command(QSPIF_INST_RSR1, QSPI_NO_ADDRESS_COMMAND,
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
#include "platform/mbed_assert.h"
|
||||
#include "platform/mbed_chrono.h"
|
||||
|
||||
namespace ble {
|
||||
|
||||
|
@ -231,6 +232,48 @@ struct Duration {
|
|||
return Duration(Forever::VALUE);
|
||||
}
|
||||
|
||||
#if defined(DOXYGEN_ONLY)
|
||||
/**
|
||||
* Test if the forever value is being held
|
||||
* @return True if the forever value is held False otherwise
|
||||
*/
|
||||
bool isForever() const;
|
||||
#else
|
||||
// Overload when Forever isn't defined
|
||||
template<typename DefaultForever = void*>
|
||||
std::enable_if_t<
|
||||
std::is_same<DefaultForever, Forever>::value,
|
||||
bool
|
||||
>
|
||||
isForever() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Overload when Forever is defined
|
||||
template<typename DefaultForever = void*>
|
||||
std::enable_if_t<
|
||||
!std::is_same<DefaultForever, Forever>::value,
|
||||
bool
|
||||
>
|
||||
isForever() const
|
||||
{
|
||||
return duration == Forever::VALUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Convert the duration into an std::chrono one.
|
||||
* @return The duration in the std::chrono format.
|
||||
*/
|
||||
std::chrono::duration<Rep, typename std::ratio<TB, 1000000>::type>
|
||||
valueChrono() const
|
||||
{
|
||||
MBED_ASSERT(!isForever());
|
||||
|
||||
return std::chrono::duration<Rep, typename std::ratio<TB, 1000000>::type>{duration};
|
||||
}
|
||||
|
||||
private:
|
||||
static Rep clamp(Rep in)
|
||||
{
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
|
||||
#include "drivers/Timeout.h"
|
||||
|
||||
using namespace std::chrono;
|
||||
|
||||
namespace ble {
|
||||
namespace generic {
|
||||
|
||||
|
@ -1390,9 +1392,9 @@ void GenericGap<PalGapImpl, PalSecurityManager, ConnectionEventMonitorEventHandl
|
|||
update_random_address();
|
||||
|
||||
// Schedule rotations every 15 minutes as recomended by the spec
|
||||
_address_rotation_ticker.attach_us(
|
||||
_address_rotation_ticker.attach(
|
||||
mbed::callback(this, &GenericGap::on_address_rotation_timeout),
|
||||
15 * 60 * 1000000U
|
||||
15min
|
||||
);
|
||||
} else {
|
||||
// Stop ticker
|
||||
|
@ -1917,9 +1919,9 @@ ble_error_t GenericGap<PalGapImpl, PalSecurityManager, ConnectionEventMonitorEve
|
|||
|
||||
_advertising_timeout.detach();
|
||||
if (maxDuration.value()) {
|
||||
_advertising_timeout.attach_us(
|
||||
_advertising_timeout.attach(
|
||||
mbed::callback(this, &GenericGap::on_advertising_timeout),
|
||||
durationCast<millisecond_t>(maxDuration).value()
|
||||
maxDuration.valueChrono()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -2505,9 +2507,9 @@ ble_error_t GenericGap<PalGapImpl, PalSecurityManager, ConnectionEventMonitorEve
|
|||
|
||||
_scan_timeout.detach();
|
||||
if (duration.value()) {
|
||||
_scan_timeout.attach_us(
|
||||
_scan_timeout.attach(
|
||||
mbed::callback(this, &GenericGap::on_scan_timeout_),
|
||||
microsecond_t(duration).value()
|
||||
duration.valueChrono()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,6 +38,8 @@
|
|||
#include "CordioPalAttClient.h"
|
||||
#include "CordioPalSecurityManager.h"
|
||||
|
||||
using namespace std::chrono;
|
||||
|
||||
/*! WSF handler ID */
|
||||
wsfHandlerId_t stack_handler_id;
|
||||
|
||||
|
@ -258,9 +260,9 @@ void BLE::waitForEvent()
|
|||
|
||||
if (wsfOsReadyToSleep()) {
|
||||
// setup an mbed timer for the next cordio timeout
|
||||
nextTimestamp = (timestamp_t)(WsfTimerNextExpiration(&pTimerRunning) * WSF_MS_PER_TICK) * 1000;
|
||||
nextTimestamp = (timestamp_t)(WsfTimerNextExpiration(&pTimerRunning) * WSF_MS_PER_TICK);
|
||||
if (pTimerRunning) {
|
||||
nextTimeout.attach_us(timeoutCallback, nextTimestamp);
|
||||
nextTimeout.attach(timeoutCallback, milliseconds(nextTimestamp));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -541,7 +543,7 @@ void BLE::callDispatcher()
|
|||
// process the external event queue
|
||||
_event_queue.process();
|
||||
|
||||
_last_update_us += (uint64_t)_timer.read_high_resolution_us();
|
||||
_last_update_us += (uint64_t)_timer.elapsed_time().count();
|
||||
_timer.reset();
|
||||
|
||||
uint64_t last_update_ms = (_last_update_us / 1000);
|
||||
|
@ -561,9 +563,9 @@ void BLE::callDispatcher()
|
|||
if (wsfOsReadyToSleep()) {
|
||||
// setup an mbed timer for the next Cordio timeout
|
||||
bool_t pTimerRunning;
|
||||
timestamp_t nextTimestamp = (timestamp_t) (WsfTimerNextExpiration(&pTimerRunning) * WSF_MS_PER_TICK) * 1000;
|
||||
timestamp_t nextTimestamp = (timestamp_t) (WsfTimerNextExpiration(&pTimerRunning) * WSF_MS_PER_TICK);
|
||||
if (pTimerRunning) {
|
||||
nextTimeout.attach_us(timeoutCallback, nextTimestamp);
|
||||
nextTimeout.attach(timeoutCallback, milliseconds(nextTimestamp));
|
||||
} else {
|
||||
critical_section.disable();
|
||||
_hci_driver->on_host_stack_inactivity();
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "CellularLog.h"
|
||||
#include "rtos/ThisThread.h"
|
||||
|
||||
using namespace std::chrono;
|
||||
using namespace rtos;
|
||||
using namespace mbed;
|
||||
using namespace events;
|
||||
|
@ -86,7 +87,7 @@ nsapi_error_t ALT1250_PPP::soft_power_on()
|
|||
tr_warn("Modem is not responding to AT commands, reset it");
|
||||
if (_rst.is_connected()) {
|
||||
_rst = 0;
|
||||
ThisThread::sleep_for(100);
|
||||
ThisThread::sleep_for(100ms);
|
||||
_rst = 1;
|
||||
}
|
||||
if (_at.sync(2000)) {
|
||||
|
|
|
@ -26,12 +26,13 @@
|
|||
#include "CellularLog.h"
|
||||
|
||||
#define PACKET_SIZE_MAX 1358
|
||||
#define TXFULL_EVENT_TIMEOUT (1 * 1000) // ms
|
||||
#define TXFULL_EVENT_TIMEOUT 1s
|
||||
|
||||
#define AT_UPLINK_BUSY 159
|
||||
#define AT_UART_BUFFER_ERROR 536
|
||||
#define AT_BACK_OFF_TIMER 537
|
||||
|
||||
using namespace std::chrono;
|
||||
using namespace mbed;
|
||||
using namespace mbed_cellular_util;
|
||||
|
||||
|
@ -230,7 +231,7 @@ retry_send:
|
|||
if (retry < 3) {
|
||||
retry++;
|
||||
tr_warn("Socket %d sendto EAGAIN", socket->id);
|
||||
rtos::ThisThread::sleep_for(30);
|
||||
rtos::ThisThread::sleep_for(30ms);
|
||||
_at.clear_error();
|
||||
goto retry_send;
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
using namespace mbed;
|
||||
using namespace mbed_cellular_util;
|
||||
using namespace std::chrono_literals;
|
||||
using namespace std::chrono;
|
||||
|
||||
RM1000_AT_CellularStack::RM1000_AT_CellularStack(ATHandler &atHandler, int cid, nsapi_ip_stack_t stack_type, AT_CellularDevice &device) :
|
||||
AT_CellularStack(atHandler, cid, stack_type, device)
|
||||
|
@ -266,7 +266,7 @@ nsapi_size_or_error_t RM1000_AT_CellularStack::socket_recvfrom_impl(CellularSock
|
|||
// read() should not fail
|
||||
success = false;
|
||||
}
|
||||
} else if (timer.read_ms() < SOCKET_TIMEOUT) {
|
||||
} else if (timer.elapsed_time() < SOCKET_TIMEOUT) {
|
||||
// Wait for URCs
|
||||
_at.process_oob();
|
||||
} else {
|
||||
|
|
|
@ -17,11 +17,14 @@
|
|||
#ifndef RM1000_AT_CELLULARSTACK_H_
|
||||
#define RM1000_AT_CELLULARSTACK_H_
|
||||
|
||||
#include <chrono>
|
||||
|
||||
#include "AT_CellularStack.h"
|
||||
#include "CellularUtil.h"
|
||||
#include "mbed_wait_api.h"
|
||||
#include "drivers/Timer.h"
|
||||
|
||||
using namespace std::chrono;
|
||||
|
||||
namespace mbed {
|
||||
|
||||
|
@ -54,7 +57,7 @@ protected: // AT_CellularStack
|
|||
* call to the functions here when they return NSAPI_ERROR_WOULD_BLOCK
|
||||
* and the user has set a larger timeout or full blocking.
|
||||
*/
|
||||
static const int SOCKET_TIMEOUT = 1000;
|
||||
static constexpr seconds SOCKET_TIMEOUT = 1s;
|
||||
|
||||
/** The maximum number of bytes in a packet that can be write/read from
|
||||
* the AT interface in one go.
|
||||
|
|
|
@ -88,7 +88,7 @@ nsapi_error_t UBLOX_AT_CellularNetwork::ubx_reboot()
|
|||
nsapi_error_t err = NSAPI_ERROR_OK;
|
||||
Timer t1;
|
||||
t1.start();
|
||||
while (!(t1.read() >= 30)) {
|
||||
while (!(t1.elapsed_time() >= 30s)) {
|
||||
err = _at.at_cmd_discard("E0", "");
|
||||
if (err == NSAPI_ERROR_OK) {
|
||||
break;
|
||||
|
|
|
@ -177,7 +177,7 @@ nsapi_size_or_error_t UBLOX_AT_CellularStack::socket_sendto_impl(CellularSocket
|
|||
}
|
||||
_at.cmd_start_stop("+USOST", "=", "%d%s%d%d", socket->id, address.get_ip_address(), address.get_port(), size);
|
||||
_at.resp_start("@", true);
|
||||
rtos::ThisThread::sleep_for(50); //wait for 50ms before sending data
|
||||
rtos::ThisThread::sleep_for(50ms);
|
||||
|
||||
_at.write_bytes((uint8_t *)data, size);
|
||||
|
||||
|
@ -201,7 +201,7 @@ nsapi_size_or_error_t UBLOX_AT_CellularStack::socket_sendto_impl(CellularSocket
|
|||
}
|
||||
_at.cmd_start_stop("+USOWR", "=", "%d%d", socket->id, blk);
|
||||
_at.resp_start("@", true);
|
||||
rtos::ThisThread::sleep_for(50); //wait for 50ms before sending data
|
||||
rtos::ThisThread::sleep_for(50ms);
|
||||
|
||||
_at.write_bytes((uint8_t *)buf, blk);
|
||||
|
||||
|
@ -289,7 +289,7 @@ nsapi_size_or_error_t UBLOX_AT_CellularStack::socket_recvfrom_impl(CellularSocke
|
|||
// read() should not fail
|
||||
success = false;
|
||||
}
|
||||
} else if (timer.read_ms() < SOCKET_TIMEOUT) {
|
||||
} else if (timer.elapsed_time() < SOCKET_TIMEOUT) {
|
||||
// Wait for URCs
|
||||
_at.process_oob();
|
||||
} else {
|
||||
|
@ -332,7 +332,7 @@ nsapi_size_or_error_t UBLOX_AT_CellularStack::socket_recvfrom_impl(CellularSocke
|
|||
} else {
|
||||
success = false;
|
||||
}
|
||||
} else if (timer.read_ms() < SOCKET_TIMEOUT) {
|
||||
} else if (timer.elapsed_time() < SOCKET_TIMEOUT) {
|
||||
// Wait for URCs
|
||||
_at.process_oob();
|
||||
} else {
|
||||
|
|
|
@ -17,11 +17,14 @@
|
|||
#ifndef UBLOX_AT_CELLULARSTACK_H_
|
||||
#define UBLOX_AT_CELLULARSTACK_H_
|
||||
|
||||
#include <chrono>
|
||||
|
||||
#include "AT_CellularStack.h"
|
||||
#include "CellularUtil.h"
|
||||
#include "rtos/ThisThread.h"
|
||||
#include "drivers/Timer.h"
|
||||
|
||||
using namespace std::chrono;
|
||||
|
||||
namespace mbed {
|
||||
|
||||
|
@ -56,7 +59,7 @@ protected:
|
|||
* call to the functions here when they return NSAPI_ERROR_WOULD_BLOCK
|
||||
* and the user has set a larger timeout or full blocking.
|
||||
*/
|
||||
static const int SOCKET_TIMEOUT = 1000;
|
||||
static constexpr seconds SOCKET_TIMEOUT = 1s;
|
||||
|
||||
/** The maximum number of bytes in a packet that can be write/read from
|
||||
* the AT interface in one go.
|
||||
|
|
|
@ -185,7 +185,7 @@ nsapi_size_or_error_t UBLOX_N2XX_CellularStack::socket_recvfrom_impl(CellularSoc
|
|||
// read() should not fail
|
||||
success = false;
|
||||
}
|
||||
} else if (timer.read_ms() < SOCKET_TIMEOUT) {
|
||||
} else if (timer.elapsed_time() < SOCKET_TIMEOUT) {
|
||||
// Wait for URCs
|
||||
_at.process_oob();
|
||||
} else {
|
||||
|
|
|
@ -17,11 +17,15 @@
|
|||
#ifndef UBLOX_N2XX_CELLULARSTACK_H_
|
||||
#define UBLOX_N2XX_CELLULARSTACK_H_
|
||||
|
||||
#include <chrono>
|
||||
|
||||
#include "AT_CellularStack.h"
|
||||
#include "CellularUtil.h"
|
||||
#include "mbed_wait_api.h"
|
||||
#include "drivers/Timer.h"
|
||||
|
||||
using namespace std::chrono;
|
||||
|
||||
namespace mbed {
|
||||
|
||||
class UBLOX_N2XX_CellularStack : public AT_CellularStack {
|
||||
|
@ -45,7 +49,7 @@ protected:
|
|||
* call to the functions here when they return NSAPI_ERROR_WOULD_BLOCK
|
||||
* and the user has set a larger timeout or full blocking.
|
||||
*/
|
||||
static const int SOCKET_TIMEOUT = 1000;
|
||||
static constexpr seconds SOCKET_TIMEOUT = 1s;
|
||||
|
||||
/** The maximum number of bytes in a packet that can be write/read from
|
||||
* the AT interface in one go.
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "platform/SingletonPtr.h"
|
||||
#include "Timeout.h"
|
||||
using mbed::Timeout;
|
||||
using namespace std::chrono;
|
||||
|
||||
// only one callback is active at any given time
|
||||
static volatile utest_v1_harness_callback_t minimal_callback;
|
||||
|
@ -46,13 +47,11 @@ static int32_t utest_us_ticker_init()
|
|||
static void *utest_us_ticker_post(const utest_v1_harness_callback_t callback, timestamp_t delay_ms)
|
||||
{
|
||||
UTEST_LOG_FUNCTION();
|
||||
timestamp_t delay_us = delay_ms *1000;
|
||||
|
||||
if (delay_ms) {
|
||||
ticker_callback = callback;
|
||||
// fire the interrupt in 1000us * delay_ms
|
||||
utest_timeout_object->attach_us(ticker_handler, delay_us);
|
||||
|
||||
utest_timeout_object->attach(ticker_handler, milliseconds(delay_ms));
|
||||
}
|
||||
else {
|
||||
minimal_callback = callback;
|
||||
|
|
|
@ -20,6 +20,8 @@ SPDX-License-Identifier: BSD-3-Clause
|
|||
|
||||
#include "LoRaWANTimer.h"
|
||||
|
||||
using namespace std::chrono;
|
||||
|
||||
LoRaWANTimeHandler::LoRaWANTimeHandler()
|
||||
: _queue(NULL)
|
||||
{
|
||||
|
@ -53,7 +55,7 @@ void LoRaWANTimeHandler::init(timer_event_t &obj, mbed::Callback<void()> callbac
|
|||
|
||||
void LoRaWANTimeHandler::start(timer_event_t &obj, const uint32_t timeout)
|
||||
{
|
||||
obj.timer_id = _queue->call_in(timeout, obj.callback);
|
||||
obj.timer_id = _queue->call_in(milliseconds(timeout), obj.callback);
|
||||
MBED_ASSERT(obj.timer_id != 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -13,11 +13,14 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include "NanostackEthernetInterface.h"
|
||||
#include "mesh_system.h"
|
||||
#include "callback_handler.h"
|
||||
#include "enet_tasklet.h"
|
||||
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
nsapi_error_t Nanostack::EthernetInterface::initialize()
|
||||
{
|
||||
nanostack_lock();
|
||||
|
@ -78,7 +81,7 @@ nsapi_error_t Nanostack::EthernetInterface::bringup(bool dhcp, const char *ip,
|
|||
}
|
||||
|
||||
if (blocking) {
|
||||
bool acquired = connect_semaphore.try_acquire_for(30000);
|
||||
bool acquired = connect_semaphore.try_acquire_for(30s);
|
||||
|
||||
if (!acquired) {
|
||||
return NSAPI_ERROR_DHCP_FAILURE; // sort of...
|
||||
|
@ -112,9 +115,9 @@ nsapi_error_t Nanostack::EthernetInterface::bringdown()
|
|||
}
|
||||
|
||||
if (_blocking) {
|
||||
int32_t count = disconnect_semaphore.try_acquire_for(30000);
|
||||
bool acquired = disconnect_semaphore.try_acquire_for(30s);
|
||||
|
||||
if (count <= 0) {
|
||||
if (!acquired) {
|
||||
return NSAPI_ERROR_TIMEOUT;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,8 @@
|
|||
#include "enet_tasklet.h"
|
||||
#include "ip6string.h"
|
||||
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
class PPPPhy : public NanostackPPPPhy {
|
||||
public:
|
||||
PPPPhy(NanostackMemoryManager &mem, PPP &m);
|
||||
|
@ -86,8 +88,8 @@ nsapi_error_t Nanostack::PPPInterface::bringup(bool dhcp, const char *ip,
|
|||
if (blocking) {
|
||||
uint8_t retries = 10;
|
||||
while (_connect_status != NSAPI_STATUS_GLOBAL_UP) {
|
||||
int32_t count = connect_semaphore.try_acquire_for(3000);
|
||||
if (count <= 0 && retries-- == 0) {
|
||||
bool acquired = connect_semaphore.try_acquire_for(3s);
|
||||
if (!acquired && retries-- == 0) {
|
||||
return NSAPI_ERROR_DHCP_FAILURE; // sort of...
|
||||
}
|
||||
// Not up until global up
|
||||
|
@ -153,9 +155,9 @@ nsapi_error_t Nanostack::PPPInterface::bringdown()
|
|||
}
|
||||
|
||||
if (_blocking) {
|
||||
int32_t count = disconnect_semaphore.try_acquire_for(30000);
|
||||
bool acquired = disconnect_semaphore.try_acquire_for(30s);
|
||||
|
||||
if (count <= 0) {
|
||||
if (!acquired) {
|
||||
return NSAPI_ERROR_TIMEOUT;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,8 @@
|
|||
|
||||
// Default NetworkStack operations
|
||||
|
||||
using namespace std::chrono;
|
||||
|
||||
nsapi_error_t NetworkStack::get_ip_address(SocketAddress *address)
|
||||
{
|
||||
return NSAPI_ERROR_UNSUPPORTED;
|
||||
|
@ -197,7 +199,7 @@ nsapi_error_t NetworkStack::call_in(int delay, mbed::Callback<void()> func)
|
|||
}
|
||||
|
||||
if (delay > 0) {
|
||||
if (event_queue->call_in(delay, func) == 0) {
|
||||
if (event_queue->call_in(milliseconds(delay), func) == 0) {
|
||||
goto NO_MEM;
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -222,7 +222,9 @@ void nfc_scheduler_timer_start(nfc_scheduler_timer_t *timer)
|
|||
uint32_t nfc_scheduler_timer_get(nfc_scheduler_timer_t *timer)
|
||||
{
|
||||
Timer *mbed_timer = (Timer *)timer;
|
||||
return (uint32_t)mbed_timer->read_ms();
|
||||
return (uint32_t)std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||
mbed_timer->elapsed_time()
|
||||
).count();
|
||||
}
|
||||
|
||||
void nfc_scheduler_timer_stop(nfc_scheduler_timer_t *timer)
|
||||
|
|
|
@ -33,7 +33,7 @@ static void (*_rtc_write)(time_t t) = rtc_write;
|
|||
|
||||
#include "drivers/LowPowerTimer.h"
|
||||
|
||||
#define US_PER_SEC 1000000
|
||||
using namespace std::chrono;
|
||||
|
||||
static SingletonPtr<mbed::LowPowerTimer> _rtc_lp_timer;
|
||||
static uint64_t _rtc_lp_base;
|
||||
|
@ -52,7 +52,7 @@ static int _rtc_lpticker_isenabled(void)
|
|||
|
||||
static time_t _rtc_lpticker_read(void)
|
||||
{
|
||||
return _rtc_lp_timer->read_high_resolution_us() / US_PER_SEC + _rtc_lp_base;
|
||||
return duration_cast<seconds>(_rtc_lp_timer->elapsed_time()).count() + _rtc_lp_base;
|
||||
}
|
||||
|
||||
static void _rtc_lpticker_write(time_t t)
|
||||
|
|
Loading…
Reference in New Issue